From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NRrTq-00077k-NT for qemu-devel@nongnu.org; Mon, 04 Jan 2010 13:16:38 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NRrTk-00072E-WA for qemu-devel@nongnu.org; Mon, 04 Jan 2010 13:16:37 -0500 Received: from [199.232.76.173] (port=60428 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NRrTk-00071x-JY for qemu-devel@nongnu.org; Mon, 04 Jan 2010 13:16:32 -0500 Received: from sj-iport-1.cisco.com ([171.71.176.70]:58597) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.60) (envelope-from ) id 1NRrTk-0007rZ-0H for qemu-devel@nongnu.org; Mon, 04 Jan 2010 13:16:32 -0500 Received: from xbh-sjc-231.amer.cisco.com (xbh-sjc-231.cisco.com [128.107.191.100]) by sj-core-5.cisco.com (8.13.8/8.14.3) with ESMTP id o04IGKCm026492 for ; Mon, 4 Jan 2010 18:16:25 GMT Message-ID: <4B42306C.80501@cisco.com> Date: Mon, 04 Jan 2010 11:16:12 -0700 From: "David S. Ahern" MIME-Version: 1.0 Subject: Re: [Qemu-devel] need help getting a USB audio device to work References: <4B40DF95.5060702@cisco.com> In-Reply-To: <4B40DF95.5060702@cisco.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org On 01/03/2010 11:19 AM, David S. Ahern wrote: > > After weeks of fruitless effort I could use some help getting a USB > audio device to work. I have instrumented the hell out of the guest > driver and uhci code, qemu's linux and uhci code, and the host side usb > code. Near as I can tell data from the device makes its way into qemu > (async_complete shows a urb length equal to the data the host OS > receives from the device), but the data does not appear to make its way > to the guest OS. I have tried a variety of guests -- Fedora 12, RHEL5.3, > and RHEL3U8, and none work. > > How do I determine in fact the data pulled into qemu from > ioctl(USBDEVFS_REAPURBNDELAY) is getting pushed to the guest? > > Thanks, Upon further review the problem appears to be that the TD's are still active when received in the VM. In the bare metal case the usb-uhci code shows (my instrumentation in a RHEL3U8 guest): process_iso @ 36912: urb f74bd03c, mode 0, frame 1191, npkt 5, nerr 0, status 03000057 TD @ c8281480, link 8281180, status 20007ff, info c610369: MaxLen=63 DT0 EP=2 Dev=3 PID=( IN ) Len=7ff e0 Link points to TD @ 08281180, Breadth first TD NOT active (20007ff) process_iso: 0 len 0 020007ff status 0 TD @ c82814c0, link 8281200, status 20007ff, info c610369: MaxLen=63 DT0 EP=2 Dev=3 PID=( IN ) Len=7ff e0 Link points to TD @ 08281200, Breadth first TD NOT active (20007ff) process_iso: 1 len 0 020007ff status 0 TD @ c8281500, link 8281180, status 2000059, info c610369: MaxLen=63 DT0 EP=2 Dev=3 PID=( IN ) Len=59 e0 Link points to TD @ 08281180, Breadth first TD NOT active (2000059) process_iso: 2 len 90 02000059 status 0 TD @ c8281540, link 82811c0, status 2000057, info c610369: MaxLen=63 DT0 EP=2 Dev=3 PID=( IN ) Len=57 e0 Link points to TD @ 082811c0, Breadth first TD NOT active (2000057) process_iso: 3 len 88 02000057 status 0 TD @ c82815c0, link 8281180, status 3000057, info c610369: MaxLen=63 DT0 EP=2 Dev=3 PID=( IN ) Len=57 e0 IOC Link points to TD @ 08281180, Breadth first TD NOT active (3000057) process_iso: 4 len 88 03000057 status 0 process_iso: exit 5 (0), transfer length 500 actual len 266 The same case in a VM shows: process_iso: td still active TD @ c1980580, link 1980200, status 3800000, info c610269: MaxLen=63 DT0 EP=2 Dev=2 PID=( IN ) Len=00 e0 IOC Active Link points to TD @ 01980200, Breadth first process_urb: type 0 process_iso @ 8376: urb dee5c0f0, mode 0, frame 1033, npkt 5, nerr 0, status 030007ff TD @ c19805c0, link 1980180, status 2800000, info c610269: MaxLen=63 DT0 EP=2 Dev=2 PID=( IN ) Len=00 e0 Active Link points to TD @ 01980180, Breadth first TD still active (2000000)- grrr. paranoia! Does this ring a bell with anyone? David