From cfa2fea5a62a1b82ae168a5a4598b70f72e94185 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Sun, 20 Feb 2022 12:37:57 +0100 Subject: [PATCH] 4.19-stable patches added patches: alsa-hda-fix-missing-codec-probe-on-shenker-dock-15.patch alsa-hda-fix-regression-on-forced-probe-mask-option.patch asoc-ops-fix-stereo-change-notifications-in-snd_soc_put_volsw.patch asoc-ops-fix-stereo-change-notifications-in-snd_soc_put_volsw_range.patch powerpc-lib-sstep-fix-ptesync-build-error.patch --- ...ssing-codec-probe-on-shenker-dock-15.patch | 33 ++++++++++ ...gression-on-forced-probe-mask-option.patch | 45 ++++++++++++++ ...e-notifications-in-snd_soc_put_volsw.patch | 56 +++++++++++++++++ ...fications-in-snd_soc_put_volsw_range.patch | 62 +++++++++++++++++++ ...pc-lib-sstep-fix-ptesync-build-error.patch | 56 +++++++++++++++++ queue-4.19/series | 5 ++ 6 files changed, 257 insertions(+) create mode 100644 queue-4.19/alsa-hda-fix-missing-codec-probe-on-shenker-dock-15.patch create mode 100644 queue-4.19/alsa-hda-fix-regression-on-forced-probe-mask-option.patch create mode 100644 queue-4.19/asoc-ops-fix-stereo-change-notifications-in-snd_soc_put_volsw.patch create mode 100644 queue-4.19/asoc-ops-fix-stereo-change-notifications-in-snd_soc_put_volsw_range.patch create mode 100644 queue-4.19/powerpc-lib-sstep-fix-ptesync-build-error.patch diff --git a/queue-4.19/alsa-hda-fix-missing-codec-probe-on-shenker-dock-15.patch b/queue-4.19/alsa-hda-fix-missing-codec-probe-on-shenker-dock-15.patch new file mode 100644 index 00000000000..a9916e9e0d4 --- /dev/null +++ b/queue-4.19/alsa-hda-fix-missing-codec-probe-on-shenker-dock-15.patch @@ -0,0 +1,33 @@ +From dd8e5b161d7fb9cefa1f1d6e35a39b9e1563c8d3 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Mon, 14 Feb 2022 11:00:20 +0100 +Subject: ALSA: hda: Fix missing codec probe on Shenker Dock 15 + +From: Takashi Iwai + +commit dd8e5b161d7fb9cefa1f1d6e35a39b9e1563c8d3 upstream. + +By some unknown reason, BIOS on Shenker Dock 15 doesn't set up the +codec mask properly for the onboard audio. Let's set the forced codec +mask to enable the codec discovery. + +Reported-by: dmummenschanz@web.de +Cc: +Link: https://lore.kernel.org/r/trinity-f018660b-95c9-442b-a2a8-c92a56eb07ed-1644345967148@3c-app-webde-bap22 +Link: https://lore.kernel.org/r/20220214100020.8870-2-tiwai@suse.de +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman +--- + sound/pci/hda/hda_intel.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sound/pci/hda/hda_intel.c ++++ b/sound/pci/hda/hda_intel.c +@@ -1674,6 +1674,7 @@ static struct snd_pci_quirk probe_mask_l + /* forced codec slots */ + SND_PCI_QUIRK(0x1043, 0x1262, "ASUS W5Fm", 0x103), + SND_PCI_QUIRK(0x1046, 0x1262, "ASUS W5F", 0x103), ++ SND_PCI_QUIRK(0x1558, 0x0351, "Schenker Dock 15", 0x105), + /* WinFast VP200 H (Teradici) user reported broken communication */ + SND_PCI_QUIRK(0x3a21, 0x040d, "WinFast VP200 H", 0x101), + {} diff --git a/queue-4.19/alsa-hda-fix-regression-on-forced-probe-mask-option.patch b/queue-4.19/alsa-hda-fix-regression-on-forced-probe-mask-option.patch new file mode 100644 index 00000000000..1793d5af13b --- /dev/null +++ b/queue-4.19/alsa-hda-fix-regression-on-forced-probe-mask-option.patch @@ -0,0 +1,45 @@ +From 6317f7449348a897483a2b4841f7a9190745c81b Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Mon, 14 Feb 2022 11:00:19 +0100 +Subject: ALSA: hda: Fix regression on forced probe mask option + +From: Takashi Iwai + +commit 6317f7449348a897483a2b4841f7a9190745c81b upstream. + +The forced probe mask via probe_mask 0x100 bit doesn't work any longer +as expected since the bus init code was moved and it's clearing the +codec_mask value that was set beforehand. This patch fixes the +long-time regression by moving the check_probe_mask() call. + +Fixes: a41d122449be ("ALSA: hda - Embed bus into controller object") +Reported-by: dmummenschanz@web.de +Cc: +Link: https://lore.kernel.org/r/trinity-f018660b-95c9-442b-a2a8-c92a56eb07ed-1644345967148@3c-app-webde-bap22 +Link: https://lore.kernel.org/r/20220214100020.8870-1-tiwai@suse.de +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman +--- + sound/pci/hda/hda_intel.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/sound/pci/hda/hda_intel.c ++++ b/sound/pci/hda/hda_intel.c +@@ -1859,8 +1859,6 @@ static int azx_create(struct snd_card *c + + assign_position_fix(chip, check_position_fix(chip, position_fix[dev])); + +- check_probe_mask(chip, dev); +- + if (single_cmd < 0) /* allow fallback to single_cmd at errors */ + chip->fallback_to_single_cmd = 1; + else /* explicitly set to single_cmd or not */ +@@ -1889,6 +1887,8 @@ static int azx_create(struct snd_card *c + chip->bus.needs_damn_long_delay = 1; + } + ++ check_probe_mask(chip, dev); ++ + err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops); + if (err < 0) { + dev_err(card->dev, "Error creating device [card]!\n"); diff --git a/queue-4.19/asoc-ops-fix-stereo-change-notifications-in-snd_soc_put_volsw.patch b/queue-4.19/asoc-ops-fix-stereo-change-notifications-in-snd_soc_put_volsw.patch new file mode 100644 index 00000000000..e0866d3a2a2 --- /dev/null +++ b/queue-4.19/asoc-ops-fix-stereo-change-notifications-in-snd_soc_put_volsw.patch @@ -0,0 +1,56 @@ +From 564778d7b1ea465f9487eedeece7527a033549c5 Mon Sep 17 00:00:00 2001 +From: Mark Brown +Date: Tue, 1 Feb 2022 15:56:26 +0000 +Subject: ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw() + +From: Mark Brown + +commit 564778d7b1ea465f9487eedeece7527a033549c5 upstream. + +When writing out a stereo control we discard the change notification from +the first channel, meaning that events are only generated based on changes +to the second channel. Ensure that we report a change if either channel +has changed. + +Signed-off-by: Mark Brown +Cc: stable@vger.kernel.org +Link: https://lore.kernel.org/r/20220201155629.120510-2-broonie@kernel.org +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman +--- + sound/soc/soc-ops.c | 14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) + +--- a/sound/soc/soc-ops.c ++++ b/sound/soc/soc-ops.c +@@ -314,7 +314,7 @@ int snd_soc_put_volsw(struct snd_kcontro + unsigned int sign_bit = mc->sign_bit; + unsigned int mask = (1 << fls(max)) - 1; + unsigned int invert = mc->invert; +- int err; ++ int err, ret; + bool type_2r = false; + unsigned int val2 = 0; + unsigned int val, val_mask; +@@ -356,12 +356,18 @@ int snd_soc_put_volsw(struct snd_kcontro + err = snd_soc_component_update_bits(component, reg, val_mask, val); + if (err < 0) + return err; ++ ret = err; + +- if (type_2r) ++ if (type_2r) { + err = snd_soc_component_update_bits(component, reg2, val_mask, +- val2); ++ val2); ++ /* Don't discard any error code or drop change flag */ ++ if (ret == 0 || err < 0) { ++ ret = err; ++ } ++ } + +- return err; ++ return ret; + } + EXPORT_SYMBOL_GPL(snd_soc_put_volsw); + diff --git a/queue-4.19/asoc-ops-fix-stereo-change-notifications-in-snd_soc_put_volsw_range.patch b/queue-4.19/asoc-ops-fix-stereo-change-notifications-in-snd_soc_put_volsw_range.patch new file mode 100644 index 00000000000..7ef2a0de930 --- /dev/null +++ b/queue-4.19/asoc-ops-fix-stereo-change-notifications-in-snd_soc_put_volsw_range.patch @@ -0,0 +1,62 @@ +From 650204ded3703b5817bd4b6a77fa47d333c4f902 Mon Sep 17 00:00:00 2001 +From: Mark Brown +Date: Tue, 1 Feb 2022 15:56:28 +0000 +Subject: ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw_range() + +From: Mark Brown + +commit 650204ded3703b5817bd4b6a77fa47d333c4f902 upstream. + +When writing out a stereo control we discard the change notification from +the first channel, meaning that events are only generated based on changes +to the second channel. Ensure that we report a change if either channel +has changed. + +Signed-off-by: Mark Brown +Cc: stable@vger.kernel.org +Link: https://lore.kernel.org/r/20220201155629.120510-4-broonie@kernel.org +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman +--- + sound/soc/soc-ops.c | 15 ++++++++++----- + 1 file changed, 10 insertions(+), 5 deletions(-) + +--- a/sound/soc/soc-ops.c ++++ b/sound/soc/soc-ops.c +@@ -523,7 +523,7 @@ int snd_soc_put_volsw_range(struct snd_k + unsigned int mask = (1 << fls(max)) - 1; + unsigned int invert = mc->invert; + unsigned int val, val_mask; +- int ret; ++ int err, ret; + + if (invert) + val = (max - ucontrol->value.integer.value[0]) & mask; +@@ -532,9 +532,10 @@ int snd_soc_put_volsw_range(struct snd_k + val_mask = mask << shift; + val = val << shift; + +- ret = snd_soc_component_update_bits(component, reg, val_mask, val); +- if (ret < 0) +- return ret; ++ err = snd_soc_component_update_bits(component, reg, val_mask, val); ++ if (err < 0) ++ return err; ++ ret = err; + + if (snd_soc_volsw_is_stereo(mc)) { + if (invert) +@@ -544,8 +545,12 @@ int snd_soc_put_volsw_range(struct snd_k + val_mask = mask << shift; + val = val << shift; + +- ret = snd_soc_component_update_bits(component, rreg, val_mask, ++ err = snd_soc_component_update_bits(component, rreg, val_mask, + val); ++ /* Don't discard any error code or drop change flag */ ++ if (ret == 0 || err < 0) { ++ ret = err; ++ } + } + + return ret; diff --git a/queue-4.19/powerpc-lib-sstep-fix-ptesync-build-error.patch b/queue-4.19/powerpc-lib-sstep-fix-ptesync-build-error.patch new file mode 100644 index 00000000000..a5c8b16aafc --- /dev/null +++ b/queue-4.19/powerpc-lib-sstep-fix-ptesync-build-error.patch @@ -0,0 +1,56 @@ +From fe663df7825811358531dc2e8a52d9eaa5e3515e Mon Sep 17 00:00:00 2001 +From: Anders Roxell +Date: Fri, 11 Feb 2022 01:51:13 +0100 +Subject: powerpc/lib/sstep: fix 'ptesync' build error + +From: Anders Roxell + +commit fe663df7825811358531dc2e8a52d9eaa5e3515e upstream. + +Building tinyconfig with gcc (Debian 11.2.0-16) and assembler (Debian +2.37.90.20220207) the following build error shows up: + + {standard input}: Assembler messages: + {standard input}:2088: Error: unrecognized opcode: `ptesync' + make[3]: *** [/builds/linux/scripts/Makefile.build:287: arch/powerpc/lib/sstep.o] Error 1 + +Add the 'ifdef CONFIG_PPC64' around the 'ptesync' in function +'emulate_update_regs()' to like it is in 'analyse_instr()'. Since it looks like +it got dropped inadvertently by commit 3cdfcbfd32b9 ("powerpc: Change +analyse_instr so it doesn't modify *regs"). + +A key detail is that analyse_instr() will never recognise lwsync or +ptesync on 32-bit (because of the existing ifdef), and as a result +emulate_update_regs() should never be called with an op specifying +either of those on 32-bit. So removing them from emulate_update_regs() +should be a nop in terms of runtime behaviour. + +Fixes: 3cdfcbfd32b9 ("powerpc: Change analyse_instr so it doesn't modify *regs") +Cc: stable@vger.kernel.org # v4.14+ +Suggested-by: Arnd Bergmann +Signed-off-by: Anders Roxell +[mpe: Add last paragraph of change log mentioning analyse_instr() details] +Signed-off-by: Michael Ellerman +Link: https://lore.kernel.org/r/20220211005113.1361436-1-anders.roxell@linaro.org +Signed-off-by: Greg Kroah-Hartman +--- + arch/powerpc/lib/sstep.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/arch/powerpc/lib/sstep.c ++++ b/arch/powerpc/lib/sstep.c +@@ -2681,12 +2681,14 @@ void emulate_update_regs(struct pt_regs + case BARRIER_EIEIO: + eieio(); + break; ++#ifdef CONFIG_PPC64 + case BARRIER_LWSYNC: + asm volatile("lwsync" : : : "memory"); + break; + case BARRIER_PTESYNC: + asm volatile("ptesync" : : : "memory"); + break; ++#endif + } + break; + diff --git a/queue-4.19/series b/queue-4.19/series index ed7da2c9ef6..c0a0b198afa 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -28,3 +28,8 @@ ping-fix-the-dif-and-sdif-check-in-ping_lookup.patch drop_monitor-fix-data-race-in-dropmon_net_event-trace_napi_poll_hit.patch bonding-fix-data-races-around-agg_select_timer.patch libsubcmd-fix-use-after-free-for-realloc-...-0.patch +alsa-hda-fix-regression-on-forced-probe-mask-option.patch +alsa-hda-fix-missing-codec-probe-on-shenker-dock-15.patch +asoc-ops-fix-stereo-change-notifications-in-snd_soc_put_volsw.patch +asoc-ops-fix-stereo-change-notifications-in-snd_soc_put_volsw_range.patch +powerpc-lib-sstep-fix-ptesync-build-error.patch -- 2.47.3