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

Takashi Iwai tiwai at suse.de
Thu Mar 5 12:38:33 CET 2015


At Thu, 05 Mar 2015 11:20:50 +0100,
Ingo Brückl wrote:
> 
> 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.

You can force the DAC assignment by specifying
spec->gen.perferred_dacs.  Did you try it?

> 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.

Changing path_hax_miser() makes little sense.  A path must be present
when the I/O is activated.  That's the whole point of using paths.
So, enabling the output without path is fundamentally wrong.


Takashi


More information about the Alsa-devel mailing list