diff mbox series

ALSA: hda/realtek: Enable MICs of Acer SWIFT with ALC256

Message ID CABTNMG0O_z1tOqb=dR44zgasSL5m73ABpu+bj2WKK0+QWY-EEw@mail.gmail.com
State New
Headers show
Series ALSA: hda/realtek: Enable MICs of Acer SWIFT with ALC256 | expand

Commit Message

Chris Chiu Feb. 25, 2021, 9:21 a.m. UTC
The Acer SWIFT Swift SF314-54/55 with ALC256 cannot detect the headset
microphone and suffers the noise problem in audio capture.

This patch enables the headset jack sense and fixes the noise problem with
aamix fixup.

Signed-off-by: Chris Chiu <chris.chiu@canonical.com>
---
 sound/pci/hda/patch_realtek.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

 static const struct snd_pci_quirk alc269_fixup_tbl[] = {
@@ -7841,9 +7859,11 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
        SND_PCI_QUIRK(0x1025, 0x1246, "Acer Predator Helios 500",
ALC299_FIXUP_PREDATOR_SPK),
        SND_PCI_QUIRK(0x1025, 0x1247, "Acer vCopperbox",
ALC269VC_FIXUP_ACER_VCOPPERBOX_PINS),
        SND_PCI_QUIRK(0x1025, 0x1248, "Acer Veriton N4660G",
ALC269VC_FIXUP_ACER_MIC_NO_PRESENCE),
+       SND_PCI_QUIRK(0x1025, 0x1269, "Acer SWIFT SF314-54",
ALC256_FIXUP_ACER_SWIFT_DISABLE_AAMIX),
        SND_PCI_QUIRK(0x1025, 0x128f, "Acer Veriton Z6860G",
ALC286_FIXUP_ACER_AIO_HEADSET_MIC),
        SND_PCI_QUIRK(0x1025, 0x1290, "Acer Veriton Z4860G",
ALC286_FIXUP_ACER_AIO_HEADSET_MIC),
        SND_PCI_QUIRK(0x1025, 0x1291, "Acer Veriton Z4660G",
ALC286_FIXUP_ACER_AIO_HEADSET_MIC),
+       SND_PCI_QUIRK(0x1025, 0x129c, "Acer SWIFT SF314-55",
ALC256_FIXUP_ACER_SWIFT_DISABLE_AAMIX),
        SND_PCI_QUIRK(0x1025, 0x1308, "Acer Aspire Z24-890",
ALC286_FIXUP_ACER_AIO_HEADSET_MIC),
        SND_PCI_QUIRK(0x1025, 0x132a, "Acer TravelMate B114-21",
ALC233_FIXUP_ACER_HEADSET_MIC),
        SND_PCI_QUIRK(0x1025, 0x1330, "Acer TravelMate X514-51T",
ALC255_FIXUP_ACER_HEADSET_MIC),
--
2.20.1

Comments

Takashi Iwai Feb. 25, 2021, 9:32 a.m. UTC | #1
On Thu, 25 Feb 2021 10:21:07 +0100,
Chris Chiu wrote:
> 
> The Acer SWIFT Swift SF314-54/55 with ALC256 cannot detect the headset
> microphone and suffers the noise problem in audio capture.
> 
> This patch enables the headset jack sense and fixes the noise problem with
> aamix fixup.
> 
> Signed-off-by: Chris Chiu <chris.chiu@canonical.com>

The patch seems broken due to the line break and cannot be applied
cleanly.  Could you resubmit?


thanks,

Takashi


> ---
>  sound/pci/hda/patch_realtek.c | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
> 
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index 290645516313..57e4dbcd76a9 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -6372,6 +6372,8 @@ enum {
>         ALC236_FIXUP_DELL_AIO_HEADSET_MIC,
>         ALC282_FIXUP_ACER_DISABLE_LINEOUT,
>         ALC255_FIXUP_ACER_LIMIT_INT_MIC_BOOST,
> +       ALC256_FIXUP_ACER_SWIFT_NO_MIC_PRESENCE,
> +       ALC256_FIXUP_ACER_SWIFT_DISABLE_AAMIX,
>  };
> 
>  static const struct hda_fixup alc269_fixups[] = {
> @@ -7815,6 +7817,22 @@ static const struct hda_fixup alc269_fixups[] = {
>                 .chained = true,
>                 .chain_id = ALC255_FIXUP_ACER_MIC_NO_PRESENCE,
>         },
> +       [ALC256_FIXUP_ACER_SWIFT_NO_MIC_PRESENCE] = {
> +               .type = HDA_FIXUP_PINS,
> +               .v.pins = (const struct hda_pintbl[]) {
> +                       { 0x19, 0x02a1113c }, /* use as headset mic,
> without its own jack detect */
> +                       { 0x1a, 0x90a1092f }, /* use as internal mic */
> +                       { },
> +               },
> +               .chained = true,
> +               .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
> +       },
> +       [ALC256_FIXUP_ACER_SWIFT_DISABLE_AAMIX] = {
> +               .type = HDA_FIXUP_FUNC,
> +               .v.func = alc_fixup_disable_aamix,
> +               .chained = true,
> +               .chain_id = ALC256_FIXUP_ACER_SWIFT_NO_MIC_PRESENCE
> +       },
>  };
> 
>  static const struct snd_pci_quirk alc269_fixup_tbl[] = {
> @@ -7841,9 +7859,11 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
>         SND_PCI_QUIRK(0x1025, 0x1246, "Acer Predator Helios 500",
> ALC299_FIXUP_PREDATOR_SPK),
>         SND_PCI_QUIRK(0x1025, 0x1247, "Acer vCopperbox",
> ALC269VC_FIXUP_ACER_VCOPPERBOX_PINS),
>         SND_PCI_QUIRK(0x1025, 0x1248, "Acer Veriton N4660G",
> ALC269VC_FIXUP_ACER_MIC_NO_PRESENCE),
> +       SND_PCI_QUIRK(0x1025, 0x1269, "Acer SWIFT SF314-54",
> ALC256_FIXUP_ACER_SWIFT_DISABLE_AAMIX),
>         SND_PCI_QUIRK(0x1025, 0x128f, "Acer Veriton Z6860G",
> ALC286_FIXUP_ACER_AIO_HEADSET_MIC),
>         SND_PCI_QUIRK(0x1025, 0x1290, "Acer Veriton Z4860G",
> ALC286_FIXUP_ACER_AIO_HEADSET_MIC),
>         SND_PCI_QUIRK(0x1025, 0x1291, "Acer Veriton Z4660G",
> ALC286_FIXUP_ACER_AIO_HEADSET_MIC),
> +       SND_PCI_QUIRK(0x1025, 0x129c, "Acer SWIFT SF314-55",
> ALC256_FIXUP_ACER_SWIFT_DISABLE_AAMIX),
>         SND_PCI_QUIRK(0x1025, 0x1308, "Acer Aspire Z24-890",
> ALC286_FIXUP_ACER_AIO_HEADSET_MIC),
>         SND_PCI_QUIRK(0x1025, 0x132a, "Acer TravelMate B114-21",
> ALC233_FIXUP_ACER_HEADSET_MIC),
>         SND_PCI_QUIRK(0x1025, 0x1330, "Acer TravelMate X514-51T",
> ALC255_FIXUP_ACER_HEADSET_MIC),
> --
> 2.20.1
>
Chris Chiu Feb. 25, 2021, 11:10 a.m. UTC | #2
On Thu, Feb 25, 2021 at 5:32 PM Takashi Iwai <tiwai@suse.de> wrote:
>
> On Thu, 25 Feb 2021 10:21:07 +0100,
> Chris Chiu wrote:
> >
> > The Acer SWIFT Swift SF314-54/55 with ALC256 cannot detect the headset
> > microphone and suffers the noise problem in audio capture.
> >
> > This patch enables the headset jack sense and fixes the noise problem with
> > aamix fixup.
> >
> > Signed-off-by: Chris Chiu <chris.chiu@canonical.com>
>
> The patch seems broken due to the line break and cannot be applied
> cleanly.  Could you resubmit?
>
Talked to Jian-Hong who was working on SF314-55, the aamix disable
does not really make difference. And we don't have to quirk  0x1a since
the internal mic connects to intel SST audio. I'll make a V2 patch and
resubmit. Thanks.

>
> thanks,
>
> Takashi
>
>
> > ---
> >  sound/pci/hda/patch_realtek.c | 20 ++++++++++++++++++++
> >  1 file changed, 20 insertions(+)
> >
> > diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> > index 290645516313..57e4dbcd76a9 100644
> > --- a/sound/pci/hda/patch_realtek.c
> > +++ b/sound/pci/hda/patch_realtek.c
> > @@ -6372,6 +6372,8 @@ enum {
> >         ALC236_FIXUP_DELL_AIO_HEADSET_MIC,
> >         ALC282_FIXUP_ACER_DISABLE_LINEOUT,
> >         ALC255_FIXUP_ACER_LIMIT_INT_MIC_BOOST,
> > +       ALC256_FIXUP_ACER_SWIFT_NO_MIC_PRESENCE,
> > +       ALC256_FIXUP_ACER_SWIFT_DISABLE_AAMIX,
> >  };
> >
> >  static const struct hda_fixup alc269_fixups[] = {
> > @@ -7815,6 +7817,22 @@ static const struct hda_fixup alc269_fixups[] = {
> >                 .chained = true,
> >                 .chain_id = ALC255_FIXUP_ACER_MIC_NO_PRESENCE,
> >         },
> > +       [ALC256_FIXUP_ACER_SWIFT_NO_MIC_PRESENCE] = {
> > +               .type = HDA_FIXUP_PINS,
> > +               .v.pins = (const struct hda_pintbl[]) {
> > +                       { 0x19, 0x02a1113c }, /* use as headset mic,
> > without its own jack detect */
> > +                       { 0x1a, 0x90a1092f }, /* use as internal mic */
> > +                       { },
> > +               },
> > +               .chained = true,
> > +               .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
> > +       },
> > +       [ALC256_FIXUP_ACER_SWIFT_DISABLE_AAMIX] = {
> > +               .type = HDA_FIXUP_FUNC,
> > +               .v.func = alc_fixup_disable_aamix,
> > +               .chained = true,
> > +               .chain_id = ALC256_FIXUP_ACER_SWIFT_NO_MIC_PRESENCE
> > +       },
> >  };
> >
> >  static const struct snd_pci_quirk alc269_fixup_tbl[] = {
> > @@ -7841,9 +7859,11 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
> >         SND_PCI_QUIRK(0x1025, 0x1246, "Acer Predator Helios 500",
> > ALC299_FIXUP_PREDATOR_SPK),
> >         SND_PCI_QUIRK(0x1025, 0x1247, "Acer vCopperbox",
> > ALC269VC_FIXUP_ACER_VCOPPERBOX_PINS),
> >         SND_PCI_QUIRK(0x1025, 0x1248, "Acer Veriton N4660G",
> > ALC269VC_FIXUP_ACER_MIC_NO_PRESENCE),
> > +       SND_PCI_QUIRK(0x1025, 0x1269, "Acer SWIFT SF314-54",
> > ALC256_FIXUP_ACER_SWIFT_DISABLE_AAMIX),
> >         SND_PCI_QUIRK(0x1025, 0x128f, "Acer Veriton Z6860G",
> > ALC286_FIXUP_ACER_AIO_HEADSET_MIC),
> >         SND_PCI_QUIRK(0x1025, 0x1290, "Acer Veriton Z4860G",
> > ALC286_FIXUP_ACER_AIO_HEADSET_MIC),
> >         SND_PCI_QUIRK(0x1025, 0x1291, "Acer Veriton Z4660G",
> > ALC286_FIXUP_ACER_AIO_HEADSET_MIC),
> > +       SND_PCI_QUIRK(0x1025, 0x129c, "Acer SWIFT SF314-55",
> > ALC256_FIXUP_ACER_SWIFT_DISABLE_AAMIX),
> >         SND_PCI_QUIRK(0x1025, 0x1308, "Acer Aspire Z24-890",
> > ALC286_FIXUP_ACER_AIO_HEADSET_MIC),
> >         SND_PCI_QUIRK(0x1025, 0x132a, "Acer TravelMate B114-21",
> > ALC233_FIXUP_ACER_HEADSET_MIC),
> >         SND_PCI_QUIRK(0x1025, 0x1330, "Acer TravelMate X514-51T",
> > ALC255_FIXUP_ACER_HEADSET_MIC),
> > --
> > 2.20.1
> >
diff mbox series

Patch

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 290645516313..57e4dbcd76a9 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -6372,6 +6372,8 @@  enum {
        ALC236_FIXUP_DELL_AIO_HEADSET_MIC,
        ALC282_FIXUP_ACER_DISABLE_LINEOUT,
        ALC255_FIXUP_ACER_LIMIT_INT_MIC_BOOST,
+       ALC256_FIXUP_ACER_SWIFT_NO_MIC_PRESENCE,
+       ALC256_FIXUP_ACER_SWIFT_DISABLE_AAMIX,
 };

 static const struct hda_fixup alc269_fixups[] = {
@@ -7815,6 +7817,22 @@  static const struct hda_fixup alc269_fixups[] = {
                .chained = true,
                .chain_id = ALC255_FIXUP_ACER_MIC_NO_PRESENCE,
        },
+       [ALC256_FIXUP_ACER_SWIFT_NO_MIC_PRESENCE] = {
+               .type = HDA_FIXUP_PINS,
+               .v.pins = (const struct hda_pintbl[]) {
+                       { 0x19, 0x02a1113c }, /* use as headset mic,
without its own jack detect */
+                       { 0x1a, 0x90a1092f }, /* use as internal mic */
+                       { },
+               },
+               .chained = true,
+               .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
+       },
+       [ALC256_FIXUP_ACER_SWIFT_DISABLE_AAMIX] = {
+               .type = HDA_FIXUP_FUNC,
+               .v.func = alc_fixup_disable_aamix,
+               .chained = true,
+               .chain_id = ALC256_FIXUP_ACER_SWIFT_NO_MIC_PRESENCE
+       },
 };