lkml.org 
[lkml]   [2021]   [Oct]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.14 012/151] ALSA: hda/realtek: Fix the mic type detection issue for ASUS G551JW
    Date
    From: Hui Wang <hui.wang@canonical.com>

    commit a3fd1a986e499a06ac5ef95c3a39aa4611e7444c upstream.

    We need to define the codec pin 0x1b to be the mic, but somehow
    the mic doesn't support hot plugging detection, and Windows also has
    this issue, so we set it to phantom headset-mic.

    Also the determine_headset_type() often returns the omtp type by a
    mistake when we plug a ctia headset, this makes the mic can't record
    sound at all. Because most of the headset are ctia type nowadays and
    some machines have the fixed ctia type audio jack, it is possible this
    machine has the fixed ctia jack too. Here we set this mic jack to
    fixed ctia type, this could avoid the mic type detection mistake and
    make the ctia headset work stable.

    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=214537
    Reported-and-tested-by: msd <msd.mmq@gmail.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Hui Wang <hui.wang@canonical.com>
    Link: https://lore.kernel.org/r/20211012114748.5238-1-hui.wang@canonical.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    sound/pci/hda/patch_realtek.c | 27 +++++++++++++++++++++++++++
    1 file changed, 27 insertions(+)

    --- a/sound/pci/hda/patch_realtek.c
    +++ b/sound/pci/hda/patch_realtek.c
    @@ -10210,6 +10210,9 @@ enum {
    ALC671_FIXUP_HP_HEADSET_MIC2,
    ALC662_FIXUP_ACER_X2660G_HEADSET_MODE,
    ALC662_FIXUP_ACER_NITRO_HEADSET_MODE,
    + ALC668_FIXUP_ASUS_NO_HEADSET_MIC,
    + ALC668_FIXUP_HEADSET_MIC,
    + ALC668_FIXUP_MIC_DET_COEF,
    };

    static const struct hda_fixup alc662_fixups[] = {
    @@ -10593,6 +10596,29 @@ static const struct hda_fixup alc662_fix
    .chained = true,
    .chain_id = ALC662_FIXUP_USI_FUNC
    },
    + [ALC668_FIXUP_ASUS_NO_HEADSET_MIC] = {
    + .type = HDA_FIXUP_PINS,
    + .v.pins = (const struct hda_pintbl[]) {
    + { 0x1b, 0x04a1112c },
    + { }
    + },
    + .chained = true,
    + .chain_id = ALC668_FIXUP_HEADSET_MIC
    + },
    + [ALC668_FIXUP_HEADSET_MIC] = {
    + .type = HDA_FIXUP_FUNC,
    + .v.func = alc269_fixup_headset_mic,
    + .chained = true,
    + .chain_id = ALC668_FIXUP_MIC_DET_COEF
    + },
    + [ALC668_FIXUP_MIC_DET_COEF] = {
    + .type = HDA_FIXUP_VERBS,
    + .v.verbs = (const struct hda_verb[]) {
    + { 0x20, AC_VERB_SET_COEF_INDEX, 0x15 },
    + { 0x20, AC_VERB_SET_PROC_COEF, 0x0d60 },
    + {}
    + },
    + },
    };

    static const struct snd_pci_quirk alc662_fixup_tbl[] = {
    @@ -10628,6 +10654,7 @@ static const struct snd_pci_quirk alc662
    SND_PCI_QUIRK(0x1043, 0x15a7, "ASUS UX51VZH", ALC662_FIXUP_BASS_16),
    SND_PCI_QUIRK(0x1043, 0x177d, "ASUS N551", ALC668_FIXUP_ASUS_Nx51),
    SND_PCI_QUIRK(0x1043, 0x17bd, "ASUS N751", ALC668_FIXUP_ASUS_Nx51),
    + SND_PCI_QUIRK(0x1043, 0x185d, "ASUS G551JW", ALC668_FIXUP_ASUS_NO_HEADSET_MIC),
    SND_PCI_QUIRK(0x1043, 0x1963, "ASUS X71SL", ALC662_FIXUP_ASUS_MODE8),
    SND_PCI_QUIRK(0x1043, 0x1b73, "ASUS N55SF", ALC662_FIXUP_BASS_16),
    SND_PCI_QUIRK(0x1043, 0x1bf3, "ASUS N76VZ", ALC662_FIXUP_BASS_MODE4_CHMAP),

    \
     
     \ /
      Last update: 2021-10-18 15:48    [W:3.312 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site