[wdmaudiodev] USB Audio Driver/Device problems

  • From: Steve Hayashi <sthayashi@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Fri, 6 Nov 2009 00:41:34 -0500

Hello everyone,

I realize that you're all getting a lot of questions on USB audio, and sad
to say, I've got problems as well.  I'm going to be  up front about this.  I
have a background in low level embedded hardware and I'm out of my comfort
zone when it comes to USB and the host driver side.

I've got a USB audio device I purchased that relies on native USB audio
drivers to work.  For years, I was using Windows XP without a problem, but
this past weekend, I upgraded to Windows 7 x64, and I've been having on and
off problems since.  The on and off problems involve getting the driver to
"start" the device.  Every time I boot, the drivers don't want to start.
 But every now and then, they "start" and things work perfectly smoothly.
 Until I shut down my computer again.

I downloaded a USB analyzer to see what might be going on that causes
intermittent functionality.  From the looks of things, the host queries the
device and attempts to get some member variables, like mute functionality,
volume control, treble, bass, etc.  The host then sends a select_interface
packet, sets the volume controls, and then we're all good.

Unfortunately, my device will send a stall response to the member variable
query (I don't know why), and the host driver clearly does not like this,
and it spirals out to the host just sending generic queries (and the device
responding back).

I don't want to send a log file out to the entire mailing list, but I can
send it out to anyone interested in taking a look at it (they're html
files).  Overall, the interaction seems a little strange to me, but I'm
chalking it up to lack of full USB knowledge.

My primary goal is to get the usb audio device working normally all the
time, ideally through some minor change that I was previously unaware of.
 I'm hoping I don't have to start learning WinDDK just to fix this, as it
seems like a "reinventing the wheel" approach.

So.... any thoughts, questions or suggestions?

Thank you,

Other related posts: