From: Greg Kroah-Hartman Date: Tue, 1 Oct 2024 09:57:12 +0000 (+0200) Subject: 5.15-stable patches X-Git-Tag: v6.6.54~90 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c8345c30648cff150be82bee76d208f4ce90a434;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: asoc-rt5682-return-devm_of_clk_add_hw_provider-to-transfer-the-error.patch input-i8042-add-another-board-name-for-tuxedo-stellaris-gen5-amd-line.patch input-i8042-add-tuxedo-stellaris-15-slim-gen6-amd-to-i8042-quirk-table.patch input-i8042-add-tuxedo-stellaris-16-gen5-amd-to-i8042-quirk-table.patch pci-xilinx-nwl-fix-off-by-one-in-intx-irq-handler.patch revert-media-tuners-fix-error-return-code-of-hybrid_tuner_request_state.patch soc-versatile-integrator-fix-of-node-leak-in-probe-error-path.patch --- diff --git a/queue-5.15/asoc-rt5682-return-devm_of_clk_add_hw_provider-to-transfer-the-error.patch b/queue-5.15/asoc-rt5682-return-devm_of_clk_add_hw_provider-to-transfer-the-error.patch new file mode 100644 index 00000000000..dc7278a4e56 --- /dev/null +++ b/queue-5.15/asoc-rt5682-return-devm_of_clk_add_hw_provider-to-transfer-the-error.patch @@ -0,0 +1,37 @@ +From fcca6d05ef49d5650514ea1dcfd12e4ae3ff2be6 Mon Sep 17 00:00:00 2001 +From: Ma Ke +Date: Fri, 30 Aug 2024 22:31:54 +0800 +Subject: ASoC: rt5682: Return devm_of_clk_add_hw_provider to transfer the error + +From: Ma Ke + +commit fcca6d05ef49d5650514ea1dcfd12e4ae3ff2be6 upstream. + +Return devm_of_clk_add_hw_provider() in order to transfer the error, if it +fails due to resource allocation failure or device tree clock provider +registration failure. + +Cc: stable@vger.kernel.org +Fixes: ebbfabc16d23 ("ASoC: rt5682: Add CCF usage for providing I2S clks") +Signed-off-by: Ma Ke +Link: https://patch.msgid.link/20240830143154.3448004-1-make24@iscas.ac.cn +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman +--- + sound/soc/codecs/rt5682.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/sound/soc/codecs/rt5682.c ++++ b/sound/soc/codecs/rt5682.c +@@ -2893,8 +2893,10 @@ int rt5682_register_dai_clks(struct rt56 + } + + if (dev->of_node) { +- devm_of_clk_add_hw_provider(dev, of_clk_hw_simple_get, ++ ret = devm_of_clk_add_hw_provider(dev, of_clk_hw_simple_get, + dai_clk_hw); ++ if (ret) ++ return ret; + } else { + ret = devm_clk_hw_register_clkdev(dev, dai_clk_hw, + init.name, diff --git a/queue-5.15/input-i8042-add-another-board-name-for-tuxedo-stellaris-gen5-amd-line.patch b/queue-5.15/input-i8042-add-another-board-name-for-tuxedo-stellaris-gen5-amd-line.patch new file mode 100644 index 00000000000..916d458d34f --- /dev/null +++ b/queue-5.15/input-i8042-add-another-board-name-for-tuxedo-stellaris-gen5-amd-line.patch @@ -0,0 +1,39 @@ +From 01eed86d50af9fab27d876fd677b86259ebe9de3 Mon Sep 17 00:00:00 2001 +From: Werner Sembach +Date: Tue, 10 Sep 2024 11:40:07 +0200 +Subject: Input: i8042 - add another board name for TUXEDO Stellaris Gen5 AMD line + +From: Werner Sembach + +commit 01eed86d50af9fab27d876fd677b86259ebe9de3 upstream. + +There might be devices out in the wild where the board name is GMxXGxx +instead of GMxXGxX. + +Adding both to be on the safe side. + +Signed-off-by: Werner Sembach +Cc: stable@vger.kernel.org +Link: https://lore.kernel.org/r/20240910094008.1601230-2-wse@tuxedocomputers.com +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman +--- + drivers/input/serio/i8042-acpipnpio.h | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/drivers/input/serio/i8042-acpipnpio.h ++++ b/drivers/input/serio/i8042-acpipnpio.h +@@ -1128,6 +1128,13 @@ static const struct dmi_system_id i8042_ + }, + { + .matches = { ++ DMI_MATCH(DMI_BOARD_NAME, "GMxXGxx"), ++ }, ++ .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS | ++ SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP) ++ }, ++ { ++ .matches = { + DMI_MATCH(DMI_BOARD_NAME, "GMxXGxX"), + }, + .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS | diff --git a/queue-5.15/input-i8042-add-tuxedo-stellaris-15-slim-gen6-amd-to-i8042-quirk-table.patch b/queue-5.15/input-i8042-add-tuxedo-stellaris-15-slim-gen6-amd-to-i8042-quirk-table.patch new file mode 100644 index 00000000000..5831f898ac7 --- /dev/null +++ b/queue-5.15/input-i8042-add-tuxedo-stellaris-15-slim-gen6-amd-to-i8042-quirk-table.patch @@ -0,0 +1,46 @@ +From 3870e2850b56306d1d1e435c5a1ccbccd7c59291 Mon Sep 17 00:00:00 2001 +From: Werner Sembach +Date: Tue, 10 Sep 2024 11:40:08 +0200 +Subject: Input: i8042 - add TUXEDO Stellaris 15 Slim Gen6 AMD to i8042 quirk table + +From: Werner Sembach + +commit 3870e2850b56306d1d1e435c5a1ccbccd7c59291 upstream. + +The Gen6 devices have the same problem and the same Solution as the Gen5 +ones. + +Some TongFang barebones have touchpad and/or keyboard issues after +suspend, fixable with nomux + reset + noloop + nopnp. Luckily, none of +them have an external PS/2 port so this can safely be set for all of +them. + +I'm not entirely sure if every device listed really needs all four quirks, +but after testing and production use, no negative effects could be +observed when setting all four. + +Signed-off-by: Werner Sembach +Cc: stable@vger.kernel.org +Link: https://lore.kernel.org/r/20240910094008.1601230-3-wse@tuxedocomputers.com +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman +--- + drivers/input/serio/i8042-acpipnpio.h | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/drivers/input/serio/i8042-acpipnpio.h ++++ b/drivers/input/serio/i8042-acpipnpio.h +@@ -1133,6 +1133,13 @@ static const struct dmi_system_id i8042_ + .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS | + SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP) + }, ++ { ++ .matches = { ++ DMI_MATCH(DMI_BOARD_NAME, "GMxHGxx"), ++ }, ++ .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS | ++ SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP) ++ }, + /* + * A lot of modern Clevo barebones have touchpad and/or keyboard issues + * after suspend fixable with nomux + reset + noloop + nopnp. Luckily, diff --git a/queue-5.15/input-i8042-add-tuxedo-stellaris-16-gen5-amd-to-i8042-quirk-table.patch b/queue-5.15/input-i8042-add-tuxedo-stellaris-16-gen5-amd-to-i8042-quirk-table.patch new file mode 100644 index 00000000000..72103fa8591 --- /dev/null +++ b/queue-5.15/input-i8042-add-tuxedo-stellaris-16-gen5-amd-to-i8042-quirk-table.patch @@ -0,0 +1,59 @@ +From e06edf96dea065dd1d9df695bf8b92784992333e Mon Sep 17 00:00:00 2001 +From: Werner Sembach +Date: Thu, 5 Sep 2024 18:48:51 +0200 +Subject: Input: i8042 - add TUXEDO Stellaris 16 Gen5 AMD to i8042 quirk table + +From: Werner Sembach + +commit e06edf96dea065dd1d9df695bf8b92784992333e upstream. + +Some TongFang barebones have touchpad and/or keyboard issues after +suspend, fixable with nomux + reset + noloop + nopnp. Luckily, none of +them have an external PS/2 port so this can safely be set for all of +them. + +I'm not entirely sure if every device listed really needs all four quirks, +but after testing and production use, no negative effects could be +observed when setting all four. + +Signed-off-by: Werner Sembach +Cc: stable@vger.kernel.org +Link: https://lore.kernel.org/r/20240905164851.771578-1-wse@tuxedocomputers.com +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman +--- + drivers/input/serio/i8042-acpipnpio.h | 23 +++++++++++++++++++++++ + 1 file changed, 23 insertions(+) + +--- a/drivers/input/serio/i8042-acpipnpio.h ++++ b/drivers/input/serio/i8042-acpipnpio.h +@@ -1111,6 +1111,29 @@ static const struct dmi_system_id i8042_ + .driver_data = (void *)(SERIO_QUIRK_NOLOOP) + }, + /* ++ * Some TongFang barebones have touchpad and/or keyboard issues after ++ * suspend fixable with nomux + reset + noloop + nopnp. Luckily, none of ++ * them have an external PS/2 port so this can safely be set for all of ++ * them. ++ * TongFang barebones come with board_vendor and/or system_vendor set to ++ * a different value for each individual reseller. The only somewhat ++ * universal way to identify them is by board_name. ++ */ ++ { ++ .matches = { ++ DMI_MATCH(DMI_BOARD_NAME, "GM6XGxX"), ++ }, ++ .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS | ++ SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP) ++ }, ++ { ++ .matches = { ++ DMI_MATCH(DMI_BOARD_NAME, "GMxXGxX"), ++ }, ++ .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS | ++ SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP) ++ }, ++ /* + * A lot of modern Clevo barebones have touchpad and/or keyboard issues + * after suspend fixable with nomux + reset + noloop + nopnp. Luckily, + * none of them have an external PS/2 port so this can safely be set for diff --git a/queue-5.15/pci-xilinx-nwl-fix-off-by-one-in-intx-irq-handler.patch b/queue-5.15/pci-xilinx-nwl-fix-off-by-one-in-intx-irq-handler.patch new file mode 100644 index 00000000000..01ad972282b --- /dev/null +++ b/queue-5.15/pci-xilinx-nwl-fix-off-by-one-in-intx-irq-handler.patch @@ -0,0 +1,68 @@ +From 0199d2f2bd8cd97b310f7ed82a067247d7456029 Mon Sep 17 00:00:00 2001 +From: Sean Anderson +Date: Fri, 31 May 2024 12:13:32 -0400 +Subject: PCI: xilinx-nwl: Fix off-by-one in INTx IRQ handler + +From: Sean Anderson + +commit 0199d2f2bd8cd97b310f7ed82a067247d7456029 upstream. + +MSGF_LEG_MASK is laid out with INTA in bit 0, INTB in bit 1, INTC in bit 2, +and INTD in bit 3. Hardware IRQ numbers start at 0, and we register +PCI_NUM_INTX IRQs. So to enable INTA (aka hwirq 0) we should set bit 0. +Remove the subtraction of one. + +This bug would cause INTx interrupts not to be delivered, as enabling INTB +would actually enable INTA, and enabling INTA wouldn't enable anything at +all. It is likely that this got overlooked for so long since most PCIe +hardware uses MSIs. This fixes the following UBSAN error: + + UBSAN: shift-out-of-bounds in ../drivers/pci/controller/pcie-xilinx-nwl.c:389:11 + shift exponent 18446744073709551615 is too large for 32-bit type 'int' + CPU: 1 PID: 61 Comm: kworker/u10:1 Not tainted 6.6.20+ #268 + Hardware name: xlnx,zynqmp (DT) + Workqueue: events_unbound deferred_probe_work_func + Call trace: + dump_backtrace (arch/arm64/kernel/stacktrace.c:235) + show_stack (arch/arm64/kernel/stacktrace.c:242) + dump_stack_lvl (lib/dump_stack.c:107) + dump_stack (lib/dump_stack.c:114) + __ubsan_handle_shift_out_of_bounds (lib/ubsan.c:218 lib/ubsan.c:387) + nwl_unmask_leg_irq (drivers/pci/controller/pcie-xilinx-nwl.c:389 (discriminator 1)) + irq_enable (kernel/irq/internals.h:234 kernel/irq/chip.c:170 kernel/irq/chip.c:439 kernel/irq/chip.c:432 kernel/irq/chip.c:345) + __irq_startup (kernel/irq/internals.h:239 kernel/irq/chip.c:180 kernel/irq/chip.c:250) + irq_startup (kernel/irq/chip.c:270) + __setup_irq (kernel/irq/manage.c:1800) + request_threaded_irq (kernel/irq/manage.c:2206) + pcie_pme_probe (include/linux/interrupt.h:168 drivers/pci/pcie/pme.c:348) + +Fixes: 9a181e1093af ("PCI: xilinx-nwl: Modify IRQ chip for legacy interrupts") +Link: https://lore.kernel.org/r/20240531161337.864994-3-sean.anderson@linux.dev +Signed-off-by: Sean Anderson +Signed-off-by: Bjorn Helgaas +Cc: stable@vger.kernel.org +Signed-off-by: Greg Kroah-Hartman +--- + drivers/pci/controller/pcie-xilinx-nwl.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/pci/controller/pcie-xilinx-nwl.c ++++ b/drivers/pci/controller/pcie-xilinx-nwl.c +@@ -376,7 +376,7 @@ static void nwl_mask_leg_irq(struct irq_ + u32 mask; + u32 val; + +- mask = 1 << (data->hwirq - 1); ++ mask = 1 << data->hwirq; + raw_spin_lock_irqsave(&pcie->leg_mask_lock, flags); + val = nwl_bridge_readl(pcie, MSGF_LEG_MASK); + nwl_bridge_writel(pcie, (val & (~mask)), MSGF_LEG_MASK); +@@ -390,7 +390,7 @@ static void nwl_unmask_leg_irq(struct ir + u32 mask; + u32 val; + +- mask = 1 << (data->hwirq - 1); ++ mask = 1 << data->hwirq; + raw_spin_lock_irqsave(&pcie->leg_mask_lock, flags); + val = nwl_bridge_readl(pcie, MSGF_LEG_MASK); + nwl_bridge_writel(pcie, (val | mask), MSGF_LEG_MASK); diff --git a/queue-5.15/revert-media-tuners-fix-error-return-code-of-hybrid_tuner_request_state.patch b/queue-5.15/revert-media-tuners-fix-error-return-code-of-hybrid_tuner_request_state.patch new file mode 100644 index 00000000000..f1e4450d831 --- /dev/null +++ b/queue-5.15/revert-media-tuners-fix-error-return-code-of-hybrid_tuner_request_state.patch @@ -0,0 +1,39 @@ +From e25cc4be4616fcf5689622b3226d648aab253cdb Mon Sep 17 00:00:00 2001 +From: Roman Smirnov +Date: Tue, 16 Jul 2024 12:10:40 +0300 +Subject: Revert "media: tuners: fix error return code of hybrid_tuner_request_state()" + +From: Roman Smirnov + +commit e25cc4be4616fcf5689622b3226d648aab253cdb upstream. + +This reverts commit b9302fa7ed979e84b454e4ca92192cf485a4ed41. + +As Fedor Pchelkin pointed out, this commit violates the +convention of using the macro return value, which causes errors. +For example, in functions tda18271_attach(), xc5000_attach(), +simple_tuner_attach(). + +Link: https://lore.kernel.org/linux-media/20240424202031.syigrtrtipbq5f2l@fpc/ +Suggested-by: Fedor Pchelkin +Signed-off-by: Roman Smirnov +Signed-off-by: Hans Verkuil +Signed-off-by: Greg Kroah-Hartman +--- + drivers/media/tuners/tuner-i2c.h | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +--- a/drivers/media/tuners/tuner-i2c.h ++++ b/drivers/media/tuners/tuner-i2c.h +@@ -133,10 +133,8 @@ static inline int tuner_i2c_xfer_send_re + } \ + if (0 == __ret) { \ + state = kzalloc(sizeof(type), GFP_KERNEL); \ +- if (!state) { \ +- __ret = -ENOMEM; \ ++ if (NULL == state) \ + goto __fail; \ +- } \ + state->i2c_props.addr = i2caddr; \ + state->i2c_props.adap = i2cadap; \ + state->i2c_props.name = devname; \ diff --git a/queue-5.15/series b/queue-5.15/series index 2776eccbaf7..1f44edac3f5 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -300,3 +300,10 @@ x86-mm-switch-to-new-intel-cpu-model-defines.patch vfio-pci-fix-potential-memory-leak-in-vfio_intx_enable.patch selinux-smack-don-t-bypass-permissions-check-in-inode_setsecctx-hook.patch remove-.orig-pattern-from-.gitignore.patch +pci-xilinx-nwl-fix-off-by-one-in-intx-irq-handler.patch +asoc-rt5682-return-devm_of_clk_add_hw_provider-to-transfer-the-error.patch +soc-versatile-integrator-fix-of-node-leak-in-probe-error-path.patch +revert-media-tuners-fix-error-return-code-of-hybrid_tuner_request_state.patch +input-i8042-add-tuxedo-stellaris-16-gen5-amd-to-i8042-quirk-table.patch +input-i8042-add-tuxedo-stellaris-15-slim-gen6-amd-to-i8042-quirk-table.patch +input-i8042-add-another-board-name-for-tuxedo-stellaris-gen5-amd-line.patch diff --git a/queue-5.15/soc-versatile-integrator-fix-of-node-leak-in-probe-error-path.patch b/queue-5.15/soc-versatile-integrator-fix-of-node-leak-in-probe-error-path.patch new file mode 100644 index 00000000000..2264ebe4234 --- /dev/null +++ b/queue-5.15/soc-versatile-integrator-fix-of-node-leak-in-probe-error-path.patch @@ -0,0 +1,32 @@ +From 874c5b601856adbfda10846b9770a6c66c41e229 Mon Sep 17 00:00:00 2001 +From: Krzysztof Kozlowski +Date: Sun, 25 Aug 2024 20:05:22 +0200 +Subject: soc: versatile: integrator: fix OF node leak in probe() error path + +From: Krzysztof Kozlowski + +commit 874c5b601856adbfda10846b9770a6c66c41e229 upstream. + +Driver is leaking OF node reference obtained from +of_find_matching_node(). + +Fixes: f956a785a282 ("soc: move SoC driver for the ARM Integrator") +Cc: stable@vger.kernel.org +Signed-off-by: Krzysztof Kozlowski +Link: https://lore.kernel.org/20240825-soc-dev-fixes-v1-1-ff4b35abed83@linaro.org +Signed-off-by: Linus Walleij +Signed-off-by: Greg Kroah-Hartman +--- + drivers/soc/versatile/soc-integrator.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/soc/versatile/soc-integrator.c ++++ b/drivers/soc/versatile/soc-integrator.c +@@ -113,6 +113,7 @@ static int __init integrator_soc_init(vo + return -ENODEV; + + syscon_regmap = syscon_node_to_regmap(np); ++ of_node_put(np); + if (IS_ERR(syscon_regmap)) + return PTR_ERR(syscon_regmap); +