lkml.org 
[lkml]   [2020]   [Mar]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.5 003/151] ALSA: hda/realtek - Add Headset Mic supported for HP cPC
    Date
    From: Kailang Yang <kailang@realtek.com>

    [ Upstream commit 5af29028fd6db9438b5584ab7179710a0a22569d ]

    HP ALC671 need to support Headset Mic.

    Signed-off-by: Kailang Yang <kailang@realtek.com>
    Link: https://lore.kernel.org/r/06a9d2b176e14706976d6584cbe2d92a@realtek.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    sound/pci/hda/patch_realtek.c | 44 +++++++++++++++++++++++++++++++++++
    1 file changed, 44 insertions(+)

    diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
    index 9a4e42f44044f..25d0013abcb0e 100644
    --- a/sound/pci/hda/patch_realtek.c
    +++ b/sound/pci/hda/patch_realtek.c
    @@ -8513,6 +8513,29 @@ static void alc662_fixup_aspire_ethos_hp(struct hda_codec *codec,
    }
    }

    +static void alc671_fixup_hp_headset_mic2(struct hda_codec *codec,
    + const struct hda_fixup *fix, int action)
    +{
    + struct alc_spec *spec = codec->spec;
    +
    + static const struct hda_pintbl pincfgs[] = {
    + { 0x19, 0x02a11040 }, /* use as headset mic, with its own jack detect */
    + { 0x1b, 0x0181304f },
    + { }
    + };
    +
    + switch (action) {
    + case HDA_FIXUP_ACT_PRE_PROBE:
    + spec->gen.mixer_nid = 0;
    + spec->parse_flags |= HDA_PINCFG_HEADSET_MIC;
    + snd_hda_apply_pincfgs(codec, pincfgs);
    + break;
    + case HDA_FIXUP_ACT_INIT:
    + alc_write_coef_idx(codec, 0x19, 0xa054);
    + break;
    + }
    +}
    +
    static const struct coef_fw alc668_coefs[] = {
    WRITE_COEF(0x01, 0xbebe), WRITE_COEF(0x02, 0xaaaa), WRITE_COEF(0x03, 0x0),
    WRITE_COEF(0x04, 0x0180), WRITE_COEF(0x06, 0x0), WRITE_COEF(0x07, 0x0f80),
    @@ -8586,6 +8609,7 @@ enum {
    ALC662_FIXUP_LENOVO_MULTI_CODECS,
    ALC669_FIXUP_ACER_ASPIRE_ETHOS,
    ALC669_FIXUP_ACER_ASPIRE_ETHOS_HEADSET,
    + ALC671_FIXUP_HP_HEADSET_MIC2,
    };

    static const struct hda_fixup alc662_fixups[] = {
    @@ -8927,6 +8951,10 @@ static const struct hda_fixup alc662_fixups[] = {
    .chained = true,
    .chain_id = ALC669_FIXUP_ACER_ASPIRE_ETHOS_HEADSET
    },
    + [ALC671_FIXUP_HP_HEADSET_MIC2] = {
    + .type = HDA_FIXUP_FUNC,
    + .v.func = alc671_fixup_hp_headset_mic2,
    + },
    };

    static const struct snd_pci_quirk alc662_fixup_tbl[] = {
    @@ -9109,6 +9137,22 @@ static const struct snd_hda_pin_quirk alc662_pin_fixup_tbl[] = {
    {0x12, 0x90a60130},
    {0x14, 0x90170110},
    {0x15, 0x0321101f}),
    + SND_HDA_PIN_QUIRK(0x10ec0671, 0x103c, "HP cPC", ALC671_FIXUP_HP_HEADSET_MIC2,
    + {0x14, 0x01014010},
    + {0x17, 0x90170150},
    + {0x1b, 0x01813030},
    + {0x21, 0x02211020}),
    + SND_HDA_PIN_QUIRK(0x10ec0671, 0x103c, "HP cPC", ALC671_FIXUP_HP_HEADSET_MIC2,
    + {0x14, 0x01014010},
    + {0x18, 0x01a19040},
    + {0x1b, 0x01813030},
    + {0x21, 0x02211020}),
    + SND_HDA_PIN_QUIRK(0x10ec0671, 0x103c, "HP cPC", ALC671_FIXUP_HP_HEADSET_MIC2,
    + {0x14, 0x01014020},
    + {0x17, 0x90170110},
    + {0x18, 0x01a19050},
    + {0x1b, 0x01813040},
    + {0x21, 0x02211030}),
    {}
    };

    --
    2.20.1


    \
     
     \ /
      Last update: 2020-03-17 12:18    [W:2.860 / U:0.064 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site