From caa351c3d61a0219285297c17fbb8c45847e489c Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Fri, 13 Dec 2019 17:11:19 -0500 Subject: Linux v5.4.3 --- alsa-5.5.patch | 443 --------------------------------------------------------- 1 file changed, 443 deletions(-) (limited to 'alsa-5.5.patch') diff --git a/alsa-5.5.patch b/alsa-5.5.patch index 7b2162a63..c08facb23 100644 --- a/alsa-5.5.patch +++ b/alsa-5.5.patch @@ -1492,67 +1492,6 @@ index 2e5742d095ff..e0e9d4ee180d 100644 2.20.1 -From faecd54be3265217bc7f8499c3f9e1d230ccd05d Mon Sep 17 00:00:00 2001 -From: Takashi Iwai -Date: Mon, 28 Oct 2019 11:58:03 +0100 -Subject: [PATCH 012/130] ALSA: hda - Fix pending unsol events at shutdown - -This is an alternative fix attemp for the issue reported in the commit -caa8422d01e9 ("ALSA: hda: Flush interrupts on disabling") that was -reverted later due to regressions. Instead of tweaking the hardware -disablement order and the enforced irq flushing, do calling -cancel_work_sync() of the unsol work early enough, and explicitly -ignore the unsol events during the shutdown by checking the -bus->shutdown flag. - -Fixes: caa8422d01e9 ("ALSA: hda: Flush interrupts on disabling") -Cc: Chris Wilson -Link: https://lore.kernel.org/r/s5h1ruxt9cz.wl-tiwai@suse.de -Signed-off-by: Takashi Iwai - -Signed-off-by: Jaroslav Kysela -(cherry picked from commit ca58f55108fee41d87c9123f85ad4863e5de7f45) -Bugzilla: 1772498 ---- - sound/pci/hda/hda_bind.c | 4 ++++ - sound/pci/hda/hda_intel.c | 3 +++ - 2 files changed, 7 insertions(+) - -diff --git a/sound/pci/hda/hda_bind.c b/sound/pci/hda/hda_bind.c -index 8272b50b8349..6a8564566375 100644 ---- a/sound/pci/hda/hda_bind.c -+++ b/sound/pci/hda/hda_bind.c -@@ -43,6 +43,10 @@ static void hda_codec_unsol_event(struct hdac_device *dev, unsigned int ev) - { - struct hda_codec *codec = container_of(dev, struct hda_codec, core); - -+ /* ignore unsol events during shutdown */ -+ if (codec->bus->shutdown) -+ return; -+ - if (codec->patch_ops.unsol_event) - codec->patch_ops.unsol_event(codec, ev); - } -diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c -index e0e9d4ee180d..8981109e3565 100644 ---- a/sound/pci/hda/hda_intel.c -+++ b/sound/pci/hda/hda_intel.c -@@ -1389,8 +1389,11 @@ static int azx_free(struct azx *chip) - static int azx_dev_disconnect(struct snd_device *device) - { - struct azx *chip = device->device_data; -+ struct hdac_bus *bus = azx_bus(chip); - - chip->bus.shutdown = 1; -+ cancel_work_sync(&bus->unsol_work); -+ - return 0; - } - --- -2.20.1 - - From e3eb037a46c5b6771e9336bb493063dbffb90e04 Mon Sep 17 00:00:00 2001 From: Kai Vehmanen Date: Tue, 29 Oct 2019 15:40:09 +0200 @@ -10529,106 +10468,6 @@ index 4c83ed4b0d5c..4ebe104cb592 100644 2.20.1 -From 98b36775111220537b7a2c33c8c0b65c79541df7 Mon Sep 17 00:00:00 2001 -From: Hui Wang -Date: Thu, 21 Nov 2019 10:54:27 +0800 -Subject: [PATCH 105/130] ALSA: hda/realtek - Enable the headset-mic on a - Xiaomi's laptop - -The headset on this machine is not defined, after applying the quirk -ALC256_FIXUP_ASUS_HEADSET_MIC, the headset-mic works well - -BugLink: https://bugs.launchpad.net/bugs/1846148 -Cc: -Signed-off-by: Hui Wang -Link: https://lore.kernel.org/r/20191121025427.8856-1-hui.wang@canonical.com -Signed-off-by: Takashi Iwai - -Signed-off-by: Jaroslav Kysela -(cherry picked from commit 695d1ec3994f9de2cefae80ee2087c95d2e5a2f3) -Bugzilla: 1772498 ---- - 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 4ebe104cb592..bd0c767981b1 100644 ---- a/sound/pci/hda/patch_realtek.c -+++ b/sound/pci/hda/patch_realtek.c -@@ -7248,6 +7248,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { - SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD), - SND_PCI_QUIRK(0x19e5, 0x3204, "Huawei MACH-WX9", ALC256_FIXUP_HUAWEI_MACH_WX9_PINS), - SND_PCI_QUIRK(0x1b7d, 0xa831, "Ordissimo EVE2 ", ALC269VB_FIXUP_ORDISSIMO_EVE2), /* Also known as Malata PC-B1303 */ -+ SND_PCI_QUIRK(0x1d72, 0x1901, "RedmiBook 14", ALC256_FIXUP_ASUS_HEADSET_MIC), - SND_PCI_QUIRK(0x10ec, 0x118c, "Medion EE4254 MD62100", ALC256_FIXUP_MEDION_HEADSET_NO_PRESENCE), - - #if 0 --- -2.20.1 - - -From 68b55950038f262d8f2675fa0ccb76bcf9ad398e Mon Sep 17 00:00:00 2001 -From: Jian-Hong Pan -Date: Mon, 25 Nov 2019 17:34:06 +0800 -Subject: [PATCH 106/130] ALSA: hda/realtek - Enable internal speaker of ASUS - UX431FLC - -Laptops like ASUS UX431FLC and UX431FL can share the same audio quirks. -But UX431FLC needs one more step to enable the internal speaker: Pull -the GPIO from CODEC to initialize the AMP. - -Fixes: 60083f9e94b2 ("ALSA: hda/realtek - Enable internal speaker & headset mic of ASUS UX431FL") -Signed-off-by: Jian-Hong Pan -Cc: -Link: https://lore.kernel.org/r/20191125093405.5702-1-jian-hong@endlessm.com -Signed-off-by: Takashi Iwai - -Signed-off-by: Jaroslav Kysela -(cherry picked from commit 436e25505f3458cc92c7f3c985e9cbc198a98209) -Bugzilla: 1772498 ---- - sound/pci/hda/patch_realtek.c | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c -index bd0c767981b1..d2bf70a1d2fd 100644 ---- a/sound/pci/hda/patch_realtek.c -+++ b/sound/pci/hda/patch_realtek.c -@@ -5892,6 +5892,7 @@ enum { - ALC299_FIXUP_PREDATOR_SPK, - ALC294_FIXUP_ASUS_INTSPK_HEADSET_MIC, - ALC256_FIXUP_MEDION_HEADSET_NO_PRESENCE, -+ ALC294_FIXUP_ASUS_INTSPK_GPIO, - }; - - static const struct hda_fixup alc269_fixups[] = { -@@ -6982,6 +6983,13 @@ static const struct hda_fixup alc269_fixups[] = { - .chained = true, - .chain_id = ALC256_FIXUP_ASUS_HEADSET_MODE - }, -+ [ALC294_FIXUP_ASUS_INTSPK_GPIO] = { -+ .type = HDA_FIXUP_FUNC, -+ /* The GPIO must be pulled to initialize the AMP */ -+ .v.func = alc_fixup_gpio4, -+ .chained = true, -+ .chain_id = ALC294_FIXUP_ASUS_INTSPK_HEADSET_MIC -+ }, - }; - - static const struct snd_pci_quirk alc269_fixup_tbl[] = { -@@ -7141,7 +7149,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { - SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_ASUS_ZENBOOK), - 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, 0x17d1, "ASUS UX431FL", ALC294_FIXUP_ASUS_INTSPK_HEADSET_MIC), -+ SND_PCI_QUIRK(0x1043, 0x17d1, "ASUS UX431FL", ALC294_FIXUP_ASUS_INTSPK_GPIO), - SND_PCI_QUIRK(0x1043, 0x18b1, "Asus MJ401TA", ALC256_FIXUP_ASUS_HEADSET_MIC), - SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW), - SND_PCI_QUIRK(0x1043, 0x1a30, "ASUS X705UD", ALC256_FIXUP_ASUS_MIC), --- -2.20.1 - - From 268e8ce52ad4278f6b94792483d3f8510b435b3e Mon Sep 17 00:00:00 2001 From: Jens Verwiebe Date: Sun, 24 Nov 2019 13:35:44 +0100 @@ -11847,112 +11686,6 @@ index 9c1aa4ec9cba..dd2b5ad08659 100644 2.20.1 -From 04e4b5accb0405d3ba338dd244fc9c4510f8cd3e Mon Sep 17 00:00:00 2001 -From: Takashi Iwai -Date: Mon, 2 Dec 2019 08:49:47 +0100 -Subject: [PATCH 123/130] ALSA: hda: Modify stream stripe mask only when needed - -The recent commit in HD-audio stream management for changing the -stripe control seems causing a regression on some platforms. The -stripe control is currently used only by HDMI codec, and applying the -stripe mask unconditionally may lead to scratchy and static noises as -seen on some MacBooks. - -For addressing the regression, this patch changes the stream -management code to apply the stripe mask conditionally only when the -codec driver requested. - -Fixes: 9b6f7e7a296e ("ALSA: hda: program stripe bits for controller") -BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=204477 -Cc: -Link: https://lore.kernel.org/r/20191202074947.1617-1-tiwai@suse.de -Signed-off-by: Takashi Iwai - -Signed-off-by: Jaroslav Kysela -(cherry picked from commit cb50445130d14a5a609d7cd88db9d0436313c881) -Bugzilla: 1772498 ---- - include/sound/hdaudio.h | 1 + - sound/hda/hdac_stream.c | 19 ++++++++++++------- - sound/pci/hda/patch_hdmi.c | 5 +++++ - 3 files changed, 18 insertions(+), 7 deletions(-) - -diff --git a/include/sound/hdaudio.h b/include/sound/hdaudio.h -index b260c5fd2337..e05b95e83d5a 100644 ---- a/include/sound/hdaudio.h -+++ b/include/sound/hdaudio.h -@@ -493,6 +493,7 @@ struct hdac_stream { - bool prepared:1; - bool no_period_wakeup:1; - bool locked:1; -+ bool stripe:1; /* apply stripe control */ - - /* timestamp */ - unsigned long start_wallclk; /* start + minimum wallclk */ -diff --git a/sound/hda/hdac_stream.c b/sound/hda/hdac_stream.c -index d8fe7ff0cd58..f9707fb05efe 100644 ---- a/sound/hda/hdac_stream.c -+++ b/sound/hda/hdac_stream.c -@@ -96,12 +96,14 @@ void snd_hdac_stream_start(struct hdac_stream *azx_dev, bool fresh_start) - 1 << azx_dev->index, - 1 << azx_dev->index); - /* set stripe control */ -- if (azx_dev->substream) -- stripe_ctl = snd_hdac_get_stream_stripe_ctl(bus, azx_dev->substream); -- else -- stripe_ctl = 0; -- snd_hdac_stream_updateb(azx_dev, SD_CTL_3B, SD_CTL_STRIPE_MASK, -- stripe_ctl); -+ if (azx_dev->stripe) { -+ if (azx_dev->substream) -+ stripe_ctl = snd_hdac_get_stream_stripe_ctl(bus, azx_dev->substream); -+ else -+ stripe_ctl = 0; -+ snd_hdac_stream_updateb(azx_dev, SD_CTL_3B, SD_CTL_STRIPE_MASK, -+ stripe_ctl); -+ } - /* set DMA start and interrupt mask */ - snd_hdac_stream_updateb(azx_dev, SD_CTL, - 0, SD_CTL_DMA_START | SD_INT_MASK); -@@ -118,7 +120,10 @@ void snd_hdac_stream_clear(struct hdac_stream *azx_dev) - snd_hdac_stream_updateb(azx_dev, SD_CTL, - SD_CTL_DMA_START | SD_INT_MASK, 0); - snd_hdac_stream_writeb(azx_dev, SD_STS, SD_INT_MASK); /* to be sure */ -- snd_hdac_stream_updateb(azx_dev, SD_CTL_3B, SD_CTL_STRIPE_MASK, 0); -+ if (azx_dev->stripe) { -+ snd_hdac_stream_updateb(azx_dev, SD_CTL_3B, SD_CTL_STRIPE_MASK, 0); -+ azx_dev->stripe = 0; -+ } - azx_dev->running = false; - } - EXPORT_SYMBOL_GPL(snd_hdac_stream_clear); -diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c -index 71848dce0025..b35652cae616 100644 ---- a/sound/pci/hda/patch_hdmi.c -+++ b/sound/pci/hda/patch_hdmi.c -@@ -32,6 +32,7 @@ - #include - #include "hda_local.h" - #include "hda_jack.h" -+#include "hda_controller.h" - - static bool static_hdmi_pcm; - module_param(static_hdmi_pcm, bool, 0644); -@@ -1222,6 +1223,10 @@ static int hdmi_pcm_open(struct hda_pcm_stream *hinfo, - per_pin->cvt_nid = per_cvt->cvt_nid; - hinfo->nid = per_cvt->cvt_nid; - -+ /* flip stripe flag for the assigned stream if supported */ -+ if (get_wcaps(codec, per_cvt->cvt_nid) & AC_WCAP_STRIPE) -+ azx_stream(get_azx_dev(substream))->stripe = 1; -+ - snd_hda_set_dev_select(codec, per_pin->pin_nid, per_pin->dev_id); - snd_hda_codec_write_cache(codec, per_pin->pin_nid, 0, - AC_VERB_SET_CONNECT_SEL, --- -2.20.1 - - From 418156f40c1686839ff690363a6174049cebf3e8 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Fri, 29 Nov 2019 15:40:27 +0100 @@ -12222,179 +11955,3 @@ index ff098957e30f..bc64d1565868 100644 /* VIA GFX VT7122/VX900 */ -- 2.20.1 - - -From 0caa4b472c884305fe9412cfbab077ad043e92c4 Mon Sep 17 00:00:00 2001 -From: Kai-Heng Feng -Date: Wed, 20 Nov 2019 16:20:35 +0800 -Subject: [PATCH 128/130] ALSA: hda - Add mute led support for HP ProBook 645 - G4 - -Mic mute led does not work on HP ProBook 645 G4. -We can use CXT_FIXUP_MUTE_LED_GPIO fixup to support it. - -Signed-off-by: Kai-Heng Feng -Cc: -Link: https://lore.kernel.org/r/20191120082035.18937-1-kai.heng.feng@canonical.com -Signed-off-by: Takashi Iwai - -Signed-off-by: Jaroslav Kysela -(cherry picked from commit e190de6941db14813032af87873f5550ad5764fe) -Bugzilla: 1772498 ---- - sound/pci/hda/patch_conexant.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c -index 968d3caab6ac..90aa0f400a57 100644 ---- a/sound/pci/hda/patch_conexant.c -+++ b/sound/pci/hda/patch_conexant.c -@@ -910,6 +910,7 @@ static const struct snd_pci_quirk cxt5066_fixups[] = { - SND_PCI_QUIRK(0x103c, 0x837f, "HP ProBook 470 G5", CXT_FIXUP_MUTE_LED_GPIO), - SND_PCI_QUIRK(0x103c, 0x8299, "HP 800 G3 SFF", CXT_FIXUP_HP_MIC_NO_PRESENCE), - SND_PCI_QUIRK(0x103c, 0x829a, "HP 800 G3 DM", CXT_FIXUP_HP_MIC_NO_PRESENCE), -+ SND_PCI_QUIRK(0x103c, 0x8402, "HP ProBook 645 G4", CXT_FIXUP_MUTE_LED_GPIO), - SND_PCI_QUIRK(0x103c, 0x8455, "HP Z2 G4", CXT_FIXUP_HP_MIC_NO_PRESENCE), - SND_PCI_QUIRK(0x103c, 0x8456, "HP Z2 G4 SFF", CXT_FIXUP_HP_MIC_NO_PRESENCE), - SND_PCI_QUIRK(0x103c, 0x8457, "HP Z2 G4 mini", CXT_FIXUP_HP_MIC_NO_PRESENCE), --- -2.20.1 - - -From addcf5abf004336c8a1a29244a1bbcf66a08414f Mon Sep 17 00:00:00 2001 -From: Takashi Iwai -Date: Thu, 28 Nov 2019 21:26:30 +0100 -Subject: [PATCH 129/130] ALSA: hda/realtek - Fix inverted bass GPIO pin on - Acer 8951G - -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 -Cc: -Link: https://lore.kernel.org/r/20191128202630.6626-1-tiwai@suse.de -Signed-off-by: Takashi Iwai - -Signed-off-by: Jaroslav Kysela -(cherry picked from commit 336820c4374bc065317f247dc2bb37c0e41b64a6) -Bugzilla: 1772498 ---- - sound/pci/hda/patch_realtek.c | 17 +++-------------- - 1 file changed, 3 insertions(+), 14 deletions(-) - -diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c -index a596790d4245..c84cabadaf69 100644 ---- a/sound/pci/hda/patch_realtek.c -+++ b/sound/pci/hda/patch_realtek.c -@@ -8441,6 +8441,8 @@ static void alc662_fixup_aspire_ethos_hp(struct hda_codec *codec, - 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 -@@ -8523,7 +8525,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, - }; - -@@ -8855,18 +8856,6 @@ static const struct hda_fixup alc662_fixups[] = { - .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[]) { -@@ -8876,7 +8865,7 @@ static const struct hda_fixup alc662_fixups[] = { - { } - }, - .chained = true, -- .chain_id = ALC669_FIXUP_ACER_ASPIRE_ETHOS_SUBWOOFER -+ .chain_id = ALC669_FIXUP_ACER_ASPIRE_ETHOS_HEADSET - }, - }; - --- -2.20.1 - - -From 251ba1fbf100a47f2e4599dada0bf75cc8f8f65b Mon Sep 17 00:00:00 2001 -From: Kailang Yang -Date: Tue, 26 Nov 2019 17:04:23 +0800 -Subject: [PATCH 130/130] ALSA: hda/realtek - Dell headphone has noise on - unmute for ALC236 - -headphone have noise even the volume is very small. -Let it fill up pcbeep hidden register to default value. -The issue was gone. - -Fixes: 4344aec84bd8 ("ALSA: hda/realtek - New codec support for ALC256") -Fixes: 736f20a70608 ("ALSA: hda/realtek - Add support for ALC236/ALC3204") -Signed-off-by: Kailang Yang -Cc: -Link: https://lore.kernel.org/r/9ae47f23a64d4e41a9c81e263cd8a250@realtek.com -Signed-off-by: Takashi Iwai - -Signed-off-by: Jaroslav Kysela -(cherry picked from commit e1e8c1fdce8b00fce08784d9d738c60ebf598ebc) -Bugzilla: 1772498 ---- - sound/pci/hda/patch_realtek.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c -index c84cabadaf69..6d6e34b3b3aa 100644 ---- a/sound/pci/hda/patch_realtek.c -+++ b/sound/pci/hda/patch_realtek.c -@@ -367,9 +367,7 @@ static void alc_fill_eapd_coef(struct hda_codec *codec) - case 0x10ec0215: - case 0x10ec0233: - case 0x10ec0235: -- case 0x10ec0236: - case 0x10ec0255: -- case 0x10ec0256: - case 0x10ec0257: - case 0x10ec0282: - case 0x10ec0283: -@@ -381,6 +379,11 @@ static void alc_fill_eapd_coef(struct hda_codec *codec) - case 0x10ec0300: - alc_update_coef_idx(codec, 0x10, 1<<9, 0); - break; -+ case 0x10ec0236: -+ case 0x10ec0256: -+ alc_write_coef_idx(codec, 0x36, 0x5757); -+ alc_update_coef_idx(codec, 0x10, 1<<9, 0); -+ break; - case 0x10ec0275: - alc_update_coef_idx(codec, 0xe, 0, 1<<0); - break; --- -2.20.1 - -- cgit