Re: [alsa-devel] [PATCH 1/3] ALSA: hda/realtek: ALC294 mic and headset-mode fixups for ASUS X542UN
Kailang kailang@realtek.com 於 2018年12月5日 週三 下午4:36寫道:
Hi Jian-Hong,
Could you test to change the model to ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC?
.chain_id = ALC256_FIXUP_ASUS_HEADSET_MODE ==> change to ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
We do not have ASUS X542UN in hand right now, but we have ASUS X542UQ which goes with the same quirk as X542UN. I tested with ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC, and it also works. So, I am going to send new patch set using ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC for ALC294.
Thanks, Jian-Hong Pan
Add Realtek ALC294 quirks for ASUS X542UN, UX533FD, UX433FN and UX333FA laptops.
Chris Chiu (1): ALSA: hda/realtek: ALC294 mic and headset-mode fixups for ASUS X542UN
Jian-Hong Pan (2): ALSA: hda/realtek: Enable audio jacks of ASUS UX533FD with ALC294 ALSA: hda/realtek: Enable audio jacks of ASUS UX433FN/UX333FA with ALC294
sound/pci/hda/patch_realtek.c | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+)
From: Chris Chiu chiu@endlessm.com
The known ALC256_FIXUP_ASUS_MIC fixup can fix the headphone jack sensing and enable use of the internal microphone on this laptop X542UN. However, it's ALC294 so create a new fixup named ALC294_FIXUP_ASUS_MIC to avoid confusion.
Signed-off-by: Jian-Hong Pan jian-hong@endlessm.com Signed-off-by: Daniel Drake drake@endlessm.com Signed-off-by: Chris Chiu chiu@endlessm.com --- v2: - .chain_id = ALC256_FIXUP_ASUS_HEADSET_MODE ==> change to ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
sound/pci/hda/patch_realtek.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index bb40624fb6d5..d32e50b1ed60 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -5517,6 +5517,7 @@ enum { ALC285_FIXUP_LENOVO_HEADPHONE_NOISE, ALC295_FIXUP_HP_AUTO_MUTE, ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE, + ALC294_FIXUP_ASUS_MIC, };
static const struct hda_fixup alc269_fixups[] = { @@ -6403,6 +6404,16 @@ static const struct hda_fixup alc269_fixups[] = { .chained = true, .chain_id = ALC269_FIXUP_HEADSET_MIC }, + [ALC294_FIXUP_ASUS_MIC] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x13, 0x90a60160 }, /* use as internal mic */ + { 0x19, 0x04a11120 }, /* use as headset mic, without its own jack detect */ + { } + }, + .chained = true, + .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC + }, };
static const struct snd_pci_quirk alc269_fixup_tbl[] = { @@ -7152,6 +7163,10 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = { SND_HDA_PIN_QUIRK(0x10ec0293, 0x1028, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE, ALC292_STANDARD_PINS, {0x13, 0x90a60140}), + SND_HDA_PIN_QUIRK(0x10ec0294, 0x1043, "ASUS", ALC294_FIXUP_ASUS_MIC, + {0x14, 0x90170110}, + {0x1b, 0x90a70130}, + {0x21, 0x04211020}), SND_HDA_PIN_QUIRK(0x10ec0295, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, ALC295_STANDARD_PINS, {0x17, 0x21014020},
The ASUS UX533FD with ALC294 cannot detect the headset MIC and output through the internal speaker and the headphone until ALC294_FIXUP_ASUS_SPK_NOISE quirk applied.
Signed-off-by: Daniel Drake drake@endlessm.com Signed-off-by: Jian-Hong Pan jian-hong@endlessm.com --- v2: - Modify the HDA verbs for UX333FA support - Make a new ALC294_FIXUP_ASUS_HEADSET_MIC quirk for ALC294 chain - .chain_id = ALC256_FIXUP_ASUS_HEADSET_MODE ==> change to ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
sound/pci/hda/patch_realtek.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index d32e50b1ed60..1525bcdf96e8 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -5518,6 +5518,8 @@ enum { ALC295_FIXUP_HP_AUTO_MUTE, ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE, ALC294_FIXUP_ASUS_MIC, + ALC294_FIXUP_ASUS_HEADSET_MIC, + ALC294_FIXUP_ASUS_SPK_NOISE, };
static const struct hda_fixup alc269_fixups[] = { @@ -6414,6 +6416,28 @@ static const struct hda_fixup alc269_fixups[] = { .chained = true, .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC }, + [ALC294_FIXUP_ASUS_HEADSET_MIC] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x19, 0x01a1113c }, /* use as headset mic, without its own jack detect */ + { } + }, + .chained = true, + .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC + }, + [ALC294_FIXUP_ASUS_SPK_NOISE] = { + .type = HDA_FIXUP_VERBS, + .v.verbs = (const struct hda_verb[]) { + /* Set EAPD high */ + { 0x20, AC_VERB_SET_COEF_INDEX, 0x10 }, + { 0x20, 0x4c4, 0x20 }, + { 0x20, AC_VERB_SET_COEF_INDEX, 0x40 }, + { 0x20, 0x488, 0x00 }, + { } + }, + .chained = true, + .chain_id = ALC294_FIXUP_ASUS_HEADSET_MIC + }, };
static const struct snd_pci_quirk alc269_fixup_tbl[] = { @@ -6556,6 +6580,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1043, 0x12e0, "ASUS X541SA", ALC256_FIXUP_ASUS_MIC), SND_PCI_QUIRK(0x1043, 0x13b0, "ASUS Z550SA", ALC256_FIXUP_ASUS_MIC), SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_ASUS_ZENBOOK), + SND_PCI_QUIRK(0x1043, 0x14a1, "ASUS UX533FD", ALC294_FIXUP_ASUS_SPK_NOISE), SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_ASUS_ZENBOOK_UX31A), SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC), SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW),
Hi Jian Hong,
Could I know who give you the value as below?
+ { 0x20, AC_VERB_SET_COEF_INDEX, 0x10 }, + { 0x20, 0x4c4, 0x20 }, + { 0x20, AC_VERB_SET_COEF_INDEX, 0x40 }, + { 0x20, 0x488, 0x00 },
BR, Kailang
-----Original Message----- From: Jian-Hong Pan jian-hong@endlessm.com Sent: Thursday, December 6, 2018 4:46 PM To: Jaroslav Kysela perex@perex.cz; Takashi Iwai tiwai@suse.com; Kailang kailang@realtek.com Cc: Hui Wang hui.wang@canonical.com; alsa-devel@alsa-project.org; linux-kernel@vger.kernel.org; linux@endlessm.com; Jian-Hong Pan jian-hong@endlessm.com; Daniel Drake drake@endlessm.com Subject: [PATCH v2 2/3] ALSA: hda/realtek: Enable audio jacks of ASUS UX533FD with ALC294
The ASUS UX533FD with ALC294 cannot detect the headset MIC and output through the internal speaker and the headphone until ALC294_FIXUP_ASUS_SPK_NOISE quirk applied.
Signed-off-by: Daniel Drake drake@endlessm.com Signed-off-by: Jian-Hong Pan jian-hong@endlessm.com --- v2: - Modify the HDA verbs for UX333FA support - Make a new ALC294_FIXUP_ASUS_HEADSET_MIC quirk for ALC294 chain - .chain_id = ALC256_FIXUP_ASUS_HEADSET_MODE ==> change to ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
sound/pci/hda/patch_realtek.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index d32e50b1ed60..1525bcdf96e8 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -5518,6 +5518,8 @@ enum { ALC295_FIXUP_HP_AUTO_MUTE, ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE, ALC294_FIXUP_ASUS_MIC, + ALC294_FIXUP_ASUS_HEADSET_MIC, + ALC294_FIXUP_ASUS_SPK_NOISE, };
static const struct hda_fixup alc269_fixups[] = { @@ -6414,6 +6416,28 @@ static const struct hda_fixup alc269_fixups[] = { .chained = true, .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC }, + [ALC294_FIXUP_ASUS_HEADSET_MIC] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x19, 0x01a1113c }, /* use as headset mic, without its own jack detect */ + { } + }, + .chained = true, + .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC + }, + [ALC294_FIXUP_ASUS_SPK_NOISE] = { + .type = HDA_FIXUP_VERBS, + .v.verbs = (const struct hda_verb[]) { + /* Set EAPD high */ + { 0x20, AC_VERB_SET_COEF_INDEX, 0x10 }, + { 0x20, 0x4c4, 0x20 }, + { 0x20, AC_VERB_SET_COEF_INDEX, 0x40 }, + { 0x20, 0x488, 0x00 }, + { } + }, + .chained = true, + .chain_id = ALC294_FIXUP_ASUS_HEADSET_MIC + }, };
static const struct snd_pci_quirk alc269_fixup_tbl[] = { @@ -6556,6 +6580,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1043, 0x12e0, "ASUS X541SA", ALC256_FIXUP_ASUS_MIC), SND_PCI_QUIRK(0x1043, 0x13b0, "ASUS Z550SA", ALC256_FIXUP_ASUS_MIC), SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_ASUS_ZENBOOK), + SND_PCI_QUIRK(0x1043, 0x14a1, "ASUS UX533FD", +ALC294_FIXUP_ASUS_SPK_NOISE), SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_ASUS_ZENBOOK_UX31A), SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC), SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW), -- 2.11.0
Kailang kailang@realtek.com 於 2018年12月7日 週五 上午11:32寫道:
Hi Jian Hong,
Could I know who give you the value as below?
{ 0x20, AC_VERB_SET_COEF_INDEX, 0x10 },
{ 0x20, 0x4c4, 0x20 },
{ 0x20, AC_VERB_SET_COEF_INDEX, 0x40 },
{ 0x20, 0x488, 0x00 },
A module maker.
Regards, Jian-Hong Pan
-----Original Message----- From: Jian-Hong Pan jian-hong@endlessm.com Sent: Thursday, December 6, 2018 4:46 PM To: Jaroslav Kysela perex@perex.cz; Takashi Iwai tiwai@suse.com; Kailang kailang@realtek.com Cc: Hui Wang hui.wang@canonical.com; alsa-devel@alsa-project.org; linux-kernel@vger.kernel.org; linux@endlessm.com; Jian-Hong Pan jian-hong@endlessm.com; Daniel Drake drake@endlessm.com Subject: [PATCH v2 2/3] ALSA: hda/realtek: Enable audio jacks of ASUS UX533FD with ALC294
The ASUS UX533FD with ALC294 cannot detect the headset MIC and output through the internal speaker and the headphone until ALC294_FIXUP_ASUS_SPK_NOISE quirk applied.
Signed-off-by: Daniel Drake drake@endlessm.com Signed-off-by: Jian-Hong Pan jian-hong@endlessm.com
v2:
- Modify the HDA verbs for UX333FA support
- Make a new ALC294_FIXUP_ASUS_HEADSET_MIC quirk for ALC294 chain
- .chain_id = ALC256_FIXUP_ASUS_HEADSET_MODE ==> change to ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
sound/pci/hda/patch_realtek.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index d32e50b1ed60..1525bcdf96e8 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -5518,6 +5518,8 @@ enum { ALC295_FIXUP_HP_AUTO_MUTE, ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE, ALC294_FIXUP_ASUS_MIC,
ALC294_FIXUP_ASUS_HEADSET_MIC,
ALC294_FIXUP_ASUS_SPK_NOISE,
};
static const struct hda_fixup alc269_fixups[] = { @@ -6414,6 +6416,28 @@ static const struct hda_fixup alc269_fixups[] = { .chained = true, .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC },
[ALC294_FIXUP_ASUS_HEADSET_MIC] = {
.type = HDA_FIXUP_PINS,
.v.pins = (const struct hda_pintbl[]) {
{ 0x19, 0x01a1113c }, /* use as headset mic, without its own jack detect */
{ }
},
.chained = true,
.chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
},
[ALC294_FIXUP_ASUS_SPK_NOISE] = {
.type = HDA_FIXUP_VERBS,
.v.verbs = (const struct hda_verb[]) {
/* Set EAPD high */
{ 0x20, AC_VERB_SET_COEF_INDEX, 0x10 },
{ 0x20, 0x4c4, 0x20 },
{ 0x20, AC_VERB_SET_COEF_INDEX, 0x40 },
{ 0x20, 0x488, 0x00 },
{ }
},
.chained = true,
.chain_id = ALC294_FIXUP_ASUS_HEADSET_MIC
},
};
static const struct snd_pci_quirk alc269_fixup_tbl[] = { @@ -6556,6 +6580,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1043, 0x12e0, "ASUS X541SA", ALC256_FIXUP_ASUS_MIC), SND_PCI_QUIRK(0x1043, 0x13b0, "ASUS Z550SA", ALC256_FIXUP_ASUS_MIC), SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_ASUS_ZENBOOK),
SND_PCI_QUIRK(0x1043, 0x14a1, "ASUS UX533FD",
+ALC294_FIXUP_ASUS_SPK_NOISE), SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_ASUS_ZENBOOK_UX31A), SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC), SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW), -- 2.11.0
Hi Jian Hong,
I call our agent guy @ WTMEC. Please modify as bellowing then test again. Remove EAPD control by hidden. If this modify patch was pass audio test, please regenerate patch to Takashi. If this patch will solve the speaker no sound issue, I think the model name maybe could rename to ALC294_FIXUP_ASUS_SPK. Because it doesn't relate with Noise.
[ALC294_FIXUP_ASUS_SPK_NOISE] = {
.type = HDA_FIXUP_VERBS,
.v.verbs = (const struct hda_verb[]) {
{ 0x20, AC_VERB_SET_COEF_INDEX, 0x40 },
{ 0x20, AC_VERB_SET_PROC_COEF, 0x8800 },
{ }
},
.chained = true,
.chain_id = ALC294_FIXUP_ASUS_HEADSET_MIC
},
};
BR, Kailang
-----Original Message----- From: Jian-Hong Pan jian-hong@endlessm.com Sent: Friday, December 7, 2018 11:48 AM To: Kailang kailang@realtek.com Cc: Jaroslav Kysela perex@perex.cz; Takashi Iwai tiwai@suse.com; Hui Wang hui.wang@canonical.com; alsa-devel@alsa-project.org; Linux Kernel linux-kernel@vger.kernel.org; Linux Upstreaming Team linux@endlessm.com; Daniel Drake drake@endlessm.com Subject: Re: [PATCH v2 2/3] ALSA: hda/realtek: Enable audio jacks of ASUS UX533FD with ALC294
Kailang kailang@realtek.com 於 2018年12月7日 週五 上午11:32寫道:
Hi Jian Hong,
Could I know who give you the value as below?
{ 0x20, AC_VERB_SET_COEF_INDEX, 0x10 },
{ 0x20, 0x4c4, 0x20 },
{ 0x20, AC_VERB_SET_COEF_INDEX, 0x40 },
{ 0x20, 0x488, 0x00 },
A module maker.
Regards, Jian-Hong Pan
-----Original Message----- From: Jian-Hong Pan jian-hong@endlessm.com Sent: Thursday, December 6, 2018 4:46 PM To: Jaroslav Kysela perex@perex.cz; Takashi Iwai tiwai@suse.com; Kailang kailang@realtek.com Cc: Hui Wang hui.wang@canonical.com; alsa-devel@alsa-project.org; linux-kernel@vger.kernel.org; linux@endlessm.com; Jian-Hong Pan jian-hong@endlessm.com; Daniel Drake drake@endlessm.com Subject: [PATCH v2 2/3] ALSA: hda/realtek: Enable audio jacks of ASUS UX533FD with ALC294
The ASUS UX533FD with ALC294 cannot detect the headset MIC and output through the internal speaker and the headphone until ALC294_FIXUP_ASUS_SPK_NOISE quirk applied.
Signed-off-by: Daniel Drake drake@endlessm.com Signed-off-by: Jian-Hong Pan jian-hong@endlessm.com
v2:
- Modify the HDA verbs for UX333FA support
- Make a new ALC294_FIXUP_ASUS_HEADSET_MIC quirk for ALC294 chain
- .chain_id = ALC256_FIXUP_ASUS_HEADSET_MODE ==> change to
ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
sound/pci/hda/patch_realtek.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index d32e50b1ed60..1525bcdf96e8 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -5518,6 +5518,8 @@ enum { ALC295_FIXUP_HP_AUTO_MUTE, ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE, ALC294_FIXUP_ASUS_MIC,
ALC294_FIXUP_ASUS_HEADSET_MIC,
ALC294_FIXUP_ASUS_SPK_NOISE,
};
static const struct hda_fixup alc269_fixups[] = { @@ -6414,6 +6416,28 @@ static const struct hda_fixup alc269_fixups[] = { .chained = true, .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC },
[ALC294_FIXUP_ASUS_HEADSET_MIC] = {
.type = HDA_FIXUP_PINS,
.v.pins = (const struct hda_pintbl[]) {
{ 0x19, 0x01a1113c }, /* use as headset mic, without its own jack detect */
{ }
},
.chained = true,
.chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
},
[ALC294_FIXUP_ASUS_SPK_NOISE] = {
.type = HDA_FIXUP_VERBS,
.v.verbs = (const struct hda_verb[]) {
/* Set EAPD high */
{ 0x20, AC_VERB_SET_COEF_INDEX, 0x10 },
{ 0x20, 0x4c4, 0x20 },
{ 0x20, AC_VERB_SET_COEF_INDEX, 0x40 },
{ 0x20, 0x488, 0x00 },
{ }
},
.chained = true,
.chain_id = ALC294_FIXUP_ASUS_HEADSET_MIC
},
};
static const struct snd_pci_quirk alc269_fixup_tbl[] = { @@ -6556,6 +6580,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1043, 0x12e0, "ASUS X541SA", ALC256_FIXUP_ASUS_MIC), SND_PCI_QUIRK(0x1043, 0x13b0, "ASUS Z550SA", ALC256_FIXUP_ASUS_MIC), SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_ASUS_ZENBOOK),
SND_PCI_QUIRK(0x1043, 0x14a1, "ASUS UX533FD",
+ALC294_FIXUP_ASUS_SPK_NOISE), SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_ASUS_ZENBOOK_UX31A), SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC), SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW), -- 2.11.0
------Please consider the environment before printing this e-mail.
Hi Jian Hong,
I call our agent guy @ WTMEC. Please modify as bellowing then test again. Remove EAPD control by hidden. If this modify patch was pass audio test, please regenerate patch to Takashi. If this patch will solve the speaker no sound issue, I think the model name maybe could rename to ALC294_FIXUP_ASUS_SPK. Because it doesn't relate with Noise.
[ALC294_FIXUP_ASUS_SPK_NOISE] = {
.type = HDA_FIXUP_VERBS,
.v.verbs = (const struct hda_verb[]) {
{ 0x20, AC_VERB_SET_COEF_INDEX, 0x40 },
{ 0x20, AC_VERB_SET_PROC_COEF, 0x8800 },
{ }
},
.chained = true,
.chain_id = ALC294_FIXUP_ASUS_HEADSET_MIC
},
};
Thanks for the help! I have tried the new verbs, and they work on the laptops. I am going to send the new patches.
Regards, Jian-Hong Pan
Add Realtek ALC294 quirks for ASUS X542UN, UX533FD, UX433FN and UX333FA laptops.
Chris Chiu (1): ALSA: hda/realtek: ALC294 mic and headset-mode fixups for ASUS X542UN
Jian-Hong Pan (2): ALSA: hda/realtek: Enable audio jacks of ASUS UX533FD with ALC294 ALSA: hda/realtek: Enable audio jacks of ASUS UX433FN/UX333FA with ALC294
sound/pci/hda/patch_realtek.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+)
From: Chris Chiu chiu@endlessm.com
The known ALC256_FIXUP_ASUS_MIC fixup can fix the headphone jack sensing and enable use of the internal microphone on this laptop X542UN. However, it's ALC294 so create a new fixup named ALC294_FIXUP_ASUS_MIC to avoid confusion.
Signed-off-by: Jian-Hong Pan jian-hong@endlessm.com Signed-off-by: Daniel Drake drake@endlessm.com Signed-off-by: Chris Chiu chiu@endlessm.com --- v2: - .chain_id = ALC256_FIXUP_ASUS_HEADSET_MODE ==> change to ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
sound/pci/hda/patch_realtek.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index bb40624fb6d5..d32e50b1ed60 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -5517,6 +5517,7 @@ enum { ALC285_FIXUP_LENOVO_HEADPHONE_NOISE, ALC295_FIXUP_HP_AUTO_MUTE, ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE, + ALC294_FIXUP_ASUS_MIC, };
static const struct hda_fixup alc269_fixups[] = { @@ -6403,6 +6404,16 @@ static const struct hda_fixup alc269_fixups[] = { .chained = true, .chain_id = ALC269_FIXUP_HEADSET_MIC }, + [ALC294_FIXUP_ASUS_MIC] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x13, 0x90a60160 }, /* use as internal mic */ + { 0x19, 0x04a11120 }, /* use as headset mic, without its own jack detect */ + { } + }, + .chained = true, + .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC + }, };
static const struct snd_pci_quirk alc269_fixup_tbl[] = { @@ -7152,6 +7163,10 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = { SND_HDA_PIN_QUIRK(0x10ec0293, 0x1028, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE, ALC292_STANDARD_PINS, {0x13, 0x90a60140}), + SND_HDA_PIN_QUIRK(0x10ec0294, 0x1043, "ASUS", ALC294_FIXUP_ASUS_MIC, + {0x14, 0x90170110}, + {0x1b, 0x90a70130}, + {0x21, 0x04211020}), SND_HDA_PIN_QUIRK(0x10ec0295, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, ALC295_STANDARD_PINS, {0x17, 0x21014020},
The ASUS UX533FD with ALC294 cannot detect the headset MIC and outputs through the internal speaker and the headphone until ALC294_FIXUP_ASUS_SPK and ALC294_FIXUP_ASUS_HEADSET_MIC quirk applied.
Signed-off-by: Daniel Drake drake@endlessm.com Signed-off-by: Jian-Hong Pan jian-hong@endlessm.com --- v2: - Modify the HDA verbs for UX333FA support - Make a new ALC294_FIXUP_ASUS_HEADSET_MIC quirk for ALC294 chain - .chain_id = ALC256_FIXUP_ASUS_HEADSET_MODE ==> change to ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
v3: - Modify the HDA verbs from Realtek's suggestion - Modify the quirk's entry name
sound/pci/hda/patch_realtek.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index d32e50b1ed60..aa7aabd6e09a 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -5518,6 +5518,8 @@ enum { ALC295_FIXUP_HP_AUTO_MUTE, ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE, ALC294_FIXUP_ASUS_MIC, + ALC294_FIXUP_ASUS_HEADSET_MIC, + ALC294_FIXUP_ASUS_SPK, };
static const struct hda_fixup alc269_fixups[] = { @@ -6414,6 +6416,26 @@ static const struct hda_fixup alc269_fixups[] = { .chained = true, .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC }, + [ALC294_FIXUP_ASUS_HEADSET_MIC] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x19, 0x01a1113c }, /* use as headset mic, without its own jack detect */ + { } + }, + .chained = true, + .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC + }, + [ALC294_FIXUP_ASUS_SPK] = { + .type = HDA_FIXUP_VERBS, + .v.verbs = (const struct hda_verb[]) { + /* Set EAPD high */ + { 0x20, AC_VERB_SET_COEF_INDEX, 0x40 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x8800 }, + { } + }, + .chained = true, + .chain_id = ALC294_FIXUP_ASUS_HEADSET_MIC + }, };
static const struct snd_pci_quirk alc269_fixup_tbl[] = { @@ -6556,6 +6578,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1043, 0x12e0, "ASUS X541SA", ALC256_FIXUP_ASUS_MIC), SND_PCI_QUIRK(0x1043, 0x13b0, "ASUS Z550SA", ALC256_FIXUP_ASUS_MIC), SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_ASUS_ZENBOOK), + SND_PCI_QUIRK(0x1043, 0x14a1, "ASUS UX533FD", ALC294_FIXUP_ASUS_SPK), SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_ASUS_ZENBOOK_UX31A), SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC), SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW),
The ASUS UX433FN and UX333FA with ALC294 cannot detect the headset MIC and output through the internal speaker and the headphone until ALC294_FIXUP_ASUS_SPK and ALC294_FIXUP_ASUS_HEADSET_MIC quirk applied.
Signed-off-by: Daniel Drake drake@endlessm.com Signed-off-by: Jian-Hong Pan jian-hong@endlessm.com --- v2: - Add UX333FA support. ASUS UX533FD, UX433FN and UX333FA use the same quirk now.
v3: - Modify the quirk's entry name
sound/pci/hda/patch_realtek.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index aa7aabd6e09a..14c883a16290 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -7190,6 +7190,10 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = { {0x14, 0x90170110}, {0x1b, 0x90a70130}, {0x21, 0x04211020}), + SND_HDA_PIN_QUIRK(0x10ec0294, 0x1043, "ASUS", ALC294_FIXUP_ASUS_SPK, + {0x12, 0x90a60130}, + {0x17, 0x90170110}, + {0x21, 0x04211020}), SND_HDA_PIN_QUIRK(0x10ec0295, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, ALC295_STANDARD_PINS, {0x17, 0x21014020},
On Fri, 07 Dec 2018 10:17:10 +0100, Jian-Hong Pan wrote:
Add Realtek ALC294 quirks for ASUS X542UN, UX533FD, UX433FN and UX333FA laptops.
Chris Chiu (1): ALSA: hda/realtek: ALC294 mic and headset-mode fixups for ASUS X542UN
Jian-Hong Pan (2): ALSA: hda/realtek: Enable audio jacks of ASUS UX533FD with ALC294 ALSA: hda/realtek: Enable audio jacks of ASUS UX433FN/UX333FA with ALC294
Now applied all three patches. Thanks.
Takashi
The ASUS UX433FN and UX333FA with ALC294 cannot detect the headset MIC and output through the internal speaker and the headphone until ALC294_FIXUP_ASUS_SPK_NOISE quirk applied.
Signed-off-by: Daniel Drake drake@endlessm.com Signed-off-by: Jian-Hong Pan jian-hong@endlessm.com --- v2: - Add UX333FA support. ASUS UX533FD, UX433FN and UX333FA use the same quirk now.
sound/pci/hda/patch_realtek.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 1525bcdf96e8..97d1a4aaeccd 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -7192,6 +7192,10 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = { {0x14, 0x90170110}, {0x1b, 0x90a70130}, {0x21, 0x04211020}), + SND_HDA_PIN_QUIRK(0x10ec0294, 0x1043, "ASUS", ALC294_FIXUP_ASUS_SPK_NOISE, + {0x12, 0x90a60130}, + {0x17, 0x90170110}, + {0x21, 0x04211020}), SND_HDA_PIN_QUIRK(0x10ec0295, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, ALC295_STANDARD_PINS, {0x17, 0x21014020},
participants (3)
-
Jian-Hong Pan
-
Kailang
-
Takashi Iwai