[PATCH] kernel: bump 5.4 to 5.4.53

Kevin Darbyshire-Bryant ldir at darbyshire-bryant.me.uk
Sat Jul 25 08:45:59 EDT 2020


Refresh patches.

Remove upstreamed patches:

bcm63xx/patches-5.4/022-v5.8-mtd-rawnand-brcmnand-correctly-verify-erased-pages.patch
bcm63xx/patches-5.4/024-v5.8-mtd-rawnand-brcmnand-fix-CS0-layout.patch

Drop the cake hack as upstream have backported the changes themselves,
but in a slightly different way.

generic/hack-5.4/641-sch_cake-fix-IP-protocol-handling-in-the-presence-of.patch

Signed-off-by: Kevin Darbyshire-Bryant <ldir at darbyshire-bryant.me.uk>
---
 include/kernel-version.mk                     |   4 +-
 .../910-unaligned_access_hacks.patch          |   2 +-
 ...ce-quirks-for-Freeway-Airmouse-T3-an.patch |   4 +-
 .../905-BCM53573-minor-hacks.patch            |   2 +-
 ...-brcmnand-improve-hamming-oob-layout.patch |   2 +-
 ...cmnand-correctly-verify-erased-pages.patch |  63 ----------
 ...-mtd-rawnand-brcmnand-fix-CS0-layout.patch |  34 ------
 ...antage-of-skb-hash-where-appropriate.patch |   2 +-
 ...ve-fwnode-parsing-into-sfp-bus-layer.patch |   2 +-
 ....5-net-sfp-rework-upstream-interface.patch |  12 +-
 ...fix-sfp_bus_put-kernel-documentation.patch |   2 +-
 ...et-sfp-add-support-for-module-quirks.patch |  43 ++-----
 ...sfp-add-some-quirks-for-GPON-modules.patch |   6 +-
 ...protocol-handling-in-the-presence-of.patch | 114 ------------------
 ...ng-with-source-address-failed-policy.patch |  22 ++--
 ...ncomplete-100BASE-FX-and-100BASE-LX-.patch |   2 +-
 ...nterface-mode-from-ethtool-link-mode.patch |   4 +-
 ...p-add-more-extended-compliance-codes.patch |   8 +-
 ...le-start-stop-upstream-notifications.patch |   2 +-
 ...y-MAC-configuration-for-copper-SFP-m.patch |   8 +-
 ...ma-calculate-the-real-count-for-slav.patch |   4 +-
 ...ma-Add-eDMA-support-for-QorIQ-LS1028.patch |   4 +-
 ...on-build_skb-in-mvneta_rx_swbm-poll-.patch |   2 +-
 ...013-net-mvneta-add-basic-XDP-support.patch |   2 +-
 ...DP-support-if-sw-bm-is-used-as-fallb.patch |   6 +-
 ...-mvebu-armada-38x-enable-libata-leds.patch |   2 +-
 .../0069-awake-rt305x-dwc2-controller.patch   |   2 +-
 27 files changed, 66 insertions(+), 294 deletions(-)
 delete mode 100644 target/linux/bcm63xx/patches-5.4/022-v5.8-mtd-rawnand-brcmnand-correctly-verify-erased-pages.patch
 delete mode 100644 target/linux/bcm63xx/patches-5.4/024-v5.8-mtd-rawnand-brcmnand-fix-CS0-layout.patch
 delete mode 100644 target/linux/generic/hack-5.4/641-sch_cake-fix-IP-protocol-handling-in-the-presence-of.patch

diff --git a/include/kernel-version.mk b/include/kernel-version.mk
index 8bfce3ecfe..08bde0efc6 100644
--- a/include/kernel-version.mk
+++ b/include/kernel-version.mk
@@ -8,11 +8,11 @@ endif
 
 LINUX_VERSION-4.14 = .187
 LINUX_VERSION-4.19 = .131
-LINUX_VERSION-5.4 = .52
+LINUX_VERSION-5.4 = .53
 
 LINUX_KERNEL_HASH-4.14.187 = 5b223475eaeea196aa7e127d3f253bca5c35d8afdc72ca75230ce1ecdd1454bd
 LINUX_KERNEL_HASH-4.19.131 = 19dfb9f6cc4ba30104b65dcce7d78240a4ae188cb366747d5f8eae35e98964ba
-LINUX_KERNEL_HASH-5.4.52 = 037efa531120b1c20ff55e78cd3e17288b1804b3a57dc31de760837b3bea5d3a
+LINUX_KERNEL_HASH-5.4.53 = faa7b6f99220d5726f0eaee74a6394f0a3b89be1a75254f3804630211f3d6d21
 
 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/ath79/patches-5.4/910-unaligned_access_hacks.patch b/target/linux/ath79/patches-5.4/910-unaligned_access_hacks.patch
index 053b72023f..da6f331f85 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
@@ -556,7 +556,7 @@
  #include <linux/netdevice.h>
 --- a/include/net/inet_ecn.h
 +++ b/include/net/inet_ecn.h
-@@ -139,9 +139,9 @@ static inline int IP6_ECN_set_ce(struct
+@@ -140,9 +140,9 @@ static inline int IP6_ECN_set_ce(struct
  	if (INET_ECN_is_not_ect(ipv6_get_dsfield(iph)))
  		return 0;
  
diff --git a/target/linux/bcm27xx/patches-5.4/950-0283-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch b/target/linux/bcm27xx/patches-5.4/950-0283-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch
index 26a54c22c9..f265beb34e 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0283-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0283-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch
@@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.org>
  #define USB_VENDOR_ID_BELKIN		0x050d
  #define USB_DEVICE_ID_FLIP_KVM		0x3201
  
-@@ -1234,6 +1237,9 @@
+@@ -1237,6 +1240,9 @@
  #define USB_VENDOR_ID_XAT	0x2505
  #define USB_DEVICE_ID_XAT_CSR	0x0220
  
@@ -53,7 +53,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.org>
  	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT },
  	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
  	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL },
