[alsa-devel] snd_usb_audio - siberia elite prism soundcard issues
Raymond Yau
superquad.vortex2 at gmail.com
Fri Mar 13 14:51:12 CET 2015
>> >> >>
>> >> >> > 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/mixer.c
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;
}
More information about the Alsa-devel
mailing list