diff options
6 files changed, 269 insertions, 0 deletions
diff --git a/queue-6.6/arm-dts-am335x-bone-common-increase-mdio-reset-deassert-delay-to-50ms.patch b/queue-6.6/arm-dts-am335x-bone-common-increase-mdio-reset-deassert-delay-to-50ms.patch new file mode 100644 index 0000000000..bdb276e580 --- /dev/null +++ b/queue-6.6/arm-dts-am335x-bone-common-increase-mdio-reset-deassert-delay-to-50ms.patch @@ -0,0 +1,47 @@ +From 929d8490f8790164f5f63671c1c58d6c50411cb2 Mon Sep 17 00:00:00 2001 +From: Geert Uytterhoeven <geert+renesas@glider.be> +Date: Thu, 31 Oct 2024 10:29:51 +0100 +Subject: ARM: dts: am335x-bone-common: Increase MDIO reset deassert delay to 50ms +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Geert Uytterhoeven <geert+renesas@glider.be> + +commit 929d8490f8790164f5f63671c1c58d6c50411cb2 upstream. + +Commit b9bf5612610aa7e3 ("ARM: dts: am335x-bone-common: Increase MDIO +reset deassert time") already increased the MDIO reset deassert delay +from 6.5 to 13 ms, but this may still cause Ethernet PHY probe failures: + + SMSC LAN8710/LAN8720 4a101000.mdio:00: probe with driver SMSC LAN8710/LAN8720 failed with error -5 + +On BeagleBone Black Rev. C3, ETH_RESETn is controlled by an open-drain +AND gate. It is pulled high by a 10K resistor, and has a 4.7µF +capacitor to ground, giving an RC time constant of 47ms. As it takes +0.7RC to charge the capacitor above the threshold voltage of a CMOS +input (VDD/2), the delay should be at least 33ms. Considering the +typical tolerance of 20% on capacitors, 40ms would be safer. Add an +additional safety margin and settle for 50ms. + +Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> +Reviewed-by: Roger Quadros <rogerq@kernel.org> +Link: https://lore.kernel.org/r/9002a58daa1b2983f39815b748ee9d2f8dcc4829.1730366936.git.geert+renesas@glider.be +Signed-off-by: Kevin Hilman <khilman@baylibre.com> +Signed-off-by: Nobuhiro Iwamatsu (CIP) <nobuhiro1.iwamatsu@toshiba.co.jp> +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +--- + arch/arm/boot/dts/ti/omap/am335x-bone-common.dtsi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/arm/boot/dts/ti/omap/am335x-bone-common.dtsi ++++ b/arch/arm/boot/dts/ti/omap/am335x-bone-common.dtsi +@@ -385,7 +385,7 @@ + /* Support GPIO reset on revision C3 boards */ + reset-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; + reset-assert-us = <300>; +- reset-deassert-us = <13000>; ++ reset-deassert-us = <50000>; + }; + }; + diff --git a/queue-6.6/arm-dts-am335x-bone-common-increase-mdio-reset-deassert-time.patch b/queue-6.6/arm-dts-am335x-bone-common-increase-mdio-reset-deassert-time.patch new file mode 100644 index 0000000000..f2b59939f7 --- /dev/null +++ b/queue-6.6/arm-dts-am335x-bone-common-increase-mdio-reset-deassert-time.patch @@ -0,0 +1,40 @@ +From b9bf5612610aa7e38d58fee16f489814db251c01 Mon Sep 17 00:00:00 2001 +From: Colin Foster <colin.foster@in-advantage.com> +Date: Fri, 31 May 2024 13:38:17 -0500 +Subject: ARM: dts: am335x-bone-common: Increase MDIO reset deassert time + +From: Colin Foster <colin.foster@in-advantage.com> + +commit b9bf5612610aa7e38d58fee16f489814db251c01 upstream. + +Prior to commit df16c1c51d81 ("net: phy: mdio_device: Reset device only +when necessary") MDIO reset deasserts were performed twice during boot. +Now that the second deassert is no longer performed, device probe +failures happen due to the change in timing with the following error +message: + +SMSC LAN8710/LAN8720: probe of 4a101000.mdio:00 failed with error -5 + +Restore the original effective timing, which resolves the probe +failures. + +Signed-off-by: Colin Foster <colin.foster@in-advantage.com> +Link: https://lore.kernel.org/r/20240531183817.2698445-1-colin.foster@in-advantage.com +Signed-off-by: Kevin Hilman <khilman@baylibre.com> +Signed-off-by: Nobuhiro Iwamatsu (CIP) <nobuhiro1.iwamatsu@toshiba.co.jp> +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +--- + arch/arm/boot/dts/ti/omap/am335x-bone-common.dtsi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/arm/boot/dts/ti/omap/am335x-bone-common.dtsi ++++ b/arch/arm/boot/dts/ti/omap/am335x-bone-common.dtsi +@@ -385,7 +385,7 @@ + /* Support GPIO reset on revision C3 boards */ + reset-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; + reset-assert-us = <300>; +- reset-deassert-us = <6500>; ++ reset-deassert-us = <13000>; + }; + }; + diff --git a/queue-6.6/net-make-for_each_netdev_dump-a-little-more-bug-proof.patch b/queue-6.6/net-make-for_each_netdev_dump-a-little-more-bug-proof.patch new file mode 100644 index 0000000000..9819f92bd4 --- /dev/null +++ b/queue-6.6/net-make-for_each_netdev_dump-a-little-more-bug-proof.patch @@ -0,0 +1,55 @@ +From f22b4b55edb507a2b30981e133b66b642be4d13f Mon Sep 17 00:00:00 2001 +From: Jakub Kicinski <kuba@kernel.org> +Date: Thu, 13 Jun 2024 14:33:16 -0700 +Subject: net: make for_each_netdev_dump() a little more bug-proof + +From: Jakub Kicinski <kuba@kernel.org> + +commit f22b4b55edb507a2b30981e133b66b642be4d13f upstream. + +I find the behavior of xa_for_each_start() slightly counter-intuitive. +It doesn't end the iteration by making the index point after the last +element. IOW calling xa_for_each_start() again after it "finished" +will run the body of the loop for the last valid element, instead +of doing nothing. + +This works fine for netlink dumps if they terminate correctly +(i.e. coalesce or carefully handle NLM_DONE), but as we keep getting +reminded legacy dumps are unlikely to go away. + +Fixing this generically at the xa_for_each_start() level seems hard - +there is no index reserved for "end of iteration". +ifindexes are 31b wide, tho, and iterator is ulong so for +for_each_netdev_dump() it's safe to go to the next element. + +Signed-off-by: Jakub Kicinski <kuba@kernel.org> +Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> +Signed-off-by: David S. Miller <davem@davemloft.net> +[ The mctp RTM_GETADDR rework backport of acab78ae12c7 ("net: mctp: Don't + access ifa_index when missing") pulled 2d45eeb7d5d7 ("mctp: no longer + rely on net->dev_index_head[]") as a dependency. However, that change + relies on this backport for correct behaviour of + for_each_netdev_dump(). + + Jakub mentions[1] that nothing should be relying on the old behaviour + of for_each_netdev_dump(), hence the backport. + + [1]: https://lore.kernel.org/netdev/20250609083749.741c27f5@kernel.org/ ] +Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au> +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +--- + include/linux/netdevice.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/include/linux/netdevice.h ++++ b/include/linux/netdevice.h +@@ -3036,7 +3036,8 @@ extern rwlock_t dev_base_lock; /* De + #define net_device_entry(lh) list_entry(lh, struct net_device, dev_list) + + #define for_each_netdev_dump(net, d, ifindex) \ +- xa_for_each_start(&(net)->dev_by_index, (ifindex), (d), (ifindex)) ++ for (; (d = xa_find(&(net)->dev_by_index, &ifindex, \ ++ ULONG_MAX, XA_PRESENT)); ifindex++) + + static inline struct net_device *next_net_device(struct net_device *dev) + { diff --git a/queue-6.6/platform-x86-ideapad-laptop-add-missing-ideapad-pro-5-fn-keys.patch b/queue-6.6/platform-x86-ideapad-laptop-add-missing-ideapad-pro-5-fn-keys.patch new file mode 100644 index 0000000000..4b5c01a54b --- /dev/null +++ b/queue-6.6/platform-x86-ideapad-laptop-add-missing-ideapad-pro-5-fn-keys.patch @@ -0,0 +1,38 @@ +From 36e66be874a7ea9d28fb9757629899a8449b8748 Mon Sep 17 00:00:00 2001 +From: Renato Caldas <renato@calgera.com> +Date: Sat, 2 Nov 2024 18:31:16 +0000 +Subject: platform/x86: ideapad-laptop: add missing Ideapad Pro 5 fn keys + +From: Renato Caldas <renato@calgera.com> + +commit 36e66be874a7ea9d28fb9757629899a8449b8748 upstream. + +The scancodes for the Mic Mute and Airplane keys on the Ideapad Pro 5 +(14AHP9 at least, probably the other variants too) are different and +were not being picked up by the driver. This adds them to the keymap. + +Apart from what is already supported, the remaining fn keys are +unfortunately producing windows-specific key-combos. + +Signed-off-by: Renato Caldas <renato@calgera.com> +Link: https://lore.kernel.org/r/20241102183116.30142-1-renato@calgera.com +Reviewed-by: Hans de Goede <hdegoede@redhat.com> +Signed-off-by: Hans de Goede <hdegoede@redhat.com> +Signed-off-by: WangYuli <wangyuli@uniontech.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +--- + drivers/platform/x86/ideapad-laptop.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/platform/x86/ideapad-laptop.c ++++ b/drivers/platform/x86/ideapad-laptop.c +@@ -1101,6 +1101,9 @@ static const struct key_entry ideapad_ke + { KE_KEY, 0x27 | IDEAPAD_WMI_KEY, { KEY_HELP } }, + /* Refresh Rate Toggle */ + { KE_KEY, 0x0a | IDEAPAD_WMI_KEY, { KEY_DISPLAYTOGGLE } }, ++ /* Specific to some newer models */ ++ { KE_KEY, 0x3e | IDEAPAD_WMI_KEY, { KEY_MICMUTE } }, ++ { KE_KEY, 0x3f | IDEAPAD_WMI_KEY, { KEY_RFKILL } }, + + { KE_END }, + }; diff --git a/queue-6.6/serial-sh-sci-increment-the-runtime-usage-counter-for-the-earlycon-device.patch b/queue-6.6/serial-sh-sci-increment-the-runtime-usage-counter-for-the-earlycon-device.patch new file mode 100644 index 0000000000..0b133b5bcc --- /dev/null +++ b/queue-6.6/serial-sh-sci-increment-the-runtime-usage-counter-for-the-earlycon-device.patch @@ -0,0 +1,84 @@ +From 651dee03696e1dfde6d9a7e8664bbdcd9a10ea7f Mon Sep 17 00:00:00 2001 +From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> +Date: Thu, 16 Jan 2025 20:22:49 +0200 +Subject: serial: sh-sci: Increment the runtime usage counter for the earlycon device + +From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> + +commit 651dee03696e1dfde6d9a7e8664bbdcd9a10ea7f upstream. + +In the sh-sci driver, serial ports are mapped to the sci_ports[] array, +with earlycon mapped at index zero. + +The uart_add_one_port() function eventually calls __device_attach(), +which, in turn, calls pm_request_idle(). The identified code path is as +follows: + +uart_add_one_port() -> + serial_ctrl_register_port() -> + serial_core_register_port() -> + serial_core_port_device_add() -> + serial_base_port_add() -> + device_add() -> + bus_probe_device() -> + device_initial_probe() -> + __device_attach() -> + // ... + if (dev->p->dead) { + // ... + } else if (dev->driver) { + // ... + } else { + // ... + pm_request_idle(dev); + // ... + } + +The earlycon device clocks are enabled by the bootloader. However, the +pm_request_idle() call in __device_attach() disables the SCI port clocks +while earlycon is still active. + +The earlycon write function, serial_console_write(), calls +sci_poll_put_char() via serial_console_putchar(). If the SCI port clocks +are disabled, writing to earlycon may sometimes cause the SR.TDFE bit to +remain unset indefinitely, causing the while loop in sci_poll_put_char() +to never exit. On single-core SoCs, this can result in the system being +blocked during boot when this issue occurs. + +To resolve this, increment the runtime PM usage counter for the earlycon +SCI device before registering the UART port. + +Fixes: 0b0cced19ab1 ("serial: sh-sci: Add CONFIG_SERIAL_EARLYCON support") +Cc: stable@vger.kernel.org +Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> +Link: https://lore.kernel.org/r/20250116182249.3828577-6-claudiu.beznea.uj@bp.renesas.com +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +--- + drivers/tty/serial/sh-sci.c | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +--- a/drivers/tty/serial/sh-sci.c ++++ b/drivers/tty/serial/sh-sci.c +@@ -3425,6 +3425,22 @@ static int sci_probe_single(struct platf + + if (sci_uart_earlycon && sci_ports[0].port.mapbase == sci_res->start) { + /* ++ * In case: ++ * - this is the earlycon port (mapped on index 0 in sci_ports[]) and ++ * - it now maps to an alias other than zero and ++ * - the earlycon is still alive (e.g., "earlycon keep_bootcon" is ++ * available in bootargs) ++ * ++ * we need to avoid disabling clocks and PM domains through the runtime ++ * PM APIs called in __device_attach(). For this, increment the runtime ++ * PM reference counter (the clocks and PM domains were already enabled ++ * by the bootloader). Otherwise the earlycon may access the HW when it ++ * has no clocks enabled leading to failures (infinite loop in ++ * sci_poll_put_char()). ++ */ ++ pm_runtime_get_noresume(&dev->dev); ++ ++ /* + * Skip cleanup the sci_port[0] in early_console_exit(), this + * port is the same as the earlycon one. + */ diff --git a/queue-6.6/series b/queue-6.6/series index da82d94b6f..38bb7e0ee8 100644 --- a/queue-6.6/series +++ b/queue-6.6/series @@ -270,3 +270,8 @@ net-atm-fix-proc-net-atm-lec-handling.patch edac-amd64-correct-number-of-umcs-for-family-19h-models-70h-7fh.patch dt-bindings-i2c-nvidia-tegra20-i2c-specify-the-required-properties.patch smb-log-an-error-when-close_all_cached_dirs-fails.patch +net-make-for_each_netdev_dump-a-little-more-bug-proof.patch +serial-sh-sci-increment-the-runtime-usage-counter-for-the-earlycon-device.patch +platform-x86-ideapad-laptop-add-missing-ideapad-pro-5-fn-keys.patch +arm-dts-am335x-bone-common-increase-mdio-reset-deassert-time.patch +arm-dts-am335x-bone-common-increase-mdio-reset-deassert-delay-to-50ms.patch |