-@@ -178,6 +179,7 @@ static const struct hid_device_id hid_qu
+@@ -179,6 +180,7 @@ static const struct hid_device_id hid_qu
  	{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP_LTD2, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
  	{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
  	{ HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT },
diff --git a/target/linux/bcm53xx/patches-5.4/905-BCM53573-minor-hacks.patch b/target/linux/bcm53xx/patches-5.4/905-BCM53573-minor-hacks.patch
index e3806b4e72..3b0a3323af 100644
--- a/target/linux/bcm53xx/patches-5.4/905-BCM53573-minor-hacks.patch
+++ b/target/linux/bcm53xx/patches-5.4/905-BCM53573-minor-hacks.patch
@@ -61,7 +61,7 @@ Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
  #include <linux/clockchips.h>
  #include <linux/clocksource.h>
  #include <linux/interrupt.h>
-@@ -899,6 +900,16 @@ static void arch_timer_of_configure_rate
+@@ -910,6 +911,16 @@ static void arch_timer_of_configure_rate
  	if (of_property_read_u32(np, "clock-frequency", &arch_timer_rate))
  		arch_timer_rate = rate;
  
diff --git a/target/linux/bcm63xx/patches-5.4/021-v5.8-mtd-rawnand-brcmnand-improve-hamming-oob-layout.patch b/target/linux/bcm63xx/patches-5.4/021-v5.8-mtd-rawnand-brcmnand-improve-hamming-oob-layout.patch
index 1df2411035..78fa1b39e3 100644
--- a/target/linux/bcm63xx/patches-5.4/021-v5.8-mtd-rawnand-brcmnand-improve-hamming-oob-layout.patch
+++ b/target/linux/bcm63xx/patches-5.4/021-v5.8-mtd-rawnand-brcmnand-improve-hamming-oob-layout.patch
@@ -40,7 +40,7 @@ Link: https://lore.kernel.org/linux-mtd/20200512075733.745374-3-noltari@gmail.co
 
 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
 +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
-@@ -1003,33 +1003,30 @@ static int brcmnand_hamming_ooblayout_fr
+@@ -1004,33 +1004,30 @@ static int brcmnand_hamming_ooblayout_fr
  	struct brcmnand_cfg *cfg = &host->hwcfg;
  	int sas = cfg->spare_area_size << cfg->sector_size_1k;
  	int sectors = cfg->page_size / (512 << cfg->sector_size_1k);
diff --git a/target/linux/bcm63xx/patches-5.4/022-v5.8-mtd-rawnand-brcmnand-correctly-verify-erased-pages.patch b/target/linux/bcm63xx/patches-5.4/022-v5.8-mtd-rawnand-brcmnand-correctly-verify-erased-pages.patch
deleted file mode 100644
index e8a9f14881..0000000000
--- a/target/linux/bcm63xx/patches-5.4/022-v5.8-mtd-rawnand-brcmnand-correctly-verify-erased-pages.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From dcb351c03f2fa6a599de1061b174167e03ee312b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari at gmail.com>
-Date: Tue, 12 May 2020 10:24:51 +0200
-Subject: [PATCH] mtd: rawnand: brcmnand: correctly verify erased pages
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The current code checks that the whole OOB area is erased.
-This is a problem when JFFS2 cleanmarkers are added to the OOB, since it will
-fail due to the usable OOB bytes not being 0xff.
-Correct this by only checking that data and ECC bytes aren't 0xff.
-
-Fixes: 02b88eea9f9c ("mtd: brcmnand: Add check for erased page bitflips")
-Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
-Signed-off-by: Miquel Raynal <miquel.raynal at bootlin.com>
-Link: https://lore.kernel.org/linux-mtd/20200512082451.771212-1-noltari@gmail.com
----
- drivers/mtd/nand/raw/brcmnand/brcmnand.c | 19 +++++++++++--------
- 1 file changed, 11 insertions(+), 8 deletions(-)
-
---- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
-+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
-@@ -1787,28 +1787,31 @@ static int brcmnand_read_by_pio(struct m
- static int brcmstb_nand_verify_erased_page(struct mtd_info *mtd,
- 		  struct nand_chip *chip, void *buf, u64 addr)
- {
--	int i, sas;
--	void *oob = chip->oob_poi;
-+	struct mtd_oob_region ecc;
-+	int i;
- 	int bitflips = 0;
- 	int page = addr >> chip->page_shift;
- 	int ret;
-+	void *ecc_bytes;
- 	void *ecc_chunk;
- 
- 	if (!buf)
- 		buf = nand_get_data_buf(chip);
- 
--	sas = mtd->oobsize / chip->ecc.steps;
--
- 	/* read without ecc for verification */
- 	ret = chip->ecc.read_page_raw(chip, buf, true, page);
- 	if (ret)
- 		return ret;
- 
--	for (i = 0; i < chip->ecc.steps; i++, oob += sas) {
-+	for (i = 0; i < chip->ecc.steps; i++) {
- 		ecc_chunk = buf + chip->ecc.size * i;
--		ret = nand_check_erased_ecc_chunk(ecc_chunk,
--						  chip->ecc.size,
--						  oob, sas, NULL, 0,
-+
-+		mtd_ooblayout_ecc(mtd, i, &ecc);
-+		ecc_bytes = chip->oob_poi + ecc.offset;
-+
-+		ret = nand_check_erased_ecc_chunk(ecc_chunk, chip->ecc.size,
-+						  ecc_bytes, ecc.length,
-+						  NULL, 0,
- 						  chip->ecc.strength);
- 		if (ret < 0)
- 			return ret;
diff --git a/target/linux/bcm63xx/patches-5.4/024-v5.8-mtd-rawnand-brcmnand-fix-CS0-layout.patch b/target/linux/bcm63xx/patches-5.4/024-v5.8-mtd-rawnand-brcmnand-fix-CS0-layout.patch
deleted file mode 100644
index 0eeefe12de..0000000000
--- a/target/linux/bcm63xx/patches-5.4/024-v5.8-mtd-rawnand-brcmnand-fix-CS0-layout.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 3d3fb3c5be9ce07fa85d8f67fb3922e4613b955b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari at gmail.com>
-Date: Fri, 22 May 2020 14:15:21 +0200
-Subject: [PATCH] mtd: rawnand: brcmnand: fix CS0 layout
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Only v3.3-v5.0 have a different CS0 layout.
-Controllers before v3.3 use the same layout for every CS.
-
-Fixes: 27c5b17cd1b1 ("mtd: nand: add NAND driver "library" for Broadcom STB NAND controller")
-Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
-Acked-by: Florian Fainelli <f.fainelli at gmail.com>
-Signed-off-by: Miquel Raynal <miquel.raynal at bootlin.com>
-Link: https://lore.kernel.org/linux-mtd/20200522121524.4161539-3-noltari@gmail.com
----
- drivers/mtd/nand/raw/brcmnand/brcmnand.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
---- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
-+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
-@@ -537,8 +537,9 @@ static int brcmnand_revision_init(struct
- 	} else {
- 		ctrl->cs_offsets = brcmnand_cs_offsets;
- 
--		/* v5.0 and earlier has a different CS0 offset layout */
--		if (ctrl->nand_version <= 0x0500)
-+		/* v3.3-5.0 have a different CS0 offset layout */
-+		if (ctrl->nand_version >= 0x0303 &&
-+		    ctrl->nand_version <= 0x0500)
- 			ctrl->cs0_offsets = brcmnand_cs_offsets_cs0;
- 	}
- 
diff --git a/target/linux/generic/backport-5.4/395-v5.8-net-sch_cake-Take-advantage-of-skb-hash-where-appropriate.patch b/target/linux/generic/backport-5.4/395-v5.8-net-sch_cake-Take-advantage-of-skb-hash-where-appropriate.patch
index 12962135d0..a4981acdee 100644
--- a/target/linux/generic/backport-5.4/395-v5.8-net-sch_cake-Take-advantage-of-skb-hash-where-appropriate.patch
+++ b/target/linux/generic/backport-5.4/395-v5.8-net-sch_cake-Take-advantage-of-skb-hash-where-appropriate.patch
@@ -67,7 +67,7 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir at darbyshire-bryant.me.uk>
 +	bool rev = !skb->_nfct, upd = false;
 +	__be32 ip;
  
- 	if (tc_skb_protocol(skb) != htons(ETH_P_IP))
+ 	if (skb_protocol(skb, true) != htons(ETH_P_IP))
 -		return;
 +		return false;
  
diff --git a/target/linux/generic/backport-5.4/716-v5.4-net-sfp-move-fwnode-parsing-into-sfp-bus-layer.patch b/target/linux/generic/backport-5.4/716-v5.4-net-sfp-move-fwnode-parsing-into-sfp-bus-layer.patch
index 858c584c05..92fe224873 100644
--- a/target/linux/generic/backport-5.4/716-v5.4-net-sfp-move-fwnode-parsing-into-sfp-bus-layer.patch
+++ b/target/linux/generic/backport-5.4/716-v5.4-net-sfp-move-fwnode-parsing-into-sfp-bus-layer.patch
@@ -59,7 +59,7 @@ Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
  #include <linux/rtnetlink.h>
  #include <linux/slab.h>
  
-@@ -445,45 +446,63 @@ static void sfp_upstream_clear(struct sf
+@@ -520,45 +521,63 @@ static void sfp_upstream_clear(struct sf
  }
  
  /**
diff --git a/target/linux/generic/backport-5.4/717-v5.5-net-sfp-rework-upstream-interface.patch b/target/linux/generic/backport-5.4/717-v5.5-net-sfp-rework-upstream-interface.patch
index f3454851bf..9175f2557a 100644
--- a/target/linux/generic/backport-5.4/717-v5.5-net-sfp-rework-upstream-interface.patch
+++ b/target/linux/generic/backport-5.4/717-v5.5-net-sfp-rework-upstream-interface.patch
@@ -53,7 +53,7 @@ Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
  
 --- a/drivers/net/phy/sfp-bus.c
 +++ b/drivers/net/phy/sfp-bus.c
-@@ -329,10 +329,19 @@ static void sfp_bus_release(struct kref
+@@ -404,10 +404,19 @@ static void sfp_bus_release(struct kref
  	kfree(bus);
  }
  
@@ -75,7 +75,7 @@ Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
  
  static int sfp_register_bus(struct sfp_bus *bus)
  {
-@@ -348,11 +357,11 @@ static int sfp_register_bus(struct sfp_b
+@@ -423,11 +432,11 @@ static int sfp_register_bus(struct sfp_b
  				return ret;
  		}
  	}
@@ -88,7 +88,7 @@ Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
  	return 0;
  }
  
-@@ -446,13 +455,12 @@ static void sfp_upstream_clear(struct sf
+@@ -521,13 +530,12 @@ static void sfp_upstream_clear(struct sf
  }
  
  /**
@@ -106,7 +106,7 @@ Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
   *
   * Returns: on success, a pointer to the sfp_bus structure,
   *	    %NULL if no SFP is specified,
-@@ -462,9 +470,7 @@ static void sfp_upstream_clear(struct sf
+@@ -537,9 +545,7 @@ static void sfp_upstream_clear(struct sf
   * 	        %-ENOMEM if we failed to allocate the bus.
   *		an error from the upstream's connect_phy() method.
   */
@@ -117,7 +117,7 @@ Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
  {
  	struct fwnode_reference_args ref;
  	struct sfp_bus *bus;
-@@ -482,7 +488,39 @@ struct sfp_bus *sfp_register_upstream_no
+@@ -557,7 +563,39 @@ struct sfp_bus *sfp_register_upstream_no
  	if (!bus)
  		return ERR_PTR(-ENOMEM);
  
@@ -157,7 +157,7 @@ Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
  	bus->upstream_ops = ops;
  	bus->upstream = upstream;
  
-@@ -495,33 +533,33 @@ struct sfp_bus *sfp_register_upstream_no
+@@ -570,33 +608,33 @@ struct sfp_bus *sfp_register_upstream_no
  	}
  	rtnl_unlock();
  
diff --git a/target/linux/generic/backport-5.4/718-v5.5-net-sfp-fix-sfp_bus_put-kernel-documentation.patch b/target/linux/generic/backport-5.4/718-v5.5-net-sfp-fix-sfp_bus_put-kernel-documentation.patch
index 13dc5216f9..c7bfd8a304 100644
--- a/target/linux/generic/backport-5.4/718-v5.5-net-sfp-fix-sfp_bus_put-kernel-documentation.patch
+++ b/target/linux/generic/backport-5.4/718-v5.5-net-sfp-fix-sfp_bus_put-kernel-documentation.patch
@@ -16,7 +16,7 @@ Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
 
 --- a/drivers/net/phy/sfp-bus.c
 +++ b/drivers/net/phy/sfp-bus.c
-@@ -331,7 +331,7 @@ static void sfp_bus_release(struct kref
+@@ -406,7 +406,7 @@ static void sfp_bus_release(struct kref
  
  /**
   * sfp_bus_put() - put a reference on the &struct sfp_bus
diff --git a/target/linux/generic/backport-5.4/742-v5.5-net-sfp-add-support-for-module-quirks.patch b/target/linux/generic/backport-5.4/742-v5.5-net-sfp-add-support-for-module-quirks.patch
index 46c56a655a..ed5ea29a1a 100644
--- a/target/linux/generic/backport-5.4/742-v5.5-net-sfp-add-support-for-module-quirks.patch
+++ b/target/linux/generic/backport-5.4/742-v5.5-net-sfp-add-support-for-module-quirks.patch
@@ -13,9 +13,9 @@ Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
 
 --- a/drivers/net/phy/sfp-bus.c
 +++ b/drivers/net/phy/sfp-bus.c
-@@ -10,6 +10,12 @@
- 
- #include "sfp.h"
+@@ -16,6 +16,12 @@ struct sfp_quirk {
+ 	void (*modes)(const struct sfp_eeprom_id *id, unsigned long *modes);
+ };
  
 +struct sfp_quirk {
 +	const char *vendor;
@@ -26,17 +26,9 @@ Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
  /**
   * struct sfp_bus - internal representation of a sfp bus
   */
-@@ -22,6 +28,7 @@ struct sfp_bus {
- 	const struct sfp_socket_ops *socket_ops;
- 	struct device *sfp_dev;
- 	struct sfp *sfp;
-+	const struct sfp_quirk *sfp_quirk;
- 
- 	const struct sfp_upstream_ops *upstream_ops;
- 	void *upstream;
-@@ -31,6 +38,46 @@ struct sfp_bus {
- 	bool started;
- };
+@@ -178,6 +184,46 @@ int sfp_parse_port(struct sfp_bus *bus,
+ }
+ EXPORT_SYMBOL_GPL(sfp_parse_port);
  
 +static const struct sfp_quirk sfp_quirks[] = {
 +};
@@ -79,11 +71,11 @@ Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
 +	return NULL;
 +}
  /**
-  * sfp_parse_port() - Parse the EEPROM base ID, setting the port type
+  * sfp_parse_support() - Parse the eeprom id for supported link modes
   * @bus: a pointer to the &struct sfp_bus structure for the sfp module
-@@ -234,6 +281,9 @@ void sfp_parse_support(struct sfp_bus *b
- 			phylink_set(modes, 1000baseX_Full);
- 	}
+@@ -309,6 +355,9 @@ void sfp_parse_support(struct sfp_bus *b
+ 	if (bus->sfp_quirk)
+ 		bus->sfp_quirk->modes(id, modes);
  
 +	if (bus->sfp_quirk)
 +		bus->sfp_quirk->modes(id, modes);
@@ -91,21 +83,12 @@ Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
  	bitmap_or(support, support, modes, __ETHTOOL_LINK_MODE_MASK_NBITS);
  
  	phylink_set(support, Autoneg);
-@@ -610,6 +660,8 @@ int sfp_module_insert(struct sfp_bus *bu
- 	const struct sfp_upstream_ops *ops = sfp_get_upstream_ops(bus);
- 	int ret = 0;
+@@ -687,6 +736,8 @@ int sfp_module_insert(struct sfp_bus *bu
+ 
+ 	bus->sfp_quirk = sfp_lookup_quirk(id);
  
 +	bus->sfp_quirk = sfp_lookup_quirk(id);
 +
  	if (ops && ops->module_insert)
  		ret = ops->module_insert(bus->upstream, id);
  
-@@ -623,6 +675,8 @@ void sfp_module_remove(struct sfp_bus *b
- 
- 	if (ops && ops->module_remove)
- 		ops->module_remove(bus->upstream);
-+
-+	bus->sfp_quirk = NULL;
- }
- EXPORT_SYMBOL_GPL(sfp_module_remove);
- 
diff --git a/target/linux/generic/backport-5.4/743-v5.5-net-sfp-add-some-quirks-for-GPON-modules.patch b/target/linux/generic/backport-5.4/743-v5.5-net-sfp-add-some-quirks-for-GPON-modules.patch
index 0b085ff094..a19c827389 100644
--- a/target/linux/generic/backport-5.4/743-v5.5-net-sfp-add-some-quirks-for-GPON-modules.patch
+++ b/target/linux/generic/backport-5.4/743-v5.5-net-sfp-add-some-quirks-for-GPON-modules.patch
@@ -17,9 +17,9 @@ Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
 
 --- a/drivers/net/phy/sfp-bus.c
 +++ b/drivers/net/phy/sfp-bus.c
-@@ -38,7 +38,32 @@ struct sfp_bus {
- 	bool started;
- };
+@@ -184,7 +184,32 @@ int sfp_parse_port(struct sfp_bus *bus,
+ }
+ EXPORT_SYMBOL_GPL(sfp_parse_port);
  
 +static void sfp_quirk_2500basex(const struct sfp_eeprom_id *id,
 +				unsigned long *modes)
diff --git a/target/linux/generic/hack-5.4/641-sch_cake-fix-IP-protocol-handling-in-the-presence-of.patch b/target/linux/generic/hack-5.4/641-sch_cake-fix-IP-protocol-handling-in-the-presence-of.patch
deleted file mode 100644
index e651743c1d..0000000000
--- a/target/linux/generic/hack-5.4/641-sch_cake-fix-IP-protocol-handling-in-the-presence-of.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From a00590d570212c3c633bd463cef8ec7377cc7993 Mon Sep 17 00:00:00 2001
-From: Kevin Darbyshire-Bryant <ldir at darbyshire-bryant.me.uk>
-Date: Tue, 30 Jun 2020 12:07:44 +0100
-Subject: [PATCH] sch_cake: fix IP protocol handling in the presence of VLAN
- tags
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Ilya Ponetayev <i.ponetaev at ndmsystems.com>
-
-CAKE was using the return value of tc_skb_protocol() and expecting it to be
-the IP protocol type. This can fail in the presence of QinQ VLAN tags,
-making CAKE unable to handle ECN marking and diffserv parsing in this case.
-Fix this by implementing our own version of tc_skb_protocol(), which will
-use skb->protocol directly, but also parse and skip over any VLAN tags and
-return the inner protocol number instead.
-
-Also fix CE marking by implementing a version of INET_ECN_set_ce() that
-uses the same parsing routine.
-
-Fixes: ea82511518f4 ("sch_cake: Add NAT awareness to packet classifier")
-Fixes: b2100cc56fca ("sch_cake: Use tc_skb_protocol() helper for getting packet protocol")
-Fixes: 046f6fd5daef ("sched: Add Common Applications Kept Enhanced (cake) qdisc")
-Signed-off-by: Ilya Ponetayev <i.ponetaev at ndmsystems.com>
-[ squash original two patches, rewrite commit message ]
-Signed-off-by: Toke Høiland-Jørgensen <toke at redhat.com>
-Signed-off-by: Kevin Darbyshire-Bryant <ldir at darbyshire-bryant.me.uk>
----
- net/sched/sch_cake.c | 52 +++++++++++++++++++++++++++++++++++++++++---
- 1 file changed, 49 insertions(+), 3 deletions(-)
-
---- a/net/sched/sch_cake.c
-+++ b/net/sched/sch_cake.c
-@@ -497,6 +497,52 @@ static bool cobalt_queue_empty(struct co
- 	return down;
- }
- 
-+static __be16 cake_skb_proto(const struct sk_buff *skb)
-+{
-+	unsigned int offset = skb_mac_offset(skb) + sizeof(struct ethhdr);
-+	__be16 proto = skb->protocol;
-+	struct vlan_hdr vhdr, *vh;
-+
-+	while (proto == htons(ETH_P_8021Q) || proto == htons(ETH_P_8021AD)) {
-+		vh = skb_header_pointer(skb, offset, sizeof(vhdr), &vhdr);
-+		if (!vh)
-+			break;
-+
-+		proto = vh->h_vlan_encapsulated_proto;
-+		offset += sizeof(vhdr);
-+	}
-+
-+	return proto;
-+}
-+
-+static int cake_set_ce(struct sk_buff *skb)
-+{
-+	int wlen = skb_network_offset(skb);
-+
-+	switch (cake_skb_proto(skb)) {
-+	case htons(ETH_P_IP):
-+		wlen += sizeof(struct iphdr);
-+		if (!pskb_may_pull(skb, wlen) ||
-+		    skb_try_make_writable(skb, wlen))
-+			return 0;
-+
-+		return IP_ECN_set_ce(ip_hdr(skb));
-+
-+	case htons(ETH_P_IPV6):
-+		wlen += sizeof(struct ipv6hdr);
-+		if (!pskb_may_pull(skb, wlen) ||
-+		    skb_try_make_writable(skb, wlen))
-+			return 0;
-+
-+		return IP6_ECN_set_ce(skb, ipv6_hdr(skb));
-+
-+	default:
-+		return 0;
-+	}
-+
-+	return 0;
-+}
-+
- /* Call this with a freshly dequeued packet for possible congestion marking.
-  * Returns true as an instruction to drop the packet, false for delivery.
-  */
-@@ -549,7 +595,7 @@ static bool cobalt_should_drop(struct co
- 
- 	if (next_due && vars->dropping) {
- 		/* Use ECN mark if possible, otherwise drop */
--		drop = !(vars->ecn_marked = INET_ECN_set_ce(skb));
-+		drop = !(vars->ecn_marked = cake_set_ce(skb));
- 
- 		vars->count++;
- 		if (!vars->count)
-@@ -592,7 +638,7 @@ static bool cake_update_flowkeys(struct
- 	bool rev = !skb->_nfct, upd = false;
- 	__be32 ip;
- 
--	if (tc_skb_protocol(skb) != htons(ETH_P_IP))
-+	if (cake_skb_proto(skb) != htons(ETH_P_IP))
- 		return false;
- 
- 	if (!nf_ct_get_tuple_skb(&tuple, skb))
-@@ -1557,7 +1603,7 @@ static u8 cake_handle_diffserv(struct sk
- 	u16 *buf, buf_;
- 	u8 dscp;
- 
--	switch (tc_skb_protocol(skb)) {
-+	switch (cake_skb_proto(skb)) {
- 	case htons(ETH_P_IP):
- 		buf = skb_header_pointer(skb, offset, sizeof(buf_), &buf_);
- 		if (unlikely(!buf))
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 766abc7489..232aee9634 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
@@ -138,7 +138,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  static const struct rt6_info ip6_blk_hole_entry_template = {
  	.dst = {
  		.__refcnt	= ATOMIC_INIT(1),
-@@ -1044,6 +1058,7 @@ static const int fib6_prop[RTN_MAX + 1]
+@@ -1047,6 +1061,7 @@ static const int fib6_prop[RTN_MAX + 1]
  	[RTN_BLACKHOLE]	= -EINVAL,
  	[RTN_UNREACHABLE] = -EHOSTUNREACH,
  	[RTN_PROHIBIT]	= -EACCES,
@@ -146,7 +146,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  	[RTN_THROW]	= -EAGAIN,
  	[RTN_NAT]	= -EINVAL,
  	[RTN_XRESOLVE]	= -EINVAL,
-@@ -1081,6 +1096,10 @@ static void ip6_rt_init_dst_reject(struc
+@@ -1084,6 +1099,10 @@ static void ip6_rt_init_dst_reject(struc
  		rt->dst.output = ip6_pkt_prohibit_out;
  		rt->dst.input = ip6_pkt_prohibit;
  		break;
@@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  	case RTN_THROW:
  	case RTN_UNREACHABLE:
  	default:
-@@ -4416,6 +4435,17 @@ static int ip6_pkt_prohibit_out(struct n
+@@ -4419,6 +4438,17 @@ static int ip6_pkt_prohibit_out(struct n
  	return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
  }
  
@@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
  /*
   *	Allocate a dst for local (unicast / anycast) address.
   */
-@@ -4896,7 +4926,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -4899,7 +4929,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)
-@@ -6016,6 +6047,8 @@ static int ip6_route_dev_notify(struct n
+@@ -6019,6 +6050,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
-@@ -6027,6 +6060,7 @@ static int ip6_route_dev_notify(struct n
+@@ -6030,6 +6063,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
  	}
-@@ -6219,6 +6253,8 @@ static int __net_init ip6_route_net_init
+@@ -6222,6 +6256,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);
-@@ -6229,11 +6265,21 @@ static int __net_init ip6_route_net_init
+@@ -6232,11 +6268,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);
-@@ -6257,6 +6303,8 @@ out:
+@@ -6260,6 +6306,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:
-@@ -6276,6 +6324,7 @@ static void __net_exit ip6_route_net_exi
+@@ -6279,6 +6327,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);
-@@ -6353,6 +6402,9 @@ void __init ip6_route_init_special_entri
+@@ -6356,6 +6405,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/740-net-sfp-remove-incomplete-100BASE-FX-and-100BASE-LX-.patch b/target/linux/generic/pending-5.4/740-net-sfp-remove-incomplete-100BASE-FX-and-100BASE-LX-.patch
index 4de6305827..32d09a2ee1 100644
--- a/target/linux/generic/pending-5.4/740-net-sfp-remove-incomplete-100BASE-FX-and-100BASE-LX-.patch
+++ b/target/linux/generic/pending-5.4/740-net-sfp-remove-incomplete-100BASE-FX-and-100BASE-LX-.patch
@@ -17,7 +17,7 @@ Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
 
 --- a/drivers/net/phy/sfp-bus.c
 +++ b/drivers/net/phy/sfp-bus.c
-@@ -342,9 +342,7 @@ phy_interface_t sfp_select_interface(str
+@@ -416,9 +416,7 @@ phy_interface_t sfp_select_interface(str
  	if (phylink_test(link_modes, 2500baseX_Full))
  		return PHY_INTERFACE_MODE_2500BASEX;
  
diff --git a/target/linux/generic/pending-5.4/741-net-sfp-derive-interface-mode-from-ethtool-link-mode.patch b/target/linux/generic/pending-5.4/741-net-sfp-derive-interface-mode-from-ethtool-link-mode.patch
index 8158c78b0e..ecdf9281b0 100644
--- a/target/linux/generic/pending-5.4/741-net-sfp-derive-interface-mode-from-ethtool-link-mode.patch
+++ b/target/linux/generic/pending-5.4/741-net-sfp-derive-interface-mode-from-ethtool-link-mode.patch
@@ -40,7 +40,7 @@ Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
  			    "selection of interface failed, advertisement %*pb\n",
 --- a/drivers/net/phy/sfp-bus.c
 +++ b/drivers/net/phy/sfp-bus.c
-@@ -320,16 +320,12 @@ EXPORT_SYMBOL_GPL(sfp_parse_support);
+@@ -394,16 +394,12 @@ EXPORT_SYMBOL_GPL(sfp_parse_support);
  /**
   * sfp_select_interface() - Select appropriate phy_interface_t mode
   * @bus: a pointer to the &struct sfp_bus structure for the sfp module
@@ -59,7 +59,7 @@ Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
  				     unsigned long *link_modes)
  {
  	if (phylink_test(link_modes, 10000baseCR_Full) ||
-@@ -342,7 +338,8 @@ phy_interface_t sfp_select_interface(str
+@@ -416,7 +412,8 @@ phy_interface_t sfp_select_interface(str
  	if (phylink_test(link_modes, 2500baseX_Full))
  		return PHY_INTERFACE_MODE_2500BASEX;
  
diff --git a/target/linux/generic/pending-5.4/742-net-sfp-add-more-extended-compliance-codes.patch b/target/linux/generic/pending-5.4/742-net-sfp-add-more-extended-compliance-codes.patch
index 0ddca287b9..b584d9669c 100644
--- a/target/linux/generic/pending-5.4/742-net-sfp-add-more-extended-compliance-codes.patch
+++ b/target/linux/generic/pending-5.4/742-net-sfp-add-more-extended-compliance-codes.patch
@@ -19,7 +19,7 @@ Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
 
 --- a/drivers/net/phy/sfp-bus.c
 +++ b/drivers/net/phy/sfp-bus.c
-@@ -124,35 +124,35 @@ int sfp_parse_port(struct sfp_bus *bus,
+@@ -130,35 +130,35 @@ int sfp_parse_port(struct sfp_bus *bus,
  
  	/* port is the physical connector, set this from the connector field. */
  	switch (id->base.connector) {
@@ -70,7 +70,7 @@ Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
  		port = PORT_OTHER;
  		break;
  	default:
-@@ -261,22 +261,33 @@ void sfp_parse_support(struct sfp_bus *b
+@@ -332,22 +332,33 @@ void sfp_parse_support(struct sfp_bus *b
  	}
  
  	switch (id->base.extended_cc) {
@@ -111,7 +111,7 @@ Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
  	default:
  		dev_warn(bus->sfp_dev,
  			 "Unknown/unsupported extended compliance code: 0x%02x\n",
-@@ -301,7 +312,7 @@ void sfp_parse_support(struct sfp_bus *b
+@@ -372,7 +383,7 @@ void sfp_parse_support(struct sfp_bus *b
  	 */
  	if (bitmap_empty(modes, __ETHTOOL_LINK_MODE_MASK_NBITS)) {
  		/* If the encoding and bit rate allows 1000baseX */
@@ -120,7 +120,7 @@ Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
  		    br_min <= 1300 && br_max >= 1200)
  			phylink_set(modes, 1000baseX_Full);
  	}
-@@ -332,7 +343,8 @@ phy_interface_t sfp_select_interface(str
+@@ -406,7 +417,8 @@ phy_interface_t sfp_select_interface(str
  	    phylink_test(link_modes, 10000baseSR_Full) ||
  	    phylink_test(link_modes, 10000baseLR_Full) ||
  	    phylink_test(link_modes, 10000baseLRM_Full) ||
diff --git a/target/linux/generic/pending-5.4/743-net-sfp-add-module-start-stop-upstream-notifications.patch b/target/linux/generic/pending-5.4/743-net-sfp-add-module-start-stop-upstream-notifications.patch
index 44de1b2a32..de1608cc8b 100644
--- a/target/linux/generic/pending-5.4/743-net-sfp-add-module-start-stop-upstream-notifications.patch
+++ b/target/linux/generic/pending-5.4/743-net-sfp-add-module-start-stop-upstream-notifications.patch
@@ -32,7 +32,7 @@ Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
 
 --- a/drivers/net/phy/sfp-bus.c
 +++ b/drivers/net/phy/sfp-bus.c
-@@ -712,6 +712,27 @@ void sfp_module_remove(struct sfp_bus *b
+@@ -788,6 +788,27 @@ void sfp_module_remove(struct sfp_bus *b
  }
  EXPORT_SYMBOL_GPL(sfp_module_remove);
  
diff --git a/target/linux/generic/pending-5.4/750-net-phylink-delay-MAC-configuration-for-copper-SFP-m.patch b/target/linux/generic/pending-5.4/750-net-phylink-delay-MAC-configuration-for-copper-SFP-m.patch
index 667170a398..9ddf69514d 100644
--- a/target/linux/generic/pending-5.4/750-net-phylink-delay-MAC-configuration-for-copper-SFP-m.patch
+++ b/target/linux/generic/pending-5.4/750-net-phylink-delay-MAC-configuration-for-copper-SFP-m.patch
@@ -134,7 +134,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  
 --- a/drivers/net/phy/sfp-bus.c
 +++ b/drivers/net/phy/sfp-bus.c
-@@ -103,6 +103,7 @@ static const struct sfp_quirk *sfp_looku
+@@ -109,6 +109,7 @@ static const struct sfp_quirk *sfp_looku
  
  	return NULL;
  }
@@ -142,9 +142,9 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  /**
   * sfp_parse_port() - Parse the EEPROM base ID, setting the port type
   * @bus: a pointer to the &struct sfp_bus structure for the sfp module
-@@ -179,6 +180,33 @@ int sfp_parse_port(struct sfp_bus *bus,
- EXPORT_SYMBOL_GPL(sfp_parse_port);
- 
+@@ -250,6 +251,33 @@ static const struct sfp_quirk *sfp_looku
+ 	return NULL;
+ }
  /**
 + * sfp_may_have_phy() - indicate whether the module may have a PHY
 + * @bus: a pointer to the &struct sfp_bus structure for the sfp module
diff --git a/target/linux/layerscape/patches-5.4/806-dma-0019-dmaengine-fsl-edma-calculate-the-real-count-for-slav.patch b/target/linux/layerscape/patches-5.4/806-dma-0019-dmaengine-fsl-edma-calculate-the-real-count-for-slav.patch
index 4278711b80..f8bbaaffa1 100644
--- a/target/linux/layerscape/patches-5.4/806-dma-0019-dmaengine-fsl-edma-calculate-the-real-count-for-slav.patch
+++ b/target/linux/layerscape/patches-5.4/806-dma-0019-dmaengine-fsl-edma-calculate-the-real-count-for-slav.patch
@@ -60,9 +60,9 @@ Signed-off-by: Fugang Duan <fugang.duan at nxp.com>
  struct dma_async_tx_descriptor *fsl_edma_prep_dma_cyclic(
 --- a/drivers/dma/fsl-edma.c
 +++ b/drivers/dma/fsl-edma.c
-@@ -46,6 +46,7 @@ static irqreturn_t fsl_edma_tx_handler(i
+@@ -53,6 +53,7 @@ static irqreturn_t fsl_edma_tx_handler(i
+ 			}
  
- 			spin_lock(&fsl_chan->vchan.lock);
  			if (!fsl_chan->edesc->iscyclic) {
 +				fsl_edma_get_realcnt(fsl_chan);
  				list_del(&fsl_chan->edesc->vdesc.node);
diff --git a/target/linux/layerscape/patches-5.4/806-dma-0028-dmaengine-fsl-edma-Add-eDMA-support-for-QorIQ-LS1028.patch b/target/linux/layerscape/patches-5.4/806-dma-0028-dmaengine-fsl-edma-Add-eDMA-support-for-QorIQ-LS1028.patch
index 611f96b1a8..4707eccdab 100644
--- a/target/linux/layerscape/patches-5.4/806-dma-0028-dmaengine-fsl-edma-Add-eDMA-support-for-QorIQ-LS1028.patch
+++ b/target/linux/layerscape/patches-5.4/806-dma-0028-dmaengine-fsl-edma-Add-eDMA-support-for-QorIQ-LS1028.patch
@@ -70,7 +70,7 @@ Signed-off-by: Vinod Koul <vkoul at kernel.org>
  };
 --- a/drivers/dma/fsl-edma.c
 +++ b/drivers/dma/fsl-edma.c
-@@ -234,6 +234,13 @@ static struct fsl_edma_drvdata vf610_dat
+@@ -241,6 +241,13 @@ static struct fsl_edma_drvdata vf610_dat
  	.setup_irq = fsl_edma_irq_init,
  };
  
@@ -84,7 +84,7 @@ Signed-off-by: Vinod Koul <vkoul at kernel.org>
  static struct fsl_edma_drvdata imx7ulp_data = {
  	.version = v3,
  	.dmamuxs = 1,
-@@ -243,6 +250,7 @@ static struct fsl_edma_drvdata imx7ulp_d
+@@ -250,6 +257,7 @@ static struct fsl_edma_drvdata imx7ulp_d
  
  static const struct of_device_id fsl_edma_dt_ids[] = {
  	{ .compatible = "fsl,vf610-edma", .data = &vf610_data},
diff --git a/target/linux/mvebu/patches-5.4/012-net-mvneta-rely-on-build_skb-in-mvneta_rx_swbm-poll-.patch b/target/linux/mvebu/patches-5.4/012-net-mvneta-rely-on-build_skb-in-mvneta_rx_swbm-poll-.patch
index 13ed9e4c8a..e3269a592f 100644
--- a/target/linux/mvebu/patches-5.4/012-net-mvneta-rely-on-build_skb-in-mvneta_rx_swbm-poll-.patch
+++ b/target/linux/mvebu/patches-5.4/012-net-mvneta-rely-on-build_skb-in-mvneta_rx_swbm-poll-.patch
@@ -292,7 +292,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  					MVNETA_RX_BUF_SIZE(pp->pkt_size));
  		mvneta_rxq_bm_disable(pp, rxq);
  		mvneta_rxq_fill(pp, rxq, rxq->size);
-@@ -4700,7 +4705,7 @@ static int mvneta_probe(struct platform_
+@@ -4708,7 +4713,7 @@ static int mvneta_probe(struct platform_
  	SET_NETDEV_DEV(dev, &pdev->dev);
  
  	pp->id = global_port_id++;
diff --git a/target/linux/mvebu/patches-5.4/013-net-mvneta-add-basic-XDP-support.patch b/target/linux/mvebu/patches-5.4/013-net-mvneta-add-basic-XDP-support.patch
index 06968bdaef..62c00ddeb1 100644
--- a/target/linux/mvebu/patches-5.4/013-net-mvneta-add-basic-XDP-support.patch
+++ b/target/linux/mvebu/patches-5.4/013-net-mvneta-add-basic-XDP-support.patch
@@ -300,7 +300,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  };
  
  static const struct ethtool_ops mvneta_eth_tool_ops = {
-@@ -4705,7 +4835,7 @@ static int mvneta_probe(struct platform_
+@@ -4713,7 +4843,7 @@ static int mvneta_probe(struct platform_
  	SET_NETDEV_DEV(dev, &pdev->dev);
  
  	pp->id = global_port_id++;
diff --git a/target/linux/mvebu/patches-5.4/023-net-mvneta-fix-XDP-support-if-sw-bm-is-used-as-fallb.patch b/target/linux/mvebu/patches-5.4/023-net-mvneta-fix-XDP-support-if-sw-bm-is-used-as-fallb.patch
index f76b27a36d..86bffa538a 100644
--- a/target/linux/mvebu/patches-5.4/023-net-mvneta-fix-XDP-support-if-sw-bm-is-used-as-fallb.patch
+++ b/target/linux/mvebu/patches-5.4/023-net-mvneta-fix-XDP-support-if-sw-bm-is-used-as-fallb.patch
@@ -38,7 +38,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  	mvreg_write(pp, MVNETA_ACC_MODE, MVNETA_ACC_MODE_EXT1);
  	netdev_info(pp->dev, "fail to update MTU, fall back to software BM\n");
  }
-@@ -4976,7 +4976,6 @@ static int mvneta_probe(struct platform_
+@@ -4984,7 +4984,6 @@ static int mvneta_probe(struct platform_
  	SET_NETDEV_DEV(dev, &pdev->dev);
  
  	pp->id = global_port_id++;
@@ -46,7 +46,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  
  	/* Obtain access to BM resources if enabled and already initialized */
  	bm_node = of_parse_phandle(dn, "buffer-manager", 0);
-@@ -5001,6 +5000,10 @@ static int mvneta_probe(struct platform_
+@@ -5009,6 +5008,10 @@ static int mvneta_probe(struct platform_
  	}
  	of_node_put(bm_node);
  
@@ -57,7 +57,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  	err = mvneta_init(&pdev->dev, pp);
  	if (err < 0)
  		goto err_netdev;
-@@ -5154,6 +5157,7 @@ static int mvneta_resume(struct device *
+@@ -5166,6 +5169,7 @@ static int mvneta_resume(struct device *
  		err = mvneta_bm_port_init(pdev, pp);
  		if (err < 0) {
  			dev_info(&pdev->dev, "use SW buffer management\n");
diff --git a/target/linux/mvebu/patches-5.4/561-mvebu-armada-38x-enable-libata-leds.patch b/target/linux/mvebu/patches-5.4/561-mvebu-armada-38x-enable-libata-leds.patch
index 3f9ad364de..b8ab700c97 100644
--- a/target/linux/mvebu/patches-5.4/561-mvebu-armada-38x-enable-libata-leds.patch
+++ b/target/linux/mvebu/patches-5.4/561-mvebu-armada-38x-enable-libata-leds.patch
@@ -1,6 +1,6 @@
 --- a/arch/arm/mach-mvebu/Kconfig
 +++ b/arch/arm/mach-mvebu/Kconfig
-@@ -68,6 +68,7 @@
+@@ -69,6 +69,7 @@ config MACH_ARMADA_38X
  	select HAVE_SMP
  	select MACH_MVEBU_V7
  	select PINCTRL_ARMADA_38X
diff --git a/target/linux/ramips/patches-5.4/0069-awake-rt305x-dwc2-controller.patch b/target/linux/ramips/patches-5.4/0069-awake-rt305x-dwc2-controller.patch
index f5283ed123..7110a5b808 100644
--- a/target/linux/ramips/patches-5.4/0069-awake-rt305x-dwc2-controller.patch
+++ b/target/linux/ramips/patches-5.4/0069-awake-rt305x-dwc2-controller.patch
@@ -1,6 +1,6 @@
 --- a/drivers/usb/dwc2/platform.c
 +++ b/drivers/usb/dwc2/platform.c
-@@ -430,6 +430,12 @@ static int dwc2_driver_probe(struct plat
+@@ -431,6 +431,12 @@ static int dwc2_driver_probe(struct plat
  	if (retval)
  		return retval;
  
-- 
2.24.3 (Apple Git-128)




More information about the openwrt-devel mailing list