From db345220b485ce3e20642bd1fbf9b65d5f1cd4f1 Mon Sep 17 00:00:00 2001 From: Koen Vandeputte Date: Thu, 21 Nov 2019 14:06:30 +0100 Subject: [PATCH] kernel: bump 4.14 to 4.14.155 Refreshed all patches. Altered patches: - 707-dpaa-ethernet-support-layerscape.patch Remove upstreamed: - 034-v4.20-MIPS-BCM47XX-Enable-USB-power-on-Netgear-WNDR3400v3.patch - 001-4.21-01-BCM63XX-fix-switch-core-reset-on-BCM6368.patch - 073-qcom-ipq4019-fix-cpu0-s-qcom-saw2-reg-value.patch Compile-tested on: cns3xxx Runtime-tested on: cns3xxx Signed-off-by: Koen Vandeputte --- include/kernel-version.mk | 4 +- ...est-s-w-csum-check-on-VLAN-tagged-pa.patch | 2 +- ...n78xx-Add-support-for-VLAN-filtering.patch | 2 +- ...x-Add-support-for-VLAN-tag-stripping.patch | 8 +- ...n78xx-Reduce-s-w-csum-check-on-VLANs.patch | 2 +- ...Disable-TCP-Segmentation-Offload-TSO.patch | 2 +- ...e-link-events-to-minimize-poll-storm.patch | 2 +- ...able-USB-power-on-Netgear-WNDR3400v3.patch | 48 ----------- ...63xx_enet-do-not-rely-on-probe-order.patch | 4 +- ...-managed-functions-for-clock-ioremap.patch | 16 ++-- ...net-drop-unneeded-NULL-phy_clk-check.patch | 4 +- ...enet-just-use-enet-as-the-clock-name.patch | 4 +- ...-platform-data-for-dma-channel-numbe.patch | 4 +- ...x_enet-remove-pointless-mac_id-check.patch | 2 +- ...-platform-device-id-directly-for-mii.patch | 4 +- ...3XX-fix-switch-core-reset-on-BCM6368.patch | 26 ------ ...402_bcm63xx_enet_vlan_incoming_fixed.patch | 2 +- ...-move-phy_-dis-connect-into-probe-re.patch | 22 ++--- ...enable-rgmii-clock-on-external-ports.patch | 2 +- .../423-bcm63xx_enet_add_b53_support.patch | 12 +-- ...4-bcm63xx_enet_no_request_mem_region.patch | 2 +- .../804-bcm63xx_enet_63268_rgmii_ports.patch | 2 +- ...q4019-fix-cpu0-s-qcom-saw2-reg-value.patch | 33 -------- ...ow-to-set-regulator-without-opp_list.patch | 2 +- ...rt-adjusting-OPP-voltages-at-runtime.patch | 2 +- ...per-to-get-an-opp-regulator-for-devi.patch | 2 +- ...e-voltage-tolerance-when-adjusting-t.patch | 4 +- ...707-dpaa-ethernet-support-layerscape.patch | 82 ++++++++++--------- ...-ports-count-from-xhci-in-xhci_mtk_s.patch | 2 +- 29 files changed, 99 insertions(+), 204 deletions(-) delete mode 100644 target/linux/brcm47xx/patches-4.14/034-v4.20-MIPS-BCM47XX-Enable-USB-power-on-Netgear-WNDR3400v3.patch delete mode 100644 target/linux/brcm63xx/patches-4.14/001-4.21-01-BCM63XX-fix-switch-core-reset-on-BCM6368.patch delete mode 100644 target/linux/ipq40xx/patches-4.14/073-qcom-ipq4019-fix-cpu0-s-qcom-saw2-reg-value.patch diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 7ce90474d0..d9a909028e 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -6,9 +6,9 @@ ifdef CONFIG_TESTING_KERNEL KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER) endif -LINUX_VERSION-4.14 = .154 +LINUX_VERSION-4.14 = .155 -LINUX_KERNEL_HASH-4.14.154 = 86de4a24379a78d67fc08b2e249ccf7b689eb6c37fbe329fc3dfbe8ab4300603 +LINUX_KERNEL_HASH-4.14.155 = 77d61979556b81c95b81452fa10e1fe9368cbe2f9f80a13e4669b0464722e481 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/brcm2708/patches-4.14/950-0269-net-lan78xx-Request-s-w-csum-check-on-VLAN-tagged-pa.patch b/target/linux/brcm2708/patches-4.14/950-0269-net-lan78xx-Request-s-w-csum-check-on-VLAN-tagged-pa.patch index db9a1f5a33..be90dda217 100644 --- a/target/linux/brcm2708/patches-4.14/950-0269-net-lan78xx-Request-s-w-csum-check-on-VLAN-tagged-pa.patch +++ b/target/linux/brcm2708/patches-4.14/950-0269-net-lan78xx-Request-s-w-csum-check-on-VLAN-tagged-pa.patch @@ -24,7 +24,7 @@ Signed-off-by: Dave Stevenson --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c -@@ -2956,8 +2956,12 @@ static void lan78xx_rx_csum_offload(stru +@@ -2961,8 +2961,12 @@ static void lan78xx_rx_csum_offload(stru struct sk_buff *skb, u32 rx_cmd_a, u32 rx_cmd_b) { diff --git a/target/linux/brcm2708/patches-4.14/950-0270-net-lan78xx-Add-support-for-VLAN-filtering.patch b/target/linux/brcm2708/patches-4.14/950-0270-net-lan78xx-Add-support-for-VLAN-filtering.patch index 89ecbedfa3..f3bc62583d 100644 --- a/target/linux/brcm2708/patches-4.14/950-0270-net-lan78xx-Add-support-for-VLAN-filtering.patch +++ b/target/linux/brcm2708/patches-4.14/950-0270-net-lan78xx-Add-support-for-VLAN-filtering.patch @@ -24,7 +24,7 @@ Signed-off-by: Dave Stevenson pdata->rfe_ctl |= RFE_CTL_VLAN_FILTER_; else pdata->rfe_ctl &= ~RFE_CTL_VLAN_FILTER_; -@@ -2892,6 +2892,9 @@ static int lan78xx_bind(struct lan78xx_n +@@ -2897,6 +2897,9 @@ static int lan78xx_bind(struct lan78xx_n if (DEFAULT_TSO_CSUM_ENABLE) dev->net->features |= NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_SG; diff --git a/target/linux/brcm2708/patches-4.14/950-0271-net-lan78xx-Add-support-for-VLAN-tag-stripping.patch b/target/linux/brcm2708/patches-4.14/950-0271-net-lan78xx-Add-support-for-VLAN-tag-stripping.patch index 0ae1bf5e3e..6ece07c9bb 100644 --- a/target/linux/brcm2708/patches-4.14/950-0271-net-lan78xx-Add-support-for-VLAN-tag-stripping.patch +++ b/target/linux/brcm2708/patches-4.14/950-0271-net-lan78xx-Add-support-for-VLAN-tag-stripping.patch @@ -36,7 +36,7 @@ Signed-off-by: Dave Stevenson if (features & NETIF_F_HW_VLAN_CTAG_FILTER) pdata->rfe_ctl |= RFE_CTL_VLAN_FILTER_; else -@@ -2892,6 +2898,9 @@ static int lan78xx_bind(struct lan78xx_n +@@ -2897,6 +2903,9 @@ static int lan78xx_bind(struct lan78xx_n if (DEFAULT_TSO_CSUM_ENABLE) dev->net->features |= NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_SG; @@ -46,7 +46,7 @@ Signed-off-by: Dave Stevenson if (DEFAULT_VLAN_FILTER_ENABLE) dev->net->features |= NETIF_F_HW_VLAN_CTAG_FILTER; -@@ -2972,6 +2981,16 @@ static void lan78xx_rx_csum_offload(stru +@@ -2977,6 +2986,16 @@ static void lan78xx_rx_csum_offload(stru } } @@ -63,7 +63,7 @@ Signed-off-by: Dave Stevenson static void lan78xx_skb_return(struct lan78xx_net *dev, struct sk_buff *skb) { int status; -@@ -3036,6 +3055,8 @@ static int lan78xx_rx(struct lan78xx_net +@@ -3041,6 +3060,8 @@ static int lan78xx_rx(struct lan78xx_net if (skb->len == size) { lan78xx_rx_csum_offload(dev, skb, rx_cmd_a, rx_cmd_b); @@ -72,7 +72,7 @@ Signed-off-by: Dave Stevenson skb_trim(skb, skb->len - 4); /* remove fcs */ skb->truesize = size + sizeof(struct sk_buff); -@@ -3054,6 +3075,7 @@ static int lan78xx_rx(struct lan78xx_net +@@ -3059,6 +3080,7 @@ static int lan78xx_rx(struct lan78xx_net skb_set_tail_pointer(skb2, size); lan78xx_rx_csum_offload(dev, skb2, rx_cmd_a, rx_cmd_b); diff --git a/target/linux/brcm2708/patches-4.14/950-0272-net-lan78xx-Reduce-s-w-csum-check-on-VLANs.patch b/target/linux/brcm2708/patches-4.14/950-0272-net-lan78xx-Reduce-s-w-csum-check-on-VLANs.patch index 099f702f00..4ec19e2b42 100644 --- a/target/linux/brcm2708/patches-4.14/950-0272-net-lan78xx-Reduce-s-w-csum-check-on-VLANs.patch +++ b/target/linux/brcm2708/patches-4.14/950-0272-net-lan78xx-Reduce-s-w-csum-check-on-VLANs.patch @@ -16,7 +16,7 @@ Signed-off-by: Dave Stevenson --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c -@@ -2968,12 +2968,13 @@ static void lan78xx_rx_csum_offload(stru +@@ -2973,12 +2973,13 @@ static void lan78xx_rx_csum_offload(stru struct sk_buff *skb, u32 rx_cmd_a, u32 rx_cmd_b) { diff --git a/target/linux/brcm2708/patches-4.14/950-0314-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch b/target/linux/brcm2708/patches-4.14/950-0314-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch index 8bc1d5a951..0f381ec65e 100644 --- a/target/linux/brcm2708/patches-4.14/950-0314-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch +++ b/target/linux/brcm2708/patches-4.14/950-0314-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch @@ -37,7 +37,7 @@ Signed-off-by: Dave Stevenson static int lan78xx_read_reg(struct lan78xx_net *dev, u32 index, u32 *data) { u32 *buf = kmalloc(sizeof(u32), GFP_KERNEL); -@@ -2895,8 +2904,14 @@ static int lan78xx_bind(struct lan78xx_n +@@ -2900,8 +2909,14 @@ static int lan78xx_bind(struct lan78xx_n if (DEFAULT_RX_CSUM_ENABLE) dev->net->features |= NETIF_F_RXCSUM; diff --git a/target/linux/brcm2708/patches-4.14/950-0454-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch b/target/linux/brcm2708/patches-4.14/950-0454-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch index 08972f121f..3cba038943 100644 --- a/target/linux/brcm2708/patches-4.14/950-0454-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch +++ b/target/linux/brcm2708/patches-4.14/950-0454-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch @@ -28,7 +28,7 @@ See: https://github.com/raspberrypi/linux/issues/2447 static int lan78xx_read_reg(struct lan78xx_net *dev, u32 index, u32 *data) { u32 *buf = kmalloc(sizeof(u32), GFP_KERNEL); -@@ -3711,7 +3716,12 @@ static int lan78xx_probe(struct usb_inte +@@ -3716,7 +3721,12 @@ static int lan78xx_probe(struct usb_inte dev->pipe_intr = usb_rcvintpipe(dev->udev, dev->ep_intr->desc.bEndpointAddress & USB_ENDPOINT_NUMBER_MASK); diff --git a/target/linux/brcm47xx/patches-4.14/034-v4.20-MIPS-BCM47XX-Enable-USB-power-on-Netgear-WNDR3400v3.patch b/target/linux/brcm47xx/patches-4.14/034-v4.20-MIPS-BCM47XX-Enable-USB-power-on-Netgear-WNDR3400v3.patch deleted file mode 100644 index c824e28317..0000000000 --- a/target/linux/brcm47xx/patches-4.14/034-v4.20-MIPS-BCM47XX-Enable-USB-power-on-Netgear-WNDR3400v3.patch +++ /dev/null @@ -1,48 +0,0 @@ -From feef7918667b84f9d5653c501542dd8d84ae32af Mon Sep 17 00:00:00 2001 -From: Tuomas Tynkkynen -Date: Sun, 19 Aug 2018 22:20:23 +0300 -Subject: [PATCH] MIPS: BCM47XX: Enable USB power on Netgear WNDR3400v3 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Setting GPIO 21 high seems to be required to enable power to USB ports -on the WNDR3400v3. As there is already similar code for WNR3500L, -make the existing USB power GPIO code generic and use that. - -Signed-off-by: Tuomas Tynkkynen -Acked-by: Hauke Mehrtens -Signed-off-by: Paul Burton -Patchwork: https://patchwork.linux-mips.org/patch/20259/ -Cc: Rafał Miłecki -Cc: linux-mips@linux-mips.org -Cc: linux-kernel@vger.kernel.org ---- - arch/mips/bcm47xx/workarounds.c | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - ---- a/arch/mips/bcm47xx/workarounds.c -+++ b/arch/mips/bcm47xx/workarounds.c -@@ -5,9 +5,8 @@ - #include - #include - --static void __init bcm47xx_workarounds_netgear_wnr3500l(void) -+static void __init bcm47xx_workarounds_enable_usb_power(int usb_power) - { -- const int usb_power = 12; - int err; - - err = gpio_request_one(usb_power, GPIOF_OUT_INIT_HIGH, "usb_power"); -@@ -23,7 +22,10 @@ void __init bcm47xx_workarounds(void) - - switch (board) { - case BCM47XX_BOARD_NETGEAR_WNR3500L: -- bcm47xx_workarounds_netgear_wnr3500l(); -+ bcm47xx_workarounds_enable_usb_power(12); -+ break; -+ case BCM47XX_BOARD_NETGEAR_WNDR3400_V3: -+ bcm47xx_workarounds_enable_usb_power(21); - break; - default: - /* No workaround(s) needed */ diff --git a/target/linux/brcm63xx/patches-4.14/001-4.15-10-bcm63xx_enet-do-not-rely-on-probe-order.patch b/target/linux/brcm63xx/patches-4.14/001-4.15-10-bcm63xx_enet-do-not-rely-on-probe-order.patch index fd3ced47b0..b339580c48 100644 --- a/target/linux/brcm63xx/patches-4.14/001-4.15-10-bcm63xx_enet-do-not-rely-on-probe-order.patch +++ b/target/linux/brcm63xx/patches-4.14/001-4.15-10-bcm63xx_enet-do-not-rely-on-probe-order.patch @@ -14,7 +14,7 @@ Signed-off-by: Jonas Gorski --- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c +++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c -@@ -1722,10 +1722,8 @@ static int bcm_enet_probe(struct platfor +@@ -1723,10 +1723,8 @@ static int bcm_enet_probe(struct platfor const char *clk_name; int i, ret; @@ -26,7 +26,7 @@ Signed-off-by: Jonas Gorski res_irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0); res_irq_rx = platform_get_resource(pdev, IORESOURCE_IRQ, 1); -@@ -2700,11 +2698,8 @@ static int bcm_enetsw_probe(struct platf +@@ -2701,11 +2699,8 @@ static int bcm_enetsw_probe(struct platf struct resource *res_mem; int ret, irq_rx, irq_tx; diff --git a/target/linux/brcm63xx/patches-4.14/001-4.15-11-bcm63xx_enet-use-managed-functions-for-clock-ioremap.patch b/target/linux/brcm63xx/patches-4.14/001-4.15-11-bcm63xx_enet-use-managed-functions-for-clock-ioremap.patch index f007750b3c..cf0971c911 100644 --- a/target/linux/brcm63xx/patches-4.14/001-4.15-11-bcm63xx_enet-use-managed-functions-for-clock-ioremap.patch +++ b/target/linux/brcm63xx/patches-4.14/001-4.15-11-bcm63xx_enet-use-managed-functions-for-clock-ioremap.patch @@ -13,7 +13,7 @@ Signed-off-by: Jonas Gorski --- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c +++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c -@@ -1767,14 +1767,14 @@ static int bcm_enet_probe(struct platfor +@@ -1768,14 +1768,14 @@ static int bcm_enet_probe(struct platfor clk_name = "enet1"; } @@ -30,7 +30,7 @@ Signed-off-by: Jonas Gorski /* initialize default and fetch platform data */ priv->rx_ring_size = BCMENET_DEF_RX_DESC; -@@ -1802,7 +1802,7 @@ static int bcm_enet_probe(struct platfor +@@ -1803,7 +1803,7 @@ static int bcm_enet_probe(struct platfor if (priv->mac_id == 0 && priv->has_phy && !priv->use_external_mii) { /* using internal PHY, enable clock */ @@ -39,7 +39,7 @@ Signed-off-by: Jonas Gorski if (IS_ERR(priv->phy_clk)) { ret = PTR_ERR(priv->phy_clk); priv->phy_clk = NULL; -@@ -1810,7 +1810,7 @@ static int bcm_enet_probe(struct platfor +@@ -1811,7 +1811,7 @@ static int bcm_enet_probe(struct platfor } ret = clk_prepare_enable(priv->phy_clk); if (ret) @@ -48,7 +48,7 @@ Signed-off-by: Jonas Gorski } /* do minimal hardware init to be able to probe mii bus */ -@@ -1907,14 +1907,8 @@ out_uninit_hw: +@@ -1908,14 +1908,8 @@ out_uninit_hw: if (priv->phy_clk) clk_disable_unprepare(priv->phy_clk); @@ -63,7 +63,7 @@ Signed-off-by: Jonas Gorski out: free_netdev(dev); return ret; -@@ -1950,12 +1944,10 @@ static int bcm_enet_remove(struct platfo +@@ -1951,12 +1945,10 @@ static int bcm_enet_remove(struct platfo } /* disable hw block clocks */ @@ -78,7 +78,7 @@ Signed-off-by: Jonas Gorski free_netdev(dev); return 0; -@@ -2738,26 +2730,20 @@ static int bcm_enetsw_probe(struct platf +@@ -2739,26 +2731,20 @@ static int bcm_enetsw_probe(struct platf if (ret) goto out; @@ -111,7 +111,7 @@ Signed-off-by: Jonas Gorski priv->rx_chan = 0; priv->tx_chan = 1; -@@ -2789,15 +2775,6 @@ static int bcm_enetsw_probe(struct platf +@@ -2790,15 +2776,6 @@ static int bcm_enetsw_probe(struct platf out_disable_clk: clk_disable_unprepare(priv->mac_clk); @@ -127,7 +127,7 @@ Signed-off-by: Jonas Gorski out: free_netdev(dev); return ret; -@@ -2809,20 +2786,13 @@ static int bcm_enetsw_remove(struct plat +@@ -2810,20 +2787,13 @@ static int bcm_enetsw_remove(struct plat { struct bcm_enet_priv *priv; struct net_device *dev; diff --git a/target/linux/brcm63xx/patches-4.14/001-4.15-12-bcm63xx_enet-drop-unneeded-NULL-phy_clk-check.patch b/target/linux/brcm63xx/patches-4.14/001-4.15-12-bcm63xx_enet-drop-unneeded-NULL-phy_clk-check.patch index d2784386a2..34fdd5c41e 100644 --- a/target/linux/brcm63xx/patches-4.14/001-4.15-12-bcm63xx_enet-drop-unneeded-NULL-phy_clk-check.patch +++ b/target/linux/brcm63xx/patches-4.14/001-4.15-12-bcm63xx_enet-drop-unneeded-NULL-phy_clk-check.patch @@ -13,7 +13,7 @@ Signed-off-by: Jonas Gorski --- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c +++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c -@@ -1904,8 +1904,7 @@ out_free_mdio: +@@ -1905,8 +1905,7 @@ out_free_mdio: out_uninit_hw: /* turn off mdc clock */ enet_writel(priv, 0, ENET_MIISC_REG); @@ -23,7 +23,7 @@ Signed-off-by: Jonas Gorski out_disable_clk_mac: clk_disable_unprepare(priv->mac_clk); -@@ -1944,9 +1943,7 @@ static int bcm_enet_remove(struct platfo +@@ -1945,9 +1944,7 @@ static int bcm_enet_remove(struct platfo } /* disable hw block clocks */ diff --git a/target/linux/brcm63xx/patches-4.14/001-4.16-01-bcm63xx_enet-just-use-enet-as-the-clock-name.patch b/target/linux/brcm63xx/patches-4.14/001-4.16-01-bcm63xx_enet-just-use-enet-as-the-clock-name.patch index b3405e0eb2..c489001332 100644 --- a/target/linux/brcm63xx/patches-4.14/001-4.16-01-bcm63xx_enet-just-use-enet-as-the-clock-name.patch +++ b/target/linux/brcm63xx/patches-4.14/001-4.16-01-bcm63xx_enet-just-use-enet-as-the-clock-name.patch @@ -13,7 +13,7 @@ Signed-off-by: Jonas Gorski --- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c +++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c -@@ -1719,7 +1719,6 @@ static int bcm_enet_probe(struct platfor +@@ -1720,7 +1720,6 @@ static int bcm_enet_probe(struct platfor struct bcm63xx_enet_platform_data *pd; struct resource *res_mem, *res_irq, *res_irq_rx, *res_irq_tx; struct mii_bus *bus; @@ -21,7 +21,7 @@ Signed-off-by: Jonas Gorski int i, ret; if (!bcm_enet_shared_base[0]) -@@ -1760,14 +1759,12 @@ static int bcm_enet_probe(struct platfor +@@ -1761,14 +1760,12 @@ static int bcm_enet_probe(struct platfor if (priv->mac_id == 0) { priv->rx_chan = 0; priv->tx_chan = 1; diff --git a/target/linux/brcm63xx/patches-4.14/001-4.16-02-bcm63xx_enet-use-platform-data-for-dma-channel-numbe.patch b/target/linux/brcm63xx/patches-4.14/001-4.16-02-bcm63xx_enet-use-platform-data-for-dma-channel-numbe.patch index 3a998e9309..f3ddd7445c 100644 --- a/target/linux/brcm63xx/patches-4.14/001-4.16-02-bcm63xx_enet-use-platform-data-for-dma-channel-numbe.patch +++ b/target/linux/brcm63xx/patches-4.14/001-4.16-02-bcm63xx_enet-use-platform-data-for-dma-channel-numbe.patch @@ -45,7 +45,7 @@ Signed-off-by: Jonas Gorski /* --- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c +++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c -@@ -1755,15 +1755,6 @@ static int bcm_enet_probe(struct platfor +@@ -1756,15 +1756,6 @@ static int bcm_enet_probe(struct platfor priv->irq_tx = res_irq_tx->start; priv->mac_id = pdev->id; @@ -61,7 +61,7 @@ Signed-off-by: Jonas Gorski priv->mac_clk = devm_clk_get(&pdev->dev, "enet"); if (IS_ERR(priv->mac_clk)) { ret = PTR_ERR(priv->mac_clk); -@@ -1795,6 +1786,8 @@ static int bcm_enet_probe(struct platfor +@@ -1796,6 +1787,8 @@ static int bcm_enet_probe(struct platfor priv->dma_chan_width = pd->dma_chan_width; priv->dma_has_sram = pd->dma_has_sram; priv->dma_desc_shift = pd->dma_desc_shift; diff --git a/target/linux/brcm63xx/patches-4.14/001-4.16-03-bcm63xx_enet-remove-pointless-mac_id-check.patch b/target/linux/brcm63xx/patches-4.14/001-4.16-03-bcm63xx_enet-remove-pointless-mac_id-check.patch index cead5c2269..a656e4f0ab 100644 --- a/target/linux/brcm63xx/patches-4.14/001-4.16-03-bcm63xx_enet-remove-pointless-mac_id-check.patch +++ b/target/linux/brcm63xx/patches-4.14/001-4.16-03-bcm63xx_enet-remove-pointless-mac_id-check.patch @@ -14,7 +14,7 @@ Signed-off-by: Jonas Gorski --- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c +++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c -@@ -1790,7 +1790,7 @@ static int bcm_enet_probe(struct platfor +@@ -1791,7 +1791,7 @@ static int bcm_enet_probe(struct platfor priv->tx_chan = pd->tx_chan; } diff --git a/target/linux/brcm63xx/patches-4.14/001-4.16-04-bcm63xx_enet-use-platform-device-id-directly-for-mii.patch b/target/linux/brcm63xx/patches-4.14/001-4.16-04-bcm63xx_enet-use-platform-device-id-directly-for-mii.patch index 200178b350..cab9e5a37a 100644 --- a/target/linux/brcm63xx/patches-4.14/001-4.16-04-bcm63xx_enet-use-platform-device-id-directly-for-mii.patch +++ b/target/linux/brcm63xx/patches-4.14/001-4.16-04-bcm63xx_enet-use-platform-device-id-directly-for-mii.patch @@ -15,7 +15,7 @@ Signed-off-by: Jonas Gorski --- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c +++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c -@@ -1753,7 +1753,6 @@ static int bcm_enet_probe(struct platfor +@@ -1754,7 +1754,6 @@ static int bcm_enet_probe(struct platfor dev->irq = priv->irq = res_irq->start; priv->irq_rx = res_irq_rx->start; priv->irq_tx = res_irq_tx->start; @@ -23,7 +23,7 @@ Signed-off-by: Jonas Gorski priv->mac_clk = devm_clk_get(&pdev->dev, "enet"); if (IS_ERR(priv->mac_clk)) { -@@ -1821,7 +1820,7 @@ static int bcm_enet_probe(struct platfor +@@ -1822,7 +1821,7 @@ static int bcm_enet_probe(struct platfor bus->priv = priv; bus->read = bcm_enet_mdio_read_phylib; bus->write = bcm_enet_mdio_write_phylib; diff --git a/target/linux/brcm63xx/patches-4.14/001-4.21-01-BCM63XX-fix-switch-core-reset-on-BCM6368.patch b/target/linux/brcm63xx/patches-4.14/001-4.21-01-BCM63XX-fix-switch-core-reset-on-BCM6368.patch deleted file mode 100644 index 3914865c89..0000000000 --- a/target/linux/brcm63xx/patches-4.14/001-4.21-01-BCM63XX-fix-switch-core-reset-on-BCM6368.patch +++ /dev/null @@ -1,26 +0,0 @@ -From f1af8bb8e0879a3c2d9679a7274c2774335e9876 Mon Sep 17 00:00:00 2001 -From: Jonas Gorski -Date: Wed, 14 Nov 2018 12:06:41 +0100 -Subject: [PATCH] MIPS: BCM63XX: fix switch core reset on BCM6368 - -The Ethernet Switch core mask was set to 0, causing the switch core to -be not reset on BCM6368 on boot. Provide the proper mask so the switch -core gets reset to a known good state. - -Fixes: 799faa626c71 ("MIPS: BCM63XX: add core reset helper") -Signed-off-by: Jonas Gorski ---- - arch/mips/bcm63xx/reset.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/arch/mips/bcm63xx/reset.c -+++ b/arch/mips/bcm63xx/reset.c -@@ -120,7 +120,7 @@ - #define BCM6368_RESET_DSL 0 - #define BCM6368_RESET_SAR SOFTRESET_6368_SAR_MASK - #define BCM6368_RESET_EPHY SOFTRESET_6368_EPHY_MASK --#define BCM6368_RESET_ENETSW 0 -+#define BCM6368_RESET_ENETSW SOFTRESET_6368_ENETSW_MASK - #define BCM6368_RESET_PCM SOFTRESET_6368_PCM_MASK - #define BCM6368_RESET_MPI SOFTRESET_6368_MPI_MASK - #define BCM6368_RESET_PCIE 0 diff --git a/target/linux/brcm63xx/patches-4.14/402_bcm63xx_enet_vlan_incoming_fixed.patch b/target/linux/brcm63xx/patches-4.14/402_bcm63xx_enet_vlan_incoming_fixed.patch index 6275306975..3604910d39 100644 --- a/target/linux/brcm63xx/patches-4.14/402_bcm63xx_enet_vlan_incoming_fixed.patch +++ b/target/linux/brcm63xx/patches-4.14/402_bcm63xx_enet_vlan_incoming_fixed.patch @@ -1,6 +1,6 @@ --- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c +++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c -@@ -1636,7 +1636,7 @@ static int bcm_enet_change_mtu(struct ne +@@ -1637,7 +1637,7 @@ static int bcm_enet_change_mtu(struct ne return -EBUSY; /* add ethernet header + vlan tag size */ diff --git a/target/linux/brcm63xx/patches-4.14/404-NET-bcm63xx_enet-move-phy_-dis-connect-into-probe-re.patch b/target/linux/brcm63xx/patches-4.14/404-NET-bcm63xx_enet-move-phy_-dis-connect-into-probe-re.patch index 13eecaf0ed..c9532e6cb4 100644 --- a/target/linux/brcm63xx/patches-4.14/404-NET-bcm63xx_enet-move-phy_-dis-connect-into-probe-re.patch +++ b/target/linux/brcm63xx/patches-4.14/404-NET-bcm63xx_enet-move-phy_-dis-connect-into-probe-re.patch @@ -15,7 +15,7 @@ Signed-off-by: Jonas Gorski --- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c +++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c -@@ -869,10 +869,8 @@ static int bcm_enet_open(struct net_devi +@@ -870,10 +870,8 @@ static int bcm_enet_open(struct net_devi struct bcm_enet_priv *priv; struct sockaddr addr; struct device *kdev; @@ -26,7 +26,7 @@ Signed-off-by: Jonas Gorski void *p; u32 val; -@@ -880,40 +878,10 @@ static int bcm_enet_open(struct net_devi +@@ -881,40 +879,10 @@ static int bcm_enet_open(struct net_devi kdev = &priv->pdev->dev; if (priv->has_phy) { @@ -68,7 +68,7 @@ Signed-off-by: Jonas Gorski } /* mask all interrupts and request them */ -@@ -923,7 +891,7 @@ static int bcm_enet_open(struct net_devi +@@ -924,7 +892,7 @@ static int bcm_enet_open(struct net_devi ret = request_irq(dev->irq, bcm_enet_isr_mac, 0, dev->name, dev); if (ret) @@ -77,7 +77,7 @@ Signed-off-by: Jonas Gorski ret = request_irq(priv->irq_rx, bcm_enet_isr_dma, 0, dev->name, dev); -@@ -1085,8 +1053,8 @@ static int bcm_enet_open(struct net_devi +@@ -1086,8 +1054,8 @@ static int bcm_enet_open(struct net_devi enet_dmac_writel(priv, priv->dma_chan_int_mask, ENETDMAC_IRMASK, priv->tx_chan); @@ -88,7 +88,7 @@ Signed-off-by: Jonas Gorski else bcm_enet_adjust_link(dev); -@@ -1127,10 +1095,6 @@ out_freeirq_rx: +@@ -1128,10 +1096,6 @@ out_freeirq_rx: out_freeirq: free_irq(dev->irq, dev); @@ -99,7 +99,7 @@ Signed-off-by: Jonas Gorski return ret; } -@@ -1235,10 +1199,6 @@ static int bcm_enet_stop(struct net_devi +@@ -1236,10 +1200,6 @@ static int bcm_enet_stop(struct net_devi free_irq(priv->irq_rx, dev); free_irq(dev->irq, dev); @@ -110,7 +110,7 @@ Signed-off-by: Jonas Gorski return 0; } -@@ -1804,14 +1764,49 @@ static int bcm_enet_probe(struct platfor +@@ -1805,14 +1765,49 @@ static int bcm_enet_probe(struct platfor /* do minimal hardware init to be able to probe mii bus */ bcm_enet_hw_preinit(priv); @@ -161,7 +161,7 @@ Signed-off-by: Jonas Gorski } bus = priv->mii_bus; -@@ -1835,6 +1830,35 @@ static int bcm_enet_probe(struct platfor +@@ -1836,6 +1831,35 @@ static int bcm_enet_probe(struct platfor dev_err(&pdev->dev, "unable to register mdio bus\n"); goto out_free_mdio; } @@ -197,7 +197,7 @@ Signed-off-by: Jonas Gorski } else { /* run platform code to initialize PHY device */ -@@ -1842,47 +1866,16 @@ static int bcm_enet_probe(struct platfor +@@ -1843,47 +1867,16 @@ static int bcm_enet_probe(struct platfor pd->mii_config(dev, 1, bcm_enet_mdio_read_mii, bcm_enet_mdio_write_mii)) { dev_err(&pdev->dev, "unable to configure mdio bus\n"); @@ -249,7 +249,7 @@ Signed-off-by: Jonas Gorski if (priv->mii_bus) mdiobus_unregister(priv->mii_bus); -@@ -1890,6 +1883,9 @@ out_free_mdio: +@@ -1891,6 +1884,9 @@ out_free_mdio: if (priv->mii_bus) mdiobus_free(priv->mii_bus); @@ -259,7 +259,7 @@ Signed-off-by: Jonas Gorski out_uninit_hw: /* turn off mdc clock */ enet_writel(priv, 0, ENET_MIISC_REG); -@@ -1920,6 +1916,7 @@ static int bcm_enet_remove(struct platfo +@@ -1921,6 +1917,7 @@ static int bcm_enet_remove(struct platfo enet_writel(priv, 0, ENET_MIISC_REG); if (priv->has_phy) { diff --git a/target/linux/brcm63xx/patches-4.14/408-bcm63xx_enet-enable-rgmii-clock-on-external-ports.patch b/target/linux/brcm63xx/patches-4.14/408-bcm63xx_enet-enable-rgmii-clock-on-external-ports.patch index 7a1a56a00e..7bd1e51e7e 100644 --- a/target/linux/brcm63xx/patches-4.14/408-bcm63xx_enet-enable-rgmii-clock-on-external-ports.patch +++ b/target/linux/brcm63xx/patches-4.14/408-bcm63xx_enet-enable-rgmii-clock-on-external-ports.patch @@ -32,7 +32,7 @@ Subject: [PATCH 54/81] bcm63xx_enet: enable rgmii clock on external ports #define ENETSW_MDIOC_EXT_MASK (1 << 16) --- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c +++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c -@@ -2191,6 +2191,18 @@ static int bcm_enetsw_open(struct net_de +@@ -2192,6 +2192,18 @@ static int bcm_enetsw_open(struct net_de priv->sw_port_link[i] = 0; } diff --git a/target/linux/brcm63xx/patches-4.14/423-bcm63xx_enet_add_b53_support.patch b/target/linux/brcm63xx/patches-4.14/423-bcm63xx_enet_add_b53_support.patch index ba2a8f93dd..58f1b13d38 100644 --- a/target/linux/brcm63xx/patches-4.14/423-bcm63xx_enet_add_b53_support.patch +++ b/target/linux/brcm63xx/patches-4.14/423-bcm63xx_enet_add_b53_support.patch @@ -20,7 +20,7 @@ #include #include "bcm63xx_enet.h" -@@ -1936,7 +1937,8 @@ static int bcm_enet_remove(struct platfo +@@ -1937,7 +1938,8 @@ static int bcm_enet_remove(struct platfo return 0; } @@ -30,7 +30,7 @@ .probe = bcm_enet_probe, .remove = bcm_enet_remove, .driver = { -@@ -1945,6 +1947,42 @@ struct platform_driver bcm63xx_enet_driv +@@ -1946,6 +1948,42 @@ struct platform_driver bcm63xx_enet_driv }, }; @@ -73,7 +73,7 @@ /* * switch mii access callbacks */ -@@ -2203,29 +2241,6 @@ static int bcm_enetsw_open(struct net_de +@@ -2204,29 +2242,6 @@ static int bcm_enetsw_open(struct net_de enetsw_writeb(priv, rgmii_ctrl, ENETSW_RGMII_CTRL_REG(i)); } @@ -103,7 +103,7 @@ /* initialize flow control buffer allocation */ enet_dma_writel(priv, ENETDMA_BUFALLOC_FORCE_MASK | 0, ENETDMA_BUFALLOC_REG(priv->rx_chan)); -@@ -2684,6 +2699,9 @@ static int bcm_enetsw_probe(struct platf +@@ -2685,6 +2700,9 @@ static int bcm_enetsw_probe(struct platf struct bcm63xx_enetsw_platform_data *pd; struct resource *res_mem; int ret, irq_rx, irq_tx; @@ -113,7 +113,7 @@ if (!bcm_enet_shared_base[0]) return -EPROBE_DEFER; -@@ -2766,6 +2784,43 @@ static int bcm_enetsw_probe(struct platf +@@ -2767,6 +2785,43 @@ static int bcm_enetsw_probe(struct platf priv->pdev = pdev; priv->net_dev = dev; @@ -157,7 +157,7 @@ return 0; out_disable_clk: -@@ -2787,6 +2842,9 @@ static int bcm_enetsw_remove(struct plat +@@ -2788,6 +2843,9 @@ static int bcm_enetsw_remove(struct plat priv = netdev_priv(dev); unregister_netdev(dev); diff --git a/target/linux/brcm63xx/patches-4.14/424-bcm63xx_enet_no_request_mem_region.patch b/target/linux/brcm63xx/patches-4.14/424-bcm63xx_enet_no_request_mem_region.patch index 79f6b9a1d2..6235c8cad6 100644 --- a/target/linux/brcm63xx/patches-4.14/424-bcm63xx_enet_no_request_mem_region.patch +++ b/target/linux/brcm63xx/patches-4.14/424-bcm63xx_enet_no_request_mem_region.patch @@ -1,6 +1,6 @@ --- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c +++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c -@@ -2743,9 +2743,9 @@ static int bcm_enetsw_probe(struct platf +@@ -2744,9 +2744,9 @@ static int bcm_enetsw_probe(struct platf if (ret) goto out; diff --git a/target/linux/brcm63xx/patches-4.14/804-bcm63xx_enet_63268_rgmii_ports.patch b/target/linux/brcm63xx/patches-4.14/804-bcm63xx_enet_63268_rgmii_ports.patch index 743b04b438..2d990f78e8 100644 --- a/target/linux/brcm63xx/patches-4.14/804-bcm63xx_enet_63268_rgmii_ports.patch +++ b/target/linux/brcm63xx/patches-4.14/804-bcm63xx_enet_63268_rgmii_ports.patch @@ -1,6 +1,6 @@ --- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c +++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c -@@ -2238,6 +2238,10 @@ static int bcm_enetsw_open(struct net_de +@@ -2239,6 +2239,10 @@ static int bcm_enetsw_open(struct net_de rgmii_ctrl = enetsw_readb(priv, ENETSW_RGMII_CTRL_REG(i)); rgmii_ctrl |= ENETSW_RGMII_CTRL_GMII_CLK_EN; diff --git a/target/linux/ipq40xx/patches-4.14/073-qcom-ipq4019-fix-cpu0-s-qcom-saw2-reg-value.patch b/target/linux/ipq40xx/patches-4.14/073-qcom-ipq4019-fix-cpu0-s-qcom-saw2-reg-value.patch deleted file mode 100644 index d72e3d3c36..0000000000 --- a/target/linux/ipq40xx/patches-4.14/073-qcom-ipq4019-fix-cpu0-s-qcom-saw2-reg-value.patch +++ /dev/null @@ -1,33 +0,0 @@ -From d60e006ec0e425877aacc61c7ece3da0434a8fce Mon Sep 17 00:00:00 2001 -From: Christian Lamparter -Date: Mon, 23 Jul 2018 16:34:54 +0200 -Subject: [PATCH 7/8] qcom: ipq4019: fix cpu0's qcom,saw2 reg value - -while compiling an ipq4019 target, dtc will complain: -regulator@b089000 unit address format error, expected "2089000" - -The saw0 regulator reg value seems to be -copied and pasted from qcom-ipq8064.dtsi. - -This patch fixes the reg value to match that of the -unit address which in turn silences the warning. -(There is no driver for qcom,saw2 right now. -So this went unnoticed) - -Signed-off-by: Christian Lamparter -Signed-off-by: John Crispin ---- - arch/arm/boot/dts/qcom-ipq4019.dtsi | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/arch/arm/boot/dts/qcom-ipq4019.dtsi -+++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi -@@ -262,7 +262,7 @@ - - saw0: regulator@b089000 { - compatible = "qcom,saw2"; -- reg = <0x02089000 0x1000>, <0x0b009000 0x1000>; -+ reg = <0x0b089000 0x1000>, <0x0b009000 0x1000>; - regulator; - }; - diff --git a/target/linux/ipq806x/patches-4.14/0048-PM-OPP-HACK-Allow-to-set-regulator-without-opp_list.patch b/target/linux/ipq806x/patches-4.14/0048-PM-OPP-HACK-Allow-to-set-regulator-without-opp_list.patch index 7c78d444f8..cca2fcaa4f 100644 --- a/target/linux/ipq806x/patches-4.14/0048-PM-OPP-HACK-Allow-to-set-regulator-without-opp_list.patch +++ b/target/linux/ipq806x/patches-4.14/0048-PM-OPP-HACK-Allow-to-set-regulator-without-opp_list.patch @@ -10,7 +10,7 @@ Signed-off-by: Georgi Djakov --- a/drivers/base/power/opp/core.c +++ b/drivers/base/power/opp/core.c -@@ -1280,11 +1280,13 @@ struct opp_table *dev_pm_opp_set_regulat +@@ -1292,11 +1292,13 @@ struct opp_table *dev_pm_opp_set_regulat if (!opp_table) return ERR_PTR(-ENOMEM); diff --git a/target/linux/ipq806x/patches-4.14/0049-PM-OPP-Support-adjusting-OPP-voltages-at-runtime.patch b/target/linux/ipq806x/patches-4.14/0049-PM-OPP-Support-adjusting-OPP-voltages-at-runtime.patch index ef48e9f01b..9f7c8185e9 100644 --- a/target/linux/ipq806x/patches-4.14/0049-PM-OPP-Support-adjusting-OPP-voltages-at-runtime.patch +++ b/target/linux/ipq806x/patches-4.14/0049-PM-OPP-Support-adjusting-OPP-voltages-at-runtime.patch @@ -27,7 +27,7 @@ Signed-off-by: Georgi Djakov --- a/drivers/base/power/opp/core.c +++ b/drivers/base/power/opp/core.c -@@ -1608,6 +1608,83 @@ put_table: +@@ -1620,6 +1620,83 @@ put_table: } /** diff --git a/target/linux/ipq806x/patches-4.14/0051-PM-OPP-Add-a-helper-to-get-an-opp-regulator-for-devi.patch b/target/linux/ipq806x/patches-4.14/0051-PM-OPP-Add-a-helper-to-get-an-opp-regulator-for-devi.patch index 22ae309801..7819dc0dd8 100644 --- a/target/linux/ipq806x/patches-4.14/0051-PM-OPP-Add-a-helper-to-get-an-opp-regulator-for-devi.patch +++ b/target/linux/ipq806x/patches-4.14/0051-PM-OPP-Add-a-helper-to-get-an-opp-regulator-for-devi.patch @@ -12,7 +12,7 @@ Signed-off-by: Georgi Djakov --- a/drivers/base/power/opp/core.c +++ b/drivers/base/power/opp/core.c -@@ -126,6 +126,27 @@ unsigned long dev_pm_opp_get_freq(struct +@@ -131,6 +131,27 @@ unsigned long dev_pm_opp_get_freq(struct } EXPORT_SYMBOL_GPL(dev_pm_opp_get_freq); diff --git a/target/linux/ipq806x/patches-4.14/0052-PM-OPP-Update-the-voltage-tolerance-when-adjusting-t.patch b/target/linux/ipq806x/patches-4.14/0052-PM-OPP-Update-the-voltage-tolerance-when-adjusting-t.patch index 7cde22be0b..3105b4ea1b 100644 --- a/target/linux/ipq806x/patches-4.14/0052-PM-OPP-Update-the-voltage-tolerance-when-adjusting-t.patch +++ b/target/linux/ipq806x/patches-4.14/0052-PM-OPP-Update-the-voltage-tolerance-when-adjusting-t.patch @@ -17,7 +17,7 @@ Signed-off-by: Georgi Djakov --- a/drivers/base/power/opp/core.c +++ b/drivers/base/power/opp/core.c -@@ -1652,6 +1652,7 @@ int dev_pm_opp_adjust_voltage(struct dev +@@ -1664,6 +1664,7 @@ int dev_pm_opp_adjust_voltage(struct dev struct opp_table *opp_table; struct dev_pm_opp *new_opp, *tmp_opp, *opp = ERR_PTR(-ENODEV); int r = 0; @@ -25,7 +25,7 @@ Signed-off-by: Georgi Djakov /* keep the node allocated */ new_opp = kmalloc(sizeof(*new_opp), GFP_KERNEL); -@@ -1688,6 +1689,10 @@ int dev_pm_opp_adjust_voltage(struct dev +@@ -1700,6 +1701,10 @@ int dev_pm_opp_adjust_voltage(struct dev /* plug in new node */ new_opp->supplies[0].u_volt = u_volt; diff --git a/target/linux/layerscape/patches-4.14/707-dpaa-ethernet-support-layerscape.patch b/target/linux/layerscape/patches-4.14/707-dpaa-ethernet-support-layerscape.patch index 18d4e47e04..41f47ddd84 100644 --- a/target/linux/layerscape/patches-4.14/707-dpaa-ethernet-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/707-dpaa-ethernet-support-layerscape.patch @@ -922,28 +922,28 @@ Signed-off-by: Zhao Qiang * * We must do this before dma_map_single(DMA_TO_DEVICE), because we may * need to write into the skb. -@@ -2036,12 +2091,129 @@ static inline int dpaa_xmit(struct dpaa_ +@@ -2036,6 +2091,123 @@ static inline int dpaa_xmit(struct dpaa_ return 0; } -+#ifndef CONFIG_PPC -+/* On LS1043A SoC there is a known erratum ERR010022 that results in split DMA -+ * transfers in the FMan under certain conditions. This, combined with a fixed -+ * size FIFO of ongoing DMA transfers that may overflow when a split occurs, -+ * results in the FMan stalling DMA transfers under high traffic. To avoid the -+ * problem, one needs to prevent the DMA transfer splits to occur by preparing -+ * the buffers -+ */ -+ -+#define DPAA_A010022_HEADROOM 256 -+#define CROSS_4K_BOUND(start, size) \ +++#ifndef CONFIG_PPC +++/* On LS1043A SoC there is a known erratum ERR010022 that results in split DMA +++ * transfers in the FMan under certain conditions. This, combined with a fixed +++ * size FIFO of ongoing DMA transfers that may overflow when a split occurs, +++ * results in the FMan stalling DMA transfers under high traffic. To avoid the +++ * problem, one needs to prevent the DMA transfer splits to occur by preparing +++ * the buffers +++ */ +++ +++#define DPAA_A010022_HEADROOM 256 +++#define CROSS_4K_BOUND(start, size) \ + (((start) + (size)) > (((start) + 0x1000) & ~0xFFF)) + +static bool dpaa_errata_a010022_has_dma_issue(struct sk_buff *skb, + struct dpaa_priv *priv) +{ + int nr_frags, i = 0; -+ skb_frag_t *frag; ++ skb_frag_t *frag; + + /* Transfers that do not start at 16B aligned addresses will be split; + * Transfers that cross a 4K page boundary will also be split @@ -1034,7 +1034,7 @@ Signed-off-by: Zhao Qiang + dev_kfree_skb(skb); + return nskb; + -+err: +++err: + if (nskb) + dev_kfree_skb(nskb); + put_page(npage); @@ -1042,9 +1042,11 @@ Signed-off-by: Zhao Qiang +} +#endif + - static int dpaa_start_xmit(struct sk_buff *skb, struct net_device *net_dev) ++ + static netdev_tx_t + dpaa_start_xmit(struct sk_buff *skb, struct net_device *net_dev) { - const int queue_mapping = skb_get_queue_mapping(skb); +@@ -2043,6 +2215,7 @@ dpaa_start_xmit(struct sk_buff *skb, str bool nonlinear = skb_is_nonlinear(skb); struct rtnl_link_stats64 *percpu_stats; struct dpaa_percpu_priv *percpu_priv; @@ -1052,7 +1054,7 @@ Signed-off-by: Zhao Qiang struct dpaa_priv *priv; struct qm_fd fd; int offset = 0; -@@ -2069,24 +2241,47 @@ static int dpaa_start_xmit(struct sk_buf +@@ -2070,24 +2243,47 @@ dpaa_start_xmit(struct sk_buff *skb, str /* MAX_SKB_FRAGS is equal or larger than our dpaa_SGT_MAX_ENTRIES; * make sure we don't feed FMan with more fragments than it supports. */ @@ -1108,7 +1110,7 @@ Signed-off-by: Zhao Qiang if (likely(dpaa_xmit(priv, percpu_stats, queue_mapping, &fd) == 0)) return NETDEV_TX_OK; -@@ -2218,14 +2413,8 @@ static enum qman_cb_dqrr_result rx_error +@@ -2219,14 +2415,8 @@ static enum qman_cb_dqrr_result rx_error if (dpaa_eth_napi_schedule(percpu_priv, portal)) return qman_cb_dqrr_stop; @@ -1125,7 +1127,7 @@ Signed-off-by: Zhao Qiang return qman_cb_dqrr_consume; } -@@ -2234,6 +2423,7 @@ static enum qman_cb_dqrr_result rx_defau +@@ -2235,6 +2425,7 @@ static enum qman_cb_dqrr_result rx_defau struct qman_fq *fq, const struct qm_dqrr_entry *dq) { @@ -1133,7 +1135,7 @@ Signed-off-by: Zhao Qiang struct rtnl_link_stats64 *percpu_stats; struct dpaa_percpu_priv *percpu_priv; const struct qm_fd *fd = &dq->fd; -@@ -2247,6 +2437,7 @@ static enum qman_cb_dqrr_result rx_defau +@@ -2248,6 +2439,7 @@ static enum qman_cb_dqrr_result rx_defau struct sk_buff *skb; int *count_ptr; void *vaddr; @@ -1141,7 +1143,7 @@ Signed-off-by: Zhao Qiang fd_status = be32_to_cpu(fd->status); fd_format = qm_fd_get_format(fd); -@@ -2289,12 +2480,12 @@ static enum qman_cb_dqrr_result rx_defau +@@ -2290,12 +2482,12 @@ static enum qman_cb_dqrr_result rx_defau if (!dpaa_bp) return qman_cb_dqrr_consume; @@ -1157,7 +1159,7 @@ Signed-off-by: Zhao Qiang /* The only FD types that we may receive are contig and S/G */ WARN_ON((fd_format != qm_fd_contig) && (fd_format != qm_fd_sg)); -@@ -2305,12 +2496,22 @@ static enum qman_cb_dqrr_result rx_defau +@@ -2306,12 +2498,22 @@ static enum qman_cb_dqrr_result rx_defau (*count_ptr)--; if (likely(fd_format == qm_fd_contig)) @@ -1182,7 +1184,7 @@ Signed-off-by: Zhao Qiang skb->protocol = eth_type_trans(skb, net_dev); if (net_dev->features & NETIF_F_RXHASH && priv->keygen_in_use && -@@ -2439,6 +2640,44 @@ static void dpaa_eth_napi_disable(struct +@@ -2440,6 +2642,44 @@ static void dpaa_eth_napi_disable(struct } } @@ -1227,7 +1229,7 @@ Signed-off-by: Zhao Qiang static int dpaa_open(struct net_device *net_dev) { struct mac_device *mac_dev; -@@ -2449,12 +2688,9 @@ static int dpaa_open(struct net_device * +@@ -2450,12 +2690,9 @@ static int dpaa_open(struct net_device * mac_dev = priv->mac_dev; dpaa_eth_napi_enable(priv); @@ -1242,7 +1244,7 @@ Signed-off-by: Zhao Qiang for (i = 0; i < ARRAY_SIZE(mac_dev->port); i++) { err = fman_port_enable(mac_dev->port[i]); -@@ -2495,11 +2731,58 @@ static int dpaa_eth_stop(struct net_devi +@@ -2496,11 +2733,58 @@ static int dpaa_eth_stop(struct net_devi return err; } @@ -1304,7 +1306,7 @@ Signed-off-by: Zhao Qiang } static const struct net_device_ops dpaa_ops = { -@@ -2653,7 +2936,6 @@ static inline u16 dpaa_get_headroom(stru +@@ -2654,7 +2938,6 @@ static inline u16 dpaa_get_headroom(stru static int dpaa_eth_probe(struct platform_device *pdev) { struct dpaa_bp *dpaa_bps[DPAA_BPS_NUM] = {NULL}; @@ -1312,7 +1314,7 @@ Signed-off-by: Zhao Qiang struct net_device *net_dev = NULL; struct dpaa_fq *dpaa_fq, *tmp; struct dpaa_priv *priv = NULL; -@@ -2662,7 +2944,51 @@ static int dpaa_eth_probe(struct platfor +@@ -2663,7 +2946,51 @@ static int dpaa_eth_probe(struct platfor int err = 0, i, channel; struct device *dev; @@ -1365,7 +1367,7 @@ Signed-off-by: Zhao Qiang /* Allocate this early, so we can store relevant information in * the private area -@@ -2670,7 +2996,7 @@ static int dpaa_eth_probe(struct platfor +@@ -2671,7 +2998,7 @@ static int dpaa_eth_probe(struct platfor net_dev = alloc_etherdev_mq(sizeof(*priv), DPAA_ETH_TXQ_NUM); if (!net_dev) { dev_err(dev, "alloc_etherdev_mq() failed\n"); @@ -1374,7 +1376,7 @@ Signed-off-by: Zhao Qiang } /* Do this here, so we can be verbose early */ -@@ -2682,13 +3008,6 @@ static int dpaa_eth_probe(struct platfor +@@ -2683,13 +3010,6 @@ static int dpaa_eth_probe(struct platfor priv->msg_enable = netif_msg_init(debug, DPAA_MSG_DEFAULT); @@ -1388,7 +1390,7 @@ Signed-off-by: Zhao Qiang /* If fsl_fm_max_frm is set to a higher value than the all-common 1500, * we choose conservatively and let the user explicitly set a higher * MTU via ifconfig. Otherwise, the user may end up with different MTUs -@@ -2704,21 +3023,13 @@ static int dpaa_eth_probe(struct platfor +@@ -2705,21 +3025,13 @@ static int dpaa_eth_probe(struct platfor priv->buf_layout[RX].priv_data_size = DPAA_RX_PRIV_DATA_SIZE; /* Rx */ priv->buf_layout[TX].priv_data_size = DPAA_TX_PRIV_DATA_SIZE; /* Tx */ @@ -1414,7 +1416,7 @@ Signed-off-by: Zhao Qiang /* the raw size of the buffers used for reception */ dpaa_bps[i]->raw_size = bpool_buffer_raw_size(i, DPAA_BPS_NUM); /* avoid runtime computations by keeping the usable size here */ -@@ -2726,11 +3037,8 @@ static int dpaa_eth_probe(struct platfor +@@ -2727,11 +3039,8 @@ static int dpaa_eth_probe(struct platfor dpaa_bps[i]->dev = dev; err = dpaa_bp_alloc_pool(dpaa_bps[i]); @@ -1428,7 +1430,7 @@ Signed-off-by: Zhao Qiang priv->dpaa_bps[i] = dpaa_bps[i]; } -@@ -2741,7 +3049,7 @@ static int dpaa_eth_probe(struct platfor +@@ -2742,7 +3051,7 @@ static int dpaa_eth_probe(struct platfor err = dpaa_alloc_all_fqs(dev, &priv->dpaa_fq_list, &port_fqs); if (err < 0) { dev_err(dev, "dpaa_alloc_all_fqs() failed\n"); @@ -1437,7 +1439,7 @@ Signed-off-by: Zhao Qiang } priv->mac_dev = mac_dev; -@@ -2750,12 +3058,12 @@ static int dpaa_eth_probe(struct platfor +@@ -2751,12 +3060,12 @@ static int dpaa_eth_probe(struct platfor if (channel < 0) { dev_err(dev, "dpaa_get_channel() failed\n"); err = channel; @@ -1452,7 +1454,7 @@ Signed-off-by: Zhao Qiang * and add this pool channel to each's dequeue mask. */ dpaa_eth_add_channel(priv->channel); -@@ -2770,20 +3078,20 @@ static int dpaa_eth_probe(struct platfor +@@ -2771,20 +3080,20 @@ static int dpaa_eth_probe(struct platfor err = dpaa_eth_cgr_init(priv); if (err < 0) { dev_err(dev, "Error initializing CGR\n"); @@ -1476,7 +1478,7 @@ Signed-off-by: Zhao Qiang } priv->tx_headroom = dpaa_get_headroom(&priv->buf_layout[TX]); -@@ -2793,7 +3101,7 @@ static int dpaa_eth_probe(struct platfor +@@ -2794,7 +3103,7 @@ static int dpaa_eth_probe(struct platfor err = dpaa_eth_init_ports(mac_dev, dpaa_bps, DPAA_BPS_NUM, &port_fqs, &priv->buf_layout[0], dev); if (err) @@ -1485,7 +1487,7 @@ Signed-off-by: Zhao Qiang /* Rx traffic distribution based on keygen hashing defaults to on */ priv->keygen_in_use = true; -@@ -2802,11 +3110,7 @@ static int dpaa_eth_probe(struct platfor +@@ -2803,11 +3112,7 @@ static int dpaa_eth_probe(struct platfor if (!priv->percpu_priv) { dev_err(dev, "devm_alloc_percpu() failed\n"); err = -ENOMEM; @@ -1498,7 +1500,7 @@ Signed-off-by: Zhao Qiang } priv->num_tc = 1; -@@ -2815,11 +3119,11 @@ static int dpaa_eth_probe(struct platfor +@@ -2816,11 +3121,11 @@ static int dpaa_eth_probe(struct platfor /* Initialize NAPI */ err = dpaa_napi_add(net_dev); if (err < 0) @@ -1512,7 +1514,7 @@ Signed-off-by: Zhao Qiang dpaa_eth_sysfs_init(&net_dev->dev); -@@ -2828,32 +3132,21 @@ static int dpaa_eth_probe(struct platfor +@@ -2829,32 +3134,21 @@ static int dpaa_eth_probe(struct platfor return 0; @@ -1551,7 +1553,7 @@ Signed-off-by: Zhao Qiang return err; } -@@ -2890,6 +3183,23 @@ static int dpaa_remove(struct platform_d +@@ -2891,6 +3185,23 @@ static int dpaa_remove(struct platform_d return err; } @@ -1575,7 +1577,7 @@ Signed-off-by: Zhao Qiang static const struct platform_device_id dpaa_devtype[] = { { .name = "dpaa-ethernet", -@@ -2914,6 +3224,10 @@ static int __init dpaa_load(void) +@@ -2915,6 +3226,10 @@ static int __init dpaa_load(void) pr_debug("FSL DPAA Ethernet driver\n"); diff --git a/target/linux/mediatek/patches-4.14/0127-usb-xhci-mtk-use-ports-count-from-xhci-in-xhci_mtk_s.patch b/target/linux/mediatek/patches-4.14/0127-usb-xhci-mtk-use-ports-count-from-xhci-in-xhci_mtk_s.patch index 15c1b29dca..f17da7003f 100644 --- a/target/linux/mediatek/patches-4.14/0127-usb-xhci-mtk-use-ports-count-from-xhci-in-xhci_mtk_s.patch +++ b/target/linux/mediatek/patches-4.14/0127-usb-xhci-mtk-use-ports-count-from-xhci-in-xhci_mtk_s.patch @@ -17,7 +17,7 @@ Signed-off-by: Greg Kroah-Hartman --- a/drivers/usb/host/xhci-mtk-sch.c +++ b/drivers/usb/host/xhci-mtk-sch.c -@@ -287,12 +287,13 @@ static bool need_bw_sch(struct usb_host_ +@@ -289,12 +289,13 @@ static bool need_bw_sch(struct usb_host_ int xhci_mtk_sch_init(struct xhci_hcd_mtk *mtk) { -- 2.30.2