From: Sasha Levin Date: Mon, 2 Oct 2023 11:02:54 +0000 (-0400) Subject: Fixes for 5.4 X-Git-Tag: v6.5.6~66 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=01764a9a3b0410a0892c89b100b013dbe50d0133;p=thirdparty%2Fkernel%2Fstable-queue.git Fixes for 5.4 Signed-off-by: Sasha Levin --- diff --git a/queue-5.4/arm-dts-ti-omap-motorola-mapphone-fix-abe_clkctrl-wa.patch b/queue-5.4/arm-dts-ti-omap-motorola-mapphone-fix-abe_clkctrl-wa.patch new file mode 100644 index 00000000000..09148a37a4f --- /dev/null +++ b/queue-5.4/arm-dts-ti-omap-motorola-mapphone-fix-abe_clkctrl-wa.patch @@ -0,0 +1,56 @@ +From b3dbaccaa96b66bec9d33c5a5a1c5f491cf6a341 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 11 Sep 2023 07:07:38 +0300 +Subject: ARM: dts: ti: omap: motorola-mapphone: Fix abe_clkctrl warning on + boot + +From: Tony Lindgren + +[ Upstream commit ac08bda1569b06b7a62c7b4dd00d4c3b28ceaaec ] + +Commit 0840242e8875 ("ARM: dts: Configure clock parent for pwm vibra") +attempted to fix the PWM settings but ended up causin an additional clock +reparenting error: + +clk: failed to reparent abe-clkctrl:0060:24 to sys_clkin_ck: -22 + +Only timer9 is in the PER domain and can use the sys_clkin_ck clock source. +For timer8, the there is no sys_clkin_ck available as it's in the ABE +domain, instead it should use syc_clk_div_ck. However, for power +management, we want to use the always on sys_32k_ck instead. + +Cc: Ivaylo Dimitrov +Cc: Carl Philipp Klemm +Cc: Merlijn Wajer +Cc: Pavel Machek +Reviewed-by: Sebastian Reichel +Fixes: 0840242e8875 ("ARM: dts: Configure clock parent for pwm vibra") +Depends-on: 61978617e905 ("ARM: dts: Add minimal support for Droid Bionic xt875") +Signed-off-by: Tony Lindgren +Signed-off-by: Sasha Levin +--- + arch/arm/boot/dts/omap4-droid4-xt894.dts | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/boot/dts/omap4-droid4-xt894.dts b/arch/arm/boot/dts/omap4-droid4-xt894.dts +index a40fe8d49da64..f5dbc241aaf78 100644 +--- a/arch/arm/boot/dts/omap4-droid4-xt894.dts ++++ b/arch/arm/boot/dts/omap4-droid4-xt894.dts +@@ -656,12 +656,12 @@ + /* Configure pwm clock source for timers 8 & 9 */ + &timer8 { + assigned-clocks = <&abe_clkctrl OMAP4_TIMER8_CLKCTRL 24>; +- assigned-clock-parents = <&sys_clkin_ck>; ++ assigned-clock-parents = <&sys_32k_ck>; + }; + + &timer9 { + assigned-clocks = <&l4_per_clkctrl OMAP4_TIMER9_CLKCTRL 24>; +- assigned-clock-parents = <&sys_clkin_ck>; ++ assigned-clock-parents = <&sys_32k_ck>; + }; + + /* +-- +2.40.1 + diff --git a/queue-5.4/bus-ti-sysc-fix-sysc_quirk_swsup_sidle_act-handling-.patch b/queue-5.4/bus-ti-sysc-fix-sysc_quirk_swsup_sidle_act-handling-.patch new file mode 100644 index 00000000000..56f5a81d2b3 --- /dev/null +++ b/queue-5.4/bus-ti-sysc-fix-sysc_quirk_swsup_sidle_act-handling-.patch @@ -0,0 +1,85 @@ +From a763ed30f23c6a92bfc21e9fdb503384b6859048 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 7 Sep 2023 08:53:28 +0300 +Subject: bus: ti-sysc: Fix SYSC_QUIRK_SWSUP_SIDLE_ACT handling for uart + wake-up + +From: Tony Lindgren + +[ Upstream commit e5deb8f76e64d94ccef715e75ebafffd0c312d80 ] + +The uarts should be tagged with SYSC_QUIRK_SWSUP_SIDLE instead of +SYSC_QUIRK_SWSUP_SIDLE_ACT. The difference is that SYSC_QUIRK_SWSUP_SIDLE +is used to force idle target modules rather than block idle during usage. + +The SYSC_QUIRK_SWSUP_SIDLE_ACT should disable autoidle and wake-up when +a target module is active, and configure autoidle and wake-up when a +target module is inactive. We are missing configuring the target module +on sysc_disable_module(), and missing toggling of the wake-up bit. + +Let's fix the issue to allow uart wake-up to work. + +Fixes: fb685f1c190e ("bus: ti-sysc: Handle swsup idle mode quirks") +Tested-by: Dhruva Gole +Tested-by: Kevin Hilman +Signed-off-by: Tony Lindgren +Signed-off-by: Sasha Levin +--- + drivers/bus/ti-sysc.c | 22 +++++++++++++++++----- + 1 file changed, 17 insertions(+), 5 deletions(-) + +diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c +index b542c2b2aef49..70339f73181ea 100644 +--- a/drivers/bus/ti-sysc.c ++++ b/drivers/bus/ti-sysc.c +@@ -1023,6 +1023,11 @@ static int sysc_enable_module(struct device *dev) + if (ddata->cfg.quirks & (SYSC_QUIRK_SWSUP_SIDLE | + SYSC_QUIRK_SWSUP_SIDLE_ACT)) { + best_mode = SYSC_IDLE_NO; ++ ++ /* Clear WAKEUP */ ++ if (regbits->enwkup_shift >= 0 && ++ ddata->cfg.sysc_val & BIT(regbits->enwkup_shift)) ++ reg &= ~BIT(regbits->enwkup_shift); + } else { + best_mode = fls(ddata->cfg.sidlemodes) - 1; + if (best_mode > SYSC_IDLE_MASK) { +@@ -1143,6 +1148,13 @@ static int sysc_disable_module(struct device *dev) + } + } + ++ if (ddata->cfg.quirks & SYSC_QUIRK_SWSUP_SIDLE_ACT) { ++ /* Set WAKEUP */ ++ if (regbits->enwkup_shift >= 0 && ++ ddata->cfg.sysc_val & BIT(regbits->enwkup_shift)) ++ reg |= BIT(regbits->enwkup_shift); ++ } ++ + reg &= ~(SYSC_IDLE_MASK << regbits->sidle_shift); + reg |= best_mode << regbits->sidle_shift; + if (regbits->autoidle_shift >= 0 && +@@ -1371,16 +1383,16 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = { + SYSC_QUIRK("timer", 0, 0, 0x10, -ENODEV, 0x4fff1301, 0xffff00ff, + 0), + SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x00000046, 0xffffffff, +- SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_LEGACY_IDLE), ++ SYSC_QUIRK_SWSUP_SIDLE_ACT | SYSC_QUIRK_LEGACY_IDLE), + SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x00000052, 0xffffffff, +- SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_LEGACY_IDLE), ++ SYSC_QUIRK_SWSUP_SIDLE_ACT | SYSC_QUIRK_LEGACY_IDLE), + /* Uarts on omap4 and later */ + SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x50411e03, 0xffff00ff, +- SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_LEGACY_IDLE), ++ SYSC_QUIRK_SWSUP_SIDLE_ACT | SYSC_QUIRK_LEGACY_IDLE), + SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x47422e03, 0xffffffff, +- SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_LEGACY_IDLE), ++ SYSC_QUIRK_SWSUP_SIDLE_ACT | SYSC_QUIRK_LEGACY_IDLE), + SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x47424e03, 0xffffffff, +- SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_LEGACY_IDLE), ++ SYSC_QUIRK_SWSUP_SIDLE_ACT | SYSC_QUIRK_LEGACY_IDLE), + + /* Quirks that need to be set based on the module address */ + SYSC_QUIRK("mcpdm", 0x40132000, 0, 0x10, -ENODEV, 0x50000800, 0xffffffff, +-- +2.40.1 + diff --git a/queue-5.4/clk-tegra-fix-error-return-case-for-recalc_rate.patch b/queue-5.4/clk-tegra-fix-error-return-case-for-recalc_rate.patch new file mode 100644 index 00000000000..c6f2f8aec2f --- /dev/null +++ b/queue-5.4/clk-tegra-fix-error-return-case-for-recalc_rate.patch @@ -0,0 +1,40 @@ +From 40e965e52e8781e4efaccfe665b39b0c1bb2e92b Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 12 Sep 2023 14:29:50 +0300 +Subject: clk: tegra: fix error return case for recalc_rate + +From: Timo Alho + +[ Upstream commit a47b44fbb13f5e7a981b4515dcddc93a321ae89c ] + +tegra-bpmp clocks driver makes implicit conversion of signed error +code to unsigned value in recalc_rate operation. The behavior for +recalc_rate, according to it's specification, should be that "If the +driver cannot figure out a rate for this clock, it must return 0." + +Fixes: ca6f2796eef7 ("clk: tegra: Add BPMP clock driver") +Signed-off-by: Timo Alho +Signed-off-by: Mikko Perttunen +Link: https://lore.kernel.org/r/20230912112951.2330497-1-cyndis@kapsi.fi +Signed-off-by: Stephen Boyd +Signed-off-by: Sasha Levin +--- + drivers/clk/tegra/clk-bpmp.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/clk/tegra/clk-bpmp.c b/drivers/clk/tegra/clk-bpmp.c +index a66263b6490d3..00845044c98ef 100644 +--- a/drivers/clk/tegra/clk-bpmp.c ++++ b/drivers/clk/tegra/clk-bpmp.c +@@ -159,7 +159,7 @@ static unsigned long tegra_bpmp_clk_recalc_rate(struct clk_hw *hw, + + err = tegra_bpmp_clk_transfer(clk->bpmp, &msg); + if (err < 0) +- return err; ++ return 0; + + return response.rate; + } +-- +2.40.1 + diff --git a/queue-5.4/gpio-pmic-eic-sprd-add-can_sleep-flag-for-pmic-eic-c.patch b/queue-5.4/gpio-pmic-eic-sprd-add-can_sleep-flag-for-pmic-eic-c.patch new file mode 100644 index 00000000000..992442c65ee --- /dev/null +++ b/queue-5.4/gpio-pmic-eic-sprd-add-can_sleep-flag-for-pmic-eic-c.patch @@ -0,0 +1,39 @@ +From d74ccce39acd8150a3f2e795ebdffbe53646f525 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 21 Sep 2023 20:25:27 +0800 +Subject: gpio: pmic-eic-sprd: Add can_sleep flag for PMIC EIC chip + +From: Wenhua Lin + +[ Upstream commit 26d9e5640d2130ee16df7b1fb6a908f460ab004c ] + +The drivers uses a mutex and I2C bus access in its PMIC EIC chip +get implementation. This means these functions can sleep and the PMIC EIC +chip should set the can_sleep property to true. + +This will ensure that a warning is printed when trying to get the +value from a context that potentially can't sleep. + +Fixes: 348f3cde84ab ("gpio: Add Spreadtrum PMIC EIC driver support") +Signed-off-by: Wenhua Lin +Signed-off-by: Bartosz Golaszewski +Signed-off-by: Sasha Levin +--- + drivers/gpio/gpio-pmic-eic-sprd.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/gpio/gpio-pmic-eic-sprd.c b/drivers/gpio/gpio-pmic-eic-sprd.c +index 05000cace9b24..abe01518bf19f 100644 +--- a/drivers/gpio/gpio-pmic-eic-sprd.c ++++ b/drivers/gpio/gpio-pmic-eic-sprd.c +@@ -338,6 +338,7 @@ static int sprd_pmic_eic_probe(struct platform_device *pdev) + pmic_eic->chip.set_config = sprd_pmic_eic_set_config; + pmic_eic->chip.set = sprd_pmic_eic_set; + pmic_eic->chip.get = sprd_pmic_eic_get; ++ pmic_eic->chip.can_sleep = true; + + pmic_eic->intc.name = dev_name(&pdev->dev); + pmic_eic->intc.irq_mask = sprd_pmic_eic_irq_mask; +-- +2.40.1 + diff --git a/queue-5.4/series b/queue-5.4/series index dd1b91c3351..e3049afe4de 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -44,3 +44,11 @@ drm-amd-display-prevent-potential-division-by-zero-e.patch ata-move-export_symbol_gpl-s-close-to-exported-code.patch ata-libata-disallow-dev-initiated-lpm-transitions-to.patch mips-alchemy-only-build-mmc-support-helpers-if-au1xm.patch +clk-tegra-fix-error-return-case-for-recalc_rate.patch +arm-dts-ti-omap-motorola-mapphone-fix-abe_clkctrl-wa.patch +bus-ti-sysc-fix-sysc_quirk_swsup_sidle_act-handling-.patch +xtensa-add-default-definition-for-xchal_have_div32.patch +xtensa-iss-network-make-functions-static.patch +xtensa-boot-don-t-add-include-dirs.patch +xtensa-boot-lib-fix-function-prototypes.patch +gpio-pmic-eic-sprd-add-can_sleep-flag-for-pmic-eic-c.patch diff --git a/queue-5.4/xtensa-add-default-definition-for-xchal_have_div32.patch b/queue-5.4/xtensa-add-default-definition-for-xchal_have_div32.patch new file mode 100644 index 00000000000..58ec28ffb70 --- /dev/null +++ b/queue-5.4/xtensa-add-default-definition-for-xchal_have_div32.patch @@ -0,0 +1,45 @@ +From 17f21374ebe171f900ae4a522e45ef2db4e80a07 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 20 Sep 2023 04:15:22 -0700 +Subject: xtensa: add default definition for XCHAL_HAVE_DIV32 + +From: Max Filippov + +[ Upstream commit 494e87ffa0159b3f879694a9231089707792a44d ] + +When variant FSF is set, XCHAL_HAVE_DIV32 is not defined. Add default +definition for that macro to prevent build warnings: + +arch/xtensa/lib/divsi3.S:9:5: warning: "XCHAL_HAVE_DIV32" is not defined, evaluates to 0 [-Wundef] + 9 | #if XCHAL_HAVE_DIV32 +arch/xtensa/lib/modsi3.S:9:5: warning: "XCHAL_HAVE_DIV32" is not defined, evaluates to 0 [-Wundef] + 9 | #if XCHAL_HAVE_DIV32 + +Fixes: 173d6681380a ("xtensa: remove extra header files") +Suggested-by: Randy Dunlap +Signed-off-by: Max Filippov +Reported-by: kernel test robot +Closes: lore.kernel.org/r/202309150556.t0yCdv3g-lkp@intel.com +Signed-off-by: Sasha Levin +--- + arch/xtensa/include/asm/core.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/arch/xtensa/include/asm/core.h b/arch/xtensa/include/asm/core.h +index 5975b244b7b80..02c93e08d5925 100644 +--- a/arch/xtensa/include/asm/core.h ++++ b/arch/xtensa/include/asm/core.h +@@ -6,6 +6,10 @@ + + #include + ++#ifndef XCHAL_HAVE_DIV32 ++#define XCHAL_HAVE_DIV32 0 ++#endif ++ + #ifndef XCHAL_HAVE_EXCLUSIVE + #define XCHAL_HAVE_EXCLUSIVE 0 + #endif +-- +2.40.1 + diff --git a/queue-5.4/xtensa-boot-don-t-add-include-dirs.patch b/queue-5.4/xtensa-boot-don-t-add-include-dirs.patch new file mode 100644 index 00000000000..1dfec130bf4 --- /dev/null +++ b/queue-5.4/xtensa-boot-don-t-add-include-dirs.patch @@ -0,0 +1,43 @@ +From 88e39cbcca56ab9e24baed3ef37247c9925252b5 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 19 Sep 2023 22:21:37 -0700 +Subject: xtensa: boot: don't add include-dirs + +From: Randy Dunlap + +[ Upstream commit 54d3d7d363823782c3444ddc41bb8cf1edc80514 ] + +Drop the -I options to prevent build warnings since there +is not boot/include directory: + +cc1: warning: arch/xtensa/boot/include: No such file or directory [-Wmissing-include-dirs] + +Fixes: 437374e9a950 ("restore arch/{ppc/xtensa}/boot cflags") +Fixes: 4bedea945451 ("xtensa: Architecture support for Tensilica Xtensa Part 2") +Signed-off-by: Randy Dunlap +Cc: Chris Zankel +Cc: Max Filippov +Message-Id: <20230920052139.10570-15-rdunlap@infradead.org> +Signed-off-by: Max Filippov +Signed-off-by: Sasha Levin +--- + arch/xtensa/boot/Makefile | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/arch/xtensa/boot/Makefile b/arch/xtensa/boot/Makefile +index 294846117fc2c..41ad60bb0fbc7 100644 +--- a/arch/xtensa/boot/Makefile ++++ b/arch/xtensa/boot/Makefile +@@ -9,8 +9,7 @@ + + + # KBUILD_CFLAGS used when building rest of boot (takes effect recursively) +-KBUILD_CFLAGS += -fno-builtin -Iarch/$(ARCH)/boot/include +-HOSTFLAGS += -Iarch/$(ARCH)/boot/include ++KBUILD_CFLAGS += -fno-builtin + + BIG_ENDIAN := $(shell echo __XTENSA_EB__ | $(CC) -E - | grep -v "\#") + +-- +2.40.1 + diff --git a/queue-5.4/xtensa-boot-lib-fix-function-prototypes.patch b/queue-5.4/xtensa-boot-lib-fix-function-prototypes.patch new file mode 100644 index 00000000000..caf2c3c5291 --- /dev/null +++ b/queue-5.4/xtensa-boot-lib-fix-function-prototypes.patch @@ -0,0 +1,52 @@ +From 91ac829024db3b49a7b3ac9820b11b58273c5f91 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 20 Sep 2023 04:41:09 -0700 +Subject: xtensa: boot/lib: fix function prototypes + +From: Max Filippov + +[ Upstream commit f54d02c8f2cc4b46ba2a3bd8252a6750453b6f2b ] + +Add function prototype for gunzip() to the boot library code and make +exit() and zalloc() static. + +arch/xtensa/boot/lib/zmem.c:8:6: warning: no previous prototype for 'exit' [-Wmissing-prototypes] + 8 | void exit (void) +arch/xtensa/boot/lib/zmem.c:13:7: warning: no previous prototype for 'zalloc' [-Wmissing-prototypes] + 13 | void *zalloc(unsigned size) +arch/xtensa/boot/lib/zmem.c:35:6: warning: no previous prototype for 'gunzip' [-Wmissing-prototypes] + 35 | void gunzip (void *dst, int dstlen, unsigned char *src, int *lenp) + +Fixes: 4bedea945451 ("xtensa: Architecture support for Tensilica Xtensa Part 2") +Fixes: e7d163f76665 ("xtensa: Removed local copy of zlib and fixed O= support") +Suggested-by: Randy Dunlap +Signed-off-by: Max Filippov +Signed-off-by: Sasha Levin +--- + arch/xtensa/boot/lib/zmem.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/arch/xtensa/boot/lib/zmem.c b/arch/xtensa/boot/lib/zmem.c +index e3ecd743c5153..b89189355122a 100644 +--- a/arch/xtensa/boot/lib/zmem.c ++++ b/arch/xtensa/boot/lib/zmem.c +@@ -4,13 +4,14 @@ + /* bits taken from ppc */ + + extern void *avail_ram, *end_avail; ++void gunzip(void *dst, int dstlen, unsigned char *src, int *lenp); + +-void exit (void) ++static void exit(void) + { + for (;;); + } + +-void *zalloc(unsigned size) ++static void *zalloc(unsigned int size) + { + void *p = avail_ram; + +-- +2.40.1 + diff --git a/queue-5.4/xtensa-iss-network-make-functions-static.patch b/queue-5.4/xtensa-iss-network-make-functions-static.patch new file mode 100644 index 00000000000..2bd08ce90e3 --- /dev/null +++ b/queue-5.4/xtensa-iss-network-make-functions-static.patch @@ -0,0 +1,53 @@ +From a3ebf08bbd2233a02878b6f84e16a4df9795dca3 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 19 Sep 2023 22:21:36 -0700 +Subject: xtensa: iss/network: make functions static + +From: Randy Dunlap + +[ Upstream commit 1b59efeb59851277266318f4e0132aa61ce3455e ] + +Make 2 functions static to prevent build warnings: + +arch/xtensa/platforms/iss/network.c:204:16: warning: no previous prototype for 'tuntap_protocol' [-Wmissing-prototypes] + 204 | unsigned short tuntap_protocol(struct sk_buff *skb) +arch/xtensa/platforms/iss/network.c:444:6: warning: no previous prototype for 'iss_net_user_timer_expire' [-Wmissing-prototypes] + 444 | void iss_net_user_timer_expire(struct timer_list *unused) + +Fixes: 7282bee78798 ("xtensa: Architecture support for Tensilica Xtensa Part 8") +Fixes: d8479a21a98b ("xtensa: Convert timers to use timer_setup()") +Signed-off-by: Randy Dunlap +Cc: Chris Zankel +Cc: Max Filippov +Message-Id: <20230920052139.10570-14-rdunlap@infradead.org> +Signed-off-by: Max Filippov +Signed-off-by: Sasha Levin +--- + arch/xtensa/platforms/iss/network.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/xtensa/platforms/iss/network.c b/arch/xtensa/platforms/iss/network.c +index cbca91bb5334a..d54bcaa194d46 100644 +--- a/arch/xtensa/platforms/iss/network.c ++++ b/arch/xtensa/platforms/iss/network.c +@@ -204,7 +204,7 @@ static int tuntap_write(struct iss_net_private *lp, struct sk_buff **skb) + return simc_write(lp->tp.info.tuntap.fd, (*skb)->data, (*skb)->len); + } + +-unsigned short tuntap_protocol(struct sk_buff *skb) ++static unsigned short tuntap_protocol(struct sk_buff *skb) + { + return eth_type_trans(skb, skb->dev); + } +@@ -477,7 +477,7 @@ static int iss_net_change_mtu(struct net_device *dev, int new_mtu) + return -EINVAL; + } + +-void iss_net_user_timer_expire(struct timer_list *unused) ++static void iss_net_user_timer_expire(struct timer_list *unused) + { + } + +-- +2.40.1 +