[openwrt/openwrt] kernel: bump 5.4 to 5.4.211

LEDE Commits lede-commits at lists.infradead.org
Sun Sep 4 06:39:31 PDT 2022


hauke pushed a commit to openwrt/openwrt.git, branch openwrt-21.02:
https://git.openwrt.org/bcaabe6d0586fabab72aa1fc6c06b8f83b6dfa0c

commit bcaabe6d0586fabab72aa1fc6c06b8f83b6dfa0c
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sat Sep 3 16:34:15 2022 +0200

    kernel: bump 5.4 to 5.4.211
    
    Similar version was upstreamed:
     bcm27xx/patches-5.4/950-0392-tty-amba-pl011-Add-un-throttle-support.patch
    
    Manually adapted:
     ipq806x/patches-5.4/0063-2-tsens-support-configurable-interrupts.patch
     layerscape/patches-5.4/301-arch-0008-arm-add-new-non-shareable-ioremap.patch
    
    Compile-tested: x86/64
    Run-tested: x86/64
    
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 include/kernel-version.mk                          |  4 +-
 .../patches-5.4/140-redboot_boardconfig.patch      |  8 +--
 .../patches-5.4/141-redboot_partition_scan.patch   |  6 +--
 .../142-redboot_various_erase_size_fix.patch       | 10 ++--
 ...03-leds-add-reset-controller-based-driver.patch |  6 +--
 .../0036-GPIO-add-named-gpio-exports.patch         |  2 +-
 .../408-mtd-redboot_partition_scan.patch           |  6 +--
 .../patches-5.4/910-unaligned_access_hacks.patch   |  2 +-
 ..._pl011-Don-t-use-DT-aliases-for-numbering.patch |  2 +-
 .../950-0032-amba_pl011-Round-input-clock-up.patch | 10 ++--
 ...pl011-Insert-mb-for-correct-FIFO-handling.patch |  2 +-
 ...l011-Add-cts-event-workaround-DT-property.patch |  2 +-
 .../950-0040-fbdev-add-FBIOCOPYAREA-ioctl.patch    |  8 +--
 ...-hardware-emulation-of-deprecated-instruc.patch |  2 +-
 ...9-cgroup-Disable-cgroup-memory-by-default.patch |  8 +--
 ...pi-spi-bcm2835-Disable-forced-software-CS.patch |  2 +-
 ...i-bcm2835-enable-shared-interrupt-support.patch |  2 +-
 ...mbing-for-updating-interrupt-endpoint-int.patch |  6 +--
 ...-Fix-DMA-channel-and-memory-leak-in-vc4-3.patch | 20 +++----
 ...ba-pl011-Make-TX-optimisation-conditional.patch |  6 +--
 ...llow-.dtbo-overlays-to-be-built-piecemeal.patch |  2 +-
 ...-support-for-YUV-color-encodings-and-rang.patch |  6 +--
 ...92-tty-amba-pl011-Add-un-throttle-support.patch | 61 ----------------------
 ...ba-pl011-Avoid-rare-write-when-full-error.patch |  2 +-
 ...9-SQUASH-Fix-spi-driver-compiler-warnings.patch |  2 +-
 ...36-arm64-use-both-ZONE_DMA-and-ZONE_DMA32.patch |  2 +-
 ...a2x11-use-default-DMA-address-translation.patch |  2 +-
 ...d-Allow-.dtbo-overlays-to-be-built-adjust.patch |  2 +-
 ...mem2mem-add-stateless_-try_-decoder_cmd-i.patch |  2 +-
 ...mem2mem-allow-request-job-buffer-processi.patch |  2 +-
 .../950-0538-drm-vc4-drv-Support-BCM2711.patch     |  2 +-
 ...-vc4-drv-Add-support-for-the-BCM2711-HVS5.patch |  6 +--
 .../950-0540-drm-vc4-plane-Improve-LBM-usage.patch | 10 ++--
 ...ne-Move-planes-creation-to-its-own-functi.patch |  2 +-
 ...vc4-plane-Register-all-the-planes-at-once.patch |  2 +-
 ...rm-vc4-plane-Create-overlays-for-any-CRTC.patch |  2 +-
 ...950-0545-drm-vc4-plane-Create-more-planes.patch |  2 +-
 ...-support-for-DRM_FORMAT_P030-to-vc4-plane.patch | 14 ++---
 .../patches-5.4/950-0596-Fixup-P030-support.patch  |  2 +-
 ...t-SQUASH-Fix-spi-driver-compiler-warnings.patch |  2 +-
 ...pi-spi-bcm2835-Disable-forced-software-CS.patch |  2 +-
 ...m_sf2-support-BCM4908-s-integrated-switch.patch |  4 +-
 ...a-bcm_sf2-setup-BCM4908-internal-crossbar.patch | 10 ++--
 ...t-dsa-bcm_sf2-Fill-in-BCM4908-CFP-entries.patch |  2 +-
 ...m_sf2-add-function-finding-RGMII-register.patch |  4 +-
 ...5-net-dsa-bcm_sf2-fix-BCM4908-RGMII-reg-s.patch |  2 +-
 ...-net-dsa-bcm_sf2-refactor-LED-regs-access.patch |  2 +-
 ...sa-bcm_sf2-enable-GPHY-for-switch-probing.patch |  2 +-
 ...-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch |  2 +-
 ...vice-tree-gpio-hogs-on-dual-role-gpio-pin.patch |  2 +-
 .../patches-5.4/400-bcm963xx_flashmap.patch        |  6 +--
 ...4-chacha-depend-on-generic-chacha-library.patch |  2 +-
 ...4-chacha-expose-arm64-ChaCha-routine-as-l.patch |  2 +-
 ...4-poly1305-incorporate-OpenSSL-CRYPTOGAMS.patch |  2 +-
 .../hack-5.4/321-powerpc_crtsavres_prereq.patch    |  2 +-
 ...edboot-add-of_match_table-with-DT-binding.patch |  2 +-
 .../pending-5.4/420-mtd-redboot_space.patch        |  2 +-
 ...f_flow_table-add-hardware-offload-support.patch |  6 +--
 ...jecting-with-source-address-failed-policy.patch | 16 +++---
 .../811-pci_disable_usb_common_quirks.patch        |  2 +-
 .../100-GPIO-add-named-gpio-exports.patch          |  2 +-
 ...HACK-arch-arm-force-ZRELADDR-on-arch-qcom.patch |  2 +-
 ...3-2-tsens-support-configurable-interrupts.patch | 34 ++++++------
 ...eric-Mangle-bootloader-s-kernel-arguments.patch |  2 +-
 .../patches-5.4/900-arm-add-cmdline-override.patch |  2 +-
 .../0001-MIPS-lantiq-add-pcie-driver.patch         |  2 +-
 .../0030-GPIO-add-named-gpio-exports.patch         |  2 +-
 ...ch-0008-arm-add-new-non-shareable-ioremap.patch | 12 ++---
 ...a-symlink-too-be-created-with-a-cftype-fi.patch | 12 ++---
 ...roup-bfq-revert-bfq.weight-symlink-change.patch | 12 ++---
 ...f-esdhc-poll-ESDHC_FLUSH_ASYNC_FIFO-bit-u.patch |  2 +-
 ...sdhci-of-esdhc-convert-to-use-esdhc_tunin.patch |  6 +--
 ...sdhci-of-esdhc-update-tuning-erratum-A-00.patch |  6 +--
 ...b-0005-usb-dwc3-add-otg-properties-update.patch |  2 +-
 ...-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch |  6 +--
 .../patches-5.4/901-fix_irq_type_of_pca953x.patch  |  2 +-
 .../0500-v5.6-crypto-backport-inside-secure.patch  |  6 +--
 ...pagate-resolved-link-config-via-mac_link_.patch |  2 +-
 .../patches-5.4/1021-ubnt-ledbar-driver.patch      |  6 +--
 ...vebu-Mangle-bootloader-s-kernel-arguments.patch |  2 +-
 .../patches-5.4/130-itus_shield_support.patch      |  2 +-
 ...rk-for-Gateworks-PLX-PEX860x-switch-with-.patch |  2 +-
 ...eric-Mangle-bootloader-s-kernel-arguments.patch |  2 +-
 .../0024-GPIO-add-named-gpio-exports.patch         |  2 +-
 84 files changed, 192 insertions(+), 253 deletions(-)

diff --git a/include/kernel-version.mk b/include/kernel-version.mk
index 3cf36b72aa..789896dd7d 100644
--- a/include/kernel-version.mk
+++ b/include/kernel-version.mk
@@ -6,9 +6,9 @@ ifdef CONFIG_TESTING_KERNEL
   KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
 endif
 
-LINUX_VERSION-5.4 = .203
+LINUX_VERSION-5.4 = .211
 
-LINUX_KERNEL_HASH-5.4.203 = fc933f5b13066cfa54aacb5e86747a167bad1d8d23972e4a03ab5ee36c29798a
+LINUX_KERNEL_HASH-5.4.211 = bfb43241b72cd55797af68bea1cebe630d37664c0f9a99b6e9263a63a67e2dec
 
 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
 sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
