[PATCH] kernel: bump 5.4 to 5.4.53
Stijn Segers
foss at volatilesystems.org
Tue Jul 28 14:57:52 EDT 2020
Op zaterdag 25 juli 2020 om 13u45 schreef Kevin Darbyshire-Bryant
<ldir at darbyshire-bryant.me.uk>:
> 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>
Tested-by: Stijn Segers <foss at volatilesystems.org>
> ---
> 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)
>
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list