[alsa-devel] [PATCH] ALSA: hda: ignore assoc when comparing pin configurations
Takashi Iwai
tiwai at suse.de
Tue Dec 6 08:07:00 CET 2016
On Tue, 06 Dec 2016 07:39:41 +0100,
Kai-Heng Feng wrote:
>
> Commit [64047d7f4912 ALSA: hda - ignore the assoc and seq when comparing
> pin configurations] may still fail to match pins on some machines,
> because the bitmask it used only ignore seq but not assoc.
> Change the bitmask to also ignore assoc.
So you are ignoring *both* assoc and seq numbers?
Or did you intend to ignore only assoc number?
In anyway, it'd be better to use a macro like
if ((t_pins->val & ~AC_DEFCFGDEF_ASSOC) == (cfg & ~AC_DEFCFG_ASSOC))
thanks,
Takashi
>
> Thanks to Hui Wang for the analysis.
>
> Signed-off-by: Kai-Heng Feng <kai.heng.feng at canonical.com>
> ---
> sound/pci/hda/hda_auto_parser.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/sound/pci/hda/hda_auto_parser.c b/sound/pci/hda/hda_auto_parser.c
> index 4ad29f8..fdc30d0 100644
> --- a/sound/pci/hda/hda_auto_parser.c
> +++ b/sound/pci/hda/hda_auto_parser.c
> @@ -901,7 +901,7 @@ static bool pin_config_match(struct hda_codec *codec,
> for (; t_pins->nid; t_pins++) {
> if (t_pins->nid == nid) {
> found = 1;
> - if ((t_pins->val & 0xfffffff0) == (cfg & 0xfffffff0))
> + if ((t_pins->val & 0xffffff00) == (cfg & 0xffffff00))
> break;
> else if ((cfg & 0xf0000000) == 0x40000000 && (t_pins->val & 0xf0000000) == 0x40000000)
> break;
> --
> 2.10.2
>
>
More information about the Alsa-devel
mailing list