[alsa-devel] [PATCH] ALSA: hda - Make path_has_mixer() tristate

Ingo Brückl ib at wupperonline.de
Thu Mar 5 11:20:50 CET 2015


Takashi Iwai wrote on Wed, 04 Mar 2015 12:48:38 +0100:

> At Tue, 03 Mar 2015 12:20:02 +0100,
> Ingo Brückl wrote:
>>
>> ... in order to distinguish whether there is no ctl or no path at all.
>>
>> It is used as !path_has_mixer() which means that it is true even if
>> there is no path at all. For headphone or speaker outs without path,
>> because they don't have a DAC assign to them, this would give a false
>> positive result.

> Do you mean the code checking hp_lo_shared and spk_lo_shared in
> get_line_out_pfx()?

Exactly.

> How can they be no path?

This is due to me forcing a mutli-io config even if there is no DAC for the
speaker (please see the "Intel HDA / ALC662 analog surround problem" thread):

==> Best config: lo_type=0, wired=0, mio=1
multi_outs = 14/0/0/0 : 2/3/4/0 (type LO)
multi_ios(2) = 1a/18 : 3/4
hp_outs = 1b/0/0/0 : 2/0/0/0
spk_outs = 15/0/0/0 : 0/0/0/0

I would love the auto-parser to assign the speaker to node 0x02 (or simply
disable the speaker), but unfortunately I'm not getting a surround config
with the current code, but only:

==> lo_type=0, wired=1, mio=0
multi_outs = 14/0/0/0 : 2/0/0/0 (type LO)
hp_outs = 1b/0/0/0 : 4/0/0/0
spk_outs = 15/0/0/0 : 3/0/0/0

This is unsatisfactory.

Concerning my path_has_mixer() tristate patch: Raymond stated that
path_has_mixer() does not imply shared volume. Although I'm not familiar
enough with all this, I would agree that if there happens to be no path at
all, there isn't any sharing also.

Ingo


More information about the Alsa-devel mailing list