The Logitech H390, for instance, has the following interface layout:
7 INPUT 34 INPUT 10 INPUT
Mic (0x201) Mic (0x201) USB Stream (0x101)
| | |
v v |
19 FEATURE 35 FEATURE |
| | |
v v |
25 EXTENSION +------> 36 MIXER <---+
| |
v v
13 OUTPUT 22 FEATURE
USB Stream (0x101) |
v
16 OUTPUT
Speaker (0x301)The 7->13 path on the left is a typical microphone-in configuration,
while the right side is a little more complicated. The 34 -> 35 -> 36
leg is describing a hardware sidetone control, while the other is a
standard audio-out configuration.
During feature unit evaluation, we need to pick up the scenario of node
35 above, which is directly wiring the microphone to the speaker. This
doesn't seem to match the traditional definitions of either IMIX or
MONITOR, so just tag it with SOUND_MIXER_NRDEVICES to avoid tying it
to pcm/vol levels.
This avoids mishandling feature unit 22 because that's evaluated in one
of the other cases: one of the inputs is the USB stream, so it's
wired up as a PCM. I think this is still technically wrong somewhere,
but I haven't decided how- on this headset, the vol control does
absolutely nothing while pcm controls the volume.
PR: 291424