Comment 2 for bug 1478497

Revision history for this message
Takashi Iwai (tiwai) wrote : Re: [alsa-devel][PATCH] ALSA: hda - Add pin quirk for the headset mic jack detection on Dell laptop

On Mon, 27 Jul 2015 12:34:31 +0200,
<email address hidden> wrote:
>
> From: Woodrow Shen <email address hidden>
>
> The new Dell laptop with codec 256 can't detect headset mic when headset was
> inserted on the machine. From alsa-info, we check init_pin_configs and need to
> define the new register value for pin 0x1d & 0x1e because the original macro
> ALC256_STANDARD_PINS can't match pin definition. Also, the macro ALC256_STANDARD_PINS
> is simplified by removing them. This makes headset mic works on laptop.
>
> Codec: Realtek ALC256
> Vendor Id: 0x10ec0256
> Subsystem Id: 0x102806f2
>
> BugLink: https://bugs.launchpad.net/bugs/1478497
> Signed-off-by: Woodrow Shen <email address hidden>

I applied this as is now. But the code there is already messy, and I
wonder whether we should treat all 0x4xxxxxxx equally. So far, all
pincfgs are regarded as a kind of fingerprint. But, judging from the
actual values, the difference of 0x4xxxxxxx might be just a leftover
of wastes by BIOS programmers.

I don't mind any other way, but a sane cleanup would be appreciated.

thanks,

Takashi

> ---
> sound/pci/hda/patch_realtek.c | 15 +++++++++++----
> 1 file changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index d94c0e3..4ae877c 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -5398,8 +5398,6 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
> {0x19, 0x411111f0}, \
> {0x1a, 0x411111f0}, \
> {0x1b, 0x411111f0}, \
> - {0x1d, 0x40700001}, \
> - {0x1e, 0x411111f0}, \
> {0x21, 0x02211020}
>
> #define ALC282_STANDARD_PINS \
> @@ -5556,10 +5554,19 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
> {0x21, 0x02211030}),
> SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
> ALC256_STANDARD_PINS,
> - {0x13, 0x40000000}),
> + {0x13, 0x40000000},
> + {0x1d, 0x40700001},
> + {0x1e, 0x411111f0}),
> SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
> ALC256_STANDARD_PINS,
> - {0x13, 0x411111f0}),
> + {0x13, 0x411111f0},
> + {0x1d, 0x40700001},
> + {0x1e, 0x411111f0}),
> + SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
> + ALC256_STANDARD_PINS,
> + {0x13, 0x411111f0},
> + {0x1d, 0x4077992d},
> + {0x1e, 0x411111ff}),
> SND_HDA_PIN_QUIRK(0x10ec0280, 0x103c, "HP", ALC280_FIXUP_HP_GPIO4,
> {0x12, 0x90a60130},
> {0x13, 0x40000000},
> --
> 2.1.4
>