[wdmaudiodev] Debugging USB audio at the hardware level

  • From: "Martin Gagnon" <mgagnon1@xxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Thu, 17 Sep 2009 12:53:54 -0400

Hi everyone,


It's several years since I've posted in this group. Lately I've been
brought back into Windows audio matters.


I know this is a software-focused group for audio, but many of you may
know a thing or two about USB protocol messages to a USB audio device.


Here is the situation, we're dealing with a C-Media audio device CM6206,
using MS usbaudio.sys driver. The C-Media chip is sitting behind a NEC
USB2.0 hub that's connected to a NEC USB2.0 host controller, itself
connected to a PLX PCIe switch. Using Windows XP SP3, the driver
installs fine, typical audio playback works fine (directsound or wave
output). However, when we concurrently enable video and audio, for
example playing back a movie in full screen, with no hardware video
decoding, we lose audio after "a while", and can't get it back. However,
the Windows default sounds (for example system beep or logoff sounds)
are still working fine. The interval of time before we lose the audio
varies with the graphics activity in the system, as well as with various
systems of various speeds, so it can take 5mins or it can take 1 day. We
tried the C-Media driver as well and got the same symptom. We also tried
different USB audio chip manufacturers (including TI) to no avail.


So we looked at the USB transactions on the USB bus going into the USB
audio chip. We note a series of OUT transactions followed by IN
transactions, usually containing a "NACK" message. This goes on for as
long as the audio plays back fine. Then we get a series of OUT
transactions with no corresponding IN transactions, then we get a Reset


Can anybody put light on this scenario, explain the Reset event, or
suggest further debugging steps?


Thank you very much.


Martin Gagnon

Matrox Graphics


Attachment: usb_reset.jpg
Description: usb_reset.jpg

Other related posts: