--- /dev/null
+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>;
+ };
+ };
+
--- /dev/null
+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>;
+ };
+ };
+
--- /dev/null
+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)
+ {
--- /dev/null
+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 },
+ };
--- /dev/null
+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.
+ */
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