On Fri, Feb 26, 2021 at 10:06 AM Jian-Hong Pan <jhp@xxxxxxxxxxxxx> wrote: > > <chris.chiu@xxxxxxxxxxxxx> 於 2021年2月26日 週五 上午9:04寫道: > > > > From: Chris Chiu <chris.chiu@xxxxxxxxxxxxx> > > > > The Acer SWIFT Swift SF314-54/55 laptops with ALC256 cannot detect > > both the headset mic and the internal mic. Introduce new fixup > > to enable the jack sense and the headset mic. However, the internal > > mic actually connects to Intel SST audio. It still needs Intel SST > > support to make internal mic capture work. > > > > Signed-off-by: Chris Chiu <chris.chiu@xxxxxxxxxxxxx> > > --- > > v1 -> v2: remove unnecessary aamix fixup > > > > sound/pci/hda/patch_realtek.c | 13 +++++++++++++ > > 1 file changed, 13 insertions(+) > > > > diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c > > index 1927605f0f7e..4871507cd4bf 100644 > > --- a/sound/pci/hda/patch_realtek.c > > +++ b/sound/pci/hda/patch_realtek.c > > @@ -6406,6 +6406,7 @@ enum { > > ALC236_FIXUP_DELL_AIO_HEADSET_MIC, > > ALC282_FIXUP_ACER_DISABLE_LINEOUT, > > ALC255_FIXUP_ACER_LIMIT_INT_MIC_BOOST, > > + ALC256_FIXUP_ACER_HEADSET_MIC, > > }; > > > > static const struct hda_fixup alc269_fixups[] = { > > @@ -7853,6 +7854,16 @@ static const struct hda_fixup alc269_fixups[] = { > > .chained = true, > > .chain_id = ALC255_FIXUP_ACER_MIC_NO_PRESENCE, > > }, > > + [ALC256_FIXUP_ACER_HEADSET_MIC] = { > > + .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 */ > > Since NID 0x1a is an internal DMIC, should this connection type be 0h? > Or, even the quirk of the internal DMIC is not needed for this case. > Because, it is Intel SST DMIC that does not connect to Realtek HDA > CODEC. (Not sure for this one) > > The quirk of NID 0x19 is okay for me. > Actually I tried the existing ALC256_FIXUP_ACER_MIC_NO_PRESENT which only quirk the 0x19, the jack sense works but the headset mic is still absent. That's the reason why I still need the 0x1a as the internal mic. I've verified the headset mic can be detected and work w/o problem. Chris > BR, > Jian-Hong Pan > > > + { } > > + }, > > + .chained = true, > > + .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC > > + }, > > }; > > > > static const struct snd_pci_quirk alc269_fixup_tbl[] = { > > @@ -7879,9 +7890,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_HEADSET_MIC), > > 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_HEADSET_MIC), > > 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 > >