lkml.org 
[lkml]   [2018]   [Feb]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.16 140/254] ALSA: hda - Add MIC_NO_PRESENCE fixup for 2 HP machines
    3.16.55-rc1 review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Hui Wang <hui.wang@canonical.com>

    commit 322f74ede933b3e2cb78768b6a6fdbfbf478a0c1 upstream.

    There is a headset jack on the front panel, when we plug a headset
    into it, the headset mic can't trigger unsol events, and
    read_pin_sense() can't detect its presence too. So add this fixup
    to fix this issue.

    Signed-off-by: Hui Wang <hui.wang@canonical.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    [bwh: Backported to 3.16: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    sound/pci/hda/patch_conexant.c | 29 +++++++++++++++++++++++++++++
    1 file changed, 29 insertions(+)

    --- a/sound/pci/hda/patch_conexant.c
    +++ b/sound/pci/hda/patch_conexant.c
    @@ -2845,6 +2845,8 @@ enum {
    CXT_FIXUP_MUTE_LED_EAPD,
    CXT_FIXUP_HP_SPECTRE,
    CXT_FIXUP_HP_GATE_MIC,
    + CXT_FIXUP_HEADSET_MIC,
    + CXT_FIXUP_HP_MIC_NO_PRESENCE,
    };

    /* for hda_fixup_thinkpad_acpi() */
    @@ -2923,6 +2925,18 @@ static void cxt_fixup_headphone_mic(stru
    }
    }

    +static void cxt_fixup_headset_mic(struct hda_codec *codec,
    + const struct hda_fixup *fix, int action)
    +{
    + struct conexant_spec *spec = codec->spec;
    +
    + switch (action) {
    + case HDA_FIXUP_ACT_PRE_PROBE:
    + spec->parse_flags |= HDA_PINCFG_HEADSET_MIC;
    + break;
    + }
    +}
    +
    /* OPLC XO 1.5 fixup */

    /* OLPC XO-1.5 supports DC input mode (e.g. for use with analog sensors)
    @@ -3374,6 +3388,19 @@ static const struct hda_fixup cxt_fixups
    .type = HDA_FIXUP_FUNC,
    .v.func = cxt_fixup_hp_gate_mic_jack,
    },
    + [CXT_FIXUP_HEADSET_MIC] = {
    + .type = HDA_FIXUP_FUNC,
    + .v.func = cxt_fixup_headset_mic,
    + },
    + [CXT_FIXUP_HP_MIC_NO_PRESENCE] = {
    + .type = HDA_FIXUP_PINS,
    + .v.pins = (const struct hda_pintbl[]) {
    + { 0x1a, 0x02a1113c },
    + { }
    + },
    + .chained = true,
    + .chain_id = CXT_FIXUP_HEADSET_MIC,
    + },
    };

    static const struct snd_pci_quirk cxt5045_fixups[] = {
    @@ -3425,6 +3452,8 @@ static const struct snd_pci_quirk cxt506
    SND_PCI_QUIRK(0x1025, 0x054f, "Acer Aspire 4830T", CXT_FIXUP_ASPIRE_DMIC),
    SND_PCI_QUIRK(0x103c, 0x8174, "HP Spectre x360", CXT_FIXUP_HP_SPECTRE),
    SND_PCI_QUIRK(0x103c, 0x8115, "HP Z1 Gen3", CXT_FIXUP_HP_GATE_MIC),
    + SND_PCI_QUIRK(0x103c, 0x8299, "HP 800 G3 SFF", CXT_FIXUP_HP_MIC_NO_PRESENCE),
    + SND_PCI_QUIRK(0x103c, 0x829a, "HP 800 G3 DM", CXT_FIXUP_HP_MIC_NO_PRESENCE),
    SND_PCI_QUIRK(0x1043, 0x138d, "Asus", CXT_FIXUP_HEADPHONE_MIC_PIN),
    SND_PCI_QUIRK(0x152d, 0x0833, "OLPC XO-1.5", CXT_FIXUP_OLPC_XO),
    SND_PCI_QUIRK(0x17aa, 0x20f2, "Lenovo T400", CXT_PINCFG_LENOVO_TP410),
    \
     
     \ /
      Last update: 2018-02-28 17:03    [W:3.311 / U:0.072 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site