Hi!
I looked into the files you posted and it looks like folks at
Philips are not really able to write a proper firmware for a USB device.
Look here in the output of lsusb :
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0202 Desktop Microphone
bAssocTerminal 0
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
Right Front (R)
So clearly there are 2 channels! left and right. but later:
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 2
bSourceID 1
bControlSize 1
since bSourceID here is equal to bTerminalId before these two
are directly connected. But here:
bLength=9 and bControlSize=1. Looking into formula in:
http://www.usb.org/developers/data/devclass/audio10.pdf,
bottom of page 43 it you get:
9 (bLength) =7+(ch+1)*1 (bControlSize=n)
which solved gives ch=1 which is clearly inconsistent
with previous data.
Looks like Philips folks do not care that they have
in fact 2 channels in microphone and they simply merge
them into one. Moreover they do not do even this one,
they simply put just a single master channel and nothing else.
AFAIK the current code should work fine.
In the worst case line in audio.c :
ch->flags = (state->nrchannels > 1) ? (MIXFLG_STEREOIN | MIXFLG_STEREOOUT) : 0;
may be replaced by:
ch->flags=0;
The 2nd tricky place is unmutting but it also should work fine.
Just use dsp and mixer with proper minor. If nothing changed
in your setup use mixer with minor 16 and dsp with minor 35,
which, if you did what wrote in one of my earlier letters
would be /dev/mixer1 and /dev/dsp3
BR,
Jacek
_______________________________________________________________
Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel