diff --git a/include/kernel-version.mk b/include/kernel-version.mk index bc6e83553..445f6a7c8 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -6,10 +6,10 @@ ifdef CONFIG_TESTING_KERNEL KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER) endif -LINUX_VERSION-5.4 = .165 +LINUX_VERSION-5.4 = .162 LINUX_VERSION-5.10 = .85 -LINUX_KERNEL_HASH-5.4.165 = ba13da6d18476269ce2a608cc1a4d69d61cca79585c07675495e3fbc8f9d2acc +LINUX_KERNEL_HASH-5.4.162 = c12d72ddaac78189305a5e98825295ecb02282970033b052276035e83189e25b LINUX_KERNEL_HASH-5.10.85 = ba89162605ac447db8953c29f649b64d16aff7de8145e2db30d759e5476b19ac remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) diff --git a/target/linux/bcm53xx/patches-5.10/180-usb-xhci-add-support-for-performing-fake-doorbell.patch b/target/linux/bcm53xx/patches-5.10/180-usb-xhci-add-support-for-performing-fake-doorbell.patch new file mode 100644 index 000000000..c497db727 --- /dev/null +++ b/target/linux/bcm53xx/patches-5.10/180-usb-xhci-add-support-for-performing-fake-doorbell.patch @@ -0,0 +1,137 @@ +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Sat, 1 Oct 2016 22:54:48 +0200 +Subject: [PATCH] usb: xhci: add support for performing fake doorbell + +Broadcom's Northstar XHCI controllers seem to need a special start +procedure to work correctly. There isn't any official documentation of +this, the problem is that controller doesn't detect any connected +devices with default setup. Moreover connecting USB device to controller +that doesn't run properly can cause SoC's watchdog issues. + +A workaround that was successfully tested on multiple devices is to +perform a fake doorbell. This patch adds code for doing this and enables +it on BCM4708 family. +--- + drivers/usb/host/xhci-plat.c | 6 +++++ + drivers/usb/host/xhci.c | 63 +++++++++++++++++++++++++++++++++++++++++--- + drivers/usb/host/xhci.h | 1 + + 3 files changed, 67 insertions(+), 3 deletions(-) + +--- a/drivers/usb/host/xhci-plat.c ++++ b/drivers/usb/host/xhci-plat.c +@@ -87,6 +87,8 @@ static int xhci_priv_resume_quirk(struct + static void xhci_plat_quirks(struct device *dev, struct xhci_hcd *xhci) + { + struct xhci_plat_priv *priv = xhci_to_priv(xhci); ++ struct platform_device*pdev = to_platform_device(dev); ++ struct device_node *node = pdev->dev.of_node; + + /* + * As of now platform drivers don't provide MSI support so we ensure +@@ -94,6 +96,9 @@ static void xhci_plat_quirks(struct devi + * dev struct in order to setup MSI + */ + xhci->quirks |= XHCI_PLAT | priv->quirks; ++ ++ if (node && of_machine_is_compatible("brcm,bcm4708")) ++ xhci->quirks |= XHCI_FAKE_DOORBELL; + } + + /* called during probe() after chip reset completes */ +--- a/drivers/usb/host/xhci.c ++++ b/drivers/usb/host/xhci.c +@@ -156,6 +156,49 @@ int xhci_start(struct xhci_hcd *xhci) + return ret; + } + ++/** ++ * xhci_fake_doorbell - Perform a fake doorbell on a specified slot ++ * ++ * Some controllers require a fake doorbell to start correctly. Without that ++ * they simply don't detect any devices. ++ */ ++static int xhci_fake_doorbell(struct xhci_hcd *xhci, int slot_id) ++{ ++ u32 temp; ++ ++ /* Alloc a virt device for that slot */ ++ if (!xhci_alloc_virt_device(xhci, slot_id, NULL, GFP_NOIO)) { ++ xhci_warn(xhci, "Could not allocate xHCI USB device data structures\n"); ++ return -ENOMEM; ++ } ++ ++ /* Ring fake doorbell for slot_id ep 0 */ ++ xhci_ring_ep_doorbell(xhci, slot_id, 0, 0); ++ usleep_range(1000, 1500); ++ ++ /* Read the status to check if HSE is set or not */ ++ temp = readl(&xhci->op_regs->status); ++ ++ /* Clear HSE if set */ ++ if (temp & STS_FATAL) { ++ xhci_dbg(xhci, "HSE problem detected, status: 0x%08x\n", temp); ++ temp &= ~0x1fff; ++ temp |= STS_FATAL; ++ writel(temp, &xhci->op_regs->status); ++ usleep_range(1000, 1500); ++ readl(&xhci->op_regs->status); ++ } ++ ++ /* Free virt device */ ++ xhci_free_virt_device(xhci, slot_id); ++ ++ /* We're done if controller is already running */ ++ if (readl(&xhci->op_regs->command) & CMD_RUN) ++ return 0; ++ ++ return xhci_start(xhci); ++} ++ + /* + * Reset a halted HC. + * +@@ -608,10 +651,20 @@ static int xhci_init(struct usb_hcd *hcd + + static int xhci_run_finished(struct xhci_hcd *xhci) + { +- if (xhci_start(xhci)) { +- xhci_halt(xhci); +- return -ENODEV; ++ int err; ++ ++ err = xhci_start(xhci); ++ if (err) { ++ err = -ENODEV; ++ goto err_halt; + } ++ ++ if (xhci->quirks & XHCI_FAKE_DOORBELL) { ++ err = xhci_fake_doorbell(xhci, 1); ++ if (err) ++ goto err_halt; ++ } ++ + xhci->shared_hcd->state = HC_STATE_RUNNING; + xhci->cmd_ring_state = CMD_RING_STATE_RUNNING; + +@@ -621,6 +674,10 @@ static int xhci_run_finished(struct xhci + xhci_dbg_trace(xhci, trace_xhci_dbg_init, + "Finished xhci_run for USB3 roothub"); + return 0; ++ ++err_halt: ++ xhci_halt(xhci); ++ return err; + } + + /* +--- a/drivers/usb/host/xhci.h ++++ b/drivers/usb/host/xhci.h +@@ -1885,6 +1885,7 @@ struct xhci_hcd { + #define XHCI_SG_TRB_CACHE_SIZE_QUIRK BIT_ULL(39) + #define XHCI_NO_SOFT_RETRY BIT_ULL(40) + #define XHCI_EP_CTX_BROKEN_DCS BIT_ULL(42) ++#define XHCI_FAKE_DOORBELL BIT_ULL(44) + + unsigned int num_active_eps; + unsigned int limit_active_eps; diff --git a/target/linux/bcm53xx/patches-5.10/310-ARM-BCM5301X-Add-DT-for-Netgear-R7900.patch b/target/linux/bcm53xx/patches-5.10/310-ARM-BCM5301X-Add-DT-for-Netgear-R7900.patch new file mode 100644 index 000000000..e67d36a4e --- /dev/null +++ b/target/linux/bcm53xx/patches-5.10/310-ARM-BCM5301X-Add-DT-for-Netgear-R7900.patch @@ -0,0 +1,64 @@ +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Subject: [PATCH] ARM: BCM5301X: Add DT for Netgear R7900 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Rafał Miłecki +--- + +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -116,6 +116,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \ + bcm4709-buffalo-wxr-1900dhp.dtb \ + bcm4709-linksys-ea9200.dtb \ + bcm4709-netgear-r7000.dtb \ ++ bcm4709-netgear-r7900.dtb \ + bcm4709-netgear-r8000.dtb \ + bcm4709-tplink-archer-c9-v1.dtb \ + bcm47094-dlink-dir-885l.dtb \ +--- /dev/null ++++ b/arch/arm/boot/dts/bcm4709-netgear-r7900.dts +@@ -0,0 +1,42 @@ ++/* ++ * Broadcom BCM470X / BCM5301X ARM platform code. ++ * DTS for Netgear R7900 ++ * ++ * Copyright (C) 2016 Rafał Miłecki ++ * ++ * Licensed under the GNU/GPL. See COPYING for details. ++ */ ++ ++/dts-v1/; ++ ++#include "bcm4709.dtsi" ++#include "bcm5301x-nand-cs0-bch8.dtsi" ++ ++/ { ++ compatible = "netgear,r7900", "brcm,bcm4709", "brcm,bcm4708"; ++ model = "Netgear R7900"; ++ ++ chosen { ++ bootargs = "console=ttyS0,115200"; ++ }; ++ ++ memory { ++ reg = <0x00000000 0x08000000 ++ 0x88000000 0x08000000>; ++ }; ++ ++ axi@18000000 { ++ usb3@23000 { ++ reg = <0x00023000 0x1000>; ++ ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>; ++ }; ++ }; ++}; ++ ++&uart0 { ++ status = "okay"; ++}; diff --git a/target/linux/bcm53xx/patches-5.10/500-UBI-Detect-EOF-mark-and-erase-all-remaining-blocks.patch b/target/linux/bcm53xx/patches-5.10/500-UBI-Detect-EOF-mark-and-erase-all-remaining-blocks.patch new file mode 100644 index 000000000..257214fff --- /dev/null +++ b/target/linux/bcm53xx/patches-5.10/500-UBI-Detect-EOF-mark-and-erase-all-remaining-blocks.patch @@ -0,0 +1,59 @@ +From 2a2af518266a29323cf30c3f9ba9ef2ceb1dd84b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Thu, 16 Oct 2014 20:52:16 +0200 +Subject: [PATCH] UBI: Detect EOF mark and erase all remaining blocks +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Rafał Miłecki +--- + drivers/mtd/ubi/attach.c | 5 +++++ + drivers/mtd/ubi/io.c | 4 ++++ + drivers/mtd/ubi/ubi.h | 1 + + 3 files changed, 10 insertions(+) + +--- a/drivers/mtd/ubi/attach.c ++++ b/drivers/mtd/ubi/attach.c +@@ -82,6 +82,9 @@ static int self_check_ai(struct ubi_devi + #define AV_ADD BIT(1) + #define AV_FIND_OR_ADD (AV_FIND | AV_ADD) + ++/* Set on finding block with 0xdeadc0de, indicates erasing all blocks behind */ ++bool erase_all_next; ++ + /** + * find_or_add_av - internal function to find a volume, add a volume or do + * both (find and add if missing). +@@ -1580,6 +1583,8 @@ int ubi_attach(struct ubi_device *ubi, i + if (!ai) + return -ENOMEM; + ++ erase_all_next = false; ++ + #ifdef CONFIG_MTD_UBI_FASTMAP + /* On small flash devices we disable fastmap in any case. */ + if ((int)mtd_div_by_eb(ubi->mtd->size, ubi->mtd) <= UBI_FM_MAX_START) { +--- a/drivers/mtd/ubi/io.c ++++ b/drivers/mtd/ubi/io.c +@@ -710,6 +710,10 @@ int ubi_io_read_ec_hdr(struct ubi_device + } + + magic = be32_to_cpu(ec_hdr->magic); ++ if (magic == 0xdeadc0de) ++ erase_all_next = true; ++ if (erase_all_next) ++ return read_err ? UBI_IO_FF_BITFLIPS : UBI_IO_FF; + if (magic != UBI_EC_HDR_MAGIC) { + if (mtd_is_eccerr(read_err)) + return UBI_IO_BAD_HDR_EBADMSG; +--- a/drivers/mtd/ubi/ubi.h ++++ b/drivers/mtd/ubi/ubi.h +@@ -824,6 +824,7 @@ extern struct mutex ubi_devices_mutex; + extern struct blocking_notifier_head ubi_notifiers; + + /* attach.c */ ++extern bool erase_all_next; + struct ubi_ainf_peb *ubi_alloc_aeb(struct ubi_attach_info *ai, int pnum, + int ec); + void ubi_free_aeb(struct ubi_attach_info *ai, struct ubi_ainf_peb *aeb); diff --git a/target/linux/bcm53xx/patches-5.10/905-BCM53573-minor-hacks.patch b/target/linux/bcm53xx/patches-5.10/905-BCM53573-minor-hacks.patch new file mode 100644 index 000000000..9aaa72595 --- /dev/null +++ b/target/linux/bcm53xx/patches-5.10/905-BCM53573-minor-hacks.patch @@ -0,0 +1,80 @@ +From 6f1c62440eb6846cb8045d7a5480ec7bbe47c96f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Mon, 15 Aug 2016 10:30:41 +0200 +Subject: [PATCH] BCM53573 minor hacks +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Rafał Miłecki +--- + +--- a/arch/arm/boot/dts/bcm53573.dtsi ++++ b/arch/arm/boot/dts/bcm53573.dtsi +@@ -54,6 +54,7 @@ + , + , + ; ++ clocks = <&ilp>; + }; + + clocks { +--- a/drivers/bcma/main.c ++++ b/drivers/bcma/main.c +@@ -328,14 +328,6 @@ static int bcma_register_devices(struct + } + #endif + +-#ifdef CONFIG_BCMA_SFLASH +- if (bus->drv_cc.sflash.present) { +- err = platform_device_register(&bcma_sflash_dev); +- if (err) +- bcma_err(bus, "Error registering serial flash\n"); +- } +-#endif +- + #ifdef CONFIG_BCMA_NFLASH + if (bus->drv_cc.nflash.present) { + err = platform_device_register(&bcma_nflash_dev); +@@ -413,6 +405,14 @@ int bcma_bus_register(struct bcma_bus *b + bcma_register_core(bus, core); + } + ++#ifdef CONFIG_BCMA_SFLASH ++ if (bus->drv_cc.sflash.present) { ++ err = platform_device_register(&bcma_sflash_dev); ++ if (err) ++ bcma_err(bus, "Error registering serial flash\n"); ++ } ++#endif ++ + /* Try to get SPROM */ + err = bcma_sprom_get(bus); + if (err == -ENOENT) { +--- a/drivers/clocksource/arm_arch_timer.c ++++ b/drivers/clocksource/arm_arch_timer.c +@@ -14,6 +14,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -934,6 +935,16 @@ static void arch_timer_of_configure_rate + if (of_property_read_u32(np, "clock-frequency", &arch_timer_rate)) + arch_timer_rate = rate; + ++ /* Get clk rate through clk driver if present */ ++ if (!arch_timer_rate) { ++ struct clk *clk = of_clk_get(np, 0); ++ ++ if (!IS_ERR(clk)) { ++ if (!clk_prepare_enable(clk)) ++ arch_timer_rate = clk_get_rate(clk); ++ } ++ } ++ + /* Check the timer frequency. */ + if (validate_timer_rate()) + pr_warn("frequency not available\n"); diff --git a/target/linux/bcm53xx/patches-5.4/033-v5.10-0001-ARM-dts-BCM5301X-Specify-PWM-in-the-DT.patch b/target/linux/bcm53xx/patches-5.4/033-v5.10-0001-ARM-dts-BCM5301X-Specify-PWM-in-the-DT.patch index 760418a08..335378656 100644 --- a/target/linux/bcm53xx/patches-5.4/033-v5.10-0001-ARM-dts-BCM5301X-Specify-PWM-in-the-DT.patch +++ b/target/linux/bcm53xx/patches-5.4/033-v5.10-0001-ARM-dts-BCM5301X-Specify-PWM-in-the-DT.patch @@ -16,7 +16,7 @@ Signed-off-by: Florian Fainelli --- a/arch/arm/boot/dts/bcm5301x.dtsi +++ b/arch/arm/boot/dts/bcm5301x.dtsi -@@ -352,6 +352,14 @@ +@@ -350,6 +350,14 @@ }; }; @@ -31,7 +31,7 @@ Signed-off-by: Florian Fainelli mdio: mdio@18003000 { compatible = "brcm,iproc-mdio"; reg = <0x18003000 0x8>; -@@ -419,12 +427,12 @@ +@@ -417,12 +425,12 @@ function = "spi"; }; diff --git a/target/linux/bcm53xx/patches-5.4/033-v5.10-0002-ARM-dts-BCM5301X-Specify-uart2-in-the-DT.patch b/target/linux/bcm53xx/patches-5.4/033-v5.10-0002-ARM-dts-BCM5301X-Specify-uart2-in-the-DT.patch index 629e4bac2..8cee6745e 100644 --- a/target/linux/bcm53xx/patches-5.4/033-v5.10-0002-ARM-dts-BCM5301X-Specify-uart2-in-the-DT.patch +++ b/target/linux/bcm53xx/patches-5.4/033-v5.10-0002-ARM-dts-BCM5301X-Specify-uart2-in-the-DT.patch @@ -12,7 +12,7 @@ Signed-off-by: Florian Fainelli --- a/arch/arm/boot/dts/bcm5301x.dtsi +++ b/arch/arm/boot/dts/bcm5301x.dtsi -@@ -394,6 +394,15 @@ +@@ -392,6 +392,15 @@ reg = <0x18105000 0x1000>; }; diff --git a/target/linux/bcm53xx/patches-5.4/033-v5.10-0003-ARM-dts-BCM5301X-Specify-pcie2-in-the-DT.patch b/target/linux/bcm53xx/patches-5.4/033-v5.10-0003-ARM-dts-BCM5301X-Specify-pcie2-in-the-DT.patch index 07b173702..d3e2fbcc9 100644 --- a/target/linux/bcm53xx/patches-5.4/033-v5.10-0003-ARM-dts-BCM5301X-Specify-pcie2-in-the-DT.patch +++ b/target/linux/bcm53xx/patches-5.4/033-v5.10-0003-ARM-dts-BCM5301X-Specify-pcie2-in-the-DT.patch @@ -13,7 +13,7 @@ Signed-off-by: Florian Fainelli --- a/arch/arm/boot/dts/bcm5301x.dtsi +++ b/arch/arm/boot/dts/bcm5301x.dtsi -@@ -254,6 +254,10 @@ +@@ -252,6 +252,10 @@ reg = <0x00013000 0x1000>; }; diff --git a/target/linux/bcm53xx/patches-5.4/034-v5.11-0002-ARM-dts-BCM5301X-Harmonize-EHCI-OHCI-DT-nodes-name.patch b/target/linux/bcm53xx/patches-5.4/034-v5.11-0002-ARM-dts-BCM5301X-Harmonize-EHCI-OHCI-DT-nodes-name.patch index d6e5fca96..271257c66 100644 --- a/target/linux/bcm53xx/patches-5.4/034-v5.11-0002-ARM-dts-BCM5301X-Harmonize-EHCI-OHCI-DT-nodes-name.patch +++ b/target/linux/bcm53xx/patches-5.4/034-v5.11-0002-ARM-dts-BCM5301X-Harmonize-EHCI-OHCI-DT-nodes-name.patch @@ -20,7 +20,7 @@ Signed-off-by: Florian Fainelli --- a/arch/arm/boot/dts/bcm5301x.dtsi +++ b/arch/arm/boot/dts/bcm5301x.dtsi -@@ -267,7 +267,7 @@ +@@ -265,7 +265,7 @@ interrupt-parent = <&gic>; @@ -29,7 +29,7 @@ Signed-off-by: Florian Fainelli #usb-cells = <0>; compatible = "generic-ehci"; -@@ -289,7 +289,7 @@ +@@ -287,7 +287,7 @@ }; }; diff --git a/target/linux/bcm53xx/patches-5.4/034-v5.11-0003-ARM-dts-BCM5310X-Harmonize-xHCI-DT-nodes-name.patch b/target/linux/bcm53xx/patches-5.4/034-v5.11-0003-ARM-dts-BCM5310X-Harmonize-xHCI-DT-nodes-name.patch index 2f9c8ce8c..08380d735 100644 --- a/target/linux/bcm53xx/patches-5.4/034-v5.11-0003-ARM-dts-BCM5310X-Harmonize-xHCI-DT-nodes-name.patch +++ b/target/linux/bcm53xx/patches-5.4/034-v5.11-0003-ARM-dts-BCM5310X-Harmonize-xHCI-DT-nodes-name.patch @@ -18,7 +18,7 @@ Signed-off-by: Florian Fainelli --- a/arch/arm/boot/dts/bcm5301x.dtsi +++ b/arch/arm/boot/dts/bcm5301x.dtsi -@@ -320,7 +320,7 @@ +@@ -318,7 +318,7 @@ interrupt-parent = <&gic>; diff --git a/target/linux/bcm53xx/patches-5.4/034-v5.11-0005-ARM-dts-BCM5301X-Use-corretc-pinctrl-compatible-for-.patch b/target/linux/bcm53xx/patches-5.4/034-v5.11-0005-ARM-dts-BCM5301X-Use-corretc-pinctrl-compatible-for-.patch index ddebdc434..379696793 100644 --- a/target/linux/bcm53xx/patches-5.4/034-v5.11-0005-ARM-dts-BCM5301X-Use-corretc-pinctrl-compatible-for-.patch +++ b/target/linux/bcm53xx/patches-5.4/034-v5.11-0005-ARM-dts-BCM5301X-Use-corretc-pinctrl-compatible-for-.patch @@ -38,7 +38,7 @@ Signed-off-by: Florian Fainelli }; --- a/arch/arm/boot/dts/bcm5301x.dtsi +++ b/arch/arm/boot/dts/bcm5301x.dtsi -@@ -430,7 +430,7 @@ +@@ -428,7 +428,7 @@ #address-cells = <1>; #size-cells = <1>; diff --git a/target/linux/bcm53xx/patches-5.4/034-v5.11-0010-ARM-dts-BCM5301X-Update-Ethernet-switch-node-name.patch b/target/linux/bcm53xx/patches-5.4/034-v5.11-0010-ARM-dts-BCM5301X-Update-Ethernet-switch-node-name.patch index b3a774e34..9165572b9 100644 --- a/target/linux/bcm53xx/patches-5.4/034-v5.11-0010-ARM-dts-BCM5301X-Update-Ethernet-switch-node-name.patch +++ b/target/linux/bcm53xx/patches-5.4/034-v5.11-0010-ARM-dts-BCM5301X-Update-Ethernet-switch-node-name.patch @@ -21,8 +21,8 @@ Signed-off-by: Florian Fainelli --- a/arch/arm/boot/dts/bcm5301x.dtsi +++ b/arch/arm/boot/dts/bcm5301x.dtsi -@@ -485,7 +485,7 @@ - }; +@@ -482,7 +482,7 @@ + #thermal-sensor-cells = <0>; }; - srab: srab@18007000 { diff --git a/target/linux/bcm53xx/patches-5.4/034-v5.11-0011-ARM-dts-BCM5301X-Add-a-default-compatible-for-switch.patch b/target/linux/bcm53xx/patches-5.4/034-v5.11-0011-ARM-dts-BCM5301X-Add-a-default-compatible-for-switch.patch index 677e94f27..bb1ca592a 100644 --- a/target/linux/bcm53xx/patches-5.4/034-v5.11-0011-ARM-dts-BCM5301X-Add-a-default-compatible-for-switch.patch +++ b/target/linux/bcm53xx/patches-5.4/034-v5.11-0011-ARM-dts-BCM5301X-Add-a-default-compatible-for-switch.patch @@ -71,7 +71,7 @@ Signed-off-by: Florian Fainelli +}; --- a/arch/arm/boot/dts/bcm5301x.dtsi +++ b/arch/arm/boot/dts/bcm5301x.dtsi -@@ -486,7 +486,7 @@ +@@ -483,7 +483,7 @@ }; srab: ethernet-switch@18007000 { diff --git a/target/linux/bcm53xx/patches-5.4/034-v5.11-0012-ARM-dts-BCM5301X-Provide-defaults-ports-container-no.patch b/target/linux/bcm53xx/patches-5.4/034-v5.11-0012-ARM-dts-BCM5301X-Provide-defaults-ports-container-no.patch index 6e4f5f7bb..df868ba85 100644 --- a/target/linux/bcm53xx/patches-5.4/034-v5.11-0012-ARM-dts-BCM5301X-Provide-defaults-ports-container-no.patch +++ b/target/linux/bcm53xx/patches-5.4/034-v5.11-0012-ARM-dts-BCM5301X-Provide-defaults-ports-container-no.patch @@ -155,7 +155,7 @@ Signed-off-by: Florian Fainelli label = "lan4"; --- a/arch/arm/boot/dts/bcm5301x.dtsi +++ b/arch/arm/boot/dts/bcm5301x.dtsi -@@ -492,6 +492,10 @@ +@@ -489,6 +489,10 @@ status = "disabled"; /* ports are defined in board DTS */ diff --git a/target/linux/bcm53xx/patches-5.4/302-ARM-dts-BCM5301X-Update-Northstar-pinctrl-binding.patch b/target/linux/bcm53xx/patches-5.4/302-ARM-dts-BCM5301X-Update-Northstar-pinctrl-binding.patch index 8cbda6888..e1a2d4ab9 100644 --- a/target/linux/bcm53xx/patches-5.4/302-ARM-dts-BCM5301X-Update-Northstar-pinctrl-binding.patch +++ b/target/linux/bcm53xx/patches-5.4/302-ARM-dts-BCM5301X-Update-Northstar-pinctrl-binding.patch @@ -9,21 +9,19 @@ Signed-off-by: Rafał Miłecki --- a/arch/arm/boot/dts/bcm5301x.dtsi +++ b/arch/arm/boot/dts/bcm5301x.dtsi -@@ -424,7 +424,7 @@ +@@ -422,16 +422,12 @@ #size-cells = <1>; cru@100 { - compatible = "simple-bus"; + compatible = "syscon", "simple-mfd"; reg = <0x100 0x1a4>; - ranges; - #address-cells = <1>; -@@ -450,10 +450,9 @@ - "sata1", "sata2"; - }; +- ranges; +- #address-cells = <1>; +- #size-cells = <1>; - pinctrl: pin-controller@1c0 { -+ pinctrl: pin-controller { ++ pinctrl: pinctrl { compatible = "brcm,bcm4708-pinmux"; - reg = <0x1c0 0x24>; - reg-names = "cru_gpio_control"; diff --git a/target/linux/generic/backport-5.4/700-v5.5-net-core-allow-fast-GRO-for-skbs-with-Ethernet-heade.patch b/target/linux/generic/backport-5.4/700-v5.5-net-core-allow-fast-GRO-for-skbs-with-Ethernet-heade.patch index e7f4016a1..a8181bca9 100644 --- a/target/linux/generic/backport-5.4/700-v5.5-net-core-allow-fast-GRO-for-skbs-with-Ethernet-heade.patch +++ b/target/linux/generic/backport-5.4/700-v5.5-net-core-allow-fast-GRO-for-skbs-with-Ethernet-heade.patch @@ -66,7 +66,7 @@ Signed-off-by: David S. Miller --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -5435,8 +5435,7 @@ static inline void skb_gro_reset_offset( +@@ -5432,8 +5432,7 @@ static inline void skb_gro_reset_offset( NAPI_GRO_CB(skb)->frag0 = NULL; NAPI_GRO_CB(skb)->frag0_len = 0; diff --git a/target/linux/generic/hack-5.4/902-debloat_proc.patch b/target/linux/generic/hack-5.4/902-debloat_proc.patch index 198b03768..042588a62 100644 --- a/target/linux/generic/hack-5.4/902-debloat_proc.patch +++ b/target/linux/generic/hack-5.4/902-debloat_proc.patch @@ -158,7 +158,7 @@ Signed-off-by: Felix Fietkau IPC_SEM_IDS, sysvipc_sem_proc_show); --- a/ipc/shm.c +++ b/ipc/shm.c -@@ -154,6 +154,8 @@ pure_initcall(ipc_ns_init); +@@ -144,6 +144,8 @@ pure_initcall(ipc_ns_init); void __init shm_init(void) { diff --git a/target/linux/generic/pending-5.4/642-net-8021q-support-hardware-flow-table-offload.patch b/target/linux/generic/pending-5.4/642-net-8021q-support-hardware-flow-table-offload.patch index cfcc28af3..d67cad715 100644 --- a/target/linux/generic/pending-5.4/642-net-8021q-support-hardware-flow-table-offload.patch +++ b/target/linux/generic/pending-5.4/642-net-8021q-support-hardware-flow-table-offload.patch @@ -21,7 +21,7 @@ Signed-off-by: Felix Fietkau #include "vlan.h" #include "vlanproc.h" #include -@@ -747,6 +752,27 @@ static int vlan_dev_get_iflink(const str +@@ -744,6 +749,27 @@ static int vlan_dev_get_iflink(const str return real_dev->ifindex; } @@ -49,7 +49,7 @@ Signed-off-by: Felix Fietkau static const struct ethtool_ops vlan_ethtool_ops = { .get_link_ksettings = vlan_ethtool_get_link_ksettings, .get_drvinfo = vlan_ethtool_get_drvinfo, -@@ -785,6 +811,9 @@ static const struct net_device_ops vlan_ +@@ -782,6 +808,9 @@ static const struct net_device_ops vlan_ #endif .ndo_fix_features = vlan_dev_fix_features, .ndo_get_iflink = vlan_dev_get_iflink, 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 8cf36adde..06227cfaf 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 @@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski case RTN_THROW: case RTN_UNREACHABLE: default: -@@ -4453,6 +4472,17 @@ static int ip6_pkt_prohibit_out(struct n +@@ -4434,6 +4453,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 /* * Allocate a dst for local (unicast / anycast) address. */ -@@ -4933,7 +4963,8 @@ static int rtm_to_fib6_config(struct sk_ +@@ -4914,7 +4944,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 cfg->fc_flags |= RTF_REJECT; if (rtm->rtm_type == RTN_LOCAL) -@@ -6056,6 +6087,8 @@ static int ip6_route_dev_notify(struct n +@@ -6037,6 +6068,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 net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); #endif -@@ -6067,6 +6100,7 @@ static int ip6_route_dev_notify(struct n +@@ -6048,6 +6081,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 in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev); #endif } -@@ -6259,6 +6293,8 @@ static int __net_init ip6_route_net_init +@@ -6240,6 +6274,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 net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template, sizeof(*net->ipv6.ip6_prohibit_entry), GFP_KERNEL); -@@ -6269,11 +6305,21 @@ static int __net_init ip6_route_net_init +@@ -6250,11 +6286,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 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); -@@ -6297,6 +6343,8 @@ out: +@@ -6278,6 +6324,8 @@ out: return ret; #ifdef CONFIG_IPV6_MULTIPLE_TABLES @@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski out_ip6_prohibit_entry: kfree(net->ipv6.ip6_prohibit_entry); out_ip6_null_entry: -@@ -6316,6 +6364,7 @@ static void __net_exit ip6_route_net_exi +@@ -6297,6 +6345,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 kfree(net->ipv6.ip6_blk_hole_entry); #endif dst_entries_destroy(&net->ipv6.ip6_dst_ops); -@@ -6393,6 +6442,9 @@ void __init ip6_route_init_special_entri +@@ -6374,6 +6423,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/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-5.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index 242764534..b1ac7ffca 100644 --- a/target/linux/generic/pending-5.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/pending-5.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau __u16 tc_index; /* traffic control index */ --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -5501,6 +5501,9 @@ static enum gro_result dev_gro_receive(s +@@ -5498,6 +5498,9 @@ static enum gro_result dev_gro_receive(s int same_flow; int grow; @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau if (netif_elide_gro(skb->dev)) goto normal; -@@ -7303,6 +7306,48 @@ static void __netdev_adjacent_dev_unlink +@@ -7300,6 +7303,48 @@ static void __netdev_adjacent_dev_unlink &upper_dev->adj_list.lower); } @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau static int __netdev_upper_dev_link(struct net_device *dev, struct net_device *upper_dev, bool master, void *upper_priv, void *upper_info, -@@ -7353,6 +7398,7 @@ static int __netdev_upper_dev_link(struc +@@ -7350,6 +7395,7 @@ static int __netdev_upper_dev_link(struc if (ret) return ret; @@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, &changeupper_info.info); ret = notifier_to_errno(ret); -@@ -7446,6 +7492,7 @@ void netdev_upper_dev_unlink(struct net_ +@@ -7443,6 +7489,7 @@ void netdev_upper_dev_unlink(struct net_ __netdev_adjacent_dev_unlink_neighbour(dev, upper_dev); @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, &changeupper_info.info); -@@ -8176,6 +8223,7 @@ int dev_set_mac_address(struct net_devic +@@ -8173,6 +8220,7 @@ int dev_set_mac_address(struct net_devic if (err) return err; dev->addr_assign_type = NET_ADDR_SET; diff --git a/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch b/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch index 94eb518a5..0e97f2140 100644 --- a/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch +++ b/target/linux/generic/pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch @@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau static int netif_rx_internal(struct sk_buff *skb); static int call_netdevice_notifiers_info(unsigned long val, -@@ -5943,6 +5944,11 @@ void __napi_schedule(struct napi_struct +@@ -5940,6 +5941,11 @@ void __napi_schedule(struct napi_struct { unsigned long flags; @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau local_irq_save(flags); ____napi_schedule(this_cpu_ptr(&softnet_data), n); local_irq_restore(flags); -@@ -5994,6 +6000,10 @@ EXPORT_SYMBOL(napi_schedule_prep); +@@ -5991,6 +5997,10 @@ EXPORT_SYMBOL(napi_schedule_prep); */ void __napi_schedule_irqoff(struct napi_struct *n) { @@ -118,7 +118,7 @@ Signed-off-by: Felix Fietkau if (!IS_ENABLED(CONFIG_PREEMPT_RT)) ____napi_schedule(this_cpu_ptr(&softnet_data), n); else -@@ -6258,9 +6268,89 @@ static void init_gro_hash(struct napi_st +@@ -6255,9 +6265,89 @@ static void init_gro_hash(struct napi_st napi->gro_bitmask = 0; } @@ -208,7 +208,7 @@ Signed-off-by: Felix Fietkau INIT_LIST_HEAD(&napi->poll_list); hrtimer_init(&napi->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_PINNED); napi->timer.function = napi_watchdog; -@@ -6277,6 +6367,7 @@ void netif_napi_add(struct net_device *d +@@ -6274,6 +6364,7 @@ void netif_napi_add(struct net_device *d #ifdef CONFIG_NETPOLL napi->poll_owner = -1; #endif @@ -216,7 +216,7 @@ Signed-off-by: Felix Fietkau set_bit(NAPI_STATE_SCHED, &napi->state); set_bit(NAPI_STATE_NPSVC, &napi->state); list_add_rcu(&napi->dev_list, &dev->napi_list); -@@ -6317,6 +6408,7 @@ static void flush_gro_hash(struct napi_s +@@ -6314,6 +6405,7 @@ static void flush_gro_hash(struct napi_s void netif_napi_del(struct napi_struct *napi) { might_sleep(); @@ -224,7 +224,7 @@ Signed-off-by: Felix Fietkau if (napi_hash_del(napi)) synchronize_net(); list_del_init(&napi->dev_list); -@@ -6329,50 +6421,18 @@ EXPORT_SYMBOL(netif_napi_del); +@@ -6326,50 +6418,18 @@ EXPORT_SYMBOL(netif_napi_del); static int napi_poll(struct napi_struct *n, struct list_head *repoll) { @@ -279,7 +279,7 @@ Signed-off-by: Felix Fietkau /* Some drivers may have called napi_schedule * prior to exhausting their budget. -@@ -10352,6 +10412,10 @@ static int __init net_dev_init(void) +@@ -10349,6 +10409,10 @@ static int __init net_dev_init(void) sd->backlog.weight = weight_p; } diff --git a/target/linux/generic/pending-5.4/834-ledtrig-libata.patch b/target/linux/generic/pending-5.4/834-ledtrig-libata.patch index 2c876ae55..f33ceec12 100644 --- a/target/linux/generic/pending-5.4/834-ledtrig-libata.patch +++ b/target/linux/generic/pending-5.4/834-ledtrig-libata.patch @@ -65,7 +65,7 @@ Signed-off-by: Daniel Golle /** * ata_build_rw_tf - Build ATA taskfile for given read/write request * @tf: Target ATA taskfile -@@ -5151,6 +5164,9 @@ struct ata_queued_cmd *ata_qc_new_init(s +@@ -5149,6 +5162,9 @@ struct ata_queued_cmd *ata_qc_new_init(s if (tag < 0) return NULL; } @@ -75,7 +75,7 @@ Signed-off-by: Daniel Golle qc = __ata_qc_from_tag(ap, tag); qc->tag = qc->hw_tag = tag; -@@ -6087,6 +6103,9 @@ struct ata_port *ata_port_alloc(struct a +@@ -6085,6 +6101,9 @@ struct ata_port *ata_port_alloc(struct a ap->stats.unhandled_irq = 1; ap->stats.idle_irq = 1; #endif @@ -85,7 +85,7 @@ Signed-off-by: Daniel Golle ata_sff_port_init(ap); return ap; -@@ -6122,6 +6141,12 @@ static void ata_host_release(struct kref +@@ -6120,6 +6139,12 @@ static void ata_host_release(struct kref kfree(ap->pmp_link); kfree(ap->slave_link); @@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle kfree(ap); host->ports[i] = NULL; } -@@ -6585,7 +6610,23 @@ int ata_host_register(struct ata_host *h +@@ -6583,7 +6608,23 @@ int ata_host_register(struct ata_host *h host->ports[i]->print_id = atomic_inc_return(&ata_print_id); host->ports[i]->local_port_no = i + 1; } diff --git a/target/linux/layerscape/patches-5.4/701-net-0238-net-mscc-ocelot-break-apart-ocelot_vlan_port_apply.patch b/target/linux/layerscape/patches-5.4/701-net-0238-net-mscc-ocelot-break-apart-ocelot_vlan_port_apply.patch index f3db7da45..bb34e5db2 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0238-net-mscc-ocelot-break-apart-ocelot_vlan_port_apply.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0238-net-mscc-ocelot-break-apart-ocelot_vlan_port_apply.patch @@ -226,7 +226,7 @@ Signed-off-by: David S. Miller return 0; } -@@ -1303,6 +1328,7 @@ static int ocelot_port_attr_set(struct n +@@ -1306,6 +1331,7 @@ static int ocelot_port_attr_set(struct n struct switchdev_trans *trans) { struct ocelot_port *ocelot_port = netdev_priv(dev); @@ -234,7 +234,7 @@ Signed-off-by: David S. Miller int err = 0; switch (attr->id) { -@@ -1314,8 +1340,8 @@ static int ocelot_port_attr_set(struct n +@@ -1317,8 +1343,8 @@ static int ocelot_port_attr_set(struct n ocelot_port_attr_ageing_set(ocelot_port, attr->u.ageing_time); break; case SWITCHDEV_ATTR_ID_BRIDGE_VLAN_FILTERING: @@ -245,7 +245,7 @@ Signed-off-by: David S. Miller break; case SWITCHDEV_ATTR_ID_BRIDGE_MC_DISABLED: ocelot_port_attr_mc_set(ocelot_port, !attr->u.mc_disabled); -@@ -1517,20 +1543,20 @@ static int ocelot_port_bridge_join(struc +@@ -1520,20 +1546,20 @@ static int ocelot_port_bridge_join(struc return 0; } @@ -273,7 +273,7 @@ Signed-off-by: David S. Miller } static void ocelot_set_aggr_pgids(struct ocelot *ocelot) -@@ -1684,11 +1710,8 @@ static int ocelot_netdevice_port_event(s +@@ -1687,11 +1713,8 @@ static int ocelot_netdevice_port_event(s err = ocelot_port_bridge_join(ocelot_port, info->upper_dev); else @@ -287,7 +287,7 @@ Signed-off-by: David S. Miller } if (netif_is_lag_master(info->upper_dev)) { if (info->linking) -@@ -2006,6 +2029,7 @@ int ocelot_probe_port(struct ocelot *oce +@@ -2009,6 +2032,7 @@ int ocelot_probe_port(struct ocelot *oce { struct ocelot_port *ocelot_port; struct net_device *dev; @@ -295,7 +295,7 @@ Signed-off-by: David S. Miller int err; dev = alloc_etherdev(sizeof(struct ocelot_port)); -@@ -2041,7 +2065,15 @@ int ocelot_probe_port(struct ocelot *oce +@@ -2044,7 +2068,15 @@ int ocelot_probe_port(struct ocelot *oce } /* Basic L2 initialization */ diff --git a/target/linux/layerscape/patches-5.4/701-net-0240-net-mscc-ocelot-break-out-fdb-operations-into-abstra.patch b/target/linux/layerscape/patches-5.4/701-net-0240-net-mscc-ocelot-break-out-fdb-operations-into-abstra.patch index a6f81ba84..118b91e70 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0240-net-mscc-ocelot-break-out-fdb-operations-into-abstra.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0240-net-mscc-ocelot-break-out-fdb-operations-into-abstra.patch @@ -236,7 +236,7 @@ Signed-off-by: David S. Miller return ret; } -@@ -1123,9 +1155,9 @@ static const struct net_device_ops ocelo +@@ -1129,9 +1161,9 @@ static const struct net_device_ops ocelo .ndo_get_phys_port_name = ocelot_port_get_phys_port_name, .ndo_set_mac_address = ocelot_port_set_mac_address, .ndo_get_stats64 = ocelot_get_stats64, diff --git a/target/linux/layerscape/patches-5.4/701-net-0241-net-mscc-ocelot-change-prototypes-of-hwtstamping-ioc.patch b/target/linux/layerscape/patches-5.4/701-net-0241-net-mscc-ocelot-change-prototypes-of-hwtstamping-ioc.patch index 730e6a72c..f5f1452cd 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0241-net-mscc-ocelot-change-prototypes-of-hwtstamping-ioc.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0241-net-mscc-ocelot-change-prototypes-of-hwtstamping-ioc.patch @@ -57,7 +57,7 @@ Signed-off-by: David S. Miller break; default: return -ERANGE; -@@ -1130,8 +1130,9 @@ static int ocelot_hwstamp_set(struct oce +@@ -1136,8 +1136,9 @@ static int ocelot_hwstamp_set(struct oce static int ocelot_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) { @@ -69,7 +69,7 @@ Signed-off-by: David S. Miller /* The function is only used for PTP operations for now */ if (!ocelot->ptp) -@@ -1139,9 +1140,9 @@ static int ocelot_ioctl(struct net_devic +@@ -1145,9 +1146,9 @@ static int ocelot_ioctl(struct net_devic switch (cmd) { case SIOCSHWTSTAMP: diff --git a/target/linux/layerscape/patches-5.4/701-net-0242-net-mscc-ocelot-change-prototypes-of-switchdev-port-.patch b/target/linux/layerscape/patches-5.4/701-net-0242-net-mscc-ocelot-change-prototypes-of-switchdev-port-.patch index dc5847c52..5cf09039d 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0242-net-mscc-ocelot-change-prototypes-of-switchdev-port-.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0242-net-mscc-ocelot-change-prototypes-of-switchdev-port-.patch @@ -19,7 +19,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mscc/ocelot.c +++ b/drivers/net/ethernet/mscc/ocelot.c -@@ -1282,26 +1282,20 @@ static const struct ethtool_ops ocelot_e +@@ -1285,26 +1285,20 @@ static const struct ethtool_ops ocelot_e .get_ts_info = ocelot_get_ts_info, }; @@ -53,7 +53,7 @@ Signed-off-by: David S. Miller /* Fallthrough */ case BR_STATE_LEARNING: port_cfg |= ANA_PORT_PORT_CFG_LEARN_ENA; -@@ -1309,19 +1303,18 @@ static int ocelot_port_attr_stp_state_se +@@ -1312,19 +1306,18 @@ static int ocelot_port_attr_stp_state_se default: port_cfg &= ~ANA_PORT_PORT_CFG_LEARN_ENA; @@ -78,7 +78,7 @@ Signed-off-by: David S. Miller for (i = 0; i < ocelot->num_phys_ports; i++) { unsigned long bond_mask = ocelot->lags[i]; -@@ -1329,7 +1322,7 @@ static int ocelot_port_attr_stp_state_se +@@ -1332,7 +1325,7 @@ static int ocelot_port_attr_stp_state_se if (!bond_mask) continue; @@ -87,7 +87,7 @@ Signed-off-by: David S. Miller mask &= ~bond_mask; break; } -@@ -1337,47 +1330,55 @@ static int ocelot_port_attr_stp_state_se +@@ -1340,47 +1333,55 @@ static int ocelot_port_attr_stp_state_se ocelot_write_rix(ocelot, BIT(ocelot->num_phys_ports) | mask, @@ -162,7 +162,7 @@ Signed-off-by: David S. Miller } static int ocelot_port_attr_set(struct net_device *dev, -@@ -1386,22 +1387,23 @@ static int ocelot_port_attr_set(struct n +@@ -1389,22 +1390,23 @@ static int ocelot_port_attr_set(struct n { struct ocelot_port *ocelot_port = netdev_priv(dev); struct ocelot *ocelot = ocelot_port->ocelot; diff --git a/target/linux/layerscape/patches-5.4/701-net-0243-net-mscc-ocelot-refactor-struct-ocelot_port-out-of-f.patch b/target/linux/layerscape/patches-5.4/701-net-0243-net-mscc-ocelot-refactor-struct-ocelot_port-out-of-f.patch index 8850f5710..2e05090c7 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0243-net-mscc-ocelot-refactor-struct-ocelot_port-out-of-f.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0243-net-mscc-ocelot-refactor-struct-ocelot_port-out-of-f.patch @@ -83,7 +83,7 @@ Signed-off-by: David S. Miller return 0; } -@@ -1583,11 +1583,9 @@ static int ocelot_port_obj_del(struct ne +@@ -1586,11 +1586,9 @@ static int ocelot_port_obj_del(struct ne return ret; } @@ -96,7 +96,7 @@ Signed-off-by: David S. Miller if (!ocelot->bridge_mask) { ocelot->hw_bridge_dev = bridge; } else { -@@ -1597,17 +1595,14 @@ static int ocelot_port_bridge_join(struc +@@ -1600,17 +1598,14 @@ static int ocelot_port_bridge_join(struc return -ENODEV; } @@ -116,7 +116,7 @@ Signed-off-by: David S. Miller ocelot->bridge_mask &= ~BIT(port); if (!ocelot->bridge_mask) -@@ -1676,14 +1671,12 @@ static void ocelot_setup_lag(struct ocel +@@ -1679,14 +1674,12 @@ static void ocelot_setup_lag(struct ocel } } @@ -133,7 +133,7 @@ Signed-off-by: David S. Miller rcu_read_lock(); for_each_netdev_in_bond_rcu(bond, ndev) { -@@ -1698,17 +1691,17 @@ static int ocelot_port_lag_join(struct o +@@ -1701,17 +1694,17 @@ static int ocelot_port_lag_join(struct o /* If the new port is the lowest one, use it as the logical port from * now on */ @@ -156,7 +156,7 @@ Signed-off-by: David S. Miller } ocelot_setup_lag(ocelot, lag); -@@ -1717,34 +1710,32 @@ static int ocelot_port_lag_join(struct o +@@ -1720,34 +1713,32 @@ static int ocelot_port_lag_join(struct o return 0; } @@ -200,7 +200,7 @@ Signed-off-by: David S. Miller ocelot_set_aggr_pgids(ocelot); } -@@ -1760,24 +1751,26 @@ static int ocelot_netdevice_port_event(s +@@ -1763,24 +1754,26 @@ static int ocelot_netdevice_port_event(s struct netdev_notifier_changeupper_info *info) { struct ocelot_port *ocelot_port = netdev_priv(dev); @@ -231,7 +231,7 @@ Signed-off-by: David S. Miller info->upper_dev); } break; -@@ -2135,7 +2128,7 @@ int ocelot_probe_port(struct ocelot *oce +@@ -2138,7 +2131,7 @@ int ocelot_probe_port(struct ocelot *oce REW_PORT_VLAN_CFG, port); /* Enable vcap lookups */ diff --git a/target/linux/layerscape/patches-5.4/701-net-0244-net-mscc-ocelot-separate-net_device-related-items-ou.patch b/target/linux/layerscape/patches-5.4/701-net-0244-net-mscc-ocelot-separate-net_device-related-items-ou.patch index 774e8d0bf..f582cb43c 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0244-net-mscc-ocelot-separate-net_device-related-items-ou.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0244-net-mscc-ocelot-separate-net_device-related-items-ou.patch @@ -518,7 +518,7 @@ Signed-off-by: David S. Miller ppid->id_len = sizeof(ocelot->base_mac); memcpy(&ppid->id, &ocelot->base_mac, ppid->id_len); -@@ -1130,9 +1148,9 @@ static int ocelot_hwstamp_set(struct oce +@@ -1136,9 +1154,9 @@ static int ocelot_hwstamp_set(struct oce static int ocelot_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) { @@ -531,7 +531,7 @@ Signed-off-by: David S. Miller /* The function is only used for PTP operations for now */ if (!ocelot->ptp) -@@ -1169,8 +1187,8 @@ static const struct net_device_ops ocelo +@@ -1175,8 +1193,8 @@ static const struct net_device_ops ocelo static void ocelot_get_strings(struct net_device *netdev, u32 sset, u8 *data) { @@ -542,7 +542,7 @@ Signed-off-by: David S. Miller int i; if (sset != ETH_SS_STATS) -@@ -1224,8 +1242,9 @@ static void ocelot_check_stats_work(stru +@@ -1230,8 +1248,9 @@ static void ocelot_check_stats_work(stru static void ocelot_get_ethtool_stats(struct net_device *dev, struct ethtool_stats *stats, u64 *data) { @@ -554,7 +554,7 @@ Signed-off-by: David S. Miller int i; /* check and update now */ -@@ -1233,13 +1252,13 @@ static void ocelot_get_ethtool_stats(str +@@ -1239,13 +1258,13 @@ static void ocelot_get_ethtool_stats(str /* Copy all counters */ for (i = 0; i < ocelot->num_stats; i++) @@ -571,7 +571,7 @@ Signed-off-by: David S. Miller if (sset != ETH_SS_STATS) return -EOPNOTSUPP; -@@ -1249,8 +1268,8 @@ static int ocelot_get_sset_count(struct +@@ -1255,8 +1274,8 @@ static int ocelot_get_sset_count(struct static int ocelot_get_ts_info(struct net_device *dev, struct ethtool_ts_info *info) { @@ -582,7 +582,7 @@ Signed-off-by: David S. Miller if (!ocelot->ptp) return ethtool_op_get_ts_info(dev, info); -@@ -1385,9 +1404,9 @@ static int ocelot_port_attr_set(struct n +@@ -1388,9 +1407,9 @@ static int ocelot_port_attr_set(struct n const struct switchdev_attr *attr, struct switchdev_trans *trans) { @@ -595,7 +595,7 @@ Signed-off-by: David S. Miller int err = 0; switch (attr->id) { -@@ -1399,8 +1418,8 @@ static int ocelot_port_attr_set(struct n +@@ -1402,8 +1421,8 @@ static int ocelot_port_attr_set(struct n ocelot_port_attr_ageing_set(ocelot, port, attr->u.ageing_time); break; case SWITCHDEV_ATTR_ID_BRIDGE_VLAN_FILTERING: @@ -606,7 +606,7 @@ Signed-off-by: David S. Miller break; case SWITCHDEV_ATTR_ID_BRIDGE_MC_DISABLED: ocelot_port_attr_mc_set(ocelot, port, !attr->u.mc_disabled); -@@ -1465,15 +1484,17 @@ static int ocelot_port_obj_add_mdb(struc +@@ -1468,15 +1487,17 @@ static int ocelot_port_obj_add_mdb(struc const struct switchdev_obj_port_mdb *mdb, struct switchdev_trans *trans) { @@ -628,7 +628,7 @@ Signed-off-by: David S. Miller mc = ocelot_multicast_get(ocelot, mdb->addr, vid); if (!mc) { -@@ -1497,7 +1518,7 @@ static int ocelot_port_obj_add_mdb(struc +@@ -1500,7 +1521,7 @@ static int ocelot_port_obj_add_mdb(struc ocelot_mact_forget(ocelot, addr, vid); } @@ -637,7 +637,7 @@ Signed-off-by: David S. Miller addr[2] = mc->ports << 0; addr[1] = mc->ports << 8; -@@ -1507,14 +1528,16 @@ static int ocelot_port_obj_add_mdb(struc +@@ -1510,14 +1531,16 @@ static int ocelot_port_obj_add_mdb(struc static int ocelot_port_obj_del_mdb(struct net_device *dev, const struct switchdev_obj_port_mdb *mdb) { @@ -658,7 +658,7 @@ Signed-off-by: David S. Miller mc = ocelot_multicast_get(ocelot, mdb->addr, vid); if (!mc) -@@ -1526,7 +1549,7 @@ static int ocelot_port_obj_del_mdb(struc +@@ -1529,7 +1552,7 @@ static int ocelot_port_obj_del_mdb(struc addr[0] = 0; ocelot_mact_forget(ocelot, addr, vid); @@ -667,7 +667,7 @@ Signed-off-by: David S. Miller if (!mc->ports) { list_del(&mc->list); devm_kfree(ocelot->dev, mc); -@@ -1680,9 +1703,9 @@ static int ocelot_port_lag_join(struct o +@@ -1683,9 +1706,9 @@ static int ocelot_port_lag_join(struct o rcu_read_lock(); for_each_netdev_in_bond_rcu(bond, ndev) { @@ -679,7 +679,7 @@ Signed-off-by: David S. Miller } rcu_read_unlock(); -@@ -1750,20 +1773,23 @@ static int ocelot_netdevice_port_event(s +@@ -1753,20 +1776,23 @@ static int ocelot_netdevice_port_event(s unsigned long event, struct netdev_notifier_changeupper_info *info) { @@ -707,7 +707,7 @@ Signed-off-by: David S. Miller } if (netif_is_lag_master(info->upper_dev)) { if (info->linking) -@@ -2079,21 +2105,23 @@ int ocelot_probe_port(struct ocelot *oce +@@ -2082,21 +2108,23 @@ int ocelot_probe_port(struct ocelot *oce void __iomem *regs, struct phy_device *phy) { diff --git a/target/linux/layerscape/patches-5.4/701-net-0245-net-mscc-ocelot-refactor-ethtool-callbacks.patch b/target/linux/layerscape/patches-5.4/701-net-0245-net-mscc-ocelot-refactor-ethtool-callbacks.patch index 7b979d556..655f60b6d 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0245-net-mscc-ocelot-refactor-ethtool-callbacks.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0245-net-mscc-ocelot-refactor-ethtool-callbacks.patch @@ -13,7 +13,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mscc/ocelot.c +++ b/drivers/net/ethernet/mscc/ocelot.c -@@ -1185,10 +1185,9 @@ static const struct net_device_ops ocelo +@@ -1191,10 +1191,9 @@ static const struct net_device_ops ocelo .ndo_do_ioctl = ocelot_ioctl, }; @@ -26,7 +26,7 @@ Signed-off-by: David S. Miller int i; if (sset != ETH_SS_STATS) -@@ -1199,6 +1198,16 @@ static void ocelot_get_strings(struct ne +@@ -1205,6 +1204,16 @@ static void ocelot_get_strings(struct ne ETH_GSTRING_LEN); } @@ -43,7 +43,7 @@ Signed-off-by: David S. Miller static void ocelot_update_stats(struct ocelot *ocelot) { int i, j; -@@ -1239,12 +1248,8 @@ static void ocelot_check_stats_work(stru +@@ -1245,12 +1254,8 @@ static void ocelot_check_stats_work(stru OCELOT_STATS_CHECK_DELAY); } @@ -57,7 +57,7 @@ Signed-off-by: David S. Miller int i; /* check and update now */ -@@ -1255,25 +1260,37 @@ static void ocelot_get_ethtool_stats(str +@@ -1261,25 +1266,37 @@ static void ocelot_get_ethtool_stats(str *data++ = ocelot->stats[port * ocelot->num_stats + i]; } @@ -100,7 +100,7 @@ Signed-off-by: David S. Miller info->phc_index = ocelot->ptp_clock ? ptp_clock_index(ocelot->ptp_clock) : -1; info->so_timestamping |= SOF_TIMESTAMPING_TX_SOFTWARE | -@@ -1292,13 +1309,26 @@ static int ocelot_get_ts_info(struct net +@@ -1295,13 +1312,26 @@ static int ocelot_get_ts_info(struct net return 0; } diff --git a/target/linux/layerscape/patches-5.4/701-net-0247-net-mscc-ocelot-move-port-initialization-into-separa.patch b/target/linux/layerscape/patches-5.4/701-net-0247-net-mscc-ocelot-move-port-initialization-into-separa.patch index a6bbdd67f..2df6afb20 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0247-net-mscc-ocelot-move-port-initialization-into-separa.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0247-net-mscc-ocelot-move-port-initialization-into-separa.patch @@ -15,7 +15,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mscc/ocelot.c +++ b/drivers/net/ethernet/mscc/ocelot.c -@@ -2132,6 +2132,28 @@ static int ocelot_init_timestamp(struct +@@ -2135,6 +2135,28 @@ static int ocelot_init_timestamp(struct return 0; } @@ -44,7 +44,7 @@ Signed-off-by: David S. Miller int ocelot_probe_port(struct ocelot *ocelot, u8 port, void __iomem *regs, struct phy_device *phy) -@@ -2139,7 +2161,6 @@ int ocelot_probe_port(struct ocelot *oce +@@ -2142,7 +2164,6 @@ int ocelot_probe_port(struct ocelot *oce struct ocelot_port_private *priv; struct ocelot_port *ocelot_port; struct net_device *dev; @@ -52,7 +52,7 @@ Signed-off-by: David S. Miller int err; dev = alloc_etherdev(sizeof(struct ocelot_port_private)); -@@ -2167,32 +2188,14 @@ int ocelot_probe_port(struct ocelot *oce +@@ -2170,32 +2191,14 @@ int ocelot_probe_port(struct ocelot *oce ocelot_mact_learn(ocelot, PGID_CPU, dev->dev_addr, ocelot_port->pvid, ENTRYTYPE_LOCKED); diff --git a/target/linux/layerscape/patches-5.4/701-net-0249-net-mscc-ocelot-initialize-list-of-multicast-address.patch b/target/linux/layerscape/patches-5.4/701-net-0249-net-mscc-ocelot-initialize-list-of-multicast-address.patch index b0c349ec3..ea01c8b54 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0249-net-mscc-ocelot-initialize-list-of-multicast-address.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0249-net-mscc-ocelot-initialize-list-of-multicast-address.patch @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mscc/ocelot.c +++ b/drivers/net/ethernet/mscc/ocelot.c -@@ -2242,6 +2242,7 @@ int ocelot_init(struct ocelot *ocelot) +@@ -2245,6 +2245,7 @@ int ocelot_init(struct ocelot *ocelot) if (!ocelot->stats_queue) return -ENOMEM; diff --git a/target/linux/layerscape/patches-5.4/701-net-0251-net-mscc-ocelot-split-assignment-of-the-cpu-port-int.patch b/target/linux/layerscape/patches-5.4/701-net-0251-net-mscc-ocelot-split-assignment-of-the-cpu-port-int.patch index 8fa0bca93..4f5ab9ad5 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0251-net-mscc-ocelot-split-assignment-of-the-cpu-port-int.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0251-net-mscc-ocelot-split-assignment-of-the-cpu-port-int.patch @@ -32,7 +32,7 @@ Signed-off-by: David S. Miller /* Set vlan ingress filter mask to all ports but the CPU port by * default. */ -@@ -2223,11 +2217,52 @@ int ocelot_probe_port(struct ocelot *oce +@@ -2226,11 +2220,52 @@ int ocelot_probe_port(struct ocelot *oce } EXPORT_SYMBOL(ocelot_probe_port); @@ -87,7 +87,7 @@ Signed-off-by: David S. Miller ocelot->lags = devm_kcalloc(ocelot->dev, ocelot->num_phys_ports, sizeof(u32), GFP_KERNEL); -@@ -2307,13 +2342,6 @@ int ocelot_init(struct ocelot *ocelot) +@@ -2310,13 +2345,6 @@ int ocelot_init(struct ocelot *ocelot) ocelot_write_rix(ocelot, 0, ANA_PGID_PGID, PGID_SRC + port); } @@ -101,7 +101,7 @@ Signed-off-by: David S. Miller /* Allow broadcast MAC frames. */ for (i = ocelot->num_phys_ports + 1; i < PGID_CPU; i++) { u32 val = ANA_PGID_PGID_PGID(GENMASK(ocelot->num_phys_ports - 1, 0)); -@@ -2326,13 +2354,6 @@ int ocelot_init(struct ocelot *ocelot) +@@ -2329,13 +2357,6 @@ int ocelot_init(struct ocelot *ocelot) ocelot_write_rix(ocelot, 0, ANA_PGID_PGID, PGID_MCIPV4); ocelot_write_rix(ocelot, 0, ANA_PGID_PGID, PGID_MCIPV6); diff --git a/target/linux/layerscape/patches-5.4/701-net-0252-net-mscc-ocelot-don-t-hardcode-the-number-of-the-CPU.patch b/target/linux/layerscape/patches-5.4/701-net-0252-net-mscc-ocelot-don-t-hardcode-the-number-of-the-CPU.patch index 7ddc5753f..aec70e6d6 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0252-net-mscc-ocelot-don-t-hardcode-the-number-of-the-CPU.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0252-net-mscc-ocelot-don-t-hardcode-the-number-of-the-CPU.patch @@ -30,7 +30,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mscc/ocelot.c +++ b/drivers/net/ethernet/mscc/ocelot.c -@@ -1380,7 +1380,7 @@ static void ocelot_bridge_stp_state_set( +@@ -1383,7 +1383,7 @@ static void ocelot_bridge_stp_state_set( * a source for the other ports. */ for (p = 0; p < ocelot->num_phys_ports; p++) { @@ -39,7 +39,7 @@ Signed-off-by: David S. Miller unsigned long mask = ocelot->bridge_fwd_mask & ~BIT(p); for (i = 0; i < ocelot->num_phys_ports; i++) { -@@ -1395,15 +1395,18 @@ static void ocelot_bridge_stp_state_set( +@@ -1398,15 +1398,18 @@ static void ocelot_bridge_stp_state_set( } } diff --git a/target/linux/layerscape/patches-5.4/701-net-0255-net-mscc-ocelot-move-invariant-configs-out-of-adjust.patch b/target/linux/layerscape/patches-5.4/701-net-0255-net-mscc-ocelot-move-invariant-configs-out-of-adjust.patch index f0f4aeae5..8cb8a831a 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0255-net-mscc-ocelot-move-invariant-configs-out-of-adjust.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0255-net-mscc-ocelot-move-invariant-configs-out-of-adjust.patch @@ -98,7 +98,7 @@ Signed-off-by: David S. Miller } static void ocelot_port_adjust_link(struct net_device *dev) -@@ -2140,11 +2099,53 @@ static int ocelot_init_timestamp(struct +@@ -2143,11 +2102,53 @@ static int ocelot_init_timestamp(struct static void ocelot_init_port(struct ocelot *ocelot, int port) { struct ocelot_port *ocelot_port = ocelot->ports[port]; diff --git a/target/linux/layerscape/patches-5.4/701-net-0256-net-mscc-ocelot-create-a-helper-for-changing-the-por.patch b/target/linux/layerscape/patches-5.4/701-net-0256-net-mscc-ocelot-create-a-helper-for-changing-the-por.patch index 13fe784f2..0a1299dd3 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0256-net-mscc-ocelot-create-a-helper-for-changing-the-por.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0256-net-mscc-ocelot-create-a-helper-for-changing-the-por.patch @@ -20,7 +20,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mscc/ocelot.c +++ b/drivers/net/ethernet/mscc/ocelot.c -@@ -2096,11 +2096,32 @@ static int ocelot_init_timestamp(struct +@@ -2099,11 +2099,32 @@ static int ocelot_init_timestamp(struct return 0; } @@ -54,7 +54,7 @@ Signed-off-by: David S. Miller INIT_LIST_HEAD(&ocelot_port->skbs); /* Basic L2 initialization */ -@@ -2121,8 +2142,7 @@ static void ocelot_init_port(struct ocel +@@ -2124,8 +2145,7 @@ static void ocelot_init_port(struct ocel DEV_MAC_HDX_CFG); /* Set Max Length and maximum tags allowed */ @@ -64,7 +64,7 @@ Signed-off-by: David S. Miller ocelot_port_writel(ocelot_port, DEV_MAC_TAGS_CFG_TAG_ID(ETH_P_8021AD) | DEV_MAC_TAGS_CFG_VLAN_AWR_ENA | DEV_MAC_TAGS_CFG_VLAN_LEN_AWR_ENA, -@@ -2132,20 +2152,6 @@ static void ocelot_init_port(struct ocel +@@ -2135,20 +2155,6 @@ static void ocelot_init_port(struct ocel ocelot_port_writel(ocelot_port, 0, DEV_MAC_FC_MAC_HIGH_CFG); ocelot_port_writel(ocelot_port, 0, DEV_MAC_FC_MAC_LOW_CFG); diff --git a/target/linux/layerscape/patches-5.4/701-net-0258-net-mscc-ocelot-adjust-MTU-on-the-CPU-port-in-NPI-mo.patch b/target/linux/layerscape/patches-5.4/701-net-0258-net-mscc-ocelot-adjust-MTU-on-the-CPU-port-in-NPI-mo.patch index 667be87db..3c9d0336a 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0258-net-mscc-ocelot-adjust-MTU-on-the-CPU-port-in-NPI-mo.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0258-net-mscc-ocelot-adjust-MTU-on-the-CPU-port-in-NPI-mo.patch @@ -22,7 +22,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mscc/ocelot.c +++ b/drivers/net/ethernet/mscc/ocelot.c -@@ -2229,9 +2229,18 @@ void ocelot_set_cpu_port(struct ocelot * +@@ -2232,9 +2232,18 @@ void ocelot_set_cpu_port(struct ocelot * * Only one port can be an NPI at the same time. */ if (cpu < ocelot->num_phys_ports) { diff --git a/target/linux/layerscape/patches-5.4/701-net-0259-net-mscc-ocelot-separate-the-implementation-of-switc.patch b/target/linux/layerscape/patches-5.4/701-net-0259-net-mscc-ocelot-separate-the-implementation-of-switc.patch index 3a8e9d6b1..50a37e550 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0259-net-mscc-ocelot-separate-the-implementation-of-switc.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0259-net-mscc-ocelot-separate-the-implementation-of-switc.patch @@ -20,7 +20,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/mscc/ocelot.c +++ b/drivers/net/ethernet/mscc/ocelot.c -@@ -2268,6 +2268,14 @@ int ocelot_init(struct ocelot *ocelot) +@@ -2271,6 +2271,14 @@ int ocelot_init(struct ocelot *ocelot) int i, ret; u32 port; diff --git a/target/linux/layerscape/patches-5.4/701-net-0260-net-mscc-ocelot-publish-structure-definitions-to-inc.patch b/target/linux/layerscape/patches-5.4/701-net-0260-net-mscc-ocelot-publish-structure-definitions-to-inc.patch index 8529e9825..6fbc09173 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0260-net-mscc-ocelot-publish-structure-definitions-to-inc.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0260-net-mscc-ocelot-publish-structure-definitions-to-inc.patch @@ -195,7 +195,7 @@ Signed-off-by: David S. Miller static int ocelot_port_fdb_dump(struct sk_buff *skb, struct netlink_callback *cb, -@@ -1147,8 +1154,7 @@ static const struct net_device_ops ocelo +@@ -1153,8 +1160,7 @@ static const struct net_device_ops ocelo .ndo_do_ioctl = ocelot_ioctl, }; @@ -205,7 +205,7 @@ Signed-off-by: David S. Miller { int i; -@@ -1159,6 +1165,7 @@ static void ocelot_get_strings(struct oc +@@ -1165,6 +1171,7 @@ static void ocelot_get_strings(struct oc memcpy(data + i * ETH_GSTRING_LEN, ocelot->stats_layout[i].name, ETH_GSTRING_LEN); } @@ -213,7 +213,7 @@ Signed-off-by: David S. Miller static void ocelot_port_get_strings(struct net_device *netdev, u32 sset, u8 *data) -@@ -1210,7 +1217,7 @@ static void ocelot_check_stats_work(stru +@@ -1216,7 +1223,7 @@ static void ocelot_check_stats_work(stru OCELOT_STATS_CHECK_DELAY); } @@ -222,7 +222,7 @@ Signed-off-by: David S. Miller { int i; -@@ -1221,6 +1228,7 @@ static void ocelot_get_ethtool_stats(str +@@ -1227,6 +1234,7 @@ static void ocelot_get_ethtool_stats(str for (i = 0; i < ocelot->num_stats; i++) *data++ = ocelot->stats[port * ocelot->num_stats + i]; } @@ -230,7 +230,7 @@ Signed-off-by: David S. Miller static void ocelot_port_get_ethtool_stats(struct net_device *dev, struct ethtool_stats *stats, -@@ -1233,13 +1241,14 @@ static void ocelot_port_get_ethtool_stat +@@ -1239,13 +1247,14 @@ static void ocelot_port_get_ethtool_stat ocelot_get_ethtool_stats(ocelot, port, data); } @@ -246,7 +246,7 @@ Signed-off-by: David S. Miller static int ocelot_port_get_sset_count(struct net_device *dev, int sset) { -@@ -1250,8 +1259,8 @@ static int ocelot_port_get_sset_count(st +@@ -1256,8 +1265,8 @@ static int ocelot_port_get_sset_count(st return ocelot_get_sset_count(ocelot, port, sset); } @@ -257,7 +257,7 @@ Signed-off-by: David S. Miller { info->phc_index = ocelot->ptp_clock ? ptp_clock_index(ocelot->ptp_clock) : -1; -@@ -1270,6 +1279,7 @@ static int ocelot_get_ts_info(struct oce +@@ -1273,6 +1282,7 @@ static int ocelot_get_ts_info(struct oce return 0; } @@ -265,7 +265,7 @@ Signed-off-by: David S. Miller static int ocelot_port_get_ts_info(struct net_device *dev, struct ethtool_ts_info *info) -@@ -1293,8 +1303,7 @@ static const struct ethtool_ops ocelot_e +@@ -1296,8 +1306,7 @@ static const struct ethtool_ops ocelot_e .get_ts_info = ocelot_port_get_ts_info, }; @@ -275,7 +275,7 @@ Signed-off-by: David S. Miller { u32 port_cfg; int p, i; -@@ -1355,6 +1364,7 @@ static void ocelot_bridge_stp_state_set( +@@ -1358,6 +1367,7 @@ static void ocelot_bridge_stp_state_set( } } } @@ -283,7 +283,7 @@ Signed-off-by: David S. Miller static void ocelot_port_attr_stp_state_set(struct ocelot *ocelot, int port, struct switchdev_trans *trans, -@@ -1366,11 +1376,12 @@ static void ocelot_port_attr_stp_state_s +@@ -1369,11 +1379,12 @@ static void ocelot_port_attr_stp_state_s ocelot_bridge_stp_state_set(ocelot, port, state); } @@ -297,7 +297,7 @@ Signed-off-by: David S. Miller static void ocelot_port_attr_ageing_set(struct ocelot *ocelot, int port, unsigned long ageing_clock_t) -@@ -1601,8 +1612,8 @@ static int ocelot_port_obj_del(struct ne +@@ -1604,8 +1615,8 @@ static int ocelot_port_obj_del(struct ne return ret; } @@ -308,7 +308,7 @@ Signed-off-by: David S. Miller { if (!ocelot->bridge_mask) { ocelot->hw_bridge_dev = bridge; -@@ -1617,9 +1628,10 @@ static int ocelot_port_bridge_join(struc +@@ -1620,9 +1631,10 @@ static int ocelot_port_bridge_join(struc return 0; } @@ -321,7 +321,7 @@ Signed-off-by: David S. Miller { ocelot->bridge_mask &= ~BIT(port); -@@ -1630,6 +1642,7 @@ static int ocelot_port_bridge_leave(stru +@@ -1633,6 +1645,7 @@ static int ocelot_port_bridge_leave(stru ocelot_port_set_pvid(ocelot, port, 0); return ocelot_port_set_native_vlan(ocelot, port, 0); } @@ -329,7 +329,7 @@ Signed-off-by: David S. Miller static void ocelot_set_aggr_pgids(struct ocelot *ocelot) { -@@ -2118,7 +2131,7 @@ static void ocelot_port_set_mtu(struct o +@@ -2121,7 +2134,7 @@ static void ocelot_port_set_mtu(struct o ocelot_write(ocelot, ocelot_wm_enc(atop_wm), SYS_ATOP_TOT_CFG); } @@ -338,7 +338,7 @@ Signed-off-by: David S. Miller { struct ocelot_port *ocelot_port = ocelot->ports[port]; -@@ -2165,6 +2178,7 @@ static void ocelot_init_port(struct ocel +@@ -2168,6 +2181,7 @@ static void ocelot_init_port(struct ocel /* Enable vcap lookups */ ocelot_vcap_enable(ocelot, port); } diff --git a/target/linux/layerscape/patches-5.4/701-net-0265-net-mscc-ocelot-export-ocelot_hwstamp_get-set-functi.patch b/target/linux/layerscape/patches-5.4/701-net-0265-net-mscc-ocelot-export-ocelot_hwstamp_get-set-functi.patch index d6b4e2bc1..469eea25d 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0265-net-mscc-ocelot-export-ocelot_hwstamp_get-set-functi.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0265-net-mscc-ocelot-export-ocelot_hwstamp_get-set-functi.patch @@ -36,7 +36,7 @@ Signed-off-by: David S. Miller { struct ocelot_port *ocelot_port = ocelot->ports[port]; struct hwtstamp_config cfg; -@@ -1114,6 +1113,7 @@ static int ocelot_hwstamp_set(struct oce +@@ -1120,6 +1119,7 @@ static int ocelot_hwstamp_set(struct oce return copy_to_user(ifr->ifr_data, &cfg, sizeof(cfg)) ? -EFAULT : 0; } diff --git a/target/linux/layerscape/patches-5.4/701-net-0271-net-mscc-ocelot-use-skb-queue-instead-of-skbs-list.patch b/target/linux/layerscape/patches-5.4/701-net-0271-net-mscc-ocelot-use-skb-queue-instead-of-skbs-list.patch index 4ed7c2677..2163c57ac 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0271-net-mscc-ocelot-use-skb-queue-instead-of-skbs-list.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0271-net-mscc-ocelot-use-skb-queue-instead-of-skbs-list.patch @@ -96,7 +96,7 @@ Signed-off-by: David S. Miller } } EXPORT_SYMBOL(ocelot_get_txtstamp); -@@ -2205,7 +2196,7 @@ void ocelot_init_port(struct ocelot *oce +@@ -2208,7 +2199,7 @@ void ocelot_init_port(struct ocelot *oce { struct ocelot_port *ocelot_port = ocelot->ports[port]; @@ -105,7 +105,7 @@ Signed-off-by: David S. Miller /* Basic L2 initialization */ -@@ -2490,9 +2481,7 @@ EXPORT_SYMBOL(ocelot_init); +@@ -2493,9 +2484,7 @@ EXPORT_SYMBOL(ocelot_init); void ocelot_deinit(struct ocelot *ocelot) { @@ -115,7 +115,7 @@ Signed-off-by: David S. Miller int i; cancel_delayed_work(&ocelot->stats_work); -@@ -2504,14 +2493,7 @@ void ocelot_deinit(struct ocelot *ocelot +@@ -2507,14 +2496,7 @@ void ocelot_deinit(struct ocelot *ocelot for (i = 0; i < ocelot->num_phys_ports; i++) { port = ocelot->ports[i]; diff --git a/target/linux/layerscape/patches-5.4/701-net-0272-net-mscc-ocelot-tsn-configuration-support.patch b/target/linux/layerscape/patches-5.4/701-net-0272-net-mscc-ocelot-tsn-configuration-support.patch index 953b479a2..2bd7dfbfc 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0272-net-mscc-ocelot-tsn-configuration-support.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0272-net-mscc-ocelot-tsn-configuration-support.patch @@ -41,7 +41,7 @@ Signed-off-by: Xiaoliang Yang ocelot_write_rix(ocelot, val, ANA_PGID_PGID, i); __dev_mc_sync(dev, ocelot_mc_sync, ocelot_mc_unsync); -@@ -2407,10 +2407,11 @@ int ocelot_init(struct ocelot *ocelot) +@@ -2410,10 +2410,11 @@ int ocelot_init(struct ocelot *ocelot) SYS_FRM_AGING_MAX_AGE(307692), SYS_FRM_AGING); /* Setup flooding PGIDs */ diff --git a/target/linux/layerscape/patches-5.4/701-net-0341-LF-368-net-mscc-ocelot-add-VCAP-IS2-rule-to-trap-PTP.patch b/target/linux/layerscape/patches-5.4/701-net-0341-LF-368-net-mscc-ocelot-add-VCAP-IS2-rule-to-trap-PTP.patch index 817d449e0..18754172a 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0341-LF-368-net-mscc-ocelot-add-VCAP-IS2-rule-to-trap-PTP.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0341-LF-368-net-mscc-ocelot-add-VCAP-IS2-rule-to-trap-PTP.patch @@ -14,7 +14,7 @@ Signed-off-by: Yangbo Lu --- a/drivers/net/ethernet/mscc/ocelot.c +++ b/drivers/net/ethernet/mscc/ocelot.c -@@ -2337,6 +2337,20 @@ void ocelot_set_cpu_port(struct ocelot * +@@ -2340,6 +2340,20 @@ void ocelot_set_cpu_port(struct ocelot * } EXPORT_SYMBOL(ocelot_set_cpu_port); @@ -35,7 +35,7 @@ Signed-off-by: Yangbo Lu int ocelot_init(struct ocelot *ocelot) { char queue_name[32]; -@@ -2474,6 +2488,13 @@ int ocelot_init(struct ocelot *ocelot) +@@ -2477,6 +2491,13 @@ int ocelot_init(struct ocelot *ocelot) "Timestamp initialization failed\n"); return ret; } @@ -49,7 +49,7 @@ Signed-off-by: Yangbo Lu } return 0; -@@ -2488,6 +2509,8 @@ void ocelot_deinit(struct ocelot *ocelot +@@ -2491,6 +2512,8 @@ void ocelot_deinit(struct ocelot *ocelot cancel_delayed_work(&ocelot->stats_work); destroy_workqueue(ocelot->stats_queue); mutex_destroy(&ocelot->stats_lock); diff --git a/target/linux/layerscape/patches-5.4/701-net-0367-net-mscc-ocelot-Workaround-to-allow-traffic-to-CPU-i.patch b/target/linux/layerscape/patches-5.4/701-net-0367-net-mscc-ocelot-Workaround-to-allow-traffic-to-CPU-i.patch index 8d10202ac..4e24fecfd 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0367-net-mscc-ocelot-Workaround-to-allow-traffic-to-CPU-i.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0367-net-mscc-ocelot-Workaround-to-allow-traffic-to-CPU-i.patch @@ -128,7 +128,7 @@ Signed-off-by: Vladimir Oltean --- a/drivers/net/ethernet/mscc/ocelot.c +++ b/drivers/net/ethernet/mscc/ocelot.c -@@ -2291,6 +2291,18 @@ void ocelot_set_cpu_port(struct ocelot * +@@ -2294,6 +2294,18 @@ void ocelot_set_cpu_port(struct ocelot * enum ocelot_tag_prefix injection, enum ocelot_tag_prefix extraction) { diff --git a/target/linux/layerscape/patches-5.4/701-net-0394-drivers-net-mscc_ocelot-don-t-flood-unicast-traffic-.patch b/target/linux/layerscape/patches-5.4/701-net-0394-drivers-net-mscc_ocelot-don-t-flood-unicast-traffic-.patch index a37cf66de..12a03b0d7 100644 --- a/target/linux/layerscape/patches-5.4/701-net-0394-drivers-net-mscc_ocelot-don-t-flood-unicast-traffic-.patch +++ b/target/linux/layerscape/patches-5.4/701-net-0394-drivers-net-mscc_ocelot-don-t-flood-unicast-traffic-.patch @@ -15,7 +15,7 @@ Signed-off-by: Alex Marginean --- a/drivers/net/ethernet/mscc/ocelot.c +++ b/drivers/net/ethernet/mscc/ocelot.c -@@ -1677,6 +1677,8 @@ static int ocelot_port_obj_del(struct ne +@@ -1680,6 +1680,8 @@ static int ocelot_port_obj_del(struct ne int ocelot_port_bridge_join(struct ocelot *ocelot, int port, struct net_device *bridge) { @@ -24,7 +24,7 @@ Signed-off-by: Alex Marginean if (!ocelot->bridge_mask) { ocelot->hw_bridge_dev = bridge; } else { -@@ -1688,6 +1690,12 @@ int ocelot_port_bridge_join(struct ocelo +@@ -1691,6 +1693,12 @@ int ocelot_port_bridge_join(struct ocelo ocelot->bridge_mask |= BIT(port); diff --git a/target/linux/layerscape/patches-5.4/820-usb-0015-MLK-17380-4-usb-host-xhci-add-EH-SINGLE_STEP_SET_FEA.patch b/target/linux/layerscape/patches-5.4/820-usb-0015-MLK-17380-4-usb-host-xhci-add-EH-SINGLE_STEP_SET_FEA.patch index 4f4381c9a..9dd1cf5ff 100644 --- a/target/linux/layerscape/patches-5.4/820-usb-0015-MLK-17380-4-usb-host-xhci-add-EH-SINGLE_STEP_SET_FEA.patch +++ b/target/linux/layerscape/patches-5.4/820-usb-0015-MLK-17380-4-usb-host-xhci-add-EH-SINGLE_STEP_SET_FEA.patch @@ -24,7 +24,7 @@ Signed-off-by: Peter Chen --- a/drivers/usb/host/xhci-hub.c +++ b/drivers/usb/host/xhci-hub.c -@@ -1422,6 +1422,15 @@ int xhci_hub_control(struct usb_hcd *hcd +@@ -1421,6 +1421,15 @@ int xhci_hub_control(struct usb_hcd *hcd /* 4.19.6 Port Test Modes (USB2 Test Mode) */ if (hcd->speed != HCD_USB2) goto error; @@ -42,7 +42,7 @@ Signed-off-by: Peter Chen retval = xhci_enter_test_mode(xhci, test_mode, wIndex, --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -3636,6 +3636,129 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * +@@ -3630,6 +3630,129 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * return 0; } @@ -174,7 +174,7 @@ Signed-off-by: Peter Chen * bursts that are required to move all packets in this TD. Only SuperSpeed --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -5393,6 +5393,7 @@ static const struct hc_driver xhci_hc_dr +@@ -5389,6 +5389,7 @@ static const struct hc_driver xhci_hc_dr .disable_usb3_lpm_timeout = xhci_disable_usb3_lpm_timeout, .find_raw_port_number = xhci_find_raw_port_number, .clear_tt_buffer_complete = xhci_clear_tt_buffer_complete, diff --git a/target/linux/layerscape/patches-5.4/820-usb-0017-MLK-19153-2-usb-host-xhci-do-not-return-error-status.patch b/target/linux/layerscape/patches-5.4/820-usb-0017-MLK-19153-2-usb-host-xhci-do-not-return-error-status.patch index effe5997c..e5394cc6d 100644 --- a/target/linux/layerscape/patches-5.4/820-usb-0017-MLK-19153-2-usb-host-xhci-do-not-return-error-status.patch +++ b/target/linux/layerscape/patches-5.4/820-usb-0017-MLK-19153-2-usb-host-xhci-do-not-return-error-status.patch @@ -22,7 +22,7 @@ Signed-off-by: Peter Chen --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -2103,12 +2103,9 @@ static int process_ctrl_td(struct xhci_h +@@ -2097,12 +2097,9 @@ static int process_ctrl_td(struct xhci_h switch (trb_comp_code) { case COMP_SUCCESS: diff --git a/target/linux/layerscape/patches-5.4/820-usb-0018-MLK-18794-1-usb-host-xhci-add-.bus_suspend-override.patch b/target/linux/layerscape/patches-5.4/820-usb-0018-MLK-18794-1-usb-host-xhci-add-.bus_suspend-override.patch index 594756351..f808b5b55 100644 --- a/target/linux/layerscape/patches-5.4/820-usb-0018-MLK-18794-1-usb-host-xhci-add-.bus_suspend-override.patch +++ b/target/linux/layerscape/patches-5.4/820-usb-0018-MLK-18794-1-usb-host-xhci-add-.bus_suspend-override.patch @@ -24,7 +24,7 @@ Signed-off-by: Peter Chen --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -5414,6 +5414,8 @@ void xhci_init_driver(struct hc_driver * +@@ -5410,6 +5410,8 @@ void xhci_init_driver(struct hc_driver * drv->check_bandwidth = over->check_bandwidth; if (over->reset_bandwidth) drv->reset_bandwidth = over->reset_bandwidth; diff --git a/target/linux/layerscape/patches-5.4/820-usb-0019-MLK-9829-usb-core-print-suggested-message-if-failed-.patch b/target/linux/layerscape/patches-5.4/820-usb-0019-MLK-9829-usb-core-print-suggested-message-if-failed-.patch index 611119726..e02f08579 100644 --- a/target/linux/layerscape/patches-5.4/820-usb-0019-MLK-9829-usb-core-print-suggested-message-if-failed-.patch +++ b/target/linux/layerscape/patches-5.4/820-usb-0019-MLK-9829-usb-core-print-suggested-message-if-failed-.patch @@ -20,7 +20,7 @@ Signed-off-by: Li Jun --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c -@@ -4777,7 +4777,8 @@ hub_port_init(struct usb_hub *hub, struc +@@ -4779,7 +4779,8 @@ hub_port_init(struct usb_hub *hub, struc } if (r) { if (r != -ENODEV) diff --git a/target/linux/layerscape/patches-5.4/820-usb-0021-MLK-22099-usb-host-xhci-do-warm-reset-for-link-state.patch b/target/linux/layerscape/patches-5.4/820-usb-0021-MLK-22099-usb-host-xhci-do-warm-reset-for-link-state.patch index eb5dcb559..26c6c007f 100644 --- a/target/linux/layerscape/patches-5.4/820-usb-0021-MLK-22099-usb-host-xhci-do-warm-reset-for-link-state.patch +++ b/target/linux/layerscape/patches-5.4/820-usb-0021-MLK-22099-usb-host-xhci-do-warm-reset-for-link-state.patch @@ -16,7 +16,7 @@ Signed-off-by: Li Jun --- a/drivers/usb/host/xhci-hub.c +++ b/drivers/usb/host/xhci-hub.c -@@ -1740,7 +1740,8 @@ static bool xhci_port_missing_cas_quirk( +@@ -1739,7 +1739,8 @@ static bool xhci_port_missing_cas_quirk( return false; if (((portsc & PORT_PLS_MASK) != XDEV_POLLING) &&