From owner-freebsd-usb@FreeBSD.ORG Mon Apr 25 21:54:55 2005 Return-Path: Delivered-To: freebsd-usb@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4E75B16A4CE; Mon, 25 Apr 2005 21:54:55 +0000 (GMT) Received: from 21322530218.direct.eti.at (21322530218.direct.eti.at [213.225.30.218]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4612243D45; Mon, 25 Apr 2005 21:54:54 +0000 (GMT) (envelope-from tilman@arved.at) Received: from jim.arved.de (localhost [127.0.0.1])j3PLsrMT024687; Mon, 25 Apr 2005 23:54:53 +0200 (CEST) (envelope-from tilman@arved.at) Received: (from arved@localhost) by jim.arved.de (8.13.3/8.13.1/Submit) id j3PLsrQ1024686; Mon, 25 Apr 2005 23:54:53 +0200 (CEST) (envelope-from tilman@arved.at) X-Authentication-Warning: jim.arved.de: arved set sender to tilman@arved.at using -f Date: Mon, 25 Apr 2005 23:54:53 +0200 From: Tilman Linneweh To: freebsd-multimedia@freebsd.org Message-ID: <20050425215452.GB2894@arved.at> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="nFreZHaLTZJo0R7j" Content-Disposition: inline User-Agent: Mutt/1.4.2.1i cc: sound@freebsd.org cc: freebsd-usb@freebsd.org Subject: Using uaudio(4) on systems withoug ISA bus X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Apr 2005 21:54:55 -0000 --nFreZHaLTZJo0R7j Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi everyone, I have tried to use my USB Headphone on my Mac mini. Unfortunately the sound system seems to require an ISA Bus, because in channel.c sndbuf_dmasetdir and sndbuf_dmabounce are used, which are only compiled if there is an isa device. Without knowing what i am doing i commented out these lines and everything seems to compile and work, apart from mixer(8) saying Device not configured and the following LOR on the first sound output: Apr 25 23:31:45 minimac kernel: Sleeping on "usbsyn" with the following non-slee pable locks held: Apr 25 23:31:45 minimac kernel: exclusive sleep mutex pcm0:play:0 (pcm play chan nel) r = 0 (0xc0fbc0) locked @ /usr/src/sys/dev/sound/pcm/channel.c:335 Apr 25 23:31:45 minimac kernel: KDB: stack backtrace: Apr 25 23:31:45 minimac kernel: 0xdbf158e0: at witness_warn+0x274 Apr 25 23:31:45 minimac kernel: 0xdbf15990: at msleep+0x9c Apr 25 23:31:45 minimac kernel: 0xdbf159f0: at usbd_transfer+0x1c8 Apr 25 23:31:45 minimac kernel: 0xdbf15a20: at usbd_sync_transfer+0x20 Apr 25 23:31:45 minimac kernel: 0xdbf15a40: at usbd_do_request_flags_pipe+0xa0 Apr 25 23:31:45 minimac kernel: 0xdbf15a90: at usbd_do_request_flags+0x40 Apr 25 23:31:45 minimac kernel: 0xdbf15ab0: at usbd_do_request+0x20 Apr 25 23:31:45 minimac kernel: 0xdbf15ad0: at usbd_set_interface+0xac Apr 25 23:31:45 minimac kernel: 0xdbf15af0: at uaudio_chan_open+0x5c Apr 25 23:31:45 minimac kernel: 0xdbf15b20: at uaudio_trigger_output+0x74 Apr 25 23:31:45 minimac kernel: 0xdbf15b40: at ua_chan_trigger+0x54 Apr 25 23:31:45 minimac kernel: 0xdbf15b60: at chn_trigger+0x98 Apr 25 23:31:45 minimac kernel: 0xdbf15b90: at chn_start+0x130 Apr 25 23:31:45 minimac kernel: 0xdbf15bc0: at chn_write+0x270 Apr 25 23:31:45 minimac kernel: 0xdbf15bc0: at chn_write+0x270 Apr 25 23:31:45 minimac kernel: 0xdbf15c00: at dsp_write+0xb0 Apr 25 23:31:45 minimac kernel: 0xdbf15c20: at devfs_write_f+0xec Apr 25 23:31:45 minimac kernel: 0xdbf15c50: at dofilewrite+0xe4 Apr 25 23:31:45 minimac kernel: 0xdbf15cb0: at write+0x5c Apr 25 23:31:45 minimac kernel: 0xdbf15ce0: at syscall+0x29c Apr 25 23:31:45 minimac kernel: 0xdbf15d60: at trap+0x168 Apr 25 23:31:45 minimac kernel: 0xdbf15da0: at powerpc_interrupt+0xc0 Apr 25 23:31:45 minimac kernel: 0xdbf15dd0: user SC trap by 0x218f3e6c: srr1=0xf 032 Apr 25 23:31:45 minimac kernel: r1=0x7fff8fc0 cr=0x44288048 xer=0 ctr=0x218f3e64 Apr 25 23:31:45 minimac kernel: lock order reversal Apr 25 23:31:45 minimac kernel: 1st 0xc0fbc0 pcm0:play:0 (pcm play channel) @ /u sr/src/sys/dev/sound/pcm/channel.c:335 Apr 25 23:31:45 minimac kernel: 2nd 0x45c150 Giant (Giant) @ /usr/src/sys/kern/k ern_synch.c:236 [...] Anyone got an idea how to solve this better? regards tilman --nFreZHaLTZJo0R7j Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="patch-channel.c" Index: channel.c =================================================================== RCS file: /home/ncvs/src/sys/dev/sound/pcm/channel.c,v retrieving revision 1.98 diff -u -r1.98 channel.c --- channel.c 6 Jan 2005 01:43:20 -0000 1.98 +++ channel.c 25 Apr 2005 21:25:32 -0000 @@ -870,8 +870,9 @@ CHN_LOCKASSERT(c); c->direction = dir; r = CHANNEL_SETDIR(c->methods, c->devinfo, c->direction); - if (!r && SND_DMA(b)) - sndbuf_dmasetdir(b, c->direction); + if (!r && SND_DMA(b)) { + /* sndbuf_dmasetdir(b, c->direction); */ + } return r; } @@ -1123,8 +1124,9 @@ int ret; CHN_LOCKASSERT(c); - if (SND_DMA(b) && (go == PCMTRIG_EMLDMAWR || go == PCMTRIG_EMLDMARD)) - sndbuf_dmabounce(b); + if (SND_DMA(b) && (go == PCMTRIG_EMLDMAWR || go == PCMTRIG_EMLDMARD)) { + /* sndbuf_dmabounce(b); */ + } ret = CHANNEL_TRIGGER(c->methods, c->devinfo, go); return ret; --nFreZHaLTZJo0R7j--