From 148d59c67edd550cf130f96844f63637707b99d5 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Fri, 31 Jul 2020 22:40:30 +0200 Subject: [PATCH] kernel: update kernel 4.14 to version 4.14.193 Compile and runtime tested on lantiq/xrx200 and ipq40xx. Signed-off-by: Hauke Mehrtens --- include/kernel-version.mk | 4 +- ...mware-loader-for-uPD720201-and-uPD72.patch | 6 +- .../910-unaligned_access_hacks.patch | 2 +- .../910-unaligned_access_hacks.patch | 2 +- ...smsx95xx-fix-crimes-against-truesize.patch | 4 +- ...e-link-events-to-minimize-poll-storm.patch | 2 +- ...tcp-allow-drivers-to-tweak-TSQ-logic.patch | 4 +- ...ption-fix-dwm-158-3g-modem-interface.patch | 2 +- ...y-serial-exar-generalize-rs485-setup.patch | 4 +- .../generic/hack-4.14/220-gc_sections.patch | 4 +- .../hack-4.14/221-module_exports.patch | 6 +- .../810-pci_disable_common_quirks.patch | 6 +- .../716-essedma-vlan-double-tag.patch | 123 +++++------------- .../301-arch-support-layerscape.patch | 2 +- .../802-dma-support-layerscape.patch | 4 +- .../816-pcie-support-layerscape.patch | 2 +- .../818-qspi-support-layerscape.patch | 13 -- ...-ports-count-from-xhci-in-xhci_mtk_s.patch | 2 +- ...low-imod-interval-to-be-configurable.patch | 2 +- ...9-thermal-mtk-Cleanup-unused-defines.patch | 2 +- ...-mediatek-add-support-for-MT7622-SoC.patch | 2 +- .../0069-awake-rt305x-dwc2-controller.patch | 2 +- 22 files changed, 61 insertions(+), 139 deletions(-) diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 9e7855e6dc7..008cc44c78c 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 = .187 +LINUX_VERSION-4.14 = .193 -LINUX_KERNEL_HASH-4.14.187 = 5b223475eaeea196aa7e127d3f253bca5c35d8afdc72ca75230ce1ecdd1454bd +LINUX_KERNEL_HASH-4.14.193 = 0b0fb41d4430e1a42738b341cbfd2f41951aa5cd02acabbd53f076119c8b9f03 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/apm821xx/patches-4.14/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch b/target/linux/apm821xx/patches-4.14/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch index f95fdf3d7fe..43abd735b28 100644 --- a/target/linux/apm821xx/patches-4.14/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch +++ b/target/linux/apm821xx/patches-4.14/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch @@ -44,7 +44,7 @@ Signed-off-by: Christian Lamparter #include "xhci.h" #include "xhci-trace.h" -@@ -269,6 +271,458 @@ static void xhci_pme_acpi_rtd3_enable(st +@@ -272,6 +274,458 @@ static void xhci_pme_acpi_rtd3_enable(st static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { } #endif /* CONFIG_ACPI */ @@ -503,7 +503,7 @@ Signed-off-by: Christian Lamparter /* called during probe() after chip reset completes */ static int xhci_pci_setup(struct usb_hcd *hcd) { -@@ -307,6 +761,22 @@ static int xhci_pci_probe(struct pci_dev +@@ -310,6 +764,22 @@ static int xhci_pci_probe(struct pci_dev struct hc_driver *driver; struct usb_hcd *hcd; @@ -526,7 +526,7 @@ Signed-off-by: Christian Lamparter driver = (struct hc_driver *)id->driver_data; /* For some HW implementation, a XHCI reset is just not enough... */ -@@ -368,6 +838,16 @@ static void xhci_pci_remove(struct pci_d +@@ -371,6 +841,16 @@ static void xhci_pci_remove(struct pci_d { struct xhci_hcd *xhci; diff --git a/target/linux/ar71xx/patches-4.14/910-unaligned_access_hacks.patch b/target/linux/ar71xx/patches-4.14/910-unaligned_access_hacks.patch index 52f48d0d0e3..6938f965514 100644 --- a/target/linux/ar71xx/patches-4.14/910-unaligned_access_hacks.patch +++ b/target/linux/ar71xx/patches-4.14/910-unaligned_access_hacks.patch @@ -757,7 +757,7 @@ EXPORT_SYMBOL(xfrm_parse_spi); --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c -@@ -3878,14 +3878,16 @@ static bool tcp_parse_aligned_timestamp( +@@ -3879,14 +3879,16 @@ static bool tcp_parse_aligned_timestamp( { const __be32 *ptr = (const __be32 *)(th + 1); diff --git a/target/linux/ath79/patches-4.14/910-unaligned_access_hacks.patch b/target/linux/ath79/patches-4.14/910-unaligned_access_hacks.patch index 5eaa14d3278..f3332ba5c26 100644 --- a/target/linux/ath79/patches-4.14/910-unaligned_access_hacks.patch +++ b/target/linux/ath79/patches-4.14/910-unaligned_access_hacks.patch @@ -737,7 +737,7 @@ EXPORT_SYMBOL(xfrm_parse_spi); --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c -@@ -3878,14 +3878,16 @@ static bool tcp_parse_aligned_timestamp( +@@ -3879,14 +3879,16 @@ static bool tcp_parse_aligned_timestamp( { const __be32 *ptr = (const __be32 *)(th + 1); diff --git a/target/linux/brcm2708/patches-4.14/950-0002-smsx95xx-fix-crimes-against-truesize.patch b/target/linux/brcm2708/patches-4.14/950-0002-smsx95xx-fix-crimes-against-truesize.patch index 52999a9bd0d..eca564d0623 100644 --- a/target/linux/brcm2708/patches-4.14/950-0002-smsx95xx-fix-crimes-against-truesize.patch +++ b/target/linux/brcm2708/patches-4.14/950-0002-smsx95xx-fix-crimes-against-truesize.patch @@ -25,7 +25,7 @@ Signed-off-by: Steve Glendinning static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index, u32 *data, int in_pm) { -@@ -1972,7 +1976,8 @@ static int smsc95xx_rx_fixup(struct usbn +@@ -1979,7 +1983,8 @@ static int smsc95xx_rx_fixup(struct usbn if (dev->net->features & NETIF_F_RXCSUM) smsc95xx_rx_csum_offload(skb); skb_trim(skb, skb->len - 4); /* remove fcs */ @@ -35,7 +35,7 @@ Signed-off-by: Steve Glendinning return 1; } -@@ -1990,7 +1995,8 @@ static int smsc95xx_rx_fixup(struct usbn +@@ -1997,7 +2002,8 @@ static int smsc95xx_rx_fixup(struct usbn if (dev->net->features & NETIF_F_RXCSUM) smsc95xx_rx_csum_offload(ax_skb); skb_trim(ax_skb, ax_skb->len - 4); /* remove fcs */ 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 008043d8bf2..aba96e45500 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); -@@ -3730,7 +3735,12 @@ static int lan78xx_probe(struct usb_inte +@@ -3735,7 +3740,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/generic/backport-4.14/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch b/target/linux/generic/backport-4.14/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch index a098c4416c5..4f6f5d2cfad 100644 --- a/target/linux/generic/backport-4.14/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch +++ b/target/linux/generic/backport-4.14/025-tcp-allow-drivers-to-tweak-TSQ-logic.patch @@ -65,7 +65,7 @@ Cc: Kir Kolyshkin * Before updating sk_refcnt, we must commit prior changes to memory --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -1697,7 +1697,7 @@ u32 tcp_tso_autosize(const struct sock * +@@ -1699,7 +1699,7 @@ u32 tcp_tso_autosize(const struct sock * { u32 bytes, segs; @@ -74,7 +74,7 @@ Cc: Kir Kolyshkin sk->sk_gso_max_size - 1 - MAX_TCP_HEADER); /* Goal is to send at least one packet per ms, -@@ -2215,7 +2215,7 @@ static bool tcp_small_queue_check(struct +@@ -2217,7 +2217,7 @@ static bool tcp_small_queue_check(struct { unsigned int limit; diff --git a/target/linux/generic/backport-4.14/030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch b/target/linux/generic/backport-4.14/030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch index 2e08e514b72..0e6aa87f9df 100644 --- a/target/linux/generic/backport-4.14/030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch +++ b/target/linux/generic/backport-4.14/030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch @@ -30,7 +30,7 @@ Signed-off-by: Johan Hovold --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c -@@ -1987,7 +1987,8 @@ static const struct usb_device_id option +@@ -1990,7 +1990,8 @@ static const struct usb_device_id option { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d01, 0xff) }, /* D-Link DWM-156 (variant) */ { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) }, { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) }, diff --git a/target/linux/generic/backport-4.14/950-tty-serial-exar-generalize-rs485-setup.patch b/target/linux/generic/backport-4.14/950-tty-serial-exar-generalize-rs485-setup.patch index 353dc14949e..c4c4cfcb717 100644 --- a/target/linux/generic/backport-4.14/950-tty-serial-exar-generalize-rs485-setup.patch +++ b/target/linux/generic/backport-4.14/950-tty-serial-exar-generalize-rs485-setup.patch @@ -19,7 +19,7 @@ Signed-off-by: Greg Kroah-Hartman --- a/drivers/tty/serial/8250/8250_exar.c +++ b/drivers/tty/serial/8250/8250_exar.c -@@ -283,8 +283,32 @@ static int xr17v35x_register_gpio(struct +@@ -293,8 +293,32 @@ static int xr17v35x_register_gpio(struct return 0; } @@ -52,7 +52,7 @@ Signed-off-by: Greg Kroah-Hartman }; static int iot2040_rs485_config(struct uart_port *port, -@@ -317,19 +341,7 @@ static int iot2040_rs485_config(struct u +@@ -327,19 +351,7 @@ static int iot2040_rs485_config(struct u value |= mode; writeb(value, p + UART_EXAR_MPIOLVL_7_0); diff --git a/target/linux/generic/hack-4.14/220-gc_sections.patch b/target/linux/generic/hack-4.14/220-gc_sections.patch index b69d8a01d63..6a4475fc6e1 100644 --- a/target/linux/generic/hack-4.14/220-gc_sections.patch +++ b/target/linux/generic/hack-4.14/220-gc_sections.patch @@ -238,7 +238,7 @@ Signed-off-by: Gabor Juhos /* * Data section helpers -@@ -496,7 +497,7 @@ +@@ -497,7 +498,7 @@ #define ENTRY_TEXT \ ALIGN_FUNCTION(); \ VMLINUX_SYMBOL(__entry_text_start) = .; \ @@ -247,7 +247,7 @@ Signed-off-by: Gabor Juhos VMLINUX_SYMBOL(__entry_text_end) = .; #define IRQENTRY_TEXT \ -@@ -603,7 +604,7 @@ +@@ -604,7 +605,7 @@ . = ALIGN(sbss_align); \ .sbss : AT(ADDR(.sbss) - LOAD_OFFSET) { \ *(.dynsbss) \ diff --git a/target/linux/generic/hack-4.14/221-module_exports.patch b/target/linux/generic/hack-4.14/221-module_exports.patch index 250bf1180f0..003175c2236 100644 --- a/target/linux/generic/hack-4.14/221-module_exports.patch +++ b/target/linux/generic/hack-4.14/221-module_exports.patch @@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau #include /* Align . to a 8 byte boundary equals to maximum function alignment. */ -@@ -341,14 +351,14 @@ +@@ -342,14 +352,14 @@ /* Kernel symbol table: Normal symbols */ \ __ksymtab : AT(ADDR(__ksymtab) - LOAD_OFFSET) { \ VMLINUX_SYMBOL(__start___ksymtab) = .; \ @@ -47,7 +47,7 @@ Signed-off-by: Felix Fietkau VMLINUX_SYMBOL(__stop___ksymtab_gpl) = .; \ } \ \ -@@ -410,7 +420,7 @@ +@@ -411,7 +421,7 @@ \ /* Kernel symbol table: strings */ \ __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) { \ @@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau } \ \ /* __*init sections */ \ -@@ -793,6 +803,8 @@ +@@ -796,6 +806,8 @@ EXIT_TEXT \ EXIT_DATA \ EXIT_CALL \ diff --git a/target/linux/generic/pending-4.14/810-pci_disable_common_quirks.patch b/target/linux/generic/pending-4.14/810-pci_disable_common_quirks.patch index 718b8addd44..1d10af647f1 100644 --- a/target/linux/generic/pending-4.14/810-pci_disable_common_quirks.patch +++ b/target/linux/generic/pending-4.14/810-pci_disable_common_quirks.patch @@ -32,7 +32,7 @@ Signed-off-by: Gabor Juhos /* The Mellanox Tavor device gives false positive parity errors * Mark this device with a broken_parity_status, to allow * PCI scanning code to "skip" this now blacklisted device. -@@ -3095,6 +3096,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I +@@ -3108,6 +3109,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata); @@ -40,7 +40,7 @@ Signed-off-by: Gabor Juhos /* * Ivytown NTB BAR sizes are misreported by the hardware due to an erratum. To -@@ -3151,6 +3153,8 @@ static void fixup_debug_report(struct pc +@@ -3164,6 +3166,8 @@ static void fixup_debug_report(struct pc } } @@ -49,7 +49,7 @@ Signed-off-by: Gabor Juhos /* * Some BIOS implementations leave the Intel GPU interrupts enabled, * even though no one is handling them (f.e. i915 driver is never loaded). -@@ -3189,6 +3193,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN +@@ -3202,6 +3206,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq); diff --git a/target/linux/ipq40xx/patches-4.14/716-essedma-vlan-double-tag.patch b/target/linux/ipq40xx/patches-4.14/716-essedma-vlan-double-tag.patch index f57804f3c7c..e2683512735 100644 --- a/target/linux/ipq40xx/patches-4.14/716-essedma-vlan-double-tag.patch +++ b/target/linux/ipq40xx/patches-4.14/716-essedma-vlan-double-tag.patch @@ -21,11 +21,9 @@ Forwarded: no drivers/net/phy/ar40xx.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) -diff --git a/drivers/net/phy/ar40xx.c b/drivers/net/phy/ar40xx.c -index e408e8f7312f749aeb29c73a589047856e9479c7..421399b9b33e6f42d4e38db3f90b0c1d514a0b79 100644 --- a/drivers/net/phy/ar40xx.c +++ b/drivers/net/phy/ar40xx.c -@@ -1200,7 +1200,11 @@ ar40xx_init_port(struct ar40xx_priv *priv, int port) +@@ -1200,7 +1200,11 @@ ar40xx_init_port(struct ar40xx_priv *pri ar40xx_rmw(priv, AR40XX_REG_PORT_STATUS(port), AR40XX_PORT_AUTO_LINK_EN, 0); @@ -38,57 +36,7 @@ index e408e8f7312f749aeb29c73a589047856e9479c7..421399b9b33e6f42d4e38db3f90b0c1d ar40xx_write(priv, AR40XX_REG_PORT_VLAN0(port), 0); -From: Sven Eckelmann -Date: Fri, 17 Mar 2017 11:00:40 +0100 -Subject: [PATCH] ipq40xx: Disable CTAG TX VLAN offloading - -The driver requires the offloading to set the VLAN specific header for the -port selection. It can therefore not be used at the same time to offload -the setting of the VLAN header on top of essedma interface. - -Forwarded: no ---- - drivers/net/ethernet/qualcomm/essedma/edma_axi.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/drivers/net/ethernet/qualcomm/essedma/edma_axi.c b/drivers/net/ethernet/qualcomm/essedma/edma_axi.c -index 81fc1e1b64daa41b15f21634ac1f08de0f5822a7..db184b82769f53e1554a1c51c53414ef7cadd7f6 100644 ---- a/drivers/net/ethernet/qualcomm/essedma/edma_axi.c -+++ b/drivers/net/ethernet/qualcomm/essedma/edma_axi.c -@@ -970,7 +970,6 @@ static int edma_axi_probe(struct platform_device *pdev) - edma_netdev[i]->netdev_ops = &edma_axi_netdev_ops; - edma_netdev[i]->max_mtu = 9000; - edma_netdev[i]->features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM -- | NETIF_F_HW_VLAN_CTAG_TX - | NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_SG | - NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_GRO; - edma_netdev[i]->hw_features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM | -From: Sven Eckelmann -Date: Fri, 17 Mar 2017 11:04:50 +0100 -Subject: [PATCH] ar40xx: Enable QinQ on the switch - -The switch used in by IPQ40xx is using VLANs by default to select the -outgoing port. It was therefore not possible to sent or receive 802.1q -tagged frames over the CPU port. This can be allowed by changing the port -configuration and lookup configuration. - -The resulting VLAN-tagged frames send or received by the CPU will therefore -look like QinQ frames. The outer VLAN tag is the port-VLAN of the port from -which the data was received or towards which the data has to be sent. The -inner VLAN tag (when it exists) is the VLAN which was configrued on top of -the ethernet device. - -Forwarded: no ---- - drivers/net/phy/ar40xx.c | 23 ++++++++++++++++++++--- - drivers/net/phy/ar40xx.h | 5 +++++ - 2 files changed, 25 insertions(+), 3 deletions(-) - -diff --git a/drivers/net/phy/ar40xx.c b/drivers/net/phy/ar40xx.c -index 421399b9b33e6f42d4e38db3f90b0c1d514a0b79..4af26638d542a9ab5ca27454ce557233bcb64575 100644 ---- a/drivers/net/phy/ar40xx.c -+++ b/drivers/net/phy/ar40xx.c -@@ -1247,6 +1247,10 @@ ar40xx_init_globals(struct ar40xx_priv *priv) +@@ -1243,6 +1247,10 @@ ar40xx_init_globals(struct ar40xx_priv * t = (AR40XX_PORT0_FC_THRESH_ON_DFLT << 16) | AR40XX_PORT0_FC_THRESH_OFF_DFLT; ar40xx_write(priv, AR40XX_REG_PORT_FLOWCTRL_THRESH(0), t); @@ -99,7 +47,7 @@ index 421399b9b33e6f42d4e38db3f90b0c1d514a0b79..4af26638d542a9ab5ca27454ce557233 } static void -@@ -1572,7 +1576,11 @@ ar40xx_setup_port(struct ar40xx_priv *priv, int port, u32 members) +@@ -1568,7 +1576,11 @@ ar40xx_setup_port(struct ar40xx_priv *pr u32 pvid = priv->vlan_id[priv->pvid[port]]; if (priv->vlan) { @@ -112,7 +60,7 @@ index 421399b9b33e6f42d4e38db3f90b0c1d514a0b79..4af26638d542a9ab5ca27454ce557233 ingress = AR40XX_IN_SECURE; } else { egress = AR40XX_PORT_VLAN1_OUT_MODE_UNTOUCH; -@@ -1583,8 +1591,17 @@ ar40xx_setup_port(struct ar40xx_priv *priv, int port, u32 members) +@@ -1579,8 +1591,17 @@ ar40xx_setup_port(struct ar40xx_priv *pr t |= pvid << AR40XX_PORT_VLAN0_DEF_CVID_S; ar40xx_write(priv, AR40XX_REG_PORT_VLAN0(port), t); @@ -132,8 +80,31 @@ index 421399b9b33e6f42d4e38db3f90b0c1d514a0b79..4af26638d542a9ab5ca27454ce557233 ar40xx_write(priv, AR40XX_REG_PORT_VLAN1(port), t); t = members; -diff --git a/drivers/net/phy/ar40xx.h b/drivers/net/phy/ar40xx.h -index 722bf6ae4b32fcefa33e007ae34a3202315a3fe1..7ba40ccf753fe833e6a01b32cfe1407a317d92ee 100644 +--- a/drivers/net/ethernet/qualcomm/essedma/edma_axi.c ++++ b/drivers/net/ethernet/qualcomm/essedma/edma_axi.c +@@ -970,7 +970,6 @@ static int edma_axi_probe(struct platfor + edma_netdev[i]->netdev_ops = &edma_axi_netdev_ops; + edma_netdev[i]->max_mtu = 9000; + edma_netdev[i]->features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM +- | NETIF_F_HW_VLAN_CTAG_TX + | NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_SG | + NETIF_F_TSO | NETIF_F_GRO; + edma_netdev[i]->hw_features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM | +@@ -982,10 +981,10 @@ static int edma_axi_probe(struct platfor + NETIF_F_TSO | NETIF_F_GRO; + + #ifdef CONFIG_RFS_ACCEL +- edma_netdev[i]->features |= NETIF_F_RXHASH | NETIF_F_NTUPLE; +- edma_netdev[i]->hw_features |= NETIF_F_RXHASH | NETIF_F_NTUPLE; +- edma_netdev[i]->vlan_features |= NETIF_F_RXHASH | NETIF_F_NTUPLE; +- edma_netdev[i]->wanted_features |= NETIF_F_RXHASH | NETIF_F_NTUPLE; ++ edma_netdev[i]->features |= NETIF_F_NTUPLE; ++ edma_netdev[i]->hw_features |= NETIF_F_NTUPLE; ++ edma_netdev[i]->vlan_features |= NETIF_F_NTUPLE; ++ edma_netdev[i]->wanted_features |= NETIF_F_NTUPLE; + #endif + edma_set_ethtool_ops(edma_netdev[i]); + --- a/drivers/net/phy/ar40xx.h +++ b/drivers/net/phy/ar40xx.h @@ -151,6 +151,9 @@ struct ar40xx_mib_desc { @@ -155,39 +126,3 @@ index 722bf6ae4b32fcefa33e007ae34a3202315a3fe1..7ba40ccf753fe833e6a01b32cfe1407a #define AR40XX_PORT_VLAN1_PORT_VLAN_PROP BIT(6) #define AR40XX_PORT_VLAN1_OUT_MODE BITS(12, 2) #define AR40XX_PORT_VLAN1_OUT_MODE_S 12 -From: Sven Eckelmann -Date: Wed, 29 Mar 2017 16:05:26 +0200 -Subject: [PATCH] ipq40xx: Disable NETIF_F_RXHASH support in essedma - -The NETIF_F_RXHASH requires that each skb set the hash correctly with -skb_set_hash. essedma tries to do that but the set hash always results in -only used CPU when RPS is allowed for all CPUs. - -Disabling RXHASH works around this problem for now. - -IssueID: #5477 -Forwarded: no - Upstream author was informed via e-mail about the problem ---- - drivers/net/ethernet/qualcomm/essedma/edma_axi.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/drivers/net/ethernet/qualcomm/essedma/edma_axi.c b/drivers/net/ethernet/qualcomm/essedma/edma_axi.c -index db184b82769f53e1554a1c51c53414ef7cadd7f6..975e119cfe6f1a8cfe54ac0eb8f8752aa4bf22af 100644 ---- a/drivers/net/ethernet/qualcomm/essedma/edma_axi.c -+++ b/drivers/net/ethernet/qualcomm/essedma/edma_axi.c -@@ -984,10 +984,10 @@ static int edma_axi_probe(struct platform_device *pdev) - NETIF_F_GRO; - - #ifdef CONFIG_RFS_ACCEL -- edma_netdev[i]->features |= NETIF_F_RXHASH | NETIF_F_NTUPLE; -- edma_netdev[i]->hw_features |= NETIF_F_RXHASH | NETIF_F_NTUPLE; -- edma_netdev[i]->vlan_features |= NETIF_F_RXHASH | NETIF_F_NTUPLE; -- edma_netdev[i]->wanted_features |= NETIF_F_RXHASH | NETIF_F_NTUPLE; -+ edma_netdev[i]->features |= NETIF_F_NTUPLE; -+ edma_netdev[i]->hw_features |= NETIF_F_NTUPLE; -+ edma_netdev[i]->vlan_features |= NETIF_F_NTUPLE; -+ edma_netdev[i]->wanted_features |= NETIF_F_NTUPLE; - #endif - edma_set_ethtool_ops(edma_netdev[i]); - diff --git a/target/linux/layerscape/patches-4.14/301-arch-support-layerscape.patch b/target/linux/layerscape/patches-4.14/301-arch-support-layerscape.patch index 59ed1305671..302645e776c 100644 --- a/target/linux/layerscape/patches-4.14/301-arch-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/301-arch-support-layerscape.patch @@ -276,7 +276,7 @@ Signed-off-by: Zhao Qiang #define PROT_SECT_DEVICE_nGnRE (PROT_SECT_DEFAULT | PMD_SECT_PXN | PMD_SECT_UXN | PMD_ATTRINDX(MT_DEVICE_nGnRE)) #define PROT_SECT_NORMAL (PROT_SECT_DEFAULT | PMD_SECT_PXN | PMD_SECT_UXN | PMD_ATTRINDX(MT_NORMAL)) @@ -68,6 +69,7 @@ - #define PAGE_HYP_DEVICE __pgprot(PROT_DEVICE_nGnRE | PTE_HYP) + #define PAGE_HYP_DEVICE __pgprot(_PROT_DEFAULT | PTE_ATTRINDX(MT_DEVICE_nGnRE) | PTE_HYP | PTE_HYP_XN) #define PAGE_S2 __pgprot(_PROT_DEFAULT | PTE_S2_MEMATTR(MT_S2_NORMAL) | PTE_S2_RDONLY) +#define PAGE_S2_NS __pgprot(PTE_S2_MEMATTR(MT_S2_NORMAL) | PTE_S2_RDWR | PTE_TYPE_PAGE | PTE_AF) diff --git a/target/linux/layerscape/patches-4.14/802-dma-support-layerscape.patch b/target/linux/layerscape/patches-4.14/802-dma-support-layerscape.patch index e39bae0d1d5..0b75847281a 100644 --- a/target/linux/layerscape/patches-4.14/802-dma-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/802-dma-support-layerscape.patch @@ -2964,7 +2964,7 @@ Signed-off-by: Yuan Yao dst_addr = sg_dma_address(sg); soff = 0; doff = fsl_chan->fsc.addr_width; -@@ -802,6 +858,7 @@ static void fsl_edma_free_chan_resources +@@ -809,6 +865,7 @@ static void fsl_edma_free_chan_resources fsl_edma_chan_mux(fsl_chan, 0, false); fsl_chan->edesc = NULL; vchan_get_all_descriptors(&fsl_chan->vchan, &head); @@ -2972,7 +2972,7 @@ Signed-off-by: Yuan Yao spin_unlock_irqrestore(&fsl_chan->vchan.lock, flags); vchan_dma_desc_free_list(&fsl_chan->vchan, &head); -@@ -937,6 +994,7 @@ static int fsl_edma_probe(struct platfor +@@ -944,6 +1001,7 @@ static int fsl_edma_probe(struct platfor fsl_chan->slave_id = 0; fsl_chan->idle = true; fsl_chan->vchan.desc_free = fsl_edma_free_desc; diff --git a/target/linux/layerscape/patches-4.14/816-pcie-support-layerscape.patch b/target/linux/layerscape/patches-4.14/816-pcie-support-layerscape.patch index 1875c8931d9..e7c42d8d9b1 100644 --- a/target/linux/layerscape/patches-4.14/816-pcie-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/816-pcie-support-layerscape.patch @@ -5604,7 +5604,7 @@ Signed-off-by: Yangbo Lu * them, we have to fall back to INTx or other interrupts, e.g., a --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c -@@ -3395,6 +3395,13 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_A +@@ -3408,6 +3408,13 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_A DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATHEROS, 0x0033, quirk_no_bus_reset); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATHEROS, 0x0034, quirk_no_bus_reset); diff --git a/target/linux/layerscape/patches-4.14/818-qspi-support-layerscape.patch b/target/linux/layerscape/patches-4.14/818-qspi-support-layerscape.patch index 1546e4b6a77..3e482465b4d 100644 --- a/target/linux/layerscape/patches-4.14/818-qspi-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/818-qspi-support-layerscape.patch @@ -730,16 +730,3 @@ Signed-off-by: Yogesh Gaur { "w25x32", INFO(0xef3016, 0, 64 * 1024, 64, SECT_4K) }, { "w25q20cl", INFO(0xef4012, 0, 64 * 1024, 4, SECT_4K) }, { "w25q20bw", INFO(0xef5012, 0, 64 * 1024, 4, SECT_4K) }, ---- a/drivers/spi/spi-fsl-dspi.c -+++ b/drivers/spi/spi-fsl-dspi.c -@@ -1024,8 +1024,8 @@ static int dspi_probe(struct platform_de - goto out_clk_put; - } - -- ret = devm_request_irq(&pdev->dev, dspi->irq, dspi_interrupt, 0, -- pdev->name, dspi); -+ ret = devm_request_irq(&pdev->dev, dspi->irq, dspi_interrupt, -+ IRQF_SHARED, pdev->name, dspi); - if (ret < 0) { - dev_err(&pdev->dev, "Unable to attach DSPI interrupt\n"); - goto out_clk_put; 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 f17da7003fc..3ead12e8082 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 -@@ -289,12 +289,13 @@ static bool need_bw_sch(struct usb_host_ +@@ -293,12 +293,13 @@ static bool need_bw_sch(struct usb_host_ int xhci_mtk_sch_init(struct xhci_hcd_mtk *mtk) { diff --git a/target/linux/mediatek/patches-4.14/0191-usb-xhci-allow-imod-interval-to-be-configurable.patch b/target/linux/mediatek/patches-4.14/0191-usb-xhci-allow-imod-interval-to-be-configurable.patch index df099ea3f3b..32b4e636800 100644 --- a/target/linux/mediatek/patches-4.14/0191-usb-xhci-allow-imod-interval-to-be-configurable.patch +++ b/target/linux/mediatek/patches-4.14/0191-usb-xhci-allow-imod-interval-to-be-configurable.patch @@ -86,7 +86,7 @@ Signed-off-by: Greg Kroah-Hartman if (!xhci->shared_hcd) { --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -280,6 +280,9 @@ static int xhci_pci_setup(struct usb_hcd +@@ -283,6 +283,9 @@ static int xhci_pci_setup(struct usb_hcd if (!xhci->sbrn) pci_read_config_byte(pdev, XHCI_SBRN_OFFSET, &xhci->sbrn); diff --git a/target/linux/mediatek/patches-4.14/0199-thermal-mtk-Cleanup-unused-defines.patch b/target/linux/mediatek/patches-4.14/0199-thermal-mtk-Cleanup-unused-defines.patch index af910a66607..a7288acdf1f 100644 --- a/target/linux/mediatek/patches-4.14/0199-thermal-mtk-Cleanup-unused-defines.patch +++ b/target/linux/mediatek/patches-4.14/0199-thermal-mtk-Cleanup-unused-defines.patch @@ -40,7 +40,7 @@ Signed-off-by: Eduardo Valentin struct mtk_thermal; struct thermal_bank_cfg { -@@ -767,7 +760,7 @@ static struct platform_driver mtk_therma +@@ -765,7 +758,7 @@ static struct platform_driver mtk_therma .probe = mtk_thermal_probe, .remove = mtk_thermal_remove, .driver = { diff --git a/target/linux/mediatek/patches-4.14/0200-thermal-mediatek-add-support-for-MT7622-SoC.patch b/target/linux/mediatek/patches-4.14/0200-thermal-mediatek-add-support-for-MT7622-SoC.patch index 1dc293641ed..731bd163d87 100644 --- a/target/linux/mediatek/patches-4.14/0200-thermal-mediatek-add-support-for-MT7622-SoC.patch +++ b/target/linux/mediatek/patches-4.14/0200-thermal-mediatek-add-support-for-MT7622-SoC.patch @@ -68,7 +68,7 @@ Signed-off-by: Shunli Wang /** * raw_to_mcelsius - convert a raw ADC value to mcelsius * @mt: The thermal controller -@@ -633,6 +664,10 @@ static const struct of_device_id mtk_the +@@ -631,6 +662,10 @@ static const struct of_device_id mtk_the { .compatible = "mediatek,mt2712-thermal", .data = (void *)&mt2712_thermal_data, diff --git a/target/linux/ramips/patches-4.14/0069-awake-rt305x-dwc2-controller.patch b/target/linux/ramips/patches-4.14/0069-awake-rt305x-dwc2-controller.patch index 0e09e1d4e0d..e75d19dfce8 100644 --- a/target/linux/ramips/patches-4.14/0069-awake-rt305x-dwc2-controller.patch +++ b/target/linux/ramips/patches-4.14/0069-awake-rt305x-dwc2-controller.patch @@ -1,6 +1,6 @@ --- a/drivers/usb/dwc2/platform.c +++ b/drivers/usb/dwc2/platform.c -@@ -406,6 +406,12 @@ static int dwc2_driver_probe(struct plat +@@ -407,6 +407,12 @@ static int dwc2_driver_probe(struct plat if (retval) return retval;