RE: [PATCH] ALSA: hda/realtek - Fix 2 front mics of codec 0x623

Kailang
2019-10-24T07:21:41Z

[-- Attachment #1: Type: text/plain, Size: 3557 bytes --]

Hi Takashi,

Attach patch was support ALC623.

BR,
Kailang

> -----Original Message-----
> From: Aaron Ma <aaron.ma@canonical.com>
> Sent: Wednesday, October 23, 2019 6:06 PM
> To: Kailang <kailang@realtek.com>; Takashi Iwai <tiwai@suse.de>
> Cc: perex@perex.cz; hui.wang@canonical.com; alsa-devel@alsa-project.org;
> linux-kernel@vger.kernel.org
> Subject: Re: [PATCH] ALSA: hda/realtek - Fix 2 front mics of codec 0x623
>
> On 10/23/19 4:44 PM, Kailang wrote:
> >
> >
> >> -----Original Message-----
> >> From: Takashi Iwai <tiwai@suse.de>
> >> Sent: Wednesday, October 23, 2019 12:08 AM
> >> To: Aaron Ma <aaron.ma@canonical.com>
> >> Cc: perex@perex.cz; Kailang <kailang@realtek.com>;
> >> hui.wang@canonical.com; alsa-devel@alsa-project.org;
> >> linux-kernel@vger.kernel.org
> >> Subject: Re: [PATCH] ALSA: hda/realtek - Fix 2 front mics of codec
> >> 0x623
> >>
> >> On Tue, 22 Oct 2019 17:38:55 +0200,
> >> Aaron Ma wrote:
> >>>
> >>> These 2 ThinkCentres installed a new realtek codec ID 0x623, it has
> >>> 2 front mics with the same location on pin 0x18 and 0x19.
> >>>
> >>> Apply fixup ALC283_FIXUP_HEADSET_MIC to change 1 front mic location
> >>> to right, then pulseaudio can handle them.
> >>> One "Front Mic" and one "Mic" will be shown, and audio output works
> >>> fine.
> >>>
> >>> Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
> >>
> >> I'd like to have Kailang's review about the new codec before applying.
> >>
> >> Kailang, could you take a look?
> > OK.
> > I will post you the patch for ALC623 codec tomorrow.
> > Thanks.
>
> Cc me too.
>
> Thank you.
> Aaron
>
> >
> >>
> >>
> >> thanks,
> >>
> >> Takashi
> >>
> >>> ---
> >>> sound/pci/hda/patch_realtek.c | 3 +++
> >>> 1 file changed, 3 insertions(+)
> >>>
> >>> diff --git a/sound/pci/hda/patch_realtek.c
> >>> b/sound/pci/hda/patch_realtek.c index b000b36ac3c6..c34d8b435f58
> >>> 100644
> >>> --- a/sound/pci/hda/patch_realtek.c
> >>> +++ b/sound/pci/hda/patch_realtek.c
> >>> @@ -7186,6 +7186,8 @@ static const struct snd_pci_quirk
> >>> alc269_fixup_tbl[]
> >> = {
> >>> SND_PCI_QUIRK(0x17aa, 0x312f, "ThinkCentre Station",
> >> ALC294_FIXUP_LENOVO_MIC_LOCATION),
> >>> SND_PCI_QUIRK(0x17aa, 0x313c, "ThinkCentre Station",
> >> ALC294_FIXUP_LENOVO_MIC_LOCATION),
> >>> SND_PCI_QUIRK(0x17aa, 0x3151, "ThinkCentre Station",
> >>> ALC283_FIXUP_HEADSET_MIC),
> >>> + SND_PCI_QUIRK(0x17aa, 0x3178, "ThinkCentre Station",
> >> ALC283_FIXUP_HEADSET_MIC),
> >>> + SND_PCI_QUIRK(0x17aa, 0x3176, "ThinkCentre Station",
> >>> +ALC283_FIXUP_HEADSET_MIC),
> >>> SND_PCI_QUIRK(0x17aa, 0x3902, "Lenovo E50-80",
> >> ALC269_FIXUP_DMIC_THINKPAD_ACPI),
> >>> SND_PCI_QUIRK(0x17aa, 0x3977, "IdeaPad S210",
> >> ALC283_FIXUP_INT_MIC),
> >>> SND_PCI_QUIRK(0x17aa, 0x3978, "Lenovo B50-70",
> >>> ALC269_FIXUP_DMIC_THINKPAD_ACPI), @@ -9187,6 +9189,7 @@ static
> >> const struct hda_device_id snd_hda_id_realtek[] = {
> >>> HDA_CODEC_ENTRY(0x10ec0298, "ALC298", patch_alc269),
> >>> HDA_CODEC_ENTRY(0x10ec0299, "ALC299", patch_alc269),
> >>> HDA_CODEC_ENTRY(0x10ec0300, "ALC300", patch_alc269),
> >>> + HDA_CODEC_ENTRY(0x10ec0623, "ALC623", patch_alc269),
> >>> HDA_CODEC_REV_ENTRY(0x10ec0861, 0x100340, "ALC660",
> >> patch_alc861),
> >>> HDA_CODEC_ENTRY(0x10ec0660, "ALC660-VD", patch_alc861vd),
> >>> HDA_CODEC_ENTRY(0x10ec0861, "ALC861", patch_alc861),
> >>> --
> >>> 2.17.1
> >>>
> >>
> >> ------Please consider the environment before printing this e-mail.

[-- Attachment #2: 0000-add-support-alc623.patch --]
[-- Type: application/octet-stream, Size: 1990 bytes --]

From 3103f6683093e47368d87671f3726f1a11f9ef28 Mon Sep 17 00:00:00 2001
From: Kailang Yang <kailang@realtek.com>
Date: Thu, 24 Oct 2019 15:13:32 +0800
Subject: [PATCH] ALSA: hda/realtek - Add support for ALC623

Support new codec ALC623.

Signed-off-by: Kailang Yang <kailang@realtek.com>

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 085a2f95e076..a0c237cc13d4 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -409,6 +409,9 @@ static void alc_fill_eapd_coef(struct hda_codec *codec)
case 0x10ec0672:
alc_update_coef_idx(codec, 0xd, 0, 1<<14); /* EAPD Ctrl */
break;
+ case 0x10ec0623:
+ alc_update_coef_idx(codec, 0x19, 1<<13, 0);
+ break;
case 0x10ec0668:
alc_update_coef_idx(codec, 0x7, 3<<13, 0);
break;
@@ -2920,6 +2923,7 @@ enum {
ALC269_TYPE_ALC225,
ALC269_TYPE_ALC294,
ALC269_TYPE_ALC300,
+ ALC269_TYPE_ALC623,
ALC269_TYPE_ALC700,
};

@@ -2955,6 +2959,7 @@ static int alc269_parse_auto_config(struct hda_codec *codec)
case ALC269_TYPE_ALC225:
case ALC269_TYPE_ALC294:
case ALC269_TYPE_ALC300:
+ case ALC269_TYPE_ALC623:
case ALC269_TYPE_ALC700:
ssids = alc269_ssids;
break;
@@ -8017,6 +8022,9 @@ static int patch_alc269(struct hda_codec *codec)
spec->codec_variant = ALC269_TYPE_ALC300;
spec->gen.mixer_nid = 0; /* no loopback on ALC300 */
break;
+ case 0x10ec0623:
+ spec->codec_variant = ALC269_TYPE_ALC623;
+ break;
case 0x10ec0700:
case 0x10ec0701:
case 0x10ec0703:
@@ -9218,6 +9226,7 @@ static const struct hda_device_id snd_hda_id_realtek[] = {
HDA_CODEC_ENTRY(0x10ec0298, "ALC298", patch_alc269),
HDA_CODEC_ENTRY(0x10ec0299, "ALC299", patch_alc269),
HDA_CODEC_ENTRY(0x10ec0300, "ALC300", patch_alc269),
+ HDA_CODEC_ENTRY(0x10ec0623, "ALC623", patch_alc269),
HDA_CODEC_REV_ENTRY(0x10ec0861, 0x100340, "ALC660", patch_alc861),
HDA_CODEC_ENTRY(0x10ec0660, "ALC660-VD", patch_alc861vd),
HDA_CODEC_ENTRY(0x10ec0861, "ALC861", patch_alc861),