+++ /dev/null
-From 838fb58f173edcce0d175049aac2bb54ac4c481f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 6 Sep 2019 11:33:43 +0200
-Subject: Add Acer Aspire Ethos 8951G model quirk
-
-From: Sergey Bostandzhyan <jin@mediatomb.cc>
-
-[ Upstream commit 00066e9733f629e536f6b7957de2ce11a85fe15a ]
-
-This notebook has 6 built in speakers for 5.1 surround support, however
-only two got autodetected and have also not been assigned correctly.
-
-This patch enables all speakers and also fixes muting when headphones are
-plugged in.
-
-The speaker layout is as follows:
-
-pin 0x15 Front Left / Front Right
-pin 0x18 Front Center / Subwoofer
-pin 0x1b Rear Left / Rear Right (Surround)
-
-The quirk will be enabled automatically on this hardware, but can also be
-activated manually via the model=aspire-ethos module parameter.
-
-Caveat: pin 0x1b is shared between headphones jack and surround speakers.
-When headphones are plugged in, the surround speakers get muted
-automatically by the hardware, however all other speakers remain
-unmuted. Currently it's not possible to make use of the generic automute
-function in the driver, because such shared pins are not supported.
-
-If we would change the pin settings to identify the pin as headphones,
-the surround channel and thus the ability to select 5.1 profiles would
-get lost.
-
-This quirk solves the above problem by monitoring jack state of 0x1b and
-by connecting/disconnecting all remaining speaker pins when something
-gets plugged in or unplugged from the headphones jack port.
-
-Signed-off-by: Sergey Bostandzhyan <jin@mediatomb.cc>
-Link: https://lore.kernel.org/r/20190906093343.GA7640@xn--80adja5bqm.su
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Stable-dep-of: 4bf5bf54476d ("ALSA: hda/realtek: Add quirk for Lenovo TianYi510Pro-14IOB")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_realtek.c | 71 +++++++++++++++++++++++++++++++++++
- 1 file changed, 71 insertions(+)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 9670db6ad1e1..fe17fb8d7f67 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -8510,6 +8510,45 @@ static void alc662_fixup_usi_headset_mic(struct hda_codec *codec,
- }
- }
-
-+static void alc662_aspire_ethos_mute_speakers(struct hda_codec *codec,
-+ struct hda_jack_callback *cb)
-+{
-+ /* surround speakers at 0x1b already get muted automatically when
-+ * headphones are plugged in, but we have to mute/unmute the remaining
-+ * channels manually:
-+ * 0x15 - front left/front right
-+ * 0x18 - front center/ LFE
-+ */
-+ if (snd_hda_jack_detect_state(codec, 0x1b) == HDA_JACK_PRESENT) {
-+ snd_hda_set_pin_ctl_cache(codec, 0x15, 0);
-+ snd_hda_set_pin_ctl_cache(codec, 0x18, 0);
-+ } else {
-+ snd_hda_set_pin_ctl_cache(codec, 0x15, PIN_OUT);
-+ snd_hda_set_pin_ctl_cache(codec, 0x18, PIN_OUT);
-+ }
-+}
-+
-+static void alc662_fixup_aspire_ethos_hp(struct hda_codec *codec,
-+ const struct hda_fixup *fix, int action)
-+{
-+ /* Pin 0x1b: shared headphones jack and surround speakers */
-+ if (!is_jack_detectable(codec, 0x1b))
-+ return;
-+
-+ switch (action) {
-+ case HDA_FIXUP_ACT_PRE_PROBE:
-+ snd_hda_jack_detect_enable_callback(codec, 0x1b,
-+ alc662_aspire_ethos_mute_speakers);
-+ break;
-+ case HDA_FIXUP_ACT_INIT:
-+ /* Make sure to start in a correct state, i.e. if
-+ * headphones have been plugged in before powering up the system
-+ */
-+ alc662_aspire_ethos_mute_speakers(codec, NULL);
-+ break;
-+ }
-+}
-+
- static struct coef_fw alc668_coefs[] = {
- WRITE_COEF(0x01, 0xbebe), WRITE_COEF(0x02, 0xaaaa), WRITE_COEF(0x03, 0x0),
- WRITE_COEF(0x04, 0x0180), WRITE_COEF(0x06, 0x0), WRITE_COEF(0x07, 0x0f80),
-@@ -8581,6 +8620,9 @@ enum {
- ALC662_FIXUP_USI_FUNC,
- ALC662_FIXUP_USI_HEADSET_MODE,
- ALC662_FIXUP_LENOVO_MULTI_CODECS,
-+ ALC669_FIXUP_ACER_ASPIRE_ETHOS,
-+ ALC669_FIXUP_ACER_ASPIRE_ETHOS_SUBWOOFER,
-+ ALC669_FIXUP_ACER_ASPIRE_ETHOS_HEADSET,
- };
-
- static const struct hda_fixup alc662_fixups[] = {
-@@ -8907,6 +8949,33 @@ static const struct hda_fixup alc662_fixups[] = {
- .type = HDA_FIXUP_FUNC,
- .v.func = alc233_alc662_fixup_lenovo_dual_codecs,
- },
-+ [ALC669_FIXUP_ACER_ASPIRE_ETHOS_HEADSET] = {
-+ .type = HDA_FIXUP_FUNC,
-+ .v.func = alc662_fixup_aspire_ethos_hp,
-+ },
-+ [ALC669_FIXUP_ACER_ASPIRE_ETHOS_SUBWOOFER] = {
-+ .type = HDA_FIXUP_VERBS,
-+ /* subwoofer needs an extra GPIO setting to become audible */
-+ .v.verbs = (const struct hda_verb[]) {
-+ {0x01, AC_VERB_SET_GPIO_MASK, 0x02},
-+ {0x01, AC_VERB_SET_GPIO_DIRECTION, 0x02},
-+ {0x01, AC_VERB_SET_GPIO_DATA, 0x00},
-+ { }
-+ },
-+ .chained = true,
-+ .chain_id = ALC669_FIXUP_ACER_ASPIRE_ETHOS_HEADSET
-+ },
-+ [ALC669_FIXUP_ACER_ASPIRE_ETHOS] = {
-+ .type = HDA_FIXUP_PINS,
-+ .v.pins = (const struct hda_pintbl[]) {
-+ { 0x15, 0x92130110 }, /* front speakers */
-+ { 0x18, 0x99130111 }, /* center/subwoofer */
-+ { 0x1b, 0x11130012 }, /* surround plus jack for HP */
-+ { }
-+ },
-+ .chained = true,
-+ .chain_id = ALC669_FIXUP_ACER_ASPIRE_ETHOS_SUBWOOFER
-+ },
- };
-
- static const struct snd_pci_quirk alc662_fixup_tbl[] = {
-@@ -8952,6 +9021,7 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = {
- SND_PCI_QUIRK(0x19da, 0xa130, "Zotac Z68", ALC662_FIXUP_ZOTAC_Z68),
- SND_PCI_QUIRK(0x1b0a, 0x01b8, "ACER Veriton", ALC662_FIXUP_ACER_VERITON),
- SND_PCI_QUIRK(0x1b35, 0x2206, "CZC P10T", ALC662_FIXUP_CZC_P10T),
-+ SND_PCI_QUIRK(0x1025, 0x0566, "Acer Aspire Ethos 8951G", ALC669_FIXUP_ACER_ASPIRE_ETHOS),
-
- #if 0
- /* Below is a quirk table taken from the old code.
-@@ -9044,6 +9114,7 @@ static const struct hda_model_fixup alc662_fixup_models[] = {
- {.id = ALC892_FIXUP_ASROCK_MOBO, .name = "asrock-mobo"},
- {.id = ALC662_FIXUP_USI_HEADSET_MODE, .name = "usi-headset"},
- {.id = ALC662_FIXUP_LENOVO_MULTI_CODECS, .name = "dual-codecs"},
-+ {.id = ALC669_FIXUP_ACER_ASPIRE_ETHOS, .name = "aspire-ethos"},
- {}
- };
-
---
-2.35.1
-
+++ /dev/null
-From 0b4eb46f4710900534f2ed59e104c46e6d7d07d2 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 23 Nov 2021 16:32:44 +0800
-Subject: ALSA: hda/realtek - Add headset Mic support for Lenovo ALC897
- platform
-
-From: Kailang Yang <kailang@realtek.com>
-
-[ Upstream commit d7f32791a9fcf0dae8b073cdea9b79e29098c5f4 ]
-
-Lenovo ALC897 platform had headset Mic.
-This patch enable supported headset Mic.
-
-Signed-off-by: Kailang Yang <kailang@realtek.com>
-Cc: <stable@vger.kernel.org>
-Link: https://lore.kernel.org/r/baab2c2536cb4cc18677a862c6f6d840@realtek.com
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Stable-dep-of: 4bf5bf54476d ("ALSA: hda/realtek: Add quirk for Lenovo TianYi510Pro-14IOB")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_realtek.c | 40 +++++++++++++++++++++++++++++++++++
- 1 file changed, 40 insertions(+)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 566d5ea74c62..f0cf3e23d355 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -8572,6 +8572,27 @@ static void alc671_fixup_hp_headset_mic2(struct hda_codec *codec,
- }
- }
-
-+static void alc897_hp_automute_hook(struct hda_codec *codec,
-+ struct hda_jack_callback *jack)
-+{
-+ struct alc_spec *spec = codec->spec;
-+ int vref;
-+
-+ snd_hda_gen_hp_automute(codec, jack);
-+ vref = spec->gen.hp_jack_present ? (PIN_HP | AC_PINCTL_VREF_100) : PIN_HP;
-+ snd_hda_codec_write(codec, 0x1b, 0, AC_VERB_SET_PIN_WIDGET_CONTROL,
-+ vref);
-+}
-+
-+static void alc897_fixup_lenovo_headset_mic(struct hda_codec *codec,
-+ const struct hda_fixup *fix, int action)
-+{
-+ struct alc_spec *spec = codec->spec;
-+ if (action == HDA_FIXUP_ACT_PRE_PROBE) {
-+ spec->gen.hp_automute_hook = alc897_hp_automute_hook;
-+ }
-+}
-+
- static const struct coef_fw alc668_coefs[] = {
- WRITE_COEF(0x01, 0xbebe), WRITE_COEF(0x02, 0xaaaa), WRITE_COEF(0x03, 0x0),
- WRITE_COEF(0x04, 0x0180), WRITE_COEF(0x06, 0x0), WRITE_COEF(0x07, 0x0f80),
-@@ -8652,6 +8673,8 @@ enum {
- ALC668_FIXUP_ASUS_NO_HEADSET_MIC,
- ALC668_FIXUP_HEADSET_MIC,
- ALC668_FIXUP_MIC_DET_COEF,
-+ ALC897_FIXUP_LENOVO_HEADSET_MIC,
-+ ALC897_FIXUP_HEADSET_MIC_PIN,
- };
-
- static const struct hda_fixup alc662_fixups[] = {
-@@ -9051,6 +9074,19 @@ static const struct hda_fixup alc662_fixups[] = {
- {}
- },
- },
-+ [ALC897_FIXUP_LENOVO_HEADSET_MIC] = {
-+ .type = HDA_FIXUP_FUNC,
-+ .v.func = alc897_fixup_lenovo_headset_mic,
-+ },
-+ [ALC897_FIXUP_HEADSET_MIC_PIN] = {
-+ .type = HDA_FIXUP_PINS,
-+ .v.pins = (const struct hda_pintbl[]) {
-+ { 0x1a, 0x03a11050 },
-+ { }
-+ },
-+ .chained = true,
-+ .chain_id = ALC897_FIXUP_LENOVO_HEADSET_MIC
-+ },
- };
-
- static const struct snd_pci_quirk alc662_fixup_tbl[] = {
-@@ -9094,6 +9130,10 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = {
- SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD),
- SND_PCI_QUIRK(0x14cd, 0x5003, "USI", ALC662_FIXUP_USI_HEADSET_MODE),
- SND_PCI_QUIRK(0x17aa, 0x1036, "Lenovo P520", ALC662_FIXUP_LENOVO_MULTI_CODECS),
-+ SND_PCI_QUIRK(0x17aa, 0x32ca, "Lenovo ThinkCentre M80", ALC897_FIXUP_HEADSET_MIC_PIN),
-+ SND_PCI_QUIRK(0x17aa, 0x32cb, "Lenovo ThinkCentre M70", ALC897_FIXUP_HEADSET_MIC_PIN),
-+ SND_PCI_QUIRK(0x17aa, 0x32cf, "Lenovo ThinkCentre M950", ALC897_FIXUP_HEADSET_MIC_PIN),
-+ SND_PCI_QUIRK(0x17aa, 0x32f7, "Lenovo ThinkCentre M90", ALC897_FIXUP_HEADSET_MIC_PIN),
- SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD),
- SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Ideapad Y550", ALC662_FIXUP_IDEAPAD),
- SND_PCI_QUIRK(0x1849, 0x5892, "ASRock B150M", ALC892_FIXUP_ASROCK_MOBO),
---
-2.35.1
-
+++ /dev/null
-From 50f5ff94cf283068f9d643d3276c129b3d60faf5 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 17 Jan 2020 14:04:01 +0800
-Subject: ALSA: hda/realtek - Add Headset Mic supported for HP cPC
-
-From: Kailang Yang <kailang@realtek.com>
-
-[ Upstream commit 5af29028fd6db9438b5584ab7179710a0a22569d ]
-
-HP ALC671 need to support Headset Mic.
-
-Signed-off-by: Kailang Yang <kailang@realtek.com>
-Link: https://lore.kernel.org/r/06a9d2b176e14706976d6584cbe2d92a@realtek.com
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Stable-dep-of: 4bf5bf54476d ("ALSA: hda/realtek: Add quirk for Lenovo TianYi510Pro-14IOB")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_realtek.c | 44 +++++++++++++++++++++++++++++++++++
- 1 file changed, 44 insertions(+)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 3abe30eec49a..375493d3807f 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -8549,6 +8549,29 @@ static void alc662_fixup_aspire_ethos_hp(struct hda_codec *codec,
- }
- }
-
-+static void alc671_fixup_hp_headset_mic2(struct hda_codec *codec,
-+ const struct hda_fixup *fix, int action)
-+{
-+ struct alc_spec *spec = codec->spec;
-+
-+ static const struct hda_pintbl pincfgs[] = {
-+ { 0x19, 0x02a11040 }, /* use as headset mic, with its own jack detect */
-+ { 0x1b, 0x0181304f },
-+ { }
-+ };
-+
-+ switch (action) {
-+ case HDA_FIXUP_ACT_PRE_PROBE:
-+ spec->gen.mixer_nid = 0;
-+ spec->parse_flags |= HDA_PINCFG_HEADSET_MIC;
-+ snd_hda_apply_pincfgs(codec, pincfgs);
-+ break;
-+ case HDA_FIXUP_ACT_INIT:
-+ alc_write_coef_idx(codec, 0x19, 0xa054);
-+ break;
-+ }
-+}
-+
- static const struct coef_fw alc668_coefs[] = {
- WRITE_COEF(0x01, 0xbebe), WRITE_COEF(0x02, 0xaaaa), WRITE_COEF(0x03, 0x0),
- WRITE_COEF(0x04, 0x0180), WRITE_COEF(0x06, 0x0), WRITE_COEF(0x07, 0x0f80),
-@@ -8623,6 +8646,7 @@ enum {
- ALC669_FIXUP_ACER_ASPIRE_ETHOS,
- ALC669_FIXUP_ACER_ASPIRE_ETHOS_SUBWOOFER,
- ALC669_FIXUP_ACER_ASPIRE_ETHOS_HEADSET,
-+ ALC671_FIXUP_HP_HEADSET_MIC2,
- };
-
- static const struct hda_fixup alc662_fixups[] = {
-@@ -8976,6 +9000,10 @@ static const struct hda_fixup alc662_fixups[] = {
- .chained = true,
- .chain_id = ALC669_FIXUP_ACER_ASPIRE_ETHOS_SUBWOOFER
- },
-+ [ALC671_FIXUP_HP_HEADSET_MIC2] = {
-+ .type = HDA_FIXUP_FUNC,
-+ .v.func = alc671_fixup_hp_headset_mic2,
-+ },
- };
-
- static const struct snd_pci_quirk alc662_fixup_tbl[] = {
-@@ -9157,6 +9185,22 @@ static const struct snd_hda_pin_quirk alc662_pin_fixup_tbl[] = {
- {0x12, 0x90a60130},
- {0x14, 0x90170110},
- {0x15, 0x0321101f}),
-+ SND_HDA_PIN_QUIRK(0x10ec0671, 0x103c, "HP cPC", ALC671_FIXUP_HP_HEADSET_MIC2,
-+ {0x14, 0x01014010},
-+ {0x17, 0x90170150},
-+ {0x1b, 0x01813030},
-+ {0x21, 0x02211020}),
-+ SND_HDA_PIN_QUIRK(0x10ec0671, 0x103c, "HP cPC", ALC671_FIXUP_HP_HEADSET_MIC2,
-+ {0x14, 0x01014010},
-+ {0x18, 0x01a19040},
-+ {0x1b, 0x01813030},
-+ {0x21, 0x02211020}),
-+ SND_HDA_PIN_QUIRK(0x10ec0671, 0x103c, "HP cPC", ALC671_FIXUP_HP_HEADSET_MIC2,
-+ {0x14, 0x01014020},
-+ {0x17, 0x90170110},
-+ {0x18, 0x01a19050},
-+ {0x1b, 0x01813040},
-+ {0x21, 0x02211030}),
- {}
- };
-
---
-2.35.1
-
+++ /dev/null
-From e71b599471f13a7c22ef65751c1c1257486ea353 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 7 Dec 2022 21:32:18 +0800
-Subject: ALSA: hda/realtek: Add quirk for Lenovo TianYi510Pro-14IOB
-
-From: Edward Pacman <edward@edward-p.xyz>
-
-[ Upstream commit 4bf5bf54476dffe60e6b6d8d539f67309ff599e2 ]
-
-Lenovo TianYi510Pro-14IOB (17aa:3742)
-require quirk for enabling headset-mic
-
-Signed-off-by: Edward Pacman <edward@edward-p.xyz>
-Cc: <stable@vger.kernel.org>
-Link: https://bugzilla.kernel.org/show_bug.cgi?id=216756
-Link: https://lore.kernel.org/r/20221207133218.18989-1-edward@edward-p.xyz
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_realtek.c | 27 +++++++++++++++++++++++++++
- 1 file changed, 27 insertions(+)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 0a2cf8ca2812..ed14772a8e6e 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -8593,6 +8593,17 @@ static void alc897_fixup_lenovo_headset_mic(struct hda_codec *codec,
- }
- }
-
-+static void alc897_fixup_lenovo_headset_mode(struct hda_codec *codec,
-+ const struct hda_fixup *fix, int action)
-+{
-+ struct alc_spec *spec = codec->spec;
-+
-+ if (action == HDA_FIXUP_ACT_PRE_PROBE) {
-+ spec->parse_flags |= HDA_PINCFG_HEADSET_MIC;
-+ spec->gen.hp_automute_hook = alc897_hp_automute_hook;
-+ }
-+}
-+
- static const struct coef_fw alc668_coefs[] = {
- WRITE_COEF(0x01, 0xbebe), WRITE_COEF(0x02, 0xaaaa), WRITE_COEF(0x03, 0x0),
- WRITE_COEF(0x04, 0x0180), WRITE_COEF(0x06, 0x0), WRITE_COEF(0x07, 0x0f80),
-@@ -8676,6 +8687,8 @@ enum {
- ALC897_FIXUP_LENOVO_HEADSET_MIC,
- ALC897_FIXUP_HEADSET_MIC_PIN,
- ALC897_FIXUP_HP_HSMIC_VERB,
-+ ALC897_FIXUP_LENOVO_HEADSET_MODE,
-+ ALC897_FIXUP_HEADSET_MIC_PIN2,
- };
-
- static const struct hda_fixup alc662_fixups[] = {
-@@ -9095,6 +9108,19 @@ static const struct hda_fixup alc662_fixups[] = {
- { }
- },
- },
-+ [ALC897_FIXUP_LENOVO_HEADSET_MODE] = {
-+ .type = HDA_FIXUP_FUNC,
-+ .v.func = alc897_fixup_lenovo_headset_mode,
-+ },
-+ [ALC897_FIXUP_HEADSET_MIC_PIN2] = {
-+ .type = HDA_FIXUP_PINS,
-+ .v.pins = (const struct hda_pintbl[]) {
-+ { 0x1a, 0x01a11140 }, /* use as headset mic, without its own jack detect */
-+ { }
-+ },
-+ .chained = true,
-+ .chain_id = ALC897_FIXUP_LENOVO_HEADSET_MODE
-+ },
- };
-
- static const struct snd_pci_quirk alc662_fixup_tbl[] = {
-@@ -9143,6 +9169,7 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = {
- SND_PCI_QUIRK(0x17aa, 0x32cb, "Lenovo ThinkCentre M70", ALC897_FIXUP_HEADSET_MIC_PIN),
- SND_PCI_QUIRK(0x17aa, 0x32cf, "Lenovo ThinkCentre M950", ALC897_FIXUP_HEADSET_MIC_PIN),
- SND_PCI_QUIRK(0x17aa, 0x32f7, "Lenovo ThinkCentre M90", ALC897_FIXUP_HEADSET_MIC_PIN),
-+ SND_PCI_QUIRK(0x17aa, 0x3742, "Lenovo TianYi510Pro-14IOB", ALC897_FIXUP_HEADSET_MIC_PIN2),
- SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD),
- SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Ideapad Y550", ALC662_FIXUP_IDEAPAD),
- SND_PCI_QUIRK(0x1849, 0x5892, "ASRock B150M", ALC892_FIXUP_ASROCK_MOBO),
---
-2.35.1
-
+++ /dev/null
-From 4d69f320a26a6c6e4fc4e91f5507c3eaa012d96e Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 13 Jun 2022 14:57:19 +0800
-Subject: ALSA: hda/realtek - ALC897 headset MIC no sound
-
-From: Kailang Yang <kailang@realtek.com>
-
-[ Upstream commit fe6900bd8156467365bd5b976df64928fdebfeb0 ]
-
-There is not have Headset Mic verb table in BIOS default.
-So, it will have recording issue from headset MIC.
-Add the verb table value without jack detect. It will turn on Headset Mic.
-
-Signed-off-by: Kailang Yang <kailang@realtek.com>
-Cc: <stable@vger.kernel.org>
-Link: https://lore.kernel.org/r/719133a27d8844a890002cb817001dfa@realtek.com
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Stable-dep-of: 4bf5bf54476d ("ALSA: hda/realtek: Add quirk for Lenovo TianYi510Pro-14IOB")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_realtek.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index f0cf3e23d355..0a2cf8ca2812 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -8675,6 +8675,7 @@ enum {
- ALC668_FIXUP_MIC_DET_COEF,
- ALC897_FIXUP_LENOVO_HEADSET_MIC,
- ALC897_FIXUP_HEADSET_MIC_PIN,
-+ ALC897_FIXUP_HP_HSMIC_VERB,
- };
-
- static const struct hda_fixup alc662_fixups[] = {
-@@ -9087,6 +9088,13 @@ static const struct hda_fixup alc662_fixups[] = {
- .chained = true,
- .chain_id = ALC897_FIXUP_LENOVO_HEADSET_MIC
- },
-+ [ALC897_FIXUP_HP_HSMIC_VERB] = {
-+ .type = HDA_FIXUP_PINS,
-+ .v.pins = (const struct hda_pintbl[]) {
-+ { 0x19, 0x01a1913c }, /* use as headset mic, without its own jack detect */
-+ { }
-+ },
-+ },
- };
-
- static const struct snd_pci_quirk alc662_fixup_tbl[] = {
-@@ -9111,6 +9119,7 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = {
- SND_PCI_QUIRK(0x1028, 0x0698, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
- SND_PCI_QUIRK(0x1028, 0x069f, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
- SND_PCI_QUIRK(0x103c, 0x1632, "HP RP5800", ALC662_FIXUP_HP_RP5800),
-+ SND_PCI_QUIRK(0x103c, 0x8719, "HP", ALC897_FIXUP_HP_HSMIC_VERB),
- SND_PCI_QUIRK(0x103c, 0x873e, "HP", ALC671_FIXUP_HP_HEADSET_MIC2),
- SND_PCI_QUIRK(0x1043, 0x1080, "Asus UX501VW", ALC668_FIXUP_HEADSET_MODE),
- SND_PCI_QUIRK(0x1043, 0x11cd, "Asus N550", ALC662_FIXUP_ASUS_Nx50),
---
-2.35.1
-
+++ /dev/null
-From 2dc43622b34ae832e20e81b6dc53aedbaffb8e9c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 17 Mar 2020 16:28:07 +0800
-Subject: ALSA: hda/realtek - Enable headset mic of Acer X2660G with ALC662
-
-From: Jian-Hong Pan <jian-hong@endlessm.com>
-
-[ Upstream commit d858c706bdca97698752bd26b60c21ec07ef04f2 ]
-
-The Acer desktop X2660G with ALC662 can't detect the headset microphone
-until ALC662_FIXUP_ACER_X2660G_HEADSET_MODE quirk applied.
-
-Signed-off-by: Jian-Hong Pan <jian-hong@endlessm.com>
-Cc: <stable@vger.kernel.org>
-Link: https://lore.kernel.org/r/20200317082806.73194-2-jian-hong@endlessm.com
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Stable-dep-of: 4bf5bf54476d ("ALSA: hda/realtek: Add quirk for Lenovo TianYi510Pro-14IOB")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_realtek.c | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 375493d3807f..024a7e473e11 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -8647,6 +8647,7 @@ enum {
- ALC669_FIXUP_ACER_ASPIRE_ETHOS_SUBWOOFER,
- ALC669_FIXUP_ACER_ASPIRE_ETHOS_HEADSET,
- ALC671_FIXUP_HP_HEADSET_MIC2,
-+ ALC662_FIXUP_ACER_X2660G_HEADSET_MODE,
- };
-
- static const struct hda_fixup alc662_fixups[] = {
-@@ -9004,6 +9005,15 @@ static const struct hda_fixup alc662_fixups[] = {
- .type = HDA_FIXUP_FUNC,
- .v.func = alc671_fixup_hp_headset_mic2,
- },
-+ [ALC662_FIXUP_ACER_X2660G_HEADSET_MODE] = {
-+ .type = HDA_FIXUP_PINS,
-+ .v.pins = (const struct hda_pintbl[]) {
-+ { 0x1a, 0x02a1113c }, /* use as headset mic, without its own jack detect */
-+ { }
-+ },
-+ .chained = true,
-+ .chain_id = ALC662_FIXUP_USI_FUNC
-+ },
- };
-
- static const struct snd_pci_quirk alc662_fixup_tbl[] = {
-@@ -9015,6 +9025,7 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = {
- SND_PCI_QUIRK(0x1025, 0x0349, "eMachines eM250", ALC662_FIXUP_INV_DMIC),
- SND_PCI_QUIRK(0x1025, 0x034a, "Gateway LT27", ALC662_FIXUP_INV_DMIC),
- SND_PCI_QUIRK(0x1025, 0x038b, "Acer Aspire 8943G", ALC662_FIXUP_ASPIRE),
-+ SND_PCI_QUIRK(0x1025, 0x124e, "Acer 2660G", ALC662_FIXUP_ACER_X2660G_HEADSET_MODE),
- SND_PCI_QUIRK(0x1028, 0x05d8, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
- SND_PCI_QUIRK(0x1028, 0x05db, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
- SND_PCI_QUIRK(0x1028, 0x05fe, "Dell XPS 15", ALC668_FIXUP_DELL_XPS13),
---
-2.35.1
-
+++ /dev/null
-From 2e7fe866347afee7c46766e1e47df33430caaf65 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 17 Mar 2020 16:28:09 +0800
-Subject: ALSA: hda/realtek - Enable the headset of Acer N50-600 with ALC662
-
-From: Jian-Hong Pan <jian-hong@endlessm.com>
-
-[ Upstream commit a124458a127ccd7629e20cd7bae3e1f758ed32aa ]
-
-A headset on the desktop like Acer N50-600 does not work, until quirk
-ALC662_FIXUP_ACER_NITRO_HEADSET_MODE is applied.
-
-Signed-off-by: Jian-Hong Pan <jian-hong@endlessm.com>
-Cc: <stable@vger.kernel.org>
-Link: https://lore.kernel.org/r/20200317082806.73194-3-jian-hong@endlessm.com
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Stable-dep-of: 4bf5bf54476d ("ALSA: hda/realtek: Add quirk for Lenovo TianYi510Pro-14IOB")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_realtek.c | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 024a7e473e11..bb0917b9e68f 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -8648,6 +8648,7 @@ enum {
- ALC669_FIXUP_ACER_ASPIRE_ETHOS_HEADSET,
- ALC671_FIXUP_HP_HEADSET_MIC2,
- ALC662_FIXUP_ACER_X2660G_HEADSET_MODE,
-+ ALC662_FIXUP_ACER_NITRO_HEADSET_MODE,
- };
-
- static const struct hda_fixup alc662_fixups[] = {
-@@ -9014,6 +9015,16 @@ static const struct hda_fixup alc662_fixups[] = {
- .chained = true,
- .chain_id = ALC662_FIXUP_USI_FUNC
- },
-+ [ALC662_FIXUP_ACER_NITRO_HEADSET_MODE] = {
-+ .type = HDA_FIXUP_PINS,
-+ .v.pins = (const struct hda_pintbl[]) {
-+ { 0x1a, 0x01a11140 }, /* use as headset mic, without its own jack detect */
-+ { 0x1b, 0x0221144f },
-+ { }
-+ },
-+ .chained = true,
-+ .chain_id = ALC662_FIXUP_USI_FUNC
-+ },
- };
-
- static const struct snd_pci_quirk alc662_fixup_tbl[] = {
-@@ -9025,6 +9036,7 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = {
- SND_PCI_QUIRK(0x1025, 0x0349, "eMachines eM250", ALC662_FIXUP_INV_DMIC),
- SND_PCI_QUIRK(0x1025, 0x034a, "Gateway LT27", ALC662_FIXUP_INV_DMIC),
- SND_PCI_QUIRK(0x1025, 0x038b, "Acer Aspire 8943G", ALC662_FIXUP_ASPIRE),
-+ SND_PCI_QUIRK(0x1025, 0x123c, "Acer Nitro N50-600", ALC662_FIXUP_ACER_NITRO_HEADSET_MODE),
- SND_PCI_QUIRK(0x1025, 0x124e, "Acer 2660G", ALC662_FIXUP_ACER_X2660G_HEADSET_MODE),
- SND_PCI_QUIRK(0x1028, 0x05d8, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
- SND_PCI_QUIRK(0x1028, 0x05db, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
---
-2.35.1
-
+++ /dev/null
-From 336820c4374bc065317f247dc2bb37c0e41b64a6 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai@suse.de>
-Date: Thu, 28 Nov 2019 21:26:30 +0100
-Subject: ALSA: hda/realtek - Fix inverted bass GPIO pin on Acer 8951G
-
-From: Takashi Iwai <tiwai@suse.de>
-
-commit 336820c4374bc065317f247dc2bb37c0e41b64a6 upstream.
-
-We've added the bass speaker support on Acer 8951G by the commit
-00066e9733f6 ("Add Acer Aspire Ethos 8951G model quirk"), but it seems
-that the GPIO pin was wrongly set: while the commit turns off the bit
-to power up the amp, the actual hardware reacts other way round,
-i.e. GPIO bit on = amp on.
-
-So this patch fixes the bug, turning on the GPIO bit 0x02 as default.
-Since turning on the GPIO bit can be more easily managed with
-alc_setup_gpio() call, we simplify the quirk code by integrating the
-GPIO setup into the existing alc662_fixup_aspire_ethos_hp() and
-dropping the whole ALC669_FIXUP_ACER_ASPIRE_ETHOS_SUBWOOFER quirk.
-
-Fixes: 00066e9733f6 ("Add Acer Aspire Ethos 8951G model quirk")
-Reported-and-tested-by: Sergey 'Jin' Bostandzhyan <jin@mediatomb.cc>
-Cc: <stable@vger.kernel.org>
-Link: https://lore.kernel.org/r/20191128202630.6626-1-tiwai@suse.de
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- sound/pci/hda/patch_realtek.c | 17 +++--------------
- 1 file changed, 3 insertions(+), 14 deletions(-)
-
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -8539,6 +8539,8 @@ static void alc662_fixup_aspire_ethos_hp
- case HDA_FIXUP_ACT_PRE_PROBE:
- snd_hda_jack_detect_enable_callback(codec, 0x1b,
- alc662_aspire_ethos_mute_speakers);
-+ /* subwoofer needs an extra GPIO setting to become audible */
-+ alc_setup_gpio(codec, 0x02);
- break;
- case HDA_FIXUP_ACT_INIT:
- /* Make sure to start in a correct state, i.e. if
-@@ -8676,7 +8678,6 @@ enum {
- ALC662_FIXUP_USI_HEADSET_MODE,
- ALC662_FIXUP_LENOVO_MULTI_CODECS,
- ALC669_FIXUP_ACER_ASPIRE_ETHOS,
-- ALC669_FIXUP_ACER_ASPIRE_ETHOS_SUBWOOFER,
- ALC669_FIXUP_ACER_ASPIRE_ETHOS_HEADSET,
- ALC671_FIXUP_HP_HEADSET_MIC2,
- ALC662_FIXUP_ACER_X2660G_HEADSET_MODE,
-@@ -9019,18 +9020,6 @@ static const struct hda_fixup alc662_fix
- .type = HDA_FIXUP_FUNC,
- .v.func = alc662_fixup_aspire_ethos_hp,
- },
-- [ALC669_FIXUP_ACER_ASPIRE_ETHOS_SUBWOOFER] = {
-- .type = HDA_FIXUP_VERBS,
-- /* subwoofer needs an extra GPIO setting to become audible */
-- .v.verbs = (const struct hda_verb[]) {
-- {0x01, AC_VERB_SET_GPIO_MASK, 0x02},
-- {0x01, AC_VERB_SET_GPIO_DIRECTION, 0x02},
-- {0x01, AC_VERB_SET_GPIO_DATA, 0x00},
-- { }
-- },
-- .chained = true,
-- .chain_id = ALC669_FIXUP_ACER_ASPIRE_ETHOS_HEADSET
-- },
- [ALC669_FIXUP_ACER_ASPIRE_ETHOS] = {
- .type = HDA_FIXUP_PINS,
- .v.pins = (const struct hda_pintbl[]) {
-@@ -9040,7 +9029,7 @@ static const struct hda_fixup alc662_fix
- { }
- },
- .chained = true,
-- .chain_id = ALC669_FIXUP_ACER_ASPIRE_ETHOS_SUBWOOFER
-+ .chain_id = ALC669_FIXUP_ACER_ASPIRE_ETHOS_HEADSET
- },
- [ALC671_FIXUP_HP_HEADSET_MIC2] = {
- .type = HDA_FIXUP_FUNC,
+++ /dev/null
-From da632ed5ac77ffb74fa8511c3e07f25b133224da Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 12 Oct 2021 19:47:48 +0800
-Subject: ALSA: hda/realtek: Fix the mic type detection issue for ASUS G551JW
-
-From: Hui Wang <hui.wang@canonical.com>
-
-[ Upstream commit a3fd1a986e499a06ac5ef95c3a39aa4611e7444c ]
-
-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>
-Stable-dep-of: 4bf5bf54476d ("ALSA: hda/realtek: Add quirk for Lenovo TianYi510Pro-14IOB")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_realtek.c | 27 +++++++++++++++++++++++++++
- 1 file changed, 27 insertions(+)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index a3cc5cc0d668..566d5ea74c62 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -8649,6 +8649,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[] = {
-@@ -9025,6 +9028,29 @@ static const struct hda_fixup alc662_fixups[] = {
- .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[] = {
-@@ -9059,6 +9085,7 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = {
- 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),
---
-2.35.1
-
+++ /dev/null
-From f2adbae0cb20c8eaf06914b2187043ea944b0aff Mon Sep 17 00:00:00 2001
-From: Kailang Yang <kailang@realtek.com>
-Date: Wed, 5 Feb 2020 15:40:01 +0800
-Subject: ALSA: hda/realtek - Fixed one of HP ALC671 platform Headset Mic supported
-
-From: Kailang Yang <kailang@realtek.com>
-
-commit f2adbae0cb20c8eaf06914b2187043ea944b0aff upstream.
-
-HP want to keep BIOS verb table for release platform.
-So, it need to add 0x19 pin for quirk.
-
-Fixes: 5af29028fd6d ("ALSA: hda/realtek - Add Headset Mic supported for HP cPC")
-Signed-off-by: Kailang Yang <kailang@realtek.com>
-Link: https://lore.kernel.org/r/74636ccb700a4cbda24c58a99dc430ce@realtek.com
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- sound/pci/hda/patch_realtek.c | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -9304,6 +9304,7 @@ static const struct snd_hda_pin_quirk al
- SND_HDA_PIN_QUIRK(0x10ec0671, 0x103c, "HP cPC", ALC671_FIXUP_HP_HEADSET_MIC2,
- {0x14, 0x01014010},
- {0x17, 0x90170150},
-+ {0x19, 0x02a11060},
- {0x1b, 0x01813030},
- {0x21, 0x02211020}),
- SND_HDA_PIN_QUIRK(0x10ec0671, 0x103c, "HP cPC", ALC671_FIXUP_HP_HEADSET_MIC2,
+++ /dev/null
-From 6e631f1d938fd402205892d0be1a0319a7593335 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 5 Jan 2020 15:47:18 +0100
-Subject: ALSA: hda/realtek - More constifications
-
-From: Takashi Iwai <tiwai@suse.de>
-
-[ Upstream commit 6b0f95c49d890440c01a759c767dfe40e2acdbf2 ]
-
-Apply const prefix to each coef table array.
-
-Just for minor optimization and no functional changes.
-
-Link: https://lore.kernel.org/r/20200105144823.29547-4-tiwai@suse.de
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Stable-dep-of: 4bf5bf54476d ("ALSA: hda/realtek: Add quirk for Lenovo TianYi510Pro-14IOB")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_realtek.c | 118 +++++++++++++++++-----------------
- 1 file changed, 59 insertions(+), 59 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index fe17fb8d7f67..3abe30eec49a 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -956,7 +956,7 @@ struct alc_codec_rename_pci_table {
- const char *name;
- };
-
--static struct alc_codec_rename_table rename_tbl[] = {
-+static const struct alc_codec_rename_table rename_tbl[] = {
- { 0x10ec0221, 0xf00f, 0x1003, "ALC231" },
- { 0x10ec0269, 0xfff0, 0x3010, "ALC277" },
- { 0x10ec0269, 0xf0f0, 0x2010, "ALC259" },
-@@ -977,7 +977,7 @@ static struct alc_codec_rename_table rename_tbl[] = {
- { } /* terminator */
- };
-
--static struct alc_codec_rename_pci_table rename_pci_tbl[] = {
-+static const struct alc_codec_rename_pci_table rename_pci_tbl[] = {
- { 0x10ec0280, 0x1028, 0, "ALC3220" },
- { 0x10ec0282, 0x1028, 0, "ALC3221" },
- { 0x10ec0283, 0x1028, 0, "ALC3223" },
-@@ -3115,7 +3115,7 @@ static void alc269_shutup(struct hda_codec *codec)
- alc_shutup_pins(codec);
- }
-
--static struct coef_fw alc282_coefs[] = {
-+static const struct coef_fw alc282_coefs[] = {
- WRITE_COEF(0x03, 0x0002), /* Power Down Control */
- UPDATE_COEF(0x05, 0xff3f, 0x0700), /* FIFO and filter clock */
- WRITE_COEF(0x07, 0x0200), /* DMIC control */
-@@ -3227,7 +3227,7 @@ static void alc282_shutup(struct hda_codec *codec)
- alc_write_coef_idx(codec, 0x78, coef78);
- }
-
--static struct coef_fw alc283_coefs[] = {
-+static const struct coef_fw alc283_coefs[] = {
- WRITE_COEF(0x03, 0x0002), /* Power Down Control */
- UPDATE_COEF(0x05, 0xff3f, 0x0700), /* FIFO and filter clock */
- WRITE_COEF(0x07, 0x0200), /* DMIC control */
-@@ -4234,7 +4234,7 @@ static void alc269_fixup_hp_line1_mic1_led(struct hda_codec *codec,
- }
- }
-
--static struct coef_fw alc225_pre_hsmode[] = {
-+static const struct coef_fw alc225_pre_hsmode[] = {
- UPDATE_COEF(0x4a, 1<<8, 0),
- UPDATE_COEFEX(0x57, 0x05, 1<<14, 0),
- UPDATE_COEF(0x63, 3<<14, 3<<14),
-@@ -4247,7 +4247,7 @@ static struct coef_fw alc225_pre_hsmode[] = {
-
- static void alc_headset_mode_unplugged(struct hda_codec *codec)
- {
-- static struct coef_fw coef0255[] = {
-+ static const struct coef_fw coef0255[] = {
- WRITE_COEF(0x1b, 0x0c0b), /* LDO and MISC control */
- WRITE_COEF(0x45, 0xd089), /* UAJ function set to menual mode */
- UPDATE_COEFEX(0x57, 0x05, 1<<14, 0), /* Direct Drive HP Amp control(Set to verb control)*/
-@@ -4255,7 +4255,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
- WRITE_COEFEX(0x57, 0x03, 0x8aa6), /* Direct Drive HP Amp control */
- {}
- };
-- static struct coef_fw coef0256[] = {
-+ static const struct coef_fw coef0256[] = {
- WRITE_COEF(0x1b, 0x0c4b), /* LDO and MISC control */
- WRITE_COEF(0x45, 0xd089), /* UAJ function set to menual mode */
- WRITE_COEF(0x06, 0x6104), /* Set MIC2 Vref gate with HP */
-@@ -4263,7 +4263,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
- UPDATE_COEFEX(0x57, 0x05, 1<<14, 0), /* Direct Drive HP Amp control(Set to verb control)*/
- {}
- };
-- static struct coef_fw coef0233[] = {
-+ static const struct coef_fw coef0233[] = {
- WRITE_COEF(0x1b, 0x0c0b),
- WRITE_COEF(0x45, 0xc429),
- UPDATE_COEF(0x35, 0x4000, 0),
-@@ -4273,7 +4273,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
- WRITE_COEF(0x32, 0x42a3),
- {}
- };
-- static struct coef_fw coef0288[] = {
-+ static const struct coef_fw coef0288[] = {
- UPDATE_COEF(0x4f, 0xfcc0, 0xc400),
- UPDATE_COEF(0x50, 0x2000, 0x2000),
- UPDATE_COEF(0x56, 0x0006, 0x0006),
-@@ -4281,18 +4281,18 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
- UPDATE_COEF(0x67, 0x2000, 0),
- {}
- };
-- static struct coef_fw coef0298[] = {
-+ static const struct coef_fw coef0298[] = {
- UPDATE_COEF(0x19, 0x1300, 0x0300),
- {}
- };
-- static struct coef_fw coef0292[] = {
-+ static const struct coef_fw coef0292[] = {
- WRITE_COEF(0x76, 0x000e),
- WRITE_COEF(0x6c, 0x2400),
- WRITE_COEF(0x18, 0x7308),
- WRITE_COEF(0x6b, 0xc429),
- {}
- };
-- static struct coef_fw coef0293[] = {
-+ static const struct coef_fw coef0293[] = {
- UPDATE_COEF(0x10, 7<<8, 6<<8), /* SET Line1 JD to 0 */
- UPDATE_COEFEX(0x57, 0x05, 1<<15|1<<13, 0x0), /* SET charge pump by verb */
- UPDATE_COEFEX(0x57, 0x03, 1<<10, 1<<10), /* SET EN_OSW to 1 */
-@@ -4301,16 +4301,16 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
- UPDATE_COEF(0x4a, 0x000f, 0x000e), /* Combo Jack auto detect */
- {}
- };
-- static struct coef_fw coef0668[] = {
-+ static const struct coef_fw coef0668[] = {
- WRITE_COEF(0x15, 0x0d40),
- WRITE_COEF(0xb7, 0x802b),
- {}
- };
-- static struct coef_fw coef0225[] = {
-+ static const struct coef_fw coef0225[] = {
- UPDATE_COEF(0x63, 3<<14, 0),
- {}
- };
-- static struct coef_fw coef0274[] = {
-+ static const struct coef_fw coef0274[] = {
- UPDATE_COEF(0x4a, 0x0100, 0),
- UPDATE_COEFEX(0x57, 0x05, 0x4000, 0),
- UPDATE_COEF(0x6b, 0xf000, 0x5000),
-@@ -4375,25 +4375,25 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
- static void alc_headset_mode_mic_in(struct hda_codec *codec, hda_nid_t hp_pin,
- hda_nid_t mic_pin)
- {
-- static struct coef_fw coef0255[] = {
-+ static const struct coef_fw coef0255[] = {
- WRITE_COEFEX(0x57, 0x03, 0x8aa6),
- WRITE_COEF(0x06, 0x6100), /* Set MIC2 Vref gate to normal */
- {}
- };
-- static struct coef_fw coef0256[] = {
-+ static const struct coef_fw coef0256[] = {
- UPDATE_COEFEX(0x57, 0x05, 1<<14, 1<<14), /* Direct Drive HP Amp control(Set to verb control)*/
- WRITE_COEFEX(0x57, 0x03, 0x09a3),
- WRITE_COEF(0x06, 0x6100), /* Set MIC2 Vref gate to normal */
- {}
- };
-- static struct coef_fw coef0233[] = {
-+ static const struct coef_fw coef0233[] = {
- UPDATE_COEF(0x35, 0, 1<<14),
- WRITE_COEF(0x06, 0x2100),
- WRITE_COEF(0x1a, 0x0021),
- WRITE_COEF(0x26, 0x008c),
- {}
- };
-- static struct coef_fw coef0288[] = {
-+ static const struct coef_fw coef0288[] = {
- UPDATE_COEF(0x4f, 0x00c0, 0),
- UPDATE_COEF(0x50, 0x2000, 0),
- UPDATE_COEF(0x56, 0x0006, 0),
-@@ -4402,30 +4402,30 @@ static void alc_headset_mode_mic_in(struct hda_codec *codec, hda_nid_t hp_pin,
- UPDATE_COEF(0x67, 0x2000, 0x2000),
- {}
- };
-- static struct coef_fw coef0292[] = {
-+ static const struct coef_fw coef0292[] = {
- WRITE_COEF(0x19, 0xa208),
- WRITE_COEF(0x2e, 0xacf0),
- {}
- };
-- static struct coef_fw coef0293[] = {
-+ static const struct coef_fw coef0293[] = {
- UPDATE_COEFEX(0x57, 0x05, 0, 1<<15|1<<13), /* SET charge pump by verb */
- UPDATE_COEFEX(0x57, 0x03, 1<<10, 0), /* SET EN_OSW to 0 */
- UPDATE_COEF(0x1a, 1<<3, 0), /* Combo JD gating without LINE1-VREFO */
- {}
- };
-- static struct coef_fw coef0688[] = {
-+ static const struct coef_fw coef0688[] = {
- WRITE_COEF(0xb7, 0x802b),
- WRITE_COEF(0xb5, 0x1040),
- UPDATE_COEF(0xc3, 0, 1<<12),
- {}
- };
-- static struct coef_fw coef0225[] = {
-+ static const struct coef_fw coef0225[] = {
- UPDATE_COEFEX(0x57, 0x05, 1<<14, 1<<14),
- UPDATE_COEF(0x4a, 3<<4, 2<<4),
- UPDATE_COEF(0x63, 3<<14, 0),
- {}
- };
-- static struct coef_fw coef0274[] = {
-+ static const struct coef_fw coef0274[] = {
- UPDATE_COEFEX(0x57, 0x05, 0x4000, 0x4000),
- UPDATE_COEF(0x4a, 0x0010, 0),
- UPDATE_COEF(0x6b, 0xf000, 0),
-@@ -4511,7 +4511,7 @@ static void alc_headset_mode_mic_in(struct hda_codec *codec, hda_nid_t hp_pin,
-
- static void alc_headset_mode_default(struct hda_codec *codec)
- {
-- static struct coef_fw coef0225[] = {
-+ static const struct coef_fw coef0225[] = {
- UPDATE_COEF(0x45, 0x3f<<10, 0x30<<10),
- UPDATE_COEF(0x45, 0x3f<<10, 0x31<<10),
- UPDATE_COEF(0x49, 3<<8, 0<<8),
-@@ -4520,14 +4520,14 @@ static void alc_headset_mode_default(struct hda_codec *codec)
- UPDATE_COEF(0x67, 0xf000, 0x3000),
- {}
- };
-- static struct coef_fw coef0255[] = {
-+ static const struct coef_fw coef0255[] = {
- WRITE_COEF(0x45, 0xc089),
- WRITE_COEF(0x45, 0xc489),
- WRITE_COEFEX(0x57, 0x03, 0x8ea6),
- WRITE_COEF(0x49, 0x0049),
- {}
- };
-- static struct coef_fw coef0256[] = {
-+ static const struct coef_fw coef0256[] = {
- WRITE_COEF(0x45, 0xc489),
- WRITE_COEFEX(0x57, 0x03, 0x0da3),
- WRITE_COEF(0x49, 0x0049),
-@@ -4535,12 +4535,12 @@ static void alc_headset_mode_default(struct hda_codec *codec)
- WRITE_COEF(0x06, 0x6100),
- {}
- };
-- static struct coef_fw coef0233[] = {
-+ static const struct coef_fw coef0233[] = {
- WRITE_COEF(0x06, 0x2100),
- WRITE_COEF(0x32, 0x4ea3),
- {}
- };
-- static struct coef_fw coef0288[] = {
-+ static const struct coef_fw coef0288[] = {
- UPDATE_COEF(0x4f, 0xfcc0, 0xc400), /* Set to TRS type */
- UPDATE_COEF(0x50, 0x2000, 0x2000),
- UPDATE_COEF(0x56, 0x0006, 0x0006),
-@@ -4548,26 +4548,26 @@ static void alc_headset_mode_default(struct hda_codec *codec)
- UPDATE_COEF(0x67, 0x2000, 0),
- {}
- };
-- static struct coef_fw coef0292[] = {
-+ static const struct coef_fw coef0292[] = {
- WRITE_COEF(0x76, 0x000e),
- WRITE_COEF(0x6c, 0x2400),
- WRITE_COEF(0x6b, 0xc429),
- WRITE_COEF(0x18, 0x7308),
- {}
- };
-- static struct coef_fw coef0293[] = {
-+ static const struct coef_fw coef0293[] = {
- UPDATE_COEF(0x4a, 0x000f, 0x000e), /* Combo Jack auto detect */
- WRITE_COEF(0x45, 0xC429), /* Set to TRS type */
- UPDATE_COEF(0x1a, 1<<3, 0), /* Combo JD gating without LINE1-VREFO */
- {}
- };
-- static struct coef_fw coef0688[] = {
-+ static const struct coef_fw coef0688[] = {
- WRITE_COEF(0x11, 0x0041),
- WRITE_COEF(0x15, 0x0d40),
- WRITE_COEF(0xb7, 0x802b),
- {}
- };
-- static struct coef_fw coef0274[] = {
-+ static const struct coef_fw coef0274[] = {
- WRITE_COEF(0x45, 0x4289),
- UPDATE_COEF(0x4a, 0x0010, 0x0010),
- UPDATE_COEF(0x6b, 0x0f00, 0),
-@@ -4630,53 +4630,53 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
- {
- int val;
-
-- static struct coef_fw coef0255[] = {
-+ static const struct coef_fw coef0255[] = {
- WRITE_COEF(0x45, 0xd489), /* Set to CTIA type */
- WRITE_COEF(0x1b, 0x0c2b),
- WRITE_COEFEX(0x57, 0x03, 0x8ea6),
- {}
- };
-- static struct coef_fw coef0256[] = {
-+ static const struct coef_fw coef0256[] = {
- WRITE_COEF(0x45, 0xd489), /* Set to CTIA type */
- WRITE_COEF(0x1b, 0x0e6b),
- {}
- };
-- static struct coef_fw coef0233[] = {
-+ static const struct coef_fw coef0233[] = {
- WRITE_COEF(0x45, 0xd429),
- WRITE_COEF(0x1b, 0x0c2b),
- WRITE_COEF(0x32, 0x4ea3),
- {}
- };
-- static struct coef_fw coef0288[] = {
-+ static const struct coef_fw coef0288[] = {
- UPDATE_COEF(0x50, 0x2000, 0x2000),
- UPDATE_COEF(0x56, 0x0006, 0x0006),
- UPDATE_COEF(0x66, 0x0008, 0),
- UPDATE_COEF(0x67, 0x2000, 0),
- {}
- };
-- static struct coef_fw coef0292[] = {
-+ static const struct coef_fw coef0292[] = {
- WRITE_COEF(0x6b, 0xd429),
- WRITE_COEF(0x76, 0x0008),
- WRITE_COEF(0x18, 0x7388),
- {}
- };
-- static struct coef_fw coef0293[] = {
-+ static const struct coef_fw coef0293[] = {
- WRITE_COEF(0x45, 0xd429), /* Set to ctia type */
- UPDATE_COEF(0x10, 7<<8, 7<<8), /* SET Line1 JD to 1 */
- {}
- };
-- static struct coef_fw coef0688[] = {
-+ static const struct coef_fw coef0688[] = {
- WRITE_COEF(0x11, 0x0001),
- WRITE_COEF(0x15, 0x0d60),
- WRITE_COEF(0xc3, 0x0000),
- {}
- };
-- static struct coef_fw coef0225_1[] = {
-+ static const struct coef_fw coef0225_1[] = {
- UPDATE_COEF(0x45, 0x3f<<10, 0x35<<10),
- UPDATE_COEF(0x63, 3<<14, 2<<14),
- {}
- };
-- static struct coef_fw coef0225_2[] = {
-+ static const struct coef_fw coef0225_2[] = {
- UPDATE_COEF(0x45, 0x3f<<10, 0x35<<10),
- UPDATE_COEF(0x63, 3<<14, 1<<14),
- {}
-@@ -4748,48 +4748,48 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
- /* Nokia type */
- static void alc_headset_mode_omtp(struct hda_codec *codec)
- {
-- static struct coef_fw coef0255[] = {
-+ static const struct coef_fw coef0255[] = {
- WRITE_COEF(0x45, 0xe489), /* Set to OMTP Type */
- WRITE_COEF(0x1b, 0x0c2b),
- WRITE_COEFEX(0x57, 0x03, 0x8ea6),
- {}
- };
-- static struct coef_fw coef0256[] = {
-+ static const struct coef_fw coef0256[] = {
- WRITE_COEF(0x45, 0xe489), /* Set to OMTP Type */
- WRITE_COEF(0x1b, 0x0e6b),
- {}
- };
-- static struct coef_fw coef0233[] = {
-+ static const struct coef_fw coef0233[] = {
- WRITE_COEF(0x45, 0xe429),
- WRITE_COEF(0x1b, 0x0c2b),
- WRITE_COEF(0x32, 0x4ea3),
- {}
- };
-- static struct coef_fw coef0288[] = {
-+ static const struct coef_fw coef0288[] = {
- UPDATE_COEF(0x50, 0x2000, 0x2000),
- UPDATE_COEF(0x56, 0x0006, 0x0006),
- UPDATE_COEF(0x66, 0x0008, 0),
- UPDATE_COEF(0x67, 0x2000, 0),
- {}
- };
-- static struct coef_fw coef0292[] = {
-+ static const struct coef_fw coef0292[] = {
- WRITE_COEF(0x6b, 0xe429),
- WRITE_COEF(0x76, 0x0008),
- WRITE_COEF(0x18, 0x7388),
- {}
- };
-- static struct coef_fw coef0293[] = {
-+ static const struct coef_fw coef0293[] = {
- WRITE_COEF(0x45, 0xe429), /* Set to omtp type */
- UPDATE_COEF(0x10, 7<<8, 7<<8), /* SET Line1 JD to 1 */
- {}
- };
-- static struct coef_fw coef0688[] = {
-+ static const struct coef_fw coef0688[] = {
- WRITE_COEF(0x11, 0x0001),
- WRITE_COEF(0x15, 0x0d50),
- WRITE_COEF(0xc3, 0x0000),
- {}
- };
-- static struct coef_fw coef0225[] = {
-+ static const struct coef_fw coef0225[] = {
- UPDATE_COEF(0x45, 0x3f<<10, 0x39<<10),
- UPDATE_COEF(0x63, 3<<14, 2<<14),
- {}
-@@ -4849,17 +4849,17 @@ static void alc_determine_headset_type(struct hda_codec *codec)
- int val;
- bool is_ctia = false;
- struct alc_spec *spec = codec->spec;
-- static struct coef_fw coef0255[] = {
-+ static const struct coef_fw coef0255[] = {
- WRITE_COEF(0x45, 0xd089), /* combo jack auto switch control(Check type)*/
- WRITE_COEF(0x49, 0x0149), /* combo jack auto switch control(Vref
- conteol) */
- {}
- };
-- static struct coef_fw coef0288[] = {
-+ static const struct coef_fw coef0288[] = {
- UPDATE_COEF(0x4f, 0xfcc0, 0xd400), /* Check Type */
- {}
- };
-- static struct coef_fw coef0298[] = {
-+ static const struct coef_fw coef0298[] = {
- UPDATE_COEF(0x50, 0x2000, 0x2000),
- UPDATE_COEF(0x56, 0x0006, 0x0006),
- UPDATE_COEF(0x66, 0x0008, 0),
-@@ -4867,19 +4867,19 @@ static void alc_determine_headset_type(struct hda_codec *codec)
- UPDATE_COEF(0x19, 0x1300, 0x1300),
- {}
- };
-- static struct coef_fw coef0293[] = {
-+ static const struct coef_fw coef0293[] = {
- UPDATE_COEF(0x4a, 0x000f, 0x0008), /* Combo Jack auto detect */
- WRITE_COEF(0x45, 0xD429), /* Set to ctia type */
- {}
- };
-- static struct coef_fw coef0688[] = {
-+ static const struct coef_fw coef0688[] = {
- WRITE_COEF(0x11, 0x0001),
- WRITE_COEF(0xb7, 0x802b),
- WRITE_COEF(0x15, 0x0d60),
- WRITE_COEF(0xc3, 0x0c00),
- {}
- };
-- static struct coef_fw coef0274[] = {
-+ static const struct coef_fw coef0274[] = {
- UPDATE_COEF(0x4a, 0x0010, 0),
- UPDATE_COEF(0x4a, 0x8000, 0),
- WRITE_COEF(0x45, 0xd289),
-@@ -5164,7 +5164,7 @@ static void alc_fixup_headset_mode_no_hp_mic(struct hda_codec *codec,
- static void alc255_set_default_jack_type(struct hda_codec *codec)
- {
- /* Set to iphone type */
-- static struct coef_fw alc255fw[] = {
-+ static const struct coef_fw alc255fw[] = {
- WRITE_COEF(0x1b, 0x880b),
- WRITE_COEF(0x45, 0xd089),
- WRITE_COEF(0x1b, 0x080b),
-@@ -5172,7 +5172,7 @@ static void alc255_set_default_jack_type(struct hda_codec *codec)
- WRITE_COEF(0x1b, 0x0c0b),
- {}
- };
-- static struct coef_fw alc256fw[] = {
-+ static const struct coef_fw alc256fw[] = {
- WRITE_COEF(0x1b, 0x884b),
- WRITE_COEF(0x45, 0xd089),
- WRITE_COEF(0x1b, 0x084b),
-@@ -8549,7 +8549,7 @@ static void alc662_fixup_aspire_ethos_hp(struct hda_codec *codec,
- }
- }
-
--static struct coef_fw alc668_coefs[] = {
-+static const struct coef_fw alc668_coefs[] = {
- WRITE_COEF(0x01, 0xbebe), WRITE_COEF(0x02, 0xaaaa), WRITE_COEF(0x03, 0x0),
- WRITE_COEF(0x04, 0x0180), WRITE_COEF(0x06, 0x0), WRITE_COEF(0x07, 0x0f80),
- WRITE_COEF(0x08, 0x0031), WRITE_COEF(0x0a, 0x0060), WRITE_COEF(0x0b, 0x0),
---
-2.35.1
-
+++ /dev/null
-From 3f997afe6915a117e99439677f69fdf9c66d1780 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 8 Oct 2020 18:56:44 +0800
-Subject: ALSA: hda/realtek - The front Mic on a HP machine doesn't work
-
-From: Jeremy Szu <jeremy.szu@canonical.com>
-
-[ Upstream commit 148ebf548a1af366fc797fcc7d03f0bb92b12a79 ]
-
-On a HP ZCentral, the front Mic could not be detected.
-
-The codec of the HP ZCentrol is alc671 and it needs to override the pin
-configuration to enable the headset mic.
-
-Signed-off-by: Jeremy Szu <jeremy.szu@canonical.com>
-Cc: <stable@vger.kernel.org>
-Link: https://lore.kernel.org/r/20201008105645.65505-1-jeremy.szu@canonical.com
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Stable-dep-of: 4bf5bf54476d ("ALSA: hda/realtek: Add quirk for Lenovo TianYi510Pro-14IOB")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/pci/hda/patch_realtek.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index bb0917b9e68f..a3cc5cc0d668 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -9049,6 +9049,7 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = {
- SND_PCI_QUIRK(0x1028, 0x0698, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
- SND_PCI_QUIRK(0x1028, 0x069f, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
- SND_PCI_QUIRK(0x103c, 0x1632, "HP RP5800", ALC662_FIXUP_HP_RP5800),
-+ SND_PCI_QUIRK(0x103c, 0x873e, "HP", ALC671_FIXUP_HP_HEADSET_MIC2),
- SND_PCI_QUIRK(0x1043, 0x1080, "Asus UX501VW", ALC668_FIXUP_HEADSET_MODE),
- SND_PCI_QUIRK(0x1043, 0x11cd, "Asus N550", ALC662_FIXUP_ASUS_Nx50),
- SND_PCI_QUIRK(0x1043, 0x13df, "Asus N550JX", ALC662_FIXUP_BASS_1A),
---
-2.35.1
-
+++ /dev/null
-From 8bc6d6af4c47438cd8ac86927f6072797bed3786 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 15 Apr 2019 11:14:39 +0200
-Subject: riscv: remove unreachable !HAVE_FUNCTION_GRAPH_RET_ADDR_PTR code
-
-From: Christoph Hellwig <hch@lst.de>
-
-[ Upstream commit 877425424d6c853b804e6b6a6045a5b4ea97c510 ]
-
-HAVE_FUNCTION_GRAPH_RET_ADDR_PTR is always defined for RISC-V.
-
-Signed-off-by: Christoph Hellwig <hch@lst.de>
-Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
-Stable-dep-of: 5c3022e4a616 ("riscv: stacktrace: Fixup ftrace_graph_ret_addr retp argument")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/riscv/kernel/stacktrace.c | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/arch/riscv/kernel/stacktrace.c b/arch/riscv/kernel/stacktrace.c
-index 74b2168d7298..39cd3cf9f06b 100644
---- a/arch/riscv/kernel/stacktrace.c
-+++ b/arch/riscv/kernel/stacktrace.c
-@@ -64,12 +64,8 @@ static void notrace walk_stackframe(struct task_struct *task,
- frame = (struct stackframe *)fp - 1;
- sp = fp;
- fp = frame->fp;
--#ifdef HAVE_FUNCTION_GRAPH_RET_ADDR_PTR
- pc = ftrace_graph_ret_addr(current, NULL, frame->ra,
- (unsigned long *)(fp - 8));
--#else
-- pc = frame->ra - 0x4;
--#endif
- }
- }
-
---
-2.35.1
-
perf-probe-use-dwarf_attr_integrate-as-generic-dwarf.patch
perf-probe-fix-to-get-the-dw_at_decl_file-and-dw_at_.patch
ravb-fix-failed-to-switch-device-to-config-mode-mess.patch
-riscv-remove-unreachable-have_function_graph_ret_add.patch
driver-core-set-deferred_probe_timeout-to-a-longer-d.patch
ext4-goto-right-label-failed_mount3a.patch
ext4-correct-inconsistent-error-msg-in-nojournal-mod.patch
ipv6-raw-deduct-extension-header-length-in-rawv6_push_pending_frames.patch
wifi-wilc1000-sdio-fix-module-autoloading.patch
alsa-hda-hdmi-fix-failures-at-pcm-open-on-intel-icl-.patch
-add-acer-aspire-ethos-8951g-model-quirk.patch
-alsa-hda-realtek-more-constifications.patch
-alsa-hda-realtek-add-headset-mic-supported-for-hp-cp.patch
-alsa-hda-realtek-enable-headset-mic-of-acer-x2660g-w.patch
-alsa-hda-realtek-enable-the-headset-of-acer-n50-600-.patch
-alsa-hda-realtek-the-front-mic-on-a-hp-machine-doesn.patch
-alsa-hda-realtek-fix-the-mic-type-detection-issue-fo.patch
-alsa-hda-realtek-add-headset-mic-support-for-lenovo-.patch
-alsa-hda-realtek-alc897-headset-mic-no-sound.patch
-alsa-hda-realtek-add-quirk-for-lenovo-tianyi510pro-1.patch
ktest-add-support-for-meta-characters-in-grub_menu.patch
ktest-introduce-_get_grub_index.patch
ktest-cleanup-get_grub_index.patch
efi-fix-null-deref-in-init-error-path.patch
revert-usb-ulpi-defer-ulpi_register-on-ulpi_read_id-timeout.patch
tty-serial-tegra-handle-rx-transfer-in-pio-mode-if-dma-wasn-t-started.patch
-alsa-hda-realtek-fix-inverted-bass-gpio-pin-on-acer-8951g.patch
-alsa-hda-realtek-fixed-one-of-hp-alc671-platform-headset-mic-supported.patch
serial-tegra-only-print-fifo-error-message-when-an-error-occurs.patch