> AudioControl Interface Descriptor: > bLength 13 > bDescriptorType 36 > bDescriptorSubtype 4 (MIXER_UNIT) > Warning: Descriptor too short > bUnitID 10 > bNrInPins 2 > baSourceID( 0) 9 > baSourceID( 1) 1 > bNrChannels 8 > wChannelConfig 0x063f > Left Front (L) > Right Front (R) > Center Front (C) > Low Freqency Enhancement (LFE) > Left Surround (LS) > Right Surround (RS) > Side Left (SL) > Side Right (SR) > iChannelNames 0 > bmControls 0x00 > bmControls 0x00 > iMixer 33 (error)
Refer to usb audio specification 1.0
Table 4-5: Mixer Unit Descriptor
bLength = 10 + p + N = 14
Bus 001 Device 003: ID 1038:1225 Ideazon, Inc. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00
Your usb audio device are 2.0 bLength = 13 + p + N
Number of Input Pins of this Unit: p
bNrInPins 2
The ID of the Unit or Terminal to which the first and second Input Pins
of this Mixer Unit is connected.
baSourceID( 0) 9
> baSourceID( 1) 1
Number of logical output channels in the Mixer’s output audio channel
cluster.
> bNrChannels 8
Describes the spatial location of the logical channels.
> wChannelConfig 0x063f
Seem use 4 bytes instead of 2 bytes for usb audio 2.0 devices This mean the values output by lsusb is different from specification
> Left Front (L) > Right Front (R) > Center Front (C) > Low Freqency Enhancement (LFE) > Left Surround (LS) > Right Surround (RS) > Side Left (SL) > Side Right (SR)
Bit map indicating which mixing Controls are programmable.
> bmControls 0x00 > bmControls 0x00
Index of a string descriptor, describing the name of the first logical
channel.
iChannelNames 0
Index of a string descriptor, describing the Mixer Unit.
> iMixer 33
In case this can be of any useful info, in the form of unknown controls
reported by the lsusb output, manufacturer software in other OS has controls for:
- dolby surround activation (off and on).
- microphone input volume (which works fine now) in snd_usb_audio
- microphone input "compression" (supposedly to keep input within certain
non distorting levels)
- input noise reduction (off and on too)
- micro retro feedback volume
- equalizer.
Take a look at 4.7.2.6 Mixer Unit Descriptor of USB Audio 2.0 specs
Do the sound card work with alsa when you force the driver to skip build_mixer_unit_ctl() for unitid 10 ?
Can alsamixer change the 8 channels speaker playback volume control ?
You can add usb_audio_info to dump those values of the AudioControl Interface Descriptor with unitid 10
https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/tree/sound/usb/...
for (; ich < num_ins; ich++) { int och, ich_has_controls = 0;
for (och = 0; och < num_outs; och++) { __u8 *c = uac_mixer_unit_bmControls(desc, state->mixer->protocol);
+ usb_audio_info(state->chip, " bmControls [%d,%d] : %x\n", ich, och, *c);
if (check_matrix_bitmap(c, ich, och, num_outs)) { ich_has_controls = 1; break; } }
+ if (state->chip->usb_id == USB_ID(0x1038,0x1225)) + if(unitid == 10) + ich_has_control = 0;
if (ich_has_controls) build_mixer_unit_ctl(state, desc, pin, ich, unitid, &iterm); } } return 0; }