diff --git a/target/linux/ath25/patches-5.4/140-redboot_boardconfig.patch b/target/linux/ath25/patches-5.4/140-redboot_boardconfig.patch
index 81b23e863e..07d75b9fba 100644
--- a/target/linux/ath25/patches-5.4/140-redboot_boardconfig.patch
+++ b/target/linux/ath25/patches-5.4/140-redboot_boardconfig.patch
@@ -9,7 +9,7 @@
  struct fis_image_desc {
      unsigned char name[16];      // Null terminated name
      uint32_t	  flash_base;    // Address within FLASH of image
-@@ -72,6 +74,7 @@ static int parse_redboot_partitions(stru
+@@ -73,6 +75,7 @@ static int parse_redboot_partitions(stru
  				    const struct mtd_partition **pparts,
  				    struct mtd_part_parser_data *data)
  {
@@ -17,7 +17,7 @@
  	int nrparts = 0;
  	struct fis_image_desc *buf;
  	struct mtd_partition *parts;
-@@ -239,14 +242,15 @@ static int parse_redboot_partitions(stru
+@@ -240,14 +243,15 @@ static int parse_redboot_partitions(stru
  		}
  	}
  #endif
@@ -35,7 +35,7 @@
  #ifdef CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED
  	if (nulllen > 0) {
  		strcpy(nullname, nullstring);
-@@ -265,6 +269,8 @@ static int parse_redboot_partitions(stru
+@@ -266,6 +270,8 @@ static int parse_redboot_partitions(stru
  	}
  #endif
  	for ( ; i<nrparts; i++) {
@@ -44,7 +44,7 @@
  		parts[i].size = fl->img->size;
  		parts[i].offset = fl->img->flash_base;
  		parts[i].name = names;
-@@ -298,6 +304,13 @@ static int parse_redboot_partitions(stru
+@@ -299,6 +305,13 @@ static int parse_redboot_partitions(stru
  		fl = fl->next;
  		kfree(tmp_fl);
  	}
diff --git a/target/linux/ath25/patches-5.4/141-redboot_partition_scan.patch b/target/linux/ath25/patches-5.4/141-redboot_partition_scan.patch
index 343eedc075..68019f90ea 100644
--- a/target/linux/ath25/patches-5.4/141-redboot_partition_scan.patch
+++ b/target/linux/ath25/patches-5.4/141-redboot_partition_scan.patch
@@ -1,6 +1,6 @@
 --- a/drivers/mtd/parsers/redboot.c
 +++ b/drivers/mtd/parsers/redboot.c
-@@ -93,12 +93,18 @@ static int parse_redboot_partitions(stru
+@@ -94,12 +94,18 @@ static int parse_redboot_partitions(stru
  
  	parse_redboot_of(master);
  
@@ -19,7 +19,7 @@
  				return -EIO;
  			}
  			offset -= master->erasesize;
-@@ -111,10 +117,6 @@ static int parse_redboot_partitions(stru
+@@ -112,10 +118,6 @@ static int parse_redboot_partitions(stru
  				goto nogood;
  		}
  	}
@@ -30,7 +30,7 @@
  
  	printk(KERN_NOTICE "Searching for RedBoot partition table in %s at offset 0x%lx\n",
  	       master->name, offset);
-@@ -187,6 +189,11 @@ static int parse_redboot_partitions(stru
+@@ -188,6 +190,11 @@ static int parse_redboot_partitions(stru
  	}
  	if (i == numslots) {
  		/* Didn't find it */
diff --git a/target/linux/ath25/patches-5.4/142-redboot_various_erase_size_fix.patch b/target/linux/ath25/patches-5.4/142-redboot_various_erase_size_fix.patch
index 55cf84eeff..c3b73eabe9 100644
--- a/target/linux/ath25/patches-5.4/142-redboot_various_erase_size_fix.patch
+++ b/target/linux/ath25/patches-5.4/142-redboot_various_erase_size_fix.patch
@@ -1,6 +1,6 @@
 --- a/drivers/mtd/parsers/redboot.c
 +++ b/drivers/mtd/parsers/redboot.c
-@@ -70,6 +70,22 @@ static void parse_redboot_of(struct mtd_
+@@ -71,6 +71,22 @@ static void parse_redboot_of(struct mtd_
  	directory = dirblock;
  }
  
@@ -23,7 +23,7 @@
  static int parse_redboot_partitions(struct mtd_info *master,
  				    const struct mtd_partition **pparts,
  				    struct mtd_part_parser_data *data)
-@@ -86,6 +102,7 @@ static int parse_redboot_partitions(stru
+@@ -87,6 +103,7 @@ static int parse_redboot_partitions(stru
  	int namelen = 0;
  	int nulllen = 0;
  	int numslots;
@@ -31,7 +31,7 @@
  	unsigned long offset;
  #ifdef CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED
  	static char nullstring[] = "unallocated";
-@@ -200,7 +217,10 @@ static int parse_redboot_partitions(stru
+@@ -201,7 +218,10 @@ static int parse_redboot_partitions(stru
  		goto out;
  	}
  
@@ -43,7 +43,7 @@
  		struct fis_list *new_fl, **prev;
  
  		if (buf[i].name[0] == 0xff) {
-@@ -276,12 +296,13 @@ static int parse_redboot_partitions(stru
+@@ -277,12 +297,13 @@ static int parse_redboot_partitions(stru
  	}
  #endif
  	for ( ; i<nrparts; i++) {
@@ -59,7 +59,7 @@
  		strcpy(names, fl->img->name);
  #ifdef CONFIG_MTD_REDBOOT_PARTS_READONLY
  		if (!memcmp(names, "RedBoot", 8) ||
-@@ -311,7 +332,9 @@ static int parse_redboot_partitions(stru
+@@ -312,7 +333,9 @@ static int parse_redboot_partitions(stru
  		fl = fl->next;
  		kfree(tmp_fl);
  	}
diff --git a/target/linux/ath79/patches-5.4/0003-leds-add-reset-controller-based-driver.patch b/target/linux/ath79/patches-5.4/0003-leds-add-reset-controller-based-driver.patch
index 32a122fabe..d8418295bf 100644
--- a/target/linux/ath79/patches-5.4/0003-leds-add-reset-controller-based-driver.patch
+++ b/target/linux/ath79/patches-5.4/0003-leds-add-reset-controller-based-driver.patch
@@ -13,9 +13,9 @@ Signed-off-by: John Crispin <john at phrozen.org>
 
 --- a/drivers/leds/Kconfig
 +++ b/drivers/leds/Kconfig
-@@ -824,6 +824,17 @@ config LEDS_LM36274
- 	  Say Y to enable the LM36274 LED driver for TI LMU devices.
- 	  This supports the LED device LM36274.
+@@ -826,6 +826,17 @@ config LEDS_LM36274
+ 
+ source "drivers/leds/blink/Kconfig"
  
 +config LEDS_RESET
 +	tristate "LED support for reset-controller API"
diff --git a/target/linux/ath79/patches-5.4/0036-GPIO-add-named-gpio-exports.patch b/target/linux/ath79/patches-5.4/0036-GPIO-add-named-gpio-exports.patch
index 805836fcca..a7f1a48bd9 100644
--- a/target/linux/ath79/patches-5.4/0036-GPIO-add-named-gpio-exports.patch
+++ b/target/linux/ath79/patches-5.4/0036-GPIO-add-named-gpio-exports.patch
@@ -22,7 +22,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  
  #include "gpiolib.h"
  #include "gpiolib-of.h"
-@@ -915,3 +917,68 @@ void of_gpiochip_remove(struct gpio_chip
+@@ -917,3 +919,68 @@ void of_gpiochip_remove(struct gpio_chip
  {
  	of_node_put(chip->of_node);
  }
diff --git a/target/linux/ath79/patches-5.4/408-mtd-redboot_partition_scan.patch b/target/linux/ath79/patches-5.4/408-mtd-redboot_partition_scan.patch
index e5b06e14a5..ad5257fabd 100644
--- a/target/linux/ath79/patches-5.4/408-mtd-redboot_partition_scan.patch
+++ b/target/linux/ath79/patches-5.4/408-mtd-redboot_partition_scan.patch
@@ -1,6 +1,6 @@
 --- a/drivers/mtd/parsers/redboot.c
 +++ b/drivers/mtd/parsers/redboot.c
-@@ -90,12 +90,18 @@ static int parse_redboot_partitions(stru
+@@ -91,12 +91,18 @@ static int parse_redboot_partitions(stru
  
  	parse_redboot_of(master);
  
@@ -19,7 +19,7 @@
  				return -EIO;
  			}
  			offset -= master->erasesize;
-@@ -108,10 +114,6 @@ static int parse_redboot_partitions(stru
+@@ -109,10 +115,6 @@ static int parse_redboot_partitions(stru
  				goto nogood;
  		}
  	}
@@ -30,7 +30,7 @@
  
  	printk(KERN_NOTICE "Searching for RedBoot partition table in %s at offset 0x%lx\n",
  	       master->name, offset);
-@@ -184,6 +186,11 @@ static int parse_redboot_partitions(stru
+@@ -185,6 +187,11 @@ static int parse_redboot_partitions(stru
  	}
  	if (i == numslots) {
  		/* Didn't find it */
diff --git a/target/linux/ath79/patches-5.4/910-unaligned_access_hacks.patch b/target/linux/ath79/patches-5.4/910-unaligned_access_hacks.patch
index bb1bdf20f0..86cf7a4c61 100644
--- a/target/linux/ath79/patches-5.4/910-unaligned_access_hacks.patch
+++ b/target/linux/ath79/patches-5.4/910-unaligned_access_hacks.patch
@@ -706,7 +706,7 @@
  EXPORT_SYMBOL(xfrm_parse_spi);
 --- a/net/ipv4/tcp_input.c
 +++ b/net/ipv4/tcp_input.c
-@@ -3980,14 +3980,16 @@ static bool tcp_parse_aligned_timestamp(
+@@ -3986,14 +3986,16 @@ static bool tcp_parse_aligned_timestamp(
  {
  	const __be32 *ptr = (const __be32 *)(th + 1);
  
diff --git a/target/linux/bcm27xx/patches-5.4/950-0031-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch b/target/linux/bcm27xx/patches-5.4/950-0031-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch
index 16a835f5a0..8e0ccd4d4e 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0031-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0031-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch
@@ -14,7 +14,7 @@ use the same logic.
 
 --- a/drivers/tty/serial/amba-pl011.c
 +++ b/drivers/tty/serial/amba-pl011.c
-@@ -2557,7 +2557,12 @@ static int pl011_setup_port(struct devic
+@@ -2576,7 +2576,12 @@ static int pl011_setup_port(struct devic
  	if (IS_ERR(base))
  		return PTR_ERR(base);
  
diff --git a/target/linux/bcm27xx/patches-5.4/950-0032-amba_pl011-Round-input-clock-up.patch b/target/linux/bcm27xx/patches-5.4/950-0032-amba_pl011-Round-input-clock-up.patch
index e7892d3103..6552e9f6c1 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0032-amba_pl011-Round-input-clock-up.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0032-amba_pl011-Round-input-clock-up.patch
@@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
 
 --- a/drivers/tty/serial/amba-pl011.c
 +++ b/drivers/tty/serial/amba-pl011.c
-@@ -1653,6 +1653,23 @@ static void pl011_put_poll_char(struct u
+@@ -1662,6 +1662,23 @@ static void pl011_put_poll_char(struct u
  
  #endif /* CONFIG_CONSOLE_POLL */
  
@@ -50,7 +50,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
  static int pl011_hwinit(struct uart_port *port)
  {
  	struct uart_amba_port *uap =
-@@ -1669,7 +1686,7 @@ static int pl011_hwinit(struct uart_port
+@@ -1678,7 +1695,7 @@ static int pl011_hwinit(struct uart_port
  	if (retval)
  		return retval;
  
@@ -59,7 +59,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
  
  	/* Clear pending error and receive interrupts */
  	pl011_write(UART011_OEIS | UART011_BEIS | UART011_PEIS |
-@@ -2303,7 +2320,7 @@ static int pl011_console_setup(struct co
+@@ -2322,7 +2339,7 @@ static int pl011_console_setup(struct co
  			plat->init();
  	}
  
@@ -68,7 +68,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
  
  	if (uap->vendor->fixed_options) {
  		baud = uap->fixed_baud;
-@@ -2488,6 +2505,7 @@ static struct uart_driver amba_reg = {
+@@ -2507,6 +2524,7 @@ static struct uart_driver amba_reg = {
  	.cons			= AMBA_CONSOLE,
  };
  
@@ -76,7 +76,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
  static int pl011_probe_dt_alias(int index, struct device *dev)
  {
  	struct device_node *np;
-@@ -2519,6 +2537,7 @@ static int pl011_probe_dt_alias(int inde
+@@ -2538,6 +2556,7 @@ static int pl011_probe_dt_alias(int inde
  
  	return ret;
  }
diff --git a/target/linux/bcm27xx/patches-5.4/950-0033-amba_pl011-Insert-mb-for-correct-FIFO-handling.patch b/target/linux/bcm27xx/patches-5.4/950-0033-amba_pl011-Insert-mb-for-correct-FIFO-handling.patch
index b07096b5e1..c57cf2d8dc 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0033-amba_pl011-Insert-mb-for-correct-FIFO-handling.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0033-amba_pl011-Insert-mb-for-correct-FIFO-handling.patch
@@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
 
 --- a/drivers/tty/serial/amba-pl011.c
 +++ b/drivers/tty/serial/amba-pl011.c
-@@ -1386,6 +1386,7 @@ static bool pl011_tx_char(struct uart_am
+@@ -1395,6 +1395,7 @@ static bool pl011_tx_char(struct uart_am
  		return false; /* unable to transmit character */
  
  	pl011_write(c, uap, REG_DR);
diff --git a/target/linux/bcm27xx/patches-5.4/950-0034-amba_pl011-Add-cts-event-workaround-DT-property.patch b/target/linux/bcm27xx/patches-5.4/950-0034-amba_pl011-Add-cts-event-workaround-DT-property.patch
index 3bbbed2f98..acf1caff28 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0034-amba_pl011-Add-cts-event-workaround-DT-property.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0034-amba_pl011-Add-cts-event-workaround-DT-property.patch
@@ -36,7 +36,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
    - reg
 --- a/drivers/tty/serial/amba-pl011.c
 +++ b/drivers/tty/serial/amba-pl011.c
-@@ -2644,6 +2644,11 @@ static int pl011_probe(struct amba_devic
+@@ -2663,6 +2663,11 @@ static int pl011_probe(struct amba_devic
  	if (IS_ERR(uap->clk))
  		return PTR_ERR(uap->clk);
  
diff --git a/target/linux/bcm27xx/patches-5.4/950-0040-fbdev-add-FBIOCOPYAREA-ioctl.patch b/target/linux/bcm27xx/patches-5.4/950-0040-fbdev-add-FBIOCOPYAREA-ioctl.patch
index 23d6cd3139..4426b2b3ff 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0040-fbdev-add-FBIOCOPYAREA-ioctl.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0040-fbdev-add-FBIOCOPYAREA-ioctl.patch
@@ -234,7 +234,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
  static int bcm2708_fb_register(struct bcm2708_fb *fb)
 --- a/drivers/video/fbdev/core/fbmem.c
 +++ b/drivers/video/fbdev/core/fbmem.c
-@@ -1080,6 +1080,30 @@ fb_blank(struct fb_info *info, int blank
+@@ -1090,6 +1090,30 @@ fb_blank(struct fb_info *info, int blank
  }
  EXPORT_SYMBOL(fb_blank);
  
@@ -265,7 +265,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
  static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
  			unsigned long arg)
  {
-@@ -1088,6 +1112,7 @@ static long do_fb_ioctl(struct fb_info *
+@@ -1098,6 +1122,7 @@ static long do_fb_ioctl(struct fb_info *
  	struct fb_fix_screeninfo fix;
  	struct fb_cmap cmap_from;
  	struct fb_cmap_user cmap;
@@ -273,7 +273,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
  	void __user *argp = (void __user *)arg;
  	long ret = 0;
  
-@@ -1163,6 +1188,15 @@ static long do_fb_ioctl(struct fb_info *
+@@ -1175,6 +1200,15 @@ static long do_fb_ioctl(struct fb_info *
  		unlock_fb_info(info);
  		console_unlock();
  		break;
@@ -289,7 +289,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
  	default:
  		lock_fb_info(info);
  		fb = info->fbops;
-@@ -1308,6 +1342,7 @@ static long fb_compat_ioctl(struct file
+@@ -1320,6 +1354,7 @@ static long fb_compat_ioctl(struct file
  	case FBIOPAN_DISPLAY:
  	case FBIOGET_CON2FBMAP:
  	case FBIOPUT_CON2FBMAP:
diff --git a/target/linux/bcm27xx/patches-5.4/950-0086-ARM64-Force-hardware-emulation-of-deprecated-instruc.patch b/target/linux/bcm27xx/patches-5.4/950-0086-ARM64-Force-hardware-emulation-of-deprecated-instruc.patch
index f174921a53..d599972fea 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0086-ARM64-Force-hardware-emulation-of-deprecated-instruc.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0086-ARM64-Force-hardware-emulation-of-deprecated-instruc.patch
@@ -10,7 +10,7 @@ Subject: [PATCH] ARM64: Force hardware emulation of deprecated
 
 --- a/arch/arm64/kernel/armv8_deprecated.c
 +++ b/arch/arm64/kernel/armv8_deprecated.c
-@@ -182,10 +182,15 @@ static void __init register_insn_emulati
+@@ -183,10 +183,15 @@ static void __init register_insn_emulati
  
  	switch (ops->status) {
  	case INSN_DEPRECATED:
diff --git a/target/linux/bcm27xx/patches-5.4/950-0089-cgroup-Disable-cgroup-memory-by-default.patch b/target/linux/bcm27xx/patches-5.4/950-0089-cgroup-Disable-cgroup-memory-by-default.patch
index cb1b7d72e5..38953f9a02 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0089-cgroup-Disable-cgroup-memory-by-default.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0089-cgroup-Disable-cgroup-memory-by-default.patch
@@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
 
 --- a/kernel/cgroup/cgroup.c
 +++ b/kernel/cgroup/cgroup.c
-@@ -5788,6 +5788,9 @@ int __init cgroup_init_early(void)
+@@ -5797,6 +5797,9 @@ int __init cgroup_init_early(void)
  	return 0;
  }
  
@@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
  /**
   * cgroup_init - cgroup initialization
   *
-@@ -5826,6 +5829,12 @@ int __init cgroup_init(void)
+@@ -5835,6 +5838,12 @@ int __init cgroup_init(void)
  
  	mutex_unlock(&cgroup_mutex);
  
@@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
  	for_each_subsys(ss, ssid) {
  		if (ss->early_init) {
  			struct cgroup_subsys_state *css =
-@@ -6235,6 +6244,10 @@ static int __init cgroup_disable(char *s
+@@ -6244,6 +6253,10 @@ static int __init cgroup_disable(char *s
  			    strcmp(token, ss->legacy_name))
  				continue;
  
@@ -51,7 +51,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
  			static_branch_disable(cgroup_subsys_enabled_key[i]);
  			pr_info("Disabling %s control group subsystem\n",
  				ss->name);
-@@ -6244,6 +6257,31 @@ static int __init cgroup_disable(char *s
+@@ -6253,6 +6266,31 @@ static int __init cgroup_disable(char *s
  }
  __setup("cgroup_disable=", cgroup_disable);
  
diff --git a/target/linux/bcm27xx/patches-5.4/950-0134-spi-spi-bcm2835-Disable-forced-software-CS.patch b/target/linux/bcm27xx/patches-5.4/950-0134-spi-spi-bcm2835-Disable-forced-software-CS.patch
index cfb46d8791..b4d628941d 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0134-spi-spi-bcm2835-Disable-forced-software-CS.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0134-spi-spi-bcm2835-Disable-forced-software-CS.patch
@@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
 
 --- a/drivers/spi/spi-bcm2835.c
 +++ b/drivers/spi/spi-bcm2835.c
-@@ -1236,31 +1236,6 @@ static int bcm2835_spi_setup(struct spi_
+@@ -1240,31 +1240,6 @@ static int bcm2835_spi_setup(struct spi_
  		return -EINVAL;
  	}
  
diff --git a/target/linux/bcm27xx/patches-5.4/950-0212-spi-bcm2835-enable-shared-interrupt-support.patch b/target/linux/bcm27xx/patches-5.4/950-0212-spi-bcm2835-enable-shared-interrupt-support.patch
index 5326934b71..a5be948407 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0212-spi-bcm2835-enable-shared-interrupt-support.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0212-spi-bcm2835-enable-shared-interrupt-support.patch
@@ -23,7 +23,7 @@ Signed-off-by: Martin Sperl <kernel at martin.sperl.org>
  	/* Read as many bytes as possible from FIFO */
  	bcm2835_rd_fifo(bs);
  	/* Write as many bytes as possible to FIFO */
-@@ -1287,7 +1291,8 @@ static int bcm2835_spi_probe(struct plat
+@@ -1291,7 +1295,8 @@ static int bcm2835_spi_probe(struct plat
  	bcm2835_wr(bs, BCM2835_SPI_CS,
  		   BCM2835_SPI_CS_CLEAR_RX | BCM2835_SPI_CS_CLEAR_TX);
  
diff --git a/target/linux/bcm27xx/patches-5.4/950-0218-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch b/target/linux/bcm27xx/patches-5.4/950-0218-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch
index 7efa6d533e..1d192e714c 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0218-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0218-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch
@@ -27,7 +27,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.org>
 
 --- a/drivers/usb/core/hcd.c
 +++ b/drivers/usb/core/hcd.c
-@@ -1962,6 +1962,16 @@ reset:
+@@ -1965,6 +1965,16 @@ reset:
  	return ret;
  }
  
@@ -81,7 +81,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.org>
  extern int usb_driver_set_configuration(struct usb_device *udev, int config);
 --- a/include/linux/usb/hcd.h
 +++ b/include/linux/usb/hcd.h
-@@ -384,6 +384,11 @@ struct hc_driver {
+@@ -385,6 +385,11 @@ struct hc_driver {
  		 * or bandwidth constraints.
  		 */
  	void	(*reset_bandwidth)(struct usb_hcd *, struct usb_device *);
@@ -93,7 +93,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.org>
  		/* Returns the hardware-chosen device address */
  	int	(*address_device)(struct usb_hcd *, struct usb_device *udev);
  		/* prepares the hardware to send commands to the device */
-@@ -445,6 +450,8 @@ extern void usb_hcd_unmap_urb_setup_for_
+@@ -446,6 +451,8 @@ extern void usb_hcd_unmap_urb_setup_for_
  extern void usb_hcd_unmap_urb_for_dma(struct usb_hcd *, struct urb *);
  extern void usb_hcd_flush_endpoint(struct usb_device *udev,
  		struct usb_host_endpoint *ep);
diff --git a/target/linux/bcm27xx/patches-5.4/950-0261-drm-vc4_dsi-Fix-DMA-channel-and-memory-leak-in-vc4-3.patch b/target/linux/bcm27xx/patches-5.4/950-0261-drm-vc4_dsi-Fix-DMA-channel-and-memory-leak-in-vc4-3.patch
index 9fd796850f..1b13a16e31 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0261-drm-vc4_dsi-Fix-DMA-channel-and-memory-leak-in-vc4-3.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0261-drm-vc4_dsi-Fix-DMA-channel-and-memory-leak-in-vc4-3.patch
@@ -11,7 +11,7 @@ Signed-off-by: Chris G Miller <chris at creative-electronics.net>
 
 --- a/drivers/gpu/drm/vc4/vc4_dsi.c
 +++ b/drivers/gpu/drm/vc4/vc4_dsi.c
-@@ -1485,9 +1485,11 @@ static int vc4_dsi_bind(struct device *d
+@@ -1483,9 +1483,11 @@ static int vc4_dsi_bind(struct device *d
  	/* DSI1 has a broken AXI slave that doesn't respond to writes
  	 * from the ARM.  It does handle writes from the DMA engine,
  	 * so set up a channel for talking to it.
@@ -24,7 +24,7 @@ Signed-off-by: Chris G Miller <chris at creative-electronics.net>
  						      &dsi->reg_dma_paddr,
  						      GFP_KERNEL);
  		if (!dsi->reg_dma_mem) {
-@@ -1506,6 +1508,8 @@ static int vc4_dsi_bind(struct device *d
+@@ -1504,6 +1506,8 @@ static int vc4_dsi_bind(struct device *d
  			return ret;
  		}
  
@@ -33,7 +33,7 @@ Signed-off-by: Chris G Miller <chris at creative-electronics.net>
  		/* Get the physical address of the device's registers.  The
  		 * struct resource for the regs gives us the bus address
  		 * instead.
-@@ -1532,7 +1536,7 @@ static int vc4_dsi_bind(struct device *d
+@@ -1530,7 +1534,7 @@ static int vc4_dsi_bind(struct device *d
  	if (ret) {
  		if (ret != -EPROBE_DEFER)
  			dev_err(dev, "Failed to get interrupt: %d\n", ret);
@@ -42,7 +42,7 @@ Signed-off-by: Chris G Miller <chris at creative-electronics.net>
  	}
  
  	dsi->escape_clock = devm_clk_get(dev, "escape");
-@@ -1540,7 +1544,7 @@ static int vc4_dsi_bind(struct device *d
+@@ -1538,7 +1542,7 @@ static int vc4_dsi_bind(struct device *d
  		ret = PTR_ERR(dsi->escape_clock);
  		if (ret != -EPROBE_DEFER)
  			dev_err(dev, "Failed to get escape clock: %d\n", ret);
@@ -51,7 +51,7 @@ Signed-off-by: Chris G Miller <chris at creative-electronics.net>
  	}
  
  	dsi->pll_phy_clock = devm_clk_get(dev, "phy");
-@@ -1548,7 +1552,7 @@ static int vc4_dsi_bind(struct device *d
+@@ -1546,7 +1550,7 @@ static int vc4_dsi_bind(struct device *d
  		ret = PTR_ERR(dsi->pll_phy_clock);
  		if (ret != -EPROBE_DEFER)
  			dev_err(dev, "Failed to get phy clock: %d\n", ret);
@@ -60,7 +60,7 @@ Signed-off-by: Chris G Miller <chris at creative-electronics.net>
  	}
  
  	dsi->pixel_clock = devm_clk_get(dev, "pixel");
-@@ -1556,7 +1560,7 @@ static int vc4_dsi_bind(struct device *d
+@@ -1554,7 +1558,7 @@ static int vc4_dsi_bind(struct device *d
  		ret = PTR_ERR(dsi->pixel_clock);
  		if (ret != -EPROBE_DEFER)
  			dev_err(dev, "Failed to get pixel clock: %d\n", ret);
@@ -69,7 +69,7 @@ Signed-off-by: Chris G Miller <chris at creative-electronics.net>
  	}
  
  	ret = drm_of_find_panel_or_bridge(dev->of_node, 0, 0,
-@@ -1571,26 +1575,28 @@ static int vc4_dsi_bind(struct device *d
+@@ -1569,26 +1573,28 @@ static int vc4_dsi_bind(struct device *d
  		if (ret == -ENODEV)
  			return 0;
  
@@ -103,7 +103,7 @@ Signed-off-by: Chris G Miller <chris at creative-electronics.net>
  
  	if (dsi->port == 1)
  		vc4->dsi1 = dsi;
-@@ -1602,7 +1608,7 @@ static int vc4_dsi_bind(struct device *d
+@@ -1600,7 +1606,7 @@ static int vc4_dsi_bind(struct device *d
  	ret = drm_bridge_attach(dsi->encoder, dsi->bridge, NULL);
  	if (ret) {
  		dev_err(dev, "bridge attach failed: %d\n", ret);
@@ -112,7 +112,7 @@ Signed-off-by: Chris G Miller <chris at creative-electronics.net>
  	}
  	/* Disable the atomic helper calls into the bridge.  We
  	 * manually call the bridge pre_enable / enable / etc. calls
-@@ -1619,6 +1625,11 @@ static int vc4_dsi_bind(struct device *d
+@@ -1617,6 +1623,11 @@ static int vc4_dsi_bind(struct device *d
  	pm_runtime_enable(dev);
  
  	return 0;
@@ -124,7 +124,7 @@ Signed-off-by: Chris G Miller <chris at creative-electronics.net>
  }
  
  static void vc4_dsi_unbind(struct device *dev, struct device *master,
-@@ -1633,6 +1644,8 @@ static void vc4_dsi_unbind(struct device
+@@ -1631,6 +1642,8 @@ static void vc4_dsi_unbind(struct device
  
  	vc4_dsi_encoder_destroy(dsi->encoder);
  
diff --git a/target/linux/bcm27xx/patches-5.4/950-0263-tty-amba-pl011-Make-TX-optimisation-conditional.patch b/target/linux/bcm27xx/patches-5.4/950-0263-tty-amba-pl011-Make-TX-optimisation-conditional.patch
index 58829c9e92..88188ce617 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0263-tty-amba-pl011-Make-TX-optimisation-conditional.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0263-tty-amba-pl011-Make-TX-optimisation-conditional.patch
@@ -58,7 +58,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
  	spin_unlock(&uap->port.lock);
  	dev_vdbg(uap->port.dev,
  		 "Took %d chars from DMA buffer and %d chars from the FIFO\n",
-@@ -1350,6 +1353,7 @@ __acquires(&uap->port.lock)
+@@ -1359,6 +1362,7 @@ __acquires(&uap->port.lock)
  {
  	pl011_fifo_to_tty(uap);
  
@@ -66,7 +66,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
  	spin_unlock(&uap->port.lock);
  	tty_flip_buffer_push(&uap->port.state->port);
  	/*
-@@ -1485,6 +1489,7 @@ static irqreturn_t pl011_int(int irq, vo
+@@ -1494,6 +1498,7 @@ static irqreturn_t pl011_int(int irq, vo
  	int handled = 0;
  
  	spin_lock_irqsave(&uap->port.lock, flags);
@@ -74,7 +74,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
  	status = pl011_read(uap, REG_RIS) & uap->im;
  	if (status) {
  		do {
-@@ -1504,7 +1509,7 @@ static irqreturn_t pl011_int(int irq, vo
+@@ -1513,7 +1518,7 @@ static irqreturn_t pl011_int(int irq, vo
  				      UART011_CTSMIS|UART011_RIMIS))
  				pl011_modem_status(uap);
  			if (status & UART011_TXIS)
diff --git a/target/linux/bcm27xx/patches-5.4/950-0313-kbuild-Allow-.dtbo-overlays-to-be-built-piecemeal.patch b/target/linux/bcm27xx/patches-5.4/950-0313-kbuild-Allow-.dtbo-overlays-to-be-built-piecemeal.patch
index 9ff7c6b336..d9a3157313 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0313-kbuild-Allow-.dtbo-overlays-to-be-built-piecemeal.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0313-kbuild-Allow-.dtbo-overlays-to-be-built-piecemeal.patch
@@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
 
 --- a/Makefile
 +++ b/Makefile
-@@ -1269,6 +1269,9 @@ ifneq ($(dtstree),)
+@@ -1272,6 +1272,9 @@ ifneq ($(dtstree),)
  %.dtb: include/config/kernel.release scripts_dtc
  	$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
  
diff --git a/target/linux/bcm27xx/patches-5.4/950-0319-drm-vc4-Add-support-for-YUV-color-encodings-and-rang.patch b/target/linux/bcm27xx/patches-5.4/950-0319-drm-vc4-Add-support-for-YUV-color-encodings-and-rang.patch
index d7e6bbc561..eae13f5bd4 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0319-drm-vc4-Add-support-for-YUV-color-encodings-and-rang.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0319-drm-vc4-Add-support-for-YUV-color-encodings-and-rang.patch
@@ -18,7 +18,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
 
 --- a/drivers/gpu/drm/vc4/vc4_plane.c
 +++ b/drivers/gpu/drm/vc4/vc4_plane.c
-@@ -585,6 +585,53 @@ static int vc4_plane_allocate_lbm(struct
+@@ -581,6 +581,53 @@ static int vc4_plane_allocate_lbm(struct
  	return 0;
  }
  
@@ -72,7 +72,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
  /* Writes out a full display list for an active plane to the plane's
   * private dlist state.
   */
-@@ -864,9 +911,20 @@ static int vc4_plane_mode_set(struct drm
+@@ -860,9 +907,20 @@ static int vc4_plane_mode_set(struct drm
  
  	/* Colorspace conversion words */
  	if (vc4_state->is_yuv) {
@@ -96,7 +96,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
  	}
  
  	vc4_state->lbm_offset = 0;
-@@ -1275,5 +1333,13 @@ struct drm_plane *vc4_plane_init(struct
+@@ -1271,5 +1329,13 @@ struct drm_plane *vc4_plane_init(struct
  					   DRM_MODE_REFLECT_X |
  					   DRM_MODE_REFLECT_Y);
  
diff --git a/target/linux/bcm27xx/patches-5.4/950-0392-tty-amba-pl011-Add-un-throttle-support.patch b/target/linux/bcm27xx/patches-5.4/950-0392-tty-amba-pl011-Add-un-throttle-support.patch
deleted file mode 100644
index e083237598..0000000000
--- a/target/linux/bcm27xx/patches-5.4/950-0392-tty-amba-pl011-Add-un-throttle-support.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From a3749ee48539fa832b1832cdcae26d34e5d20f00 Mon Sep 17 00:00:00 2001
-From: Phil Elwell <phil at raspberrypi.org>
-Date: Fri, 24 Jan 2020 11:38:28 +0000
-Subject: [PATCH] tty: amba-pl011: Add un/throttle support
-
-The PL011 driver lacks throttle and unthrottle methods. As a result,
-sending more data to the Pi than it can immediately sink while CRTSCTS
-is enabled causes a NULL pointer to be followed.
-
-Add a throttle handler that disables the RX interrupts, and an
-unthrottle handler that reenables them.
-
-Signed-off-by: Phil Elwell <phil at raspberrypi.org>
----
- drivers/tty/serial/amba-pl011.c | 28 ++++++++++++++++++++++++++++
- 1 file changed, 28 insertions(+)
-
---- a/drivers/tty/serial/amba-pl011.c
-+++ b/drivers/tty/serial/amba-pl011.c
-@@ -1326,6 +1326,32 @@ static void pl011_start_tx(struct uart_p
- 		pl011_start_tx_pio(uap);
- }
- 
-+static void pl011_throttle(struct uart_port *port)
-+{
-+	struct uart_amba_port *uap =
-+	    container_of(port, struct uart_amba_port, port);
-+	unsigned long flags;
-+
-+	spin_lock_irqsave(&uap->port.lock, flags);
-+	uap->im &= ~(UART011_RTIM | UART011_RXIM);
-+	pl011_write(uap->im, uap, REG_IMSC);
-+	spin_unlock_irqrestore(&uap->port.lock, flags);
-+}
-+
-+static void pl011_unthrottle(struct uart_port *port)
-+{
-+	struct uart_amba_port *uap =
-+	    container_of(port, struct uart_amba_port, port);
-+	unsigned long flags;
-+
-+	spin_lock_irqsave(&uap->port.lock, flags);
-+	uap->im |= UART011_RTIM;
-+	if (!pl011_dma_rx_running(uap))
-+	    uap->im |= UART011_RXIM;
-+	pl011_write(uap->im, uap, REG_IMSC);
-+	spin_unlock_irqrestore(&uap->port.lock, flags);
-+}
-+
- static void pl011_stop_rx(struct uart_port *port)
- {
- 	struct uart_amba_port *uap =
-@@ -2150,6 +2176,8 @@ static const struct uart_ops amba_pl011_
- 	.stop_tx	= pl011_stop_tx,
- 	.start_tx	= pl011_start_tx,
- 	.stop_rx	= pl011_stop_rx,
-+	.throttle	= pl011_throttle,
-+	.unthrottle	= pl011_unthrottle,
- 	.enable_ms	= pl011_enable_ms,
- 	.break_ctl	= pl011_break_ctl,
- 	.startup	= pl011_startup,
diff --git a/target/linux/bcm27xx/patches-5.4/950-0402-tty-amba-pl011-Avoid-rare-write-when-full-error.patch b/target/linux/bcm27xx/patches-5.4/950-0402-tty-amba-pl011-Avoid-rare-write-when-full-error.patch
index 6283b83e17..12f1ec3555 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0402-tty-amba-pl011-Avoid-rare-write-when-full-error.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0402-tty-amba-pl011-Avoid-rare-write-when-full-error.patch
@@ -29,7 +29,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
 
 --- a/drivers/tty/serial/amba-pl011.c
 +++ b/drivers/tty/serial/amba-pl011.c
-@@ -1447,6 +1447,10 @@ static bool pl011_tx_chars(struct uart_a
+@@ -1430,6 +1430,10 @@ static bool pl011_tx_chars(struct uart_a
  		if (likely(from_irq) && count-- == 0)
  			break;
  
diff --git a/target/linux/bcm27xx/patches-5.4/950-0409-SQUASH-Fix-spi-driver-compiler-warnings.patch b/target/linux/bcm27xx/patches-5.4/950-0409-SQUASH-Fix-spi-driver-compiler-warnings.patch
index 742dbad712..d96148133c 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0409-SQUASH-Fix-spi-driver-compiler-warnings.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0409-SQUASH-Fix-spi-driver-compiler-warnings.patch
@@ -12,7 +12,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
 
 --- a/drivers/spi/spi-bcm2835.c
 +++ b/drivers/spi/spi-bcm2835.c
-@@ -1182,7 +1182,6 @@ static int bcm2835_spi_setup(struct spi_
+@@ -1186,7 +1186,6 @@ static int bcm2835_spi_setup(struct spi_
  {
  	struct spi_controller *ctlr = spi->controller;
  	struct bcm2835_spi *bs = spi_controller_get_devdata(ctlr);
diff --git a/target/linux/bcm27xx/patches-5.4/950-0436-arm64-use-both-ZONE_DMA-and-ZONE_DMA32.patch b/target/linux/bcm27xx/patches-5.4/950-0436-arm64-use-both-ZONE_DMA-and-ZONE_DMA32.patch
index 92123ceb32..e2c48a82e8 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0436-arm64-use-both-ZONE_DMA-and-ZONE_DMA32.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0436-arm64-use-both-ZONE_DMA-and-ZONE_DMA32.patch
@@ -29,7 +29,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas at arm.com>
 
 --- a/arch/arm64/Kconfig
 +++ b/arch/arm64/Kconfig
-@@ -267,6 +267,10 @@ config GENERIC_CSUM
+@@ -266,6 +266,10 @@ config GENERIC_CSUM
  config GENERIC_CALIBRATE_DELAY
  	def_bool y
  
diff --git a/target/linux/bcm27xx/patches-5.4/950-0440-x86-PCI-sta2x11-use-default-DMA-address-translation.patch b/target/linux/bcm27xx/patches-5.4/950-0440-x86-PCI-sta2x11-use-default-DMA-address-translation.patch
index 539f5e1c0b..51fd4be35e 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0440-x86-PCI-sta2x11-use-default-DMA-address-translation.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0440-x86-PCI-sta2x11-use-default-DMA-address-translation.patch
@@ -31,7 +31,7 @@ Signed-off-by: Christoph Hellwig <hch at lst.de>
 
 --- a/arch/x86/Kconfig
 +++ b/arch/x86/Kconfig
-@@ -709,7 +709,6 @@ config X86_SUPPORTS_MEMORY_FAILURE
+@@ -708,7 +708,6 @@ config X86_SUPPORTS_MEMORY_FAILURE
  config STA2X11
  	bool "STA2X11 Companion Chip Support"
  	depends on X86_32_NON_STANDARD && PCI
diff --git a/target/linux/bcm27xx/patches-5.4/950-0454-Kbuild-Allow-.dtbo-overlays-to-be-built-adjust.patch b/target/linux/bcm27xx/patches-5.4/950-0454-Kbuild-Allow-.dtbo-overlays-to-be-built-adjust.patch
index af7142f911..7a7832b19b 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0454-Kbuild-Allow-.dtbo-overlays-to-be-built-adjust.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0454-Kbuild-Allow-.dtbo-overlays-to-be-built-adjust.patch
@@ -15,7 +15,7 @@ Signed-off-by: Nataliya Korovkina <malus.brandywine at gmail.com>
 
 --- a/Makefile
 +++ b/Makefile
-@@ -1269,7 +1269,7 @@ ifneq ($(dtstree),)
+@@ -1272,7 +1272,7 @@ ifneq ($(dtstree),)
  %.dtb: include/config/kernel.release scripts_dtc
  	$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
  
diff --git a/target/linux/bcm27xx/patches-5.4/950-0489-media-v4l2-mem2mem-add-stateless_-try_-decoder_cmd-i.patch b/target/linux/bcm27xx/patches-5.4/950-0489-media-v4l2-mem2mem-add-stateless_-try_-decoder_cmd-i.patch
index cc32647a73..36e6942777 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0489-media-v4l2-mem2mem-add-stateless_-try_-decoder_cmd-i.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0489-media-v4l2-mem2mem-add-stateless_-try_-decoder_cmd-i.patch
@@ -21,7 +21,7 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung at kernel.org>
 
 --- a/drivers/media/v4l2-core/v4l2-mem2mem.c
 +++ b/drivers/media/v4l2-core/v4l2-mem2mem.c
-@@ -1216,6 +1216,59 @@ int v4l2_m2m_ioctl_try_decoder_cmd(struc
+@@ -1248,6 +1248,59 @@ int v4l2_m2m_ioctl_try_decoder_cmd(struc
  }
  EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_try_decoder_cmd);
  
diff --git a/target/linux/bcm27xx/patches-5.4/950-0500-media-v4l2-mem2mem-allow-request-job-buffer-processi.patch b/target/linux/bcm27xx/patches-5.4/950-0500-media-v4l2-mem2mem-allow-request-job-buffer-processi.patch
index b43a4d534a..90cbd983b7 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0500-media-v4l2-mem2mem-allow-request-job-buffer-processi.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0500-media-v4l2-mem2mem-allow-request-job-buffer-processi.patch
@@ -168,7 +168,7 @@ Signed-off-by: John Cox <jc at kynesim.co.uk>
  	}
  	schedule_next = _v4l2_m2m_job_finish(m2m_dev, m2m_ctx);
  unlock:
-@@ -981,12 +1072,14 @@ struct v4l2_m2m_ctx *v4l2_m2m_ctx_init(s
+@@ -1013,12 +1104,14 @@ struct v4l2_m2m_ctx *v4l2_m2m_ctx_init(s
  	m2m_ctx->priv = drv_priv;
  	m2m_ctx->m2m_dev = m2m_dev;
  	init_waitqueue_head(&m2m_ctx->finished);
diff --git a/target/linux/bcm27xx/patches-5.4/950-0538-drm-vc4-drv-Support-BCM2711.patch b/target/linux/bcm27xx/patches-5.4/950-0538-drm-vc4-drv-Support-BCM2711.patch
index 21018e11b7..c1270ca978 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0538-drm-vc4-drv-Support-BCM2711.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0538-drm-vc4-drv-Support-BCM2711.patch
@@ -95,7 +95,7 @@ Signed-off-by: Maxime Ripard <maxime at cerno.tech>
  
 --- a/drivers/gpu/drm/vc4/vc4_plane.c
 +++ b/drivers/gpu/drm/vc4/vc4_plane.c
-@@ -500,6 +500,11 @@ static void vc4_plane_calc_load(struct d
+@@ -496,6 +496,11 @@ static void vc4_plane_calc_load(struct d
  	struct vc4_plane_state *vc4_state;
  	struct drm_crtc_state *crtc_state;
  	unsigned int vscale_factor;
diff --git a/target/linux/bcm27xx/patches-5.4/950-0539-drm-vc4-drv-Add-support-for-the-BCM2711-HVS5.patch b/target/linux/bcm27xx/patches-5.4/950-0539-drm-vc4-drv-Add-support-for-the-BCM2711-HVS5.patch
index a02663ac8b..916c4e0f5c 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0539-drm-vc4-drv-Add-support-for-the-BCM2711-HVS5.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0539-drm-vc4-drv-Add-support-for-the-BCM2711-HVS5.patch
@@ -186,7 +186,7 @@ Signed-off-by: Maxime Ripard <maxime at cerno.tech>
  		.pixel_order = HVS_PIXEL_ORDER_XBGR,
  	},
  	{
-@@ -836,35 +851,6 @@ static int vc4_plane_mode_set(struct drm
+@@ -832,35 +847,6 @@ static int vc4_plane_mode_set(struct drm
  		return -EINVAL;
  	}
  
@@ -222,7 +222,7 @@ Signed-off-by: Maxime Ripard <maxime at cerno.tech>
  	/* Don't waste cycles mixing with plane alpha if the set alpha
  	 * is opaque or there is no per-pixel alpha information.
  	 * In any case we use the alpha property value as the fixed alpha.
-@@ -872,20 +858,120 @@ static int vc4_plane_mode_set(struct drm
+@@ -868,20 +854,120 @@ static int vc4_plane_mode_set(struct drm
  	mix_plane_alpha = state->alpha != DRM_BLEND_ALPHA_OPAQUE &&
  			  fb->format->has_alpha;
  
@@ -356,7 +356,7 @@ Signed-off-by: Maxime Ripard <maxime at cerno.tech>
  
  
  	/* Pointer Word 0/1/2: RGB / Y / Cb / Cr Pointers
-@@ -1276,6 +1362,10 @@ static bool vc4_format_mod_supported(str
+@@ -1272,6 +1358,10 @@ static bool vc4_format_mod_supported(str
  		default:
  			return false;
  		}
diff --git a/target/linux/bcm27xx/patches-5.4/950-0540-drm-vc4-plane-Improve-LBM-usage.patch b/target/linux/bcm27xx/patches-5.4/950-0540-drm-vc4-plane-Improve-LBM-usage.patch
index 5342e0ad23..f8791c1e0c 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0540-drm-vc4-plane-Improve-LBM-usage.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0540-drm-vc4-plane-Improve-LBM-usage.patch
@@ -32,7 +32,7 @@ Signed-off-by: Maxime Ripard <maxime at cerno.tech>
  		return VC4_SCALING_NONE;
  	if (3 * dst >= 2 * src)
  		return VC4_SCALING_PPF;
-@@ -377,9 +378,11 @@ static int vc4_plane_setup_clipping_and_
+@@ -373,9 +374,11 @@ static int vc4_plane_setup_clipping_and_
  		return ret;
  
  	vc4_state->x_scaling[0] = vc4_get_scaling_mode(vc4_state->src_w[0],
@@ -46,7 +46,7 @@ Signed-off-by: Maxime Ripard <maxime at cerno.tech>
  
  	vc4_state->is_unity = (vc4_state->x_scaling[0] == VC4_SCALING_NONE &&
  			       vc4_state->y_scaling[0] == VC4_SCALING_NONE);
-@@ -392,10 +395,12 @@ static int vc4_plane_setup_clipping_and_
+@@ -388,10 +391,12 @@ static int vc4_plane_setup_clipping_and_
  
  		vc4_state->x_scaling[1] =
  			vc4_get_scaling_mode(vc4_state->src_w[1],
@@ -61,7 +61,7 @@ Signed-off-by: Maxime Ripard <maxime at cerno.tech>
  
  		/* YUV conversion requires that horizontal scaling be enabled
  		 * on the UV plane even if vc4_get_scaling_mode() returned
-@@ -445,10 +450,7 @@ static void vc4_write_ppf(struct vc4_pla
+@@ -441,10 +446,7 @@ static void vc4_write_ppf(struct vc4_pla
  static u32 vc4_lbm_size(struct drm_plane_state *state)
  {
  	struct vc4_plane_state *vc4_state = to_vc4_plane_state(state);
@@ -73,7 +73,7 @@ Signed-off-by: Maxime Ripard <maxime at cerno.tech>
  	u32 lbm;
  
  	/* LBM is not needed when there's no vertical scaling. */
-@@ -456,6 +458,11 @@ static u32 vc4_lbm_size(struct drm_plane
+@@ -452,6 +454,11 @@ static u32 vc4_lbm_size(struct drm_plane
  	    vc4_state->y_scaling[1] == VC4_SCALING_NONE)
  		return 0;
  
@@ -85,7 +85,7 @@ Signed-off-by: Maxime Ripard <maxime at cerno.tech>
  	if (!vc4_state->is_yuv) {
  		if (vc4_state->y_scaling[0] == VC4_SCALING_TPZ)
  			lbm = pix_per_line * 8;
-@@ -591,7 +598,9 @@ static int vc4_plane_allocate_lbm(struct
+@@ -587,7 +594,9 @@ static int vc4_plane_allocate_lbm(struct
  		spin_lock_irqsave(&vc4->hvs->mm_lock, irqflags);
  		ret = drm_mm_insert_node_generic(&vc4->hvs->lbm_mm,
  						 &vc4_state->lbm,
diff --git a/target/linux/bcm27xx/patches-5.4/950-0541-drm-vc4-plane-Move-planes-creation-to-its-own-functi.patch b/target/linux/bcm27xx/patches-5.4/950-0541-drm-vc4-plane-Move-planes-creation-to-its-own-functi.patch
index 025efee0e3..c876021b43 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0541-drm-vc4-plane-Move-planes-creation-to-its-own-functi.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0541-drm-vc4-plane-Move-planes-creation-to-its-own-functi.patch
@@ -81,7 +81,7 @@ Signed-off-by: Maxime Ripard <maxime at cerno.tech>
  void vc4_plane_async_set_fb(struct drm_plane *plane,
 --- a/drivers/gpu/drm/vc4/vc4_plane.c
 +++ b/drivers/gpu/drm/vc4/vc4_plane.c
-@@ -1447,3 +1447,41 @@ struct drm_plane *vc4_plane_init(struct
+@@ -1443,3 +1443,41 @@ struct drm_plane *vc4_plane_init(struct
  
  	return plane;
  }
diff --git a/target/linux/bcm27xx/patches-5.4/950-0543-drm-vc4-plane-Register-all-the-planes-at-once.patch b/target/linux/bcm27xx/patches-5.4/950-0543-drm-vc4-plane-Register-all-the-planes-at-once.patch
index 28277f1e56..3b9579725a 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0543-drm-vc4-plane-Register-all-the-planes-at-once.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0543-drm-vc4-plane-Register-all-the-planes-at-once.patch
@@ -55,7 +55,7 @@ Signed-off-by: Maxime Ripard <maxime at cerno.tech>
  void vc4_plane_async_set_fb(struct drm_plane *plane,
 --- a/drivers/gpu/drm/vc4/vc4_plane.c
 +++ b/drivers/gpu/drm/vc4/vc4_plane.c
-@@ -1448,39 +1448,41 @@ struct drm_plane *vc4_plane_init(struct
+@@ -1444,39 +1444,41 @@ struct drm_plane *vc4_plane_init(struct
  	return plane;
  }
  
diff --git a/target/linux/bcm27xx/patches-5.4/950-0544-drm-vc4-plane-Create-overlays-for-any-CRTC.patch b/target/linux/bcm27xx/patches-5.4/950-0544-drm-vc4-plane-Create-overlays-for-any-CRTC.patch
index 7b9ec02cf6..3c2826683b 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0544-drm-vc4-plane-Create-overlays-for-any-CRTC.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0544-drm-vc4-plane-Create-overlays-for-any-CRTC.patch
@@ -23,7 +23,7 @@ Signed-off-by: Maxime Ripard <maxime at cerno.tech>
 
 --- a/drivers/gpu/drm/vc4/vc4_plane.c
 +++ b/drivers/gpu/drm/vc4/vc4_plane.c
-@@ -1454,26 +1454,27 @@ int vc4_plane_create_additional_planes(s
+@@ -1450,26 +1450,27 @@ int vc4_plane_create_additional_planes(s
  	struct drm_crtc *crtc;
  	unsigned int i;
  
diff --git a/target/linux/bcm27xx/patches-5.4/950-0545-drm-vc4-plane-Create-more-planes.patch b/target/linux/bcm27xx/patches-5.4/950-0545-drm-vc4-plane-Create-more-planes.patch
index 931e2bdad4..bd2f990265 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0545-drm-vc4-plane-Create-more-planes.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0545-drm-vc4-plane-Create-more-planes.patch
@@ -21,7 +21,7 @@ Signed-off-by: Maxime Ripard <maxime at cerno.tech>
 
 --- a/drivers/gpu/drm/vc4/vc4_plane.c
 +++ b/drivers/gpu/drm/vc4/vc4_plane.c
-@@ -1463,7 +1463,7 @@ int vc4_plane_create_additional_planes(s
+@@ -1459,7 +1459,7 @@ int vc4_plane_create_additional_planes(s
  	 * modest number of planes to expose, that should hopefully
  	 * still cover any sane usecase.
  	 */
diff --git a/target/linux/bcm27xx/patches-5.4/950-0595-drm-vc4-Add-support-for-DRM_FORMAT_P030-to-vc4-plane.patch b/target/linux/bcm27xx/patches-5.4/950-0595-drm-vc4-Add-support-for-DRM_FORMAT_P030-to-vc4-plane.patch
index a4d5afe406..365cbbdcfc 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0595-drm-vc4-Add-support-for-DRM_FORMAT_P030-to-vc4-plane.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0595-drm-vc4-Add-support-for-DRM_FORMAT_P030-to-vc4-plane.patch
@@ -38,7 +38,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  };
  
  static const struct hvs_format *vc4_get_hvs_format(u32 drm_format)
-@@ -809,27 +816,33 @@ static int vc4_plane_mode_set(struct drm
+@@ -805,27 +812,33 @@ static int vc4_plane_mode_set(struct drm
  		uint32_t param = fourcc_mod_broadcom_param(fb->modifier);
  		u32 tile_w, tile, x_off, pix_per_tile;
  
@@ -90,7 +90,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  			return -EINVAL;
  		}
  
-@@ -839,6 +852,13 @@ static int vc4_plane_mode_set(struct drm
+@@ -835,6 +848,13 @@ static int vc4_plane_mode_set(struct drm
  
  		/* Adjust the base pointer to the first pixel to be scanned
  		 * out.
@@ -104,7 +104,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  		 */
  		for (i = 0; i < num_planes; i++) {
  			vc4_state->offsets[i] += param * tile_w * tile;
-@@ -951,8 +971,8 @@ static int vc4_plane_mode_set(struct drm
+@@ -947,8 +967,8 @@ static int vc4_plane_mode_set(struct drm
  		vc4_dlist_write(vc4_state,
  				VC4_SET_FIELD(state->alpha >> 4,
  					      SCALER5_CTL2_ALPHA) |
@@ -115,7 +115,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  				(mix_plane_alpha ?
  					SCALER5_CTL2_ALPHA_MIX : 0) |
  				VC4_SET_FIELD(fb->format->has_alpha ?
-@@ -1000,7 +1020,8 @@ static int vc4_plane_mode_set(struct drm
+@@ -996,7 +1016,8 @@ static int vc4_plane_mode_set(struct drm
  
  	/* Pitch word 1/2 */
  	for (i = 1; i < num_planes; i++) {
@@ -125,7 +125,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  			vc4_dlist_write(vc4_state,
  					VC4_SET_FIELD(fb->pitches[i],
  						      SCALER_SRC_PITCH));
-@@ -1371,6 +1392,13 @@ static bool vc4_format_mod_supported(str
+@@ -1367,6 +1388,13 @@ static bool vc4_format_mod_supported(str
  		default:
  			return false;
  		}
@@ -139,7 +139,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	case DRM_FORMAT_RGBX1010102:
  	case DRM_FORMAT_BGRX1010102:
  	case DRM_FORMAT_RGBA1010102:
-@@ -1403,8 +1431,11 @@ struct drm_plane *vc4_plane_init(struct
+@@ -1399,8 +1427,11 @@ struct drm_plane *vc4_plane_init(struct
  	struct drm_plane *plane = NULL;
  	struct vc4_plane *vc4_plane;
  	u32 formats[ARRAY_SIZE(hvs_formats)];
@@ -151,7 +151,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
  	static const uint64_t modifiers[] = {
  		DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED,
  		DRM_FORMAT_MOD_BROADCOM_SAND128,
-@@ -1419,13 +1450,17 @@ struct drm_plane *vc4_plane_init(struct
+@@ -1415,13 +1446,17 @@ struct drm_plane *vc4_plane_init(struct
  	if (!vc4_plane)
  		return ERR_PTR(-ENOMEM);
  
diff --git a/target/linux/bcm27xx/patches-5.4/950-0596-Fixup-P030-support.patch b/target/linux/bcm27xx/patches-5.4/950-0596-Fixup-P030-support.patch
index 0963824d9e..53f4c460e9 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0596-Fixup-P030-support.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0596-Fixup-P030-support.patch
@@ -15,7 +15,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_plane.c
 +++ b/drivers/gpu/drm/vc4/vc4_plane.c
-@@ -1451,7 +1451,7 @@ struct drm_plane *vc4_plane_init(struct
+@@ -1447,7 +1447,7 @@ struct drm_plane *vc4_plane_init(struct
  		return ERR_PTR(-ENOMEM);
  
  	for (i = 0; i < ARRAY_SIZE(hvs_formats); i++) {
diff --git a/target/linux/bcm27xx/patches-5.4/950-0788-Revert-SQUASH-Fix-spi-driver-compiler-warnings.patch b/target/linux/bcm27xx/patches-5.4/950-0788-Revert-SQUASH-Fix-spi-driver-compiler-warnings.patch
index fad57b4863..83790b41f5 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0788-Revert-SQUASH-Fix-spi-driver-compiler-warnings.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0788-Revert-SQUASH-Fix-spi-driver-compiler-warnings.patch
@@ -12,7 +12,7 @@ See: https://github.com/raspberrypi/linux/pull/3687
 
 --- a/drivers/spi/spi-bcm2835.c
 +++ b/drivers/spi/spi-bcm2835.c
-@@ -1182,6 +1182,8 @@ static int bcm2835_spi_setup(struct spi_
+@@ -1186,6 +1186,8 @@ static int bcm2835_spi_setup(struct spi_
  {
  	struct spi_controller *ctlr = spi->controller;
  	struct bcm2835_spi *bs = spi_controller_get_devdata(ctlr);
diff --git a/target/linux/bcm27xx/patches-5.4/950-0789-Revert-spi-spi-bcm2835-Disable-forced-software-CS.patch b/target/linux/bcm27xx/patches-5.4/950-0789-Revert-spi-spi-bcm2835-Disable-forced-software-CS.patch
index ac0684be86..d5b76a8d32 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0789-Revert-spi-spi-bcm2835-Disable-forced-software-CS.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0789-Revert-spi-spi-bcm2835-Disable-forced-software-CS.patch
@@ -13,7 +13,7 @@ See: https://github.com/raspberrypi/linux/pull/3687
 
 --- a/drivers/spi/spi-bcm2835.c
 +++ b/drivers/spi/spi-bcm2835.c
-@@ -1241,6 +1241,43 @@ static int bcm2835_spi_setup(struct spi_
+@@ -1245,6 +1245,43 @@ static int bcm2835_spi_setup(struct spi_
  		return -EINVAL;
  	}
  
diff --git a/target/linux/bcm4908/patches-5.4/071-v5.12-0001-net-dsa-bcm_sf2-support-BCM4908-s-integrated-switch.patch b/target/linux/bcm4908/patches-5.4/071-v5.12-0001-net-dsa-bcm_sf2-support-BCM4908-s-integrated-switch.patch
index a75898bf0c..766db3e641 100644
--- a/target/linux/bcm4908/patches-5.4/071-v5.12-0001-net-dsa-bcm_sf2-support-BCM4908-s-integrated-switch.patch
+++ b/target/linux/bcm4908/patches-5.4/071-v5.12-0001-net-dsa-bcm_sf2-support-BCM4908-s-integrated-switch.patch
@@ -78,7 +78,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  		offset = CORE_STS_OVERRIDE_GMIIP_PORT(port);
  	else
  		offset = CORE_STS_OVERRIDE_GMIIP2_PORT(port);
-@@ -985,6 +987,30 @@ struct bcm_sf2_of_data {
+@@ -990,6 +992,30 @@ struct bcm_sf2_of_data {
  	unsigned int num_cfp_rules;
  };
  
@@ -109,7 +109,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  /* Register offsets for the SWITCH_REG_* block */
  static const u16 bcm_sf2_7445_reg_offsets[] = {
  	[REG_SWITCH_CNTRL]	= 0x00,
-@@ -1033,6 +1059,9 @@ static const struct bcm_sf2_of_data bcm_
+@@ -1038,6 +1064,9 @@ static const struct bcm_sf2_of_data bcm_
  };
  
  static const struct of_device_id bcm_sf2_of_match[] = {
diff --git a/target/linux/bcm4908/patches-5.4/075-v5.13-0002-net-dsa-bcm_sf2-setup-BCM4908-internal-crossbar.patch b/target/linux/bcm4908/patches-5.4/075-v5.13-0002-net-dsa-bcm_sf2-setup-BCM4908-internal-crossbar.patch
index b0626ba71e..09fb5dbd15 100644
--- a/target/linux/bcm4908/patches-5.4/075-v5.13-0002-net-dsa-bcm_sf2-setup-BCM4908-internal-crossbar.patch
+++ b/target/linux/bcm4908/patches-5.4/075-v5.13-0002-net-dsa-bcm_sf2-setup-BCM4908-internal-crossbar.patch
@@ -82,7 +82,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  static void bcm_sf2_intr_disable(struct bcm_sf2_priv *priv)
  {
  	intrl2_0_mask_set(priv, 0xffffffff);
-@@ -734,6 +772,8 @@ static int bcm_sf2_sw_resume(struct dsa_
+@@ -739,6 +777,8 @@ static int bcm_sf2_sw_resume(struct dsa_
  		return ret;
  	}
  
@@ -91,7 +91,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  	ret = bcm_sf2_cfp_resume(ds);
  	if (ret)
  		return ret;
-@@ -996,6 +1036,7 @@ struct bcm_sf2_of_data {
+@@ -1001,6 +1041,7 @@ struct bcm_sf2_of_data {
  	const u16 *reg_offsets;
  	unsigned int core_reg_align;
  	unsigned int num_cfp_rules;
@@ -99,7 +99,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  };
  
  static const u16 bcm_sf2_4908_reg_offsets[] = {
-@@ -1020,6 +1061,7 @@ static const struct bcm_sf2_of_data bcm_
+@@ -1025,6 +1066,7 @@ static const struct bcm_sf2_of_data bcm_
  	.core_reg_align	= 0,
  	.reg_offsets	= bcm_sf2_4908_reg_offsets,
  	.num_cfp_rules	= 0, /* FIXME */
@@ -107,7 +107,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  };
  
  /* Register offsets for the SWITCH_REG_* block */
-@@ -1130,6 +1172,7 @@ static int bcm_sf2_sw_probe(struct platf
+@@ -1135,6 +1177,7 @@ static int bcm_sf2_sw_probe(struct platf
  	priv->reg_offsets = data->reg_offsets;
  	priv->core_reg_align = data->core_reg_align;
  	priv->num_cfp_rules = data->num_cfp_rules;
@@ -115,7 +115,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  
  	/* Auto-detection using standard registers will not work, so
  	 * provide an indication of what kind of device we are for
-@@ -1184,6 +1227,8 @@ static int bcm_sf2_sw_probe(struct platf
+@@ -1189,6 +1232,8 @@ static int bcm_sf2_sw_probe(struct platf
  		return ret;
  	}
  
diff --git a/target/linux/bcm4908/patches-5.4/075-v5.13-0003-net-dsa-bcm_sf2-Fill-in-BCM4908-CFP-entries.patch b/target/linux/bcm4908/patches-5.4/075-v5.13-0003-net-dsa-bcm_sf2-Fill-in-BCM4908-CFP-entries.patch
index 06d631f691..8b5332cdda 100644
--- a/target/linux/bcm4908/patches-5.4/075-v5.13-0003-net-dsa-bcm_sf2-Fill-in-BCM4908-CFP-entries.patch
+++ b/target/linux/bcm4908/patches-5.4/075-v5.13-0003-net-dsa-bcm_sf2-Fill-in-BCM4908-CFP-entries.patch
@@ -14,7 +14,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
 
 --- a/drivers/net/dsa/bcm_sf2.c
 +++ b/drivers/net/dsa/bcm_sf2.c
-@@ -1060,7 +1060,7 @@ static const struct bcm_sf2_of_data bcm_
+@@ -1065,7 +1065,7 @@ static const struct bcm_sf2_of_data bcm_
  	.type		= BCM4908_DEVICE_ID,
  	.core_reg_align	= 0,
  	.reg_offsets	= bcm_sf2_4908_reg_offsets,
diff --git a/target/linux/bcm4908/patches-5.4/075-v5.13-0004-net-dsa-bcm_sf2-add-function-finding-RGMII-register.patch b/target/linux/bcm4908/patches-5.4/075-v5.13-0004-net-dsa-bcm_sf2-add-function-finding-RGMII-register.patch
index c46fd1d3b5..c6b724215f 100644
--- a/target/linux/bcm4908/patches-5.4/075-v5.13-0004-net-dsa-bcm_sf2-add-function-finding-RGMII-register.patch
+++ b/target/linux/bcm4908/patches-5.4/075-v5.13-0004-net-dsa-bcm_sf2-add-function-finding-RGMII-register.patch
@@ -88,7 +88,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  
  force_link:
  	/* Force link settings detected from the PHY */
-@@ -661,6 +689,7 @@ static void bcm_sf2_sw_mac_link_set(stru
+@@ -666,6 +694,7 @@ static void bcm_sf2_sw_mac_link_set(stru
  				    phy_interface_t interface, bool link)
  {
  	struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds);
@@ -96,7 +96,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  	u32 reg;
  
  	if (!phy_interface_mode_is_rgmii(interface) &&
-@@ -668,13 +697,15 @@ static void bcm_sf2_sw_mac_link_set(stru
+@@ -673,13 +702,15 @@ static void bcm_sf2_sw_mac_link_set(stru
  	    interface != PHY_INTERFACE_MODE_REVMII)
  		return;
  
diff --git a/target/linux/bcm4908/patches-5.4/075-v5.13-0005-net-dsa-bcm_sf2-fix-BCM4908-RGMII-reg-s.patch b/target/linux/bcm4908/patches-5.4/075-v5.13-0005-net-dsa-bcm_sf2-fix-BCM4908-RGMII-reg-s.patch
index d0783ea5e7..81f3ff5d4d 100644
--- a/target/linux/bcm4908/patches-5.4/075-v5.13-0005-net-dsa-bcm_sf2-fix-BCM4908-RGMII-reg-s.patch
+++ b/target/linux/bcm4908/patches-5.4/075-v5.13-0005-net-dsa-bcm_sf2-fix-BCM4908-RGMII-reg-s.patch
@@ -33,7 +33,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  		break;
  	default:
  		switch (port) {
-@@ -1079,9 +1084,7 @@ static const u16 bcm_sf2_4908_reg_offset
+@@ -1084,9 +1089,7 @@ static const u16 bcm_sf2_4908_reg_offset
  	[REG_PHY_REVISION]	= 0x14,
  	[REG_SPHY_CNTRL]	= 0x24,
  	[REG_CROSSBAR]		= 0xc8,
diff --git a/target/linux/bcm4908/patches-5.4/076-v5.17-net-dsa-bcm_sf2-refactor-LED-regs-access.patch b/target/linux/bcm4908/patches-5.4/076-v5.17-net-dsa-bcm_sf2-refactor-LED-regs-access.patch
index 88f2c3c0cd..9f67fe71c1 100644
--- a/target/linux/bcm4908/patches-5.4/076-v5.17-net-dsa-bcm_sf2-refactor-LED-regs-access.patch
+++ b/target/linux/bcm4908/patches-5.4/076-v5.17-net-dsa-bcm_sf2-refactor-LED-regs-access.patch
@@ -82,7 +82,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
  	}
  }
  
-@@ -1085,9 +1122,14 @@ static const u16 bcm_sf2_4908_reg_offset
+@@ -1090,9 +1127,14 @@ static const u16 bcm_sf2_4908_reg_offset
  	[REG_SPHY_CNTRL]	= 0x24,
  	[REG_CROSSBAR]		= 0xc8,
  	[REG_RGMII_11_CNTRL]	= 0x014c,
diff --git a/target/linux/bcm4908/patches-5.4/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch b/target/linux/bcm4908/patches-5.4/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch
index d9d972c9cd..ea9089e7ed 100644
--- a/target/linux/bcm4908/patches-5.4/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch
+++ b/target/linux/bcm4908/patches-5.4/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch
@@ -29,7 +29,7 @@ Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
 
 --- a/drivers/net/dsa/bcm_sf2.c
 +++ b/drivers/net/dsa/bcm_sf2.c
-@@ -1363,10 +1363,14 @@ static int bcm_sf2_sw_probe(struct platf
+@@ -1368,10 +1368,14 @@ static int bcm_sf2_sw_probe(struct platf
  	rev = reg_readl(priv, REG_PHY_REVISION);
  	priv->hw_params.gphy_rev = rev & PHY_REVISION_MASK;
  
diff --git a/target/linux/bcm4908/patches-5.4/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch b/target/linux/bcm4908/patches-5.4/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch
index c8fe1121ba..2b860f4ed1 100644
--- a/target/linux/bcm4908/patches-5.4/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch
+++ b/target/linux/bcm4908/patches-5.4/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch
@@ -15,7 +15,7 @@ Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
 
 --- a/drivers/net/dsa/bcm_sf2.c
 +++ b/drivers/net/dsa/bcm_sf2.c
-@@ -1377,6 +1377,12 @@ static int bcm_sf2_sw_probe(struct platf
+@@ -1382,6 +1382,12 @@ static int bcm_sf2_sw_probe(struct platf
  		 priv->hw_params.core_rev >> 8, priv->hw_params.core_rev & 0xff,
  		 priv->irq0, priv->irq1);
  
diff --git a/target/linux/bcm63xx/patches-5.4/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch b/target/linux/bcm63xx/patches-5.4/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch
index ea836b8a80..500405e234 100644
--- a/target/linux/bcm63xx/patches-5.4/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch
+++ b/target/linux/bcm63xx/patches-5.4/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch
@@ -68,7 +68,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski at gmail.com>
  			ret = gpiod_hog(desc, name, lflags, dflags);
  			if (ret < 0) {
  				of_node_put(np);
-@@ -904,9 +911,11 @@ int of_gpiochip_add(struct gpio_chip *ch
+@@ -906,9 +913,11 @@ int of_gpiochip_add(struct gpio_chip *ch
  
  	of_node_get(chip->of_node);
  
diff --git a/target/linux/bcm63xx/patches-5.4/400-bcm963xx_flashmap.patch b/target/linux/bcm63xx/patches-5.4/400-bcm963xx_flashmap.patch
index 5a9532c321..bb43576b85 100644
--- a/target/linux/bcm63xx/patches-5.4/400-bcm963xx_flashmap.patch
+++ b/target/linux/bcm63xx/patches-5.4/400-bcm963xx_flashmap.patch
@@ -23,7 +23,7 @@ Signed-off-by: Axel Gembe <ago at bastart.eu.org>
  	.width			= 2,
 --- a/drivers/mtd/parsers/redboot.c
 +++ b/drivers/mtd/parsers/redboot.c
-@@ -84,6 +84,7 @@ static int parse_redboot_partitions(stru
+@@ -85,6 +85,7 @@ static int parse_redboot_partitions(stru
  	int nulllen = 0;
  	int numslots;
  	unsigned long offset;
@@ -31,7 +31,7 @@ Signed-off-by: Axel Gembe <ago at bastart.eu.org>
  #ifdef CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED
  	static char nullstring[] = "unallocated";
  #endif
-@@ -190,6 +191,16 @@ static int parse_redboot_partitions(stru
+@@ -191,6 +192,16 @@ static int parse_redboot_partitions(stru
  		goto out;
  	}
  
@@ -48,7 +48,7 @@ Signed-off-by: Axel Gembe <ago at bastart.eu.org>
  	for (i = 0; i < numslots; i++) {
  		struct fis_list *new_fl, **prev;
  
-@@ -210,10 +221,10 @@ static int parse_redboot_partitions(stru
+@@ -211,10 +222,10 @@ static int parse_redboot_partitions(stru
  			goto out;
  		}
  		new_fl->img = &buf[i];
diff --git a/target/linux/generic/backport-5.4/080-wireguard-0005-crypto-arm64-chacha-depend-on-generic-chacha-library.patch b/target/linux/generic/backport-5.4/080-wireguard-0005-crypto-arm64-chacha-depend-on-generic-chacha-library.patch
index 10e49c192c..e12e9d1153 100644
--- a/target/linux/generic/backport-5.4/080-wireguard-0005-crypto-arm64-chacha-depend-on-generic-chacha-library.patch
+++ b/target/linux/generic/backport-5.4/080-wireguard-0005-crypto-arm64-chacha-depend-on-generic-chacha-library.patch
@@ -26,7 +26,7 @@ Signed-off-by: Jason A. Donenfeld <Jason at zx2c4.com>
 
 --- a/arch/arm64/crypto/Kconfig
 +++ b/arch/arm64/crypto/Kconfig
-@@ -103,7 +103,7 @@ config CRYPTO_CHACHA20_NEON
+@@ -104,7 +104,7 @@ config CRYPTO_CHACHA20_NEON
  	tristate "ChaCha20, XChaCha20, and XChaCha12 stream ciphers using NEON instructions"
  	depends on KERNEL_MODE_NEON
  	select CRYPTO_BLKCIPHER
diff --git a/target/linux/generic/backport-5.4/080-wireguard-0006-crypto-arm64-chacha-expose-arm64-ChaCha-routine-as-l.patch b/target/linux/generic/backport-5.4/080-wireguard-0006-crypto-arm64-chacha-expose-arm64-ChaCha-routine-as-l.patch
index 71665e8bfd..e4f3324254 100644
--- a/target/linux/generic/backport-5.4/080-wireguard-0006-crypto-arm64-chacha-expose-arm64-ChaCha-routine-as-l.patch
+++ b/target/linux/generic/backport-5.4/080-wireguard-0006-crypto-arm64-chacha-expose-arm64-ChaCha-routine-as-l.patch
@@ -25,7 +25,7 @@ Signed-off-by: Jason A. Donenfeld <Jason at zx2c4.com>
 
 --- a/arch/arm64/crypto/Kconfig
 +++ b/arch/arm64/crypto/Kconfig
-@@ -104,6 +104,7 @@ config CRYPTO_CHACHA20_NEON
+@@ -105,6 +105,7 @@ config CRYPTO_CHACHA20_NEON
  	depends on KERNEL_MODE_NEON
  	select CRYPTO_BLKCIPHER
  	select CRYPTO_LIB_CHACHA_GENERIC
diff --git a/target/linux/generic/backport-5.4/080-wireguard-0018-crypto-arm64-poly1305-incorporate-OpenSSL-CRYPTOGAMS.patch b/target/linux/generic/backport-5.4/080-wireguard-0018-crypto-arm64-poly1305-incorporate-OpenSSL-CRYPTOGAMS.patch
index 464c6568f6..35091ac234 100644
--- a/target/linux/generic/backport-5.4/080-wireguard-0018-crypto-arm64-poly1305-incorporate-OpenSSL-CRYPTOGAMS.patch
+++ b/target/linux/generic/backport-5.4/080-wireguard-0018-crypto-arm64-poly1305-incorporate-OpenSSL-CRYPTOGAMS.patch
@@ -34,7 +34,7 @@ Signed-off-by: Jason A. Donenfeld <Jason at zx2c4.com>
 
 --- a/arch/arm64/crypto/Kconfig
 +++ b/arch/arm64/crypto/Kconfig
-@@ -106,6 +106,12 @@ config CRYPTO_CHACHA20_NEON
+@@ -107,6 +107,12 @@ config CRYPTO_CHACHA20_NEON
  	select CRYPTO_LIB_CHACHA_GENERIC
  	select CRYPTO_ARCH_HAVE_LIB_CHACHA
  
diff --git a/target/linux/generic/hack-5.4/321-powerpc_crtsavres_prereq.patch b/target/linux/generic/hack-5.4/321-powerpc_crtsavres_prereq.patch
index 8591705eae..005c46a3d7 100644
--- a/target/linux/generic/hack-5.4/321-powerpc_crtsavres_prereq.patch
+++ b/target/linux/generic/hack-5.4/321-powerpc_crtsavres_prereq.patch
@@ -16,7 +16,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex at ozo.com>
 
 --- a/arch/powerpc/Makefile
 +++ b/arch/powerpc/Makefile
-@@ -61,20 +61,6 @@ machine-$(CONFIG_PPC64) += 64
+@@ -44,20 +44,6 @@ machine-$(CONFIG_PPC64) += 64
  machine-$(CONFIG_CPU_LITTLE_ENDIAN) += le
  UTS_MACHINE := $(subst $(space),,$(machine-y))
  
diff --git a/target/linux/generic/pending-5.4/419-mtd-redboot-add-of_match_table-with-DT-binding.patch b/target/linux/generic/pending-5.4/419-mtd-redboot-add-of_match_table-with-DT-binding.patch
index 7692f484ae..3ea5f4abb4 100644
--- a/target/linux/generic/pending-5.4/419-mtd-redboot-add-of_match_table-with-DT-binding.patch
+++ b/target/linux/generic/pending-5.4/419-mtd-redboot-add-of_match_table-with-DT-binding.patch
@@ -12,7 +12,7 @@ Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
 
 --- a/drivers/mtd/parsers/redboot.c
 +++ b/drivers/mtd/parsers/redboot.c
-@@ -305,6 +305,7 @@ static int parse_redboot_partitions(stru
+@@ -306,6 +306,7 @@ static int parse_redboot_partitions(stru
  
  static const struct of_device_id mtd_parser_redboot_of_match_table[] = {
  	{ .compatible = "redboot-fis" },
diff --git a/target/linux/generic/pending-5.4/420-mtd-redboot_space.patch b/target/linux/generic/pending-5.4/420-mtd-redboot_space.patch
index a3cd4ecf1f..5be2a2246e 100644
--- a/target/linux/generic/pending-5.4/420-mtd-redboot_space.patch
+++ b/target/linux/generic/pending-5.4/420-mtd-redboot_space.patch
@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/drivers/mtd/parsers/redboot.c
 +++ b/drivers/mtd/parsers/redboot.c
-@@ -279,14 +279,21 @@ static int parse_redboot_partitions(stru
+@@ -280,14 +280,21 @@ static int parse_redboot_partitions(stru
  #endif
  		names += strlen(names)+1;
  
diff --git a/target/linux/generic/pending-5.4/640-netfilter-nf_flow_table-add-hardware-offload-support.patch b/target/linux/generic/pending-5.4/640-netfilter-nf_flow_table-add-hardware-offload-support.patch
index 6192df9319..75024f8d5a 100644
--- a/target/linux/generic/pending-5.4/640-netfilter-nf_flow_table-add-hardware-offload-support.patch
+++ b/target/linux/generic/pending-5.4/640-netfilter-nf_flow_table-add-hardware-offload-support.patch
@@ -506,7 +506,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo at netfilter.org>
 +MODULE_ALIAS("nf-flow-table-hw");
 --- a/net/netfilter/nf_tables_api.c
 +++ b/net/netfilter/nf_tables_api.c
-@@ -5752,6 +5752,13 @@ static int nf_tables_flowtable_parse_hoo
+@@ -5758,6 +5758,13 @@ static int nf_tables_flowtable_parse_hoo
  	if (err < 0)
  		return err;
  
@@ -520,7 +520,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo at netfilter.org>
  	ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL);
  	if (!ops)
  		return -ENOMEM;
-@@ -5882,10 +5889,19 @@ static int nf_tables_newflowtable(struct
+@@ -5888,10 +5895,19 @@ static int nf_tables_newflowtable(struct
  	}
  
  	flowtable->data.type = type;
@@ -540,7 +540,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo at netfilter.org>
  	err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK],
  					     flowtable);
  	if (err < 0)
-@@ -6011,7 +6027,8 @@ static int nf_tables_fill_flowtable_info
+@@ -6017,7 +6033,8 @@ static int nf_tables_fill_flowtable_info
  	    nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) ||
  	    nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) ||
  	    nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle),
diff --git a/target/linux/generic/pending-5.4/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-5.4/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
index 82c1e26831..28901d7135 100644
--- a/target/linux/generic/pending-5.4/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
+++ b/target/linux/generic/pending-5.4/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
@@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  /*
   *	Allocate a dst for local (unicast / anycast) address.
   */
-@@ -4933,7 +4963,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -4940,7 +4970,8 @@ static int rtm_to_fib6_config(struct sk_
  	if (rtm->rtm_type == RTN_UNREACHABLE ||
  	    rtm->rtm_type == RTN_BLACKHOLE ||
  	    rtm->rtm_type == RTN_PROHIBIT ||
@@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  		cfg->fc_flags |= RTF_REJECT;
  
  	if (rtm->rtm_type == RTN_LOCAL)
-@@ -6084,6 +6115,8 @@ static int ip6_route_dev_notify(struct n
+@@ -6091,6 +6122,8 @@ static int ip6_route_dev_notify(struct n
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  		net->ipv6.ip6_prohibit_entry->dst.dev = dev;
  		net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
@@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  		net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
  		net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
  #endif
-@@ -6095,6 +6128,7 @@ static int ip6_route_dev_notify(struct n
+@@ -6102,6 +6135,7 @@ static int ip6_route_dev_notify(struct n
  		in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  		in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
@@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  		in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
  #endif
  	}
-@@ -6287,6 +6321,8 @@ static int __net_init ip6_route_net_init
+@@ -6294,6 +6328,8 @@ static int __net_init ip6_route_net_init
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  	net->ipv6.fib6_has_custom_rules = false;
@@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  	net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
  					       sizeof(*net->ipv6.ip6_prohibit_entry),
  					       GFP_KERNEL);
-@@ -6297,11 +6333,21 @@ static int __net_init ip6_route_net_init
+@@ -6304,11 +6340,21 @@ static int __net_init ip6_route_net_init
  			 ip6_template_metrics, true);
  	INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
  
@@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  	net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
  	dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
  			 ip6_template_metrics, true);
-@@ -6325,6 +6371,8 @@ out:
+@@ -6332,6 +6378,8 @@ out:
  	return ret;
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
@@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  out_ip6_prohibit_entry:
  	kfree(net->ipv6.ip6_prohibit_entry);
  out_ip6_null_entry:
-@@ -6344,6 +6392,7 @@ static void __net_exit ip6_route_net_exi
+@@ -6351,6 +6399,7 @@ static void __net_exit ip6_route_net_exi
  	kfree(net->ipv6.ip6_null_entry);
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  	kfree(net->ipv6.ip6_prohibit_entry);
@@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  	kfree(net->ipv6.ip6_blk_hole_entry);
  #endif
  	dst_entries_destroy(&net->ipv6.ip6_dst_ops);
-@@ -6421,6 +6470,9 @@ void __init ip6_route_init_special_entri
+@@ -6428,6 +6477,9 @@ void __init ip6_route_init_special_entri
  	init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
  	init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
  	init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
diff --git a/target/linux/generic/pending-5.4/811-pci_disable_usb_common_quirks.patch b/target/linux/generic/pending-5.4/811-pci_disable_usb_common_quirks.patch
index 86f8a416e9..d70ac5514d 100644
--- a/target/linux/generic/pending-5.4/811-pci_disable_usb_common_quirks.patch
+++ b/target/linux/generic/pending-5.4/811-pci_disable_usb_common_quirks.patch
@@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #endif  /*  __LINUX_USB_PCI_QUIRKS_H  */
 --- a/include/linux/usb/hcd.h
 +++ b/include/linux/usb/hcd.h
-@@ -485,7 +485,14 @@ extern int usb_hcd_pci_probe(struct pci_
+@@ -486,7 +486,14 @@ extern int usb_hcd_pci_probe(struct pci_
  extern void usb_hcd_pci_remove(struct pci_dev *dev);
  extern void usb_hcd_pci_shutdown(struct pci_dev *dev);
  
diff --git a/target/linux/ipq40xx/patches-5.4/100-GPIO-add-named-gpio-exports.patch b/target/linux/ipq40xx/patches-5.4/100-GPIO-add-named-gpio-exports.patch
index 805836fcca..a7f1a48bd9 100644
--- a/target/linux/ipq40xx/patches-5.4/100-GPIO-add-named-gpio-exports.patch
+++ b/target/linux/ipq40xx/patches-5.4/100-GPIO-add-named-gpio-exports.patch
@@ -22,7 +22,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  
  #include "gpiolib.h"
  #include "gpiolib-of.h"
-@@ -915,3 +917,68 @@ void of_gpiochip_remove(struct gpio_chip
+@@ -917,3 +919,68 @@ void of_gpiochip_remove(struct gpio_chip
  {
  	of_node_put(chip->of_node);
  }
diff --git a/target/linux/ipq806x/patches-5.4/0060-HACK-arch-arm-force-ZRELADDR-on-arch-qcom.patch b/target/linux/ipq806x/patches-5.4/0060-HACK-arch-arm-force-ZRELADDR-on-arch-qcom.patch
index 6d3e7d9ee0..d3b39ac3e3 100644
--- a/target/linux/ipq806x/patches-5.4/0060-HACK-arch-arm-force-ZRELADDR-on-arch-qcom.patch
+++ b/target/linux/ipq806x/patches-5.4/0060-HACK-arch-arm-force-ZRELADDR-on-arch-qcom.patch
@@ -33,7 +33,7 @@ Signed-off-by: Mathieu Olivari <mathieu at codeaurora.org>
 
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
-@@ -319,7 +319,7 @@ config ARCH_MULTIPLATFORM
+@@ -318,7 +318,7 @@ config ARCH_MULTIPLATFORM
  	depends on MMU
  	select ARM_HAS_SG_CHAIN
  	select ARM_PATCH_PHYS_VIRT
diff --git a/target/linux/ipq806x/patches-5.4/0063-2-tsens-support-configurable-interrupts.patch b/target/linux/ipq806x/patches-5.4/0063-2-tsens-support-configurable-interrupts.patch
index 54488f25a8..cdb54b9053 100644
--- a/target/linux/ipq806x/patches-5.4/0063-2-tsens-support-configurable-interrupts.patch
+++ b/target/linux/ipq806x/patches-5.4/0063-2-tsens-support-configurable-interrupts.patch
@@ -27,8 +27,8 @@ Signed-off-by: Rajith Cherian <rajith at codeaurora.org>
  {
  	struct __thermal_zone *data = tz->devdata;
  
--	if (!data->ops->get_temp)
-+	if (!data->ops->get_temp || (data->mode == THERMAL_DEVICE_DISABLED))
+-	if (!data->ops || !data->ops->get_temp)
++	if (!data->ops || !data->ops->get_temp || (data->mode == THERMAL_DEVICE_DISABLED))
  		return -EINVAL;
  
  	return data->ops->get_temp(data->sensor_data, temp);
@@ -42,9 +42,9 @@ Signed-off-by: Rajith Cherian <rajith at codeaurora.org>
  		return -EINVAL;
  
  	return data->ops->set_trips(data->sensor_data, low, high);
-@@ -188,6 +189,9 @@ static int of_thermal_set_emul_temp(stru
- {
- 	struct __thermal_zone *data = tz->devdata;
+@@ -191,6 +192,9 @@ static int of_thermal_set_emul_temp(stru
+ 	if (!data->ops || !data->ops->set_emul_temp)
+ 		return -EINVAL;
  
 +	if (data->mode == THERMAL_DEVICE_DISABLED)
 +		return -EINVAL;
@@ -52,16 +52,16 @@ Signed-off-by: Rajith Cherian <rajith at codeaurora.org>
  	return data->ops->set_emul_temp(data->sensor_data, temp);
  }
  
-@@ -196,7 +200,7 @@ static int of_thermal_get_trend(struct t
+@@ -199,7 +203,7 @@ static int of_thermal_get_trend(struct t
  {
  	struct __thermal_zone *data = tz->devdata;
  
--	if (!data->ops->get_trend)
-+	if (!data->ops->get_trend || (data->mode == THERMAL_DEVICE_DISABLED))
+-	if (!data->ops || !data->ops->get_trend)
++	if (!data->ops || !data->ops->get_trend || (data->mode == THERMAL_DEVICE_DISABLED))
  		return -EINVAL;
  
  	return data->ops->get_trend(data->sensor_data, trip, trend);
-@@ -297,7 +301,9 @@ static int of_thermal_set_mode(struct th
+@@ -300,7 +304,9 @@ static int of_thermal_set_mode(struct th
  	mutex_unlock(&tz->lock);
  
  	data->mode = mode;
@@ -72,7 +72,7 @@ Signed-off-by: Rajith Cherian <rajith at codeaurora.org>
  
  	return 0;
  }
-@@ -307,7 +313,8 @@ static int of_thermal_get_trip_type(stru
+@@ -310,7 +316,8 @@ static int of_thermal_get_trip_type(stru
  {
  	struct __thermal_zone *data = tz->devdata;
  
@@ -82,7 +82,7 @@ Signed-off-by: Rajith Cherian <rajith at codeaurora.org>
  		return -EDOM;
  
  	*type = data->trips[trip].type;
-@@ -315,12 +322,39 @@ static int of_thermal_get_trip_type(stru
+@@ -318,12 +325,39 @@ static int of_thermal_get_trip_type(stru
  	return 0;
  }
  
@@ -123,7 +123,7 @@ Signed-off-by: Rajith Cherian <rajith at codeaurora.org>
  		return -EDOM;
  
  	*temp = data->trips[trip].temperature;
-@@ -333,7 +367,8 @@ static int of_thermal_set_trip_temp(stru
+@@ -336,7 +370,8 @@ static int of_thermal_set_trip_temp(stru
  {
  	struct __thermal_zone *data = tz->devdata;
  
@@ -132,8 +132,8 @@ Signed-off-by: Rajith Cherian <rajith at codeaurora.org>
 +				|| (data->mode == THERMAL_DEVICE_DISABLED))
  		return -EDOM;
  
- 	if (data->ops->set_trip_temp) {
-@@ -355,7 +390,8 @@ static int of_thermal_get_trip_hyst(stru
+ 	if (data->ops && data->ops->set_trip_temp) {
+@@ -358,7 +393,8 @@ static int of_thermal_get_trip_hyst(stru
  {
  	struct __thermal_zone *data = tz->devdata;
  
@@ -143,7 +143,7 @@ Signed-off-by: Rajith Cherian <rajith at codeaurora.org>
  		return -EDOM;
  
  	*hyst = data->trips[trip].hysteresis;
-@@ -368,7 +404,8 @@ static int of_thermal_set_trip_hyst(stru
+@@ -371,7 +407,8 @@ static int of_thermal_set_trip_hyst(stru
  {
  	struct __thermal_zone *data = tz->devdata;
  
@@ -153,7 +153,7 @@ Signed-off-by: Rajith Cherian <rajith at codeaurora.org>
  		return -EDOM;
  
  	/* thermal framework should take care of data->mask & (1 << trip) */
-@@ -443,6 +480,9 @@ thermal_zone_of_add_sensor(struct device
+@@ -446,6 +483,9 @@ thermal_zone_of_add_sensor(struct device
  	if (ops->set_emul_temp)
  		tzd->ops->set_emul_temp = of_thermal_set_emul_temp;
  
@@ -163,7 +163,7 @@ Signed-off-by: Rajith Cherian <rajith at codeaurora.org>
  	mutex_unlock(&tzd->lock);
  
  	return tzd;
-@@ -765,7 +805,10 @@ static const char * const trip_types[] =
+@@ -768,7 +808,10 @@ static const char * const trip_types[] =
  	[THERMAL_TRIP_ACTIVE]	= "active",
  	[THERMAL_TRIP_PASSIVE]	= "passive",
  	[THERMAL_TRIP_HOT]	= "hot",
diff --git a/target/linux/ipq806x/patches-5.4/0067-generic-Mangle-bootloader-s-kernel-arguments.patch b/target/linux/ipq806x/patches-5.4/0067-generic-Mangle-bootloader-s-kernel-arguments.patch
index 3a0695b5b9..fcce8058c4 100644
--- a/target/linux/ipq806x/patches-5.4/0067-generic-Mangle-bootloader-s-kernel-arguments.patch
+++ b/target/linux/ipq806x/patches-5.4/0067-generic-Mangle-bootloader-s-kernel-arguments.patch
@@ -22,7 +22,7 @@ Signed-off-by: Adrian Panella <ianchi74 at outlook.com>
 
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
-@@ -1824,6 +1824,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
+@@ -1823,6 +1823,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
  	  The command-line arguments provided by the boot loader will be
  	  appended to the the device tree bootargs property.
  
diff --git a/target/linux/ipq806x/patches-5.4/900-arm-add-cmdline-override.patch b/target/linux/ipq806x/patches-5.4/900-arm-add-cmdline-override.patch
index 87d7015ffc..1a875b81bb 100644
--- a/target/linux/ipq806x/patches-5.4/900-arm-add-cmdline-override.patch
+++ b/target/linux/ipq806x/patches-5.4/900-arm-add-cmdline-override.patch
@@ -1,6 +1,6 @@
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
-@@ -1837,6 +1837,14 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_MANGL
+@@ -1836,6 +1836,14 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_MANGL
  
  endchoice
  
diff --git a/target/linux/lantiq/patches-5.4/0001-MIPS-lantiq-add-pcie-driver.patch b/target/linux/lantiq/patches-5.4/0001-MIPS-lantiq-add-pcie-driver.patch
index 3759f2ac63..9ffa83e60c 100644
--- a/target/linux/lantiq/patches-5.4/0001-MIPS-lantiq-add-pcie-driver.patch
+++ b/target/linux/lantiq/patches-5.4/0001-MIPS-lantiq-add-pcie-driver.patch
@@ -5491,7 +5491,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  					 unsigned long type);
 --- a/include/linux/pci_ids.h
 +++ b/include/linux/pci_ids.h
-@@ -1076,6 +1076,12 @@
+@@ -1078,6 +1078,12 @@
  #define PCI_DEVICE_ID_SGI_IOC3		0x0003
  #define PCI_DEVICE_ID_SGI_LITHIUM	0x1002
  
diff --git a/target/linux/lantiq/patches-5.4/0030-GPIO-add-named-gpio-exports.patch b/target/linux/lantiq/patches-5.4/0030-GPIO-add-named-gpio-exports.patch
index cb75acded2..81eed04e6f 100644
--- a/target/linux/lantiq/patches-5.4/0030-GPIO-add-named-gpio-exports.patch
+++ b/target/linux/lantiq/patches-5.4/0030-GPIO-add-named-gpio-exports.patch
@@ -22,7 +22,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  
  #include "gpiolib.h"
  #include "gpiolib-of.h"
-@@ -915,3 +917,72 @@ void of_gpiochip_remove(struct gpio_chip
+@@ -917,3 +919,72 @@ void of_gpiochip_remove(struct gpio_chip
  {
  	of_node_put(chip->of_node);
  }
diff --git a/target/linux/layerscape/patches-5.4/301-arch-0008-arm-add-new-non-shareable-ioremap.patch b/target/linux/layerscape/patches-5.4/301-arch-0008-arm-add-new-non-shareable-ioremap.patch
index e2da01fb0f..f232198319 100644
--- a/target/linux/layerscape/patches-5.4/301-arch-0008-arm-add-new-non-shareable-ioremap.patch
+++ b/target/linux/layerscape/patches-5.4/301-arch-0008-arm-add-new-non-shareable-ioremap.patch
@@ -63,8 +63,8 @@ Signed-off-by: Roy Pledge <roy.pledge at nxp.com>
   * address space as memory. Needed when the kernel wants to execute
 --- a/arch/arm/mm/mmu.c
 +++ b/arch/arm/mm/mmu.c
-@@ -316,6 +316,13 @@ static struct mem_type mem_types[] __ro_
- 		.prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
+@@ -323,6 +323,13 @@ static struct mem_type mem_types[] __ro_
+ 		.prot_sect = PMD_TYPE_SECT,
  		.domain    = DOMAIN_KERNEL,
  	},
 +	[MT_MEMORY_RW_NS] = {
@@ -77,7 +77,7 @@ Signed-off-by: Roy Pledge <roy.pledge at nxp.com>
  	[MT_ROM] = {
  		.prot_sect = PMD_TYPE_SECT,
  		.domain    = DOMAIN_KERNEL,
-@@ -652,6 +659,7 @@ static void __init build_mem_type_table(
+@@ -663,6 +670,7 @@ static void __init build_mem_type_table(
  	}
  	kern_pgprot |= PTE_EXT_AF;
  	vecs_pgprot |= PTE_EXT_AF;
@@ -85,11 +85,11 @@ Signed-off-by: Roy Pledge <roy.pledge at nxp.com>
  
  	/*
  	 * Set PXN for user mappings
-@@ -680,6 +688,7 @@ static void __init build_mem_type_table(
+@@ -691,6 +699,7 @@ static void __init build_mem_type_table(
  	mem_types[MT_MEMORY_RWX].prot_pte |= kern_pgprot;
  	mem_types[MT_MEMORY_RW].prot_sect |= ecc_mask | cp->pmd;
  	mem_types[MT_MEMORY_RW].prot_pte |= kern_pgprot;
 +	mem_types[MT_MEMORY_RW_NS].prot_sect |= ecc_mask | cp->pmd;
+ 	mem_types[MT_MEMORY_RO].prot_sect |= ecc_mask | cp->pmd;
+ 	mem_types[MT_MEMORY_RO].prot_pte |= kern_pgprot;
  	mem_types[MT_MEMORY_DMA_READY].prot_pte |= kern_pgprot;
- 	mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |= ecc_mask;
- 	mem_types[MT_ROM].prot_sect |= cp->pmd;
diff --git a/target/linux/layerscape/patches-5.4/303-core-0003-cgroup-let-a-symlink-too-be-created-with-a-cftype-fi.patch b/target/linux/layerscape/patches-5.4/303-core-0003-cgroup-let-a-symlink-too-be-created-with-a-cftype-fi.patch
index f2559cdab3..79323b618d 100644
--- a/target/linux/layerscape/patches-5.4/303-core-0003-cgroup-let-a-symlink-too-be-created-with-a-cftype-fi.patch
+++ b/target/linux/layerscape/patches-5.4/303-core-0003-cgroup-let-a-symlink-too-be-created-with-a-cftype-fi.patch
@@ -27,7 +27,7 @@ Signed-off-by: Li Yang <leoyang.li at nxp.com>
  	/* internal flags, do not use outside cgroup core proper */
  	__CFTYPE_ONLY_ON_DFL	= (1 << 16),	/* only on default hierarchy */
  	__CFTYPE_NOT_ON_DFL	= (1 << 17),	/* not on default hierarchy */
-@@ -544,6 +546,7 @@ struct cftype {
+@@ -545,6 +547,7 @@ struct cftype {
  	 * end of cftype array.
  	 */
  	char name[MAX_CFTYPE_NAME];
@@ -37,7 +37,7 @@ Signed-off-by: Li Yang <leoyang.li at nxp.com>
  	/*
 --- a/kernel/cgroup/cgroup.c
 +++ b/kernel/cgroup/cgroup.c
-@@ -1465,8 +1465,8 @@ struct cgroup *task_cgroup_from_root(str
+@@ -1467,8 +1467,8 @@ struct cgroup *task_cgroup_from_root(str
  
  static struct kernfs_syscall_ops cgroup_kf_syscall_ops;
  
@@ -48,7 +48,7 @@ Signed-off-by: Li Yang <leoyang.li at nxp.com>
  {
  	struct cgroup_subsys *ss = cft->ss;
  
-@@ -1476,13 +1476,26 @@ static char *cgroup_file_name(struct cgr
+@@ -1478,13 +1478,26 @@ static char *cgroup_file_name(struct cgr
  
  		snprintf(buf, CGROUP_FILE_NAME_MAX, "%s%s.%s",
  			 dbg, cgroup_on_dfl(cgrp) ? ss->name : ss->legacy_name,
@@ -77,7 +77,7 @@ Signed-off-by: Li Yang <leoyang.li at nxp.com>
  /**
   * cgroup_file_mode - deduce file mode of a control file
   * @cft: the control file in question
-@@ -1641,6 +1654,9 @@ static void cgroup_rm_file(struct cgroup
+@@ -1643,6 +1656,9 @@ static void cgroup_rm_file(struct cgroup
  	}
  
  	kernfs_remove_by_name(cgrp->kn, cgroup_file_name(cgrp, cft, name));
@@ -87,7 +87,7 @@ Signed-off-by: Li Yang <leoyang.li at nxp.com>
  }
  
  /**
-@@ -3924,6 +3940,7 @@ static int cgroup_add_file(struct cgroup
+@@ -3933,6 +3949,7 @@ static int cgroup_add_file(struct cgroup
  {
  	char name[CGROUP_FILE_NAME_MAX];
  	struct kernfs_node *kn;
@@ -95,7 +95,7 @@ Signed-off-by: Li Yang <leoyang.li at nxp.com>
  	struct lock_class_key *key = NULL;
  	int ret;
  
-@@ -3954,6 +3971,14 @@ static int cgroup_add_file(struct cgroup
+@@ -3963,6 +3980,14 @@ static int cgroup_add_file(struct cgroup
  		spin_unlock_irq(&cgroup_file_kn_lock);
  	}
  
diff --git a/target/linux/layerscape/patches-5.4/303-core-0004-cgroup-bfq-revert-bfq.weight-symlink-change.patch b/target/linux/layerscape/patches-5.4/303-core-0004-cgroup-bfq-revert-bfq.weight-symlink-change.patch
index 4126b873bb..0a2925f583 100644
--- a/target/linux/layerscape/patches-5.4/303-core-0004-cgroup-bfq-revert-bfq.weight-symlink-change.patch
+++ b/target/linux/layerscape/patches-5.4/303-core-0004-cgroup-bfq-revert-bfq.weight-symlink-change.patch
@@ -29,7 +29,7 @@ Signed-off-by: Li Yang <leoyang.li at nxp.com>
  	/* internal flags, do not use outside cgroup core proper */
  	__CFTYPE_ONLY_ON_DFL	= (1 << 16),	/* only on default hierarchy */
  	__CFTYPE_NOT_ON_DFL	= (1 << 17),	/* not on default hierarchy */
-@@ -546,7 +544,6 @@ struct cftype {
+@@ -547,7 +545,6 @@ struct cftype {
  	 * end of cftype array.
  	 */
  	char name[MAX_CFTYPE_NAME];
@@ -39,7 +39,7 @@ Signed-off-by: Li Yang <leoyang.li at nxp.com>
  	/*
 --- a/kernel/cgroup/cgroup.c
 +++ b/kernel/cgroup/cgroup.c
-@@ -1465,8 +1465,8 @@ struct cgroup *task_cgroup_from_root(str
+@@ -1467,8 +1467,8 @@ struct cgroup *task_cgroup_from_root(str
  
  static struct kernfs_syscall_ops cgroup_kf_syscall_ops;
  
@@ -50,7 +50,7 @@ Signed-off-by: Li Yang <leoyang.li at nxp.com>
  {
  	struct cgroup_subsys *ss = cft->ss;
  
-@@ -1476,26 +1476,13 @@ static char *cgroup_fill_name(struct cgr
+@@ -1478,26 +1478,13 @@ static char *cgroup_fill_name(struct cgr
  
  		snprintf(buf, CGROUP_FILE_NAME_MAX, "%s%s.%s",
  			 dbg, cgroup_on_dfl(cgrp) ? ss->name : ss->legacy_name,
@@ -79,7 +79,7 @@ Signed-off-by: Li Yang <leoyang.li at nxp.com>
  /**
   * cgroup_file_mode - deduce file mode of a control file
   * @cft: the control file in question
-@@ -1654,9 +1641,6 @@ static void cgroup_rm_file(struct cgroup
+@@ -1656,9 +1643,6 @@ static void cgroup_rm_file(struct cgroup
  	}
  
  	kernfs_remove_by_name(cgrp->kn, cgroup_file_name(cgrp, cft, name));
@@ -89,7 +89,7 @@ Signed-off-by: Li Yang <leoyang.li at nxp.com>
  }
  
  /**
-@@ -3940,7 +3924,6 @@ static int cgroup_add_file(struct cgroup
+@@ -3949,7 +3933,6 @@ static int cgroup_add_file(struct cgroup
  {
  	char name[CGROUP_FILE_NAME_MAX];
  	struct kernfs_node *kn;
@@ -97,7 +97,7 @@ Signed-off-by: Li Yang <leoyang.li at nxp.com>
  	struct lock_class_key *key = NULL;
  	int ret;
  
-@@ -3971,14 +3954,6 @@ static int cgroup_add_file(struct cgroup
+@@ -3980,14 +3963,6 @@ static int cgroup_add_file(struct cgroup
  		spin_unlock_irq(&cgroup_file_kn_lock);
  	}
  
diff --git a/target/linux/layerscape/patches-5.4/816-sdhc-0001-mmc-sdhci-of-esdhc-poll-ESDHC_FLUSH_ASYNC_FIFO-bit-u.patch b/target/linux/layerscape/patches-5.4/816-sdhc-0001-mmc-sdhci-of-esdhc-poll-ESDHC_FLUSH_ASYNC_FIFO-bit-u.patch
index ec1f8324d4..35f4c1bf84 100644
--- a/target/linux/layerscape/patches-5.4/816-sdhc-0001-mmc-sdhci-of-esdhc-poll-ESDHC_FLUSH_ASYNC_FIFO-bit-u.patch
+++ b/target/linux/layerscape/patches-5.4/816-sdhc-0001-mmc-sdhci-of-esdhc-poll-ESDHC_FLUSH_ASYNC_FIFO-bit-u.patch
@@ -58,7 +58,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu at nxp.com>
  	}
  
  	/* Wait max 20 ms */
-@@ -892,10 +916,7 @@ static void esdhc_tuning_block_enable(st
+@@ -893,10 +917,7 @@ static void esdhc_tuning_block_enable(st
  	u32 val;
  
  	esdhc_clock_enable(host, false);
diff --git a/target/linux/layerscape/patches-5.4/816-sdhc-0002-LF-605-mmc-sdhci-of-esdhc-convert-to-use-esdhc_tunin.patch b/target/linux/layerscape/patches-5.4/816-sdhc-0002-LF-605-mmc-sdhci-of-esdhc-convert-to-use-esdhc_tunin.patch
index 71db685b7f..66518ca01e 100644
--- a/target/linux/layerscape/patches-5.4/816-sdhc-0002-LF-605-mmc-sdhci-of-esdhc-convert-to-use-esdhc_tunin.patch
+++ b/target/linux/layerscape/patches-5.4/816-sdhc-0002-LF-605-mmc-sdhci-of-esdhc-convert-to-use-esdhc_tunin.patch
@@ -15,7 +15,7 @@ Acked-by: Adrian Hunter <adrian.hunter at intel.com>
 
 --- a/drivers/mmc/host/sdhci-of-esdhc.c
 +++ b/drivers/mmc/host/sdhci-of-esdhc.c
-@@ -928,20 +928,11 @@ static void esdhc_tuning_block_enable(st
+@@ -929,20 +929,11 @@ static void esdhc_tuning_block_enable(st
  	esdhc_clock_enable(host, true);
  }
  
@@ -37,7 +37,7 @@ Acked-by: Adrian Hunter <adrian.hunter at intel.com>
  	/* Write TBCTL[11:8]=4'h8 */
  	val = sdhci_readl(host, ESDHC_TBCTL);
  	val &= ~(0xf << 8);
-@@ -960,6 +951,25 @@ static void esdhc_prepare_sw_tuning(stru
+@@ -961,6 +952,25 @@ static void esdhc_prepare_sw_tuning(stru
  	val = sdhci_readl(host, ESDHC_TBSTAT);
  	val = sdhci_readl(host, ESDHC_TBSTAT);
  
@@ -63,7 +63,7 @@ Acked-by: Adrian Hunter <adrian.hunter at intel.com>
  	/* Reset data lines by setting ESDHCCTL[RSTD] */
  	sdhci_reset(host, SDHCI_RESET_DATA);
  	/* Write 32'hFFFF_FFFF to IRQSTAT register */
-@@ -970,10 +980,8 @@ static void esdhc_prepare_sw_tuning(stru
+@@ -971,10 +981,8 @@ static void esdhc_prepare_sw_tuning(stru
  	 * then program TBPTR[TB_WNDW_END_PTR] = 4 * div_ratio
  	 * and program TBPTR[TB_WNDW_START_PTR] = 8 * div_ratio.
  	 */
diff --git a/target/linux/layerscape/patches-5.4/816-sdhc-0003-LF-605-mmc-sdhci-of-esdhc-update-tuning-erratum-A-00.patch b/target/linux/layerscape/patches-5.4/816-sdhc-0003-LF-605-mmc-sdhci-of-esdhc-update-tuning-erratum-A-00.patch
index f9dc0c0ca8..f9722b3698 100644
--- a/target/linux/layerscape/patches-5.4/816-sdhc-0003-LF-605-mmc-sdhci-of-esdhc-update-tuning-erratum-A-00.patch
+++ b/target/linux/layerscape/patches-5.4/816-sdhc-0003-LF-605-mmc-sdhci-of-esdhc-update-tuning-erratum-A-00.patch
@@ -20,7 +20,7 @@ Acked-by: Adrian Hunter <adrian.hunter at intel.com>
 
 --- a/drivers/mmc/host/sdhci-of-esdhc.c
 +++ b/drivers/mmc/host/sdhci-of-esdhc.c
-@@ -894,20 +894,20 @@ static int esdhc_signal_voltage_switch(s
+@@ -895,20 +895,20 @@ static int esdhc_signal_voltage_switch(s
  }
  
  static struct soc_device_attribute soc_tuning_erratum_type1[] = {
@@ -51,7 +51,7 @@ Acked-by: Adrian Hunter <adrian.hunter at intel.com>
  	{ },
  };
  
-@@ -975,13 +975,13 @@ static void esdhc_prepare_sw_tuning(stru
+@@ -976,13 +976,13 @@ static void esdhc_prepare_sw_tuning(stru
  	/* Write 32'hFFFF_FFFF to IRQSTAT register */
  	sdhci_writel(host, 0xFFFFFFFF, SDHCI_INT_STATUS);
  
@@ -68,7 +68,7 @@ Acked-by: Adrian Hunter <adrian.hunter at intel.com>
  		*window_start = 8 * esdhc->div_ratio;
  		*window_end = 4 * esdhc->div_ratio;
  	} else {
-@@ -1065,6 +1065,19 @@ static int esdhc_execute_tuning(struct m
+@@ -1066,6 +1066,19 @@ static int esdhc_execute_tuning(struct m
  		if (ret)
  			break;
  
diff --git a/target/linux/layerscape/patches-5.4/820-usb-0005-usb-dwc3-add-otg-properties-update.patch b/target/linux/layerscape/patches-5.4/820-usb-0005-usb-dwc3-add-otg-properties-update.patch
index cd6c0f66f6..b27e6bd468 100644
--- a/target/linux/layerscape/patches-5.4/820-usb-0005-usb-dwc3-add-otg-properties-update.patch
+++ b/target/linux/layerscape/patches-5.4/820-usb-0005-usb-dwc3-add-otg-properties-update.patch
@@ -54,7 +54,7 @@ Signed-off-by: Peter Chen <peter.chen at nxp.com>
  	 * All 3.1 IP version constants are greater than the 3.0 IP
 --- a/drivers/usb/dwc3/gadget.c
 +++ b/drivers/usb/dwc3/gadget.c
-@@ -3699,6 +3699,10 @@ int dwc3_gadget_init(struct dwc3 *dwc)
+@@ -3701,6 +3701,10 @@ int dwc3_gadget_init(struct dwc3 *dwc)
  	dwc->gadget.sg_supported	= true;
  	dwc->gadget.name		= "dwc3-gadget";
  	dwc->gadget.lpm_capable		= true;
diff --git a/target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch b/target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch
index e4feadec9f..e232cee622 100644
--- a/target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch
+++ b/target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch
@@ -20,7 +20,7 @@ Signed-off-by: Peter Chen <peter.chen at nxp.com>
 
 --- a/drivers/usb/core/hcd.c
 +++ b/drivers/usb/core/hcd.c
-@@ -2125,6 +2125,140 @@ int usb_hcd_get_frame_number (struct usb
+@@ -2128,6 +2128,140 @@ int usb_hcd_get_frame_number (struct usb
  }
  
  /*-------------------------------------------------------------------------*/
@@ -335,7 +335,7 @@ Signed-off-by: Peter Chen <peter.chen at nxp.com>
  	int             is_setup
 --- a/include/linux/usb/hcd.h
 +++ b/include/linux/usb/hcd.h
-@@ -411,7 +411,10 @@ struct hc_driver {
+@@ -412,7 +412,10 @@ struct hc_driver {
  	int	(*find_raw_port_number)(struct usb_hcd *, int);
  	/* Call for power on/off the port if necessary */
  	int	(*port_power)(struct usb_hcd *hcd, int portnum, bool enable);
@@ -347,7 +347,7 @@ Signed-off-by: Peter Chen <peter.chen at nxp.com>
  };
  
  static inline int hcd_giveback_urb_in_bh(struct usb_hcd *hcd)
-@@ -476,6 +479,14 @@ int usb_hcd_setup_local_mem(struct usb_h
+@@ -477,6 +480,14 @@ int usb_hcd_setup_local_mem(struct usb_h
  
  struct platform_device;
  extern void usb_hcd_platform_shutdown(struct platform_device *dev);
diff --git a/target/linux/layerscape/patches-5.4/901-fix_irq_type_of_pca953x.patch b/target/linux/layerscape/patches-5.4/901-fix_irq_type_of_pca953x.patch
index 5f022ac27f..0293254e8e 100644
--- a/target/linux/layerscape/patches-5.4/901-fix_irq_type_of_pca953x.patch
+++ b/target/linux/layerscape/patches-5.4/901-fix_irq_type_of_pca953x.patch
@@ -11,7 +11,7 @@ Signed-off-by: Pawel Dembicki <paweldembicki at gmail.com>
 
 --- a/drivers/gpio/gpio-pca953x.c
 +++ b/drivers/gpio/gpio-pca953x.c
-@@ -881,10 +881,12 @@ static int pca953x_irq_setup(struct pca9
+@@ -884,10 +884,12 @@ static int pca953x_irq_setup(struct pca9
  	for (i = 0; i < NBANK(chip); i++)
  		chip->irq_stat[i] &= reg_direction[i];
  	mutex_init(&chip->irq_lock);
diff --git a/target/linux/mediatek/patches-5.4/0500-v5.6-crypto-backport-inside-secure.patch b/target/linux/mediatek/patches-5.4/0500-v5.6-crypto-backport-inside-secure.patch
index 2fae90ef9e..7cd172b753 100644
--- a/target/linux/mediatek/patches-5.4/0500-v5.6-crypto-backport-inside-secure.patch
+++ b/target/linux/mediatek/patches-5.4/0500-v5.6-crypto-backport-inside-secure.patch
@@ -590,7 +590,7 @@
  	clk_disable_unprepare(priv->clk);
  
  	for (i = 0; i < priv->config.rings; i++)
-@@ -1666,9 +1795,7 @@ static struct platform_driver  crypto_sa
+@@ -1668,9 +1797,7 @@ static struct platform_driver  crypto_sa
  		.of_match_table = safexcel_of_match_table,
  	},
  };
@@ -600,7 +600,7 @@
  /* PCIE devices - i.e. Inside Secure development boards */
  
  static int safexcel_pci_probe(struct pci_dev *pdev,
-@@ -1759,7 +1886,7 @@ static int safexcel_pci_probe(struct pci
+@@ -1761,7 +1888,7 @@ static int safexcel_pci_probe(struct pci
  	return rc;
  }
  
@@ -609,7 +609,7 @@
  {
  	struct safexcel_crypto_priv *priv = pci_get_drvdata(pdev);
  	int i;
-@@ -1789,54 +1916,32 @@ static struct pci_driver safexcel_pci_dr
+@@ -1791,54 +1918,32 @@ static struct pci_driver safexcel_pci_dr
  	.probe         = safexcel_pci_probe,
  	.remove        = safexcel_pci_remove,
  };
diff --git a/target/linux/mediatek/patches-5.4/0601-net-dsa-propagate-resolved-link-config-via-mac_link_.patch b/target/linux/mediatek/patches-5.4/0601-net-dsa-propagate-resolved-link-config-via-mac_link_.patch
index 3505231f6b..888d5cb621 100644
--- a/target/linux/mediatek/patches-5.4/0601-net-dsa-propagate-resolved-link-config-via-mac_link_.patch
+++ b/target/linux/mediatek/patches-5.4/0601-net-dsa-propagate-resolved-link-config-via-mac_link_.patch
@@ -38,7 +38,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  		     const struct switchdev_obj_port_vlan *vlan);
 --- a/drivers/net/dsa/bcm_sf2.c
 +++ b/drivers/net/dsa/bcm_sf2.c
-@@ -636,7 +636,9 @@ static void bcm_sf2_sw_mac_link_down(str
+@@ -641,7 +641,9 @@ static void bcm_sf2_sw_mac_link_down(str
  static void bcm_sf2_sw_mac_link_up(struct dsa_switch *ds, int port,
  				   unsigned int mode,
  				   phy_interface_t interface,
diff --git a/target/linux/mediatek/patches-5.4/1021-ubnt-ledbar-driver.patch b/target/linux/mediatek/patches-5.4/1021-ubnt-ledbar-driver.patch
index 41ab094e9f..d1c73d9c3c 100644
--- a/target/linux/mediatek/patches-5.4/1021-ubnt-ledbar-driver.patch
+++ b/target/linux/mediatek/patches-5.4/1021-ubnt-ledbar-driver.patch
@@ -1,8 +1,8 @@
 --- a/drivers/leds/Kconfig
 +++ b/drivers/leds/Kconfig
-@@ -824,6 +824,16 @@ config LEDS_LM36274
- 	  Say Y to enable the LM36274 LED driver for TI LMU devices.
- 	  This supports the LED device LM36274.
+@@ -826,6 +826,16 @@ config LEDS_LM36274
+ 
+ source "drivers/leds/blink/Kconfig"
  
 +config LEDS_UBNT_LEDBAR
 +	tristate "LED support for Ubiquiti UniFi 6 LR"
diff --git a/target/linux/mvebu/patches-5.4/300-mvebu-Mangle-bootloader-s-kernel-arguments.patch b/target/linux/mvebu/patches-5.4/300-mvebu-Mangle-bootloader-s-kernel-arguments.patch
index 1595659aa7..b1e96d3baf 100644
--- a/target/linux/mvebu/patches-5.4/300-mvebu-Mangle-bootloader-s-kernel-arguments.patch
+++ b/target/linux/mvebu/patches-5.4/300-mvebu-Mangle-bootloader-s-kernel-arguments.patch
@@ -28,7 +28,7 @@ Signed-off-by: Michael Gray <michael.gray at lantisproject.com>
 
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
-@@ -1824,6 +1824,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
+@@ -1823,6 +1823,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
  	  The command-line arguments provided by the boot loader will be
  	  appended to the the device tree bootargs property.
  
diff --git a/target/linux/octeon/patches-5.4/130-itus_shield_support.patch b/target/linux/octeon/patches-5.4/130-itus_shield_support.patch
index 15f514209d..a041331c20 100644
--- a/target/linux/octeon/patches-5.4/130-itus_shield_support.patch
+++ b/target/linux/octeon/patches-5.4/130-itus_shield_support.patch
@@ -20,7 +20,7 @@
  	}
 --- a/arch/mips/cavium-octeon/octeon-platform.c
 +++ b/arch/mips/cavium-octeon/octeon-platform.c
-@@ -773,7 +773,7 @@ int __init octeon_prune_device_tree(void
+@@ -774,7 +774,7 @@ int __init octeon_prune_device_tree(void
  	if (fdt_check_header(initial_boot_params))
  		panic("Corrupt Device Tree.");
  
diff --git a/target/linux/octeontx/patches-5.4/0004-PCI-add-quirk-for-Gateworks-PLX-PEX860x-switch-with-.patch b/target/linux/octeontx/patches-5.4/0004-PCI-add-quirk-for-Gateworks-PLX-PEX860x-switch-with-.patch
index 8b7285abdf..9639a45c93 100644
--- a/target/linux/octeontx/patches-5.4/0004-PCI-add-quirk-for-Gateworks-PLX-PEX860x-switch-with-.patch
+++ b/target/linux/octeontx/patches-5.4/0004-PCI-add-quirk-for-Gateworks-PLX-PEX860x-switch-with-.patch
@@ -22,7 +22,7 @@ Signed-off-by: Tim Harvey <tharvey at gateworks.com>
  #include <linux/platform_data/x86/apple.h>
  #include <linux/pm_runtime.h>
  #include <linux/suspend.h>
-@@ -5793,3 +5794,34 @@ static void nvidia_ion_ahci_fixup(struct
+@@ -5796,3 +5797,34 @@ static void nvidia_ion_ahci_fixup(struct
  	pdev->dev_flags |= PCI_DEV_FLAGS_HAS_MSI_MASKING;
  }
  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab8, nvidia_ion_ahci_fixup);
diff --git a/target/linux/oxnas/patches-5.4/996-generic-Mangle-bootloader-s-kernel-arguments.patch b/target/linux/oxnas/patches-5.4/996-generic-Mangle-bootloader-s-kernel-arguments.patch
index 8a452fada1..1cbeed39b0 100644
--- a/target/linux/oxnas/patches-5.4/996-generic-Mangle-bootloader-s-kernel-arguments.patch
+++ b/target/linux/oxnas/patches-5.4/996-generic-Mangle-bootloader-s-kernel-arguments.patch
@@ -22,7 +22,7 @@ Signed-off-by: Adrian Panella <ianchi74 at outlook.com>
 
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
-@@ -1824,6 +1824,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
+@@ -1823,6 +1823,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
  	  The command-line arguments provided by the boot loader will be
  	  appended to the the device tree bootargs property.
  
diff --git a/target/linux/ramips/patches-5.4/0024-GPIO-add-named-gpio-exports.patch b/target/linux/ramips/patches-5.4/0024-GPIO-add-named-gpio-exports.patch
index 805836fcca..a7f1a48bd9 100644
--- a/target/linux/ramips/patches-5.4/0024-GPIO-add-named-gpio-exports.patch
+++ b/target/linux/ramips/patches-5.4/0024-GPIO-add-named-gpio-exports.patch
@@ -22,7 +22,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  
  #include "gpiolib.h"
  #include "gpiolib-of.h"
-@@ -915,3 +917,68 @@ void of_gpiochip_remove(struct gpio_chip
+@@ -917,3 +919,68 @@ void of_gpiochip_remove(struct gpio_chip
  {
  	of_node_put(chip->of_node);
  }




More information about the lede-commits mailing list