Hi!

I think I found a bug in drivers/usb/audio.c

In usb_audio_featureunit the number of channels
was not initialized properly so for some devices
which mix mono and stereo channels (like Labtec 
Axis 712 stereo headset) some channels were missing.

I include the patch. As I am not an expert, could
you forward it to the proper
person (Linus Torvalds/Marcelo Tolsatti)
to include it in the kernel.

Best Regards,

Jacek Pliszka

--- /usr/src/linux-2.4/drivers/usb/audio.c      Tue Oct 30 16:01:40 2001
+++ audio.c     Sat Nov 17 21:40:50 2001
@@ -3378,6 +3378,12 @@
 #endif
 
        usb_audio_recurseunit(state, ftr[4]);
+       if(ftr[5]==0){
+         printk(KERN_ERR "usbaudio: wrong size of controls\n");
+         return;
+        } 
+        state->nrchannels=(ftr[0]-7)/ftr[5]-1;
+
        if (state->nrchannels == 0) {
                printk(KERN_ERR "usbaudio: feature unit %u source has no channels\n", 
ftr[3]);
                return;

Reply via email to