[alsa-devel] HDA_PINCFG_NO_HP_FIXUP question
Takashi Iwai
tiwai at suse.de
Wed Jul 18 08:44:50 CEST 2012
At Wed, 18 Jul 2012 08:27:02 +0200,
David Henningsson wrote:
>
> Hi,
>
> I'm trying to fix a bug where the docking station is not working. I
> started by adding pins for them (because that was not present), like this:
>
> [ALC269_FIXUP_LENOVO_DOCK] = {
> .type = ALC_FIXUP_PINS,
> .v.pins = (const struct alc_pincfg[]) {
> { 0x19, 0x23a11040 }, /* dock mic */
> { 0x1b, 0x2121103f }, /* dock headphone */
> { }
> },
> },
>
> However, this caused the real (non-dock) headphone out to "fixed up" to
> a line out, which is wrong. I'm a little unsure about the best way to
> resolve this, I can think of a few different options:
>
> 1) Also override the non-dock headphone out to have sequence number 0xf
>
> 2) Set parse_flags to HDA_PINCFG_NO_HP_FIXUP in patch_alc269
>
> 3) Try to improve the fix up algorithm to not fix up this particular
> case, but since I don't know when and where this was needed in the first
> place, I'm not sure how to do that without throwing the baby out with
> the bath water...?
In this particular case, I'd take 1 or 2, the easier one.
1 is already used for Lenovo conexant models pin-fixups.
And 2 can be applied only to this model by a quirk function setting
spec->parse_flags before alc_parse_auto_config().
thanks,
Takashi
More information about the Alsa-devel
mailing list