Browse Source

kernel: bump 4.14 to 4.14.41

Refreshed all patches

Dropped upstreamed patches:
522-PCI-aardvark-fix-logic-in-PCI-configuration-read-write-functions.patch
523-PCI-aardvark-set-PIO_ADDR_LS-correctly-in-advk_pcie_rd_conf.patch
525-PCI-aardvark-use-isr1-instead-of-isr0-interrupt-in-legacy-irq-mode.patch
527-PCI-aardvark-fix-PCIe-max-read-request-size-setting.patch

updated patches:
524-PCI-aardvark-set-host-and-device-to-the-same-MAX-payload-size.patch
030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch

Added new ARM64 symbol: CONFIG_ARM64_ERRATUM_1024718

Compile-tested on: cns3xxx, imx6, mvebu (arm64), x86_64
Runtime-tested on: cns3xxx, imx6, x86_64

Signed-off-by: Koen Vandeputte <[email protected]>
Koen Vandeputte 7 years ago
parent
commit
e2aa0c3f8b
65 changed files with 257 additions and 930 deletions
  1. 2 2
      include/kernel-version.mk
  2. 3 3
      target/linux/apm821xx/patches-4.14/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch
  3. 1 1
      target/linux/apm821xx/patches-4.14/802-usb-xhci-force-msi-renesas-xhci.patch
  4. 1 6
      target/linux/ath79/patches-4.14/0001-tty-serial-drop-QCA-pecific-SoC-symbols.patch
  5. 1 6
      target/linux/ath79/patches-4.14/0002-watchdog-ath79-fix-maximum-timeout.patch
  6. 5 11
      target/linux/ath79/patches-4.14/0003-leds-add-reset-controller-based-driver.patch
  7. 6 14
      target/linux/ath79/patches-4.14/0004-phy-add-ath79-usb-phys.patch
  8. 1 6
      target/linux/ath79/patches-4.14/0005-usb-add-more-OF-quirk-properties.patch
  9. 2 7
      target/linux/ath79/patches-4.14/0006-usb-drop-deprecated-symbols.patch
  10. 0 8
      target/linux/ath79/patches-4.14/0007-irqchip-irq-ath79-intc-add-irq-cascade-driver-for-QC.patch
  11. 0 5
      target/linux/ath79/patches-4.14/0008-irqchip-irq-ath79-cpu-drop-OF-init-helper.patch
  12. 1 7
      target/linux/ath79/patches-4.14/0009-MIPS-ath79-add-lots-of-missing-registers.patch
  13. 1 6
      target/linux/ath79/patches-4.14/0010-MIPS-ath79-select-the-PINCTRL-subsystem.patch
  14. 0 5
      target/linux/ath79/patches-4.14/0011-MIPS-ath79-fix-register-address-in-ath79_ddr_wb_flus.patch
  15. 0 5
      target/linux/ath79/patches-4.14/0012-MIPS-ath79-Avoid-using-unitialized-reg-variable.patch
  16. 2 9
      target/linux/ath79/patches-4.14/0013-MIPS-ath79-fix-system-restart.patch
  17. 0 5
      target/linux/ath79/patches-4.14/0014-MIPS-ath79-finetune-cpu-overrides.patch
  18. 1 6
      target/linux/ath79/patches-4.14/0015-MIPS-ath79-enable-uart-during-early_prink.patch
  19. 4 23
      target/linux/ath79/patches-4.14/0016-MIPS-ath79-add-support-for-QCA953x-SoC.patch
  20. 4 25
      target/linux/ath79/patches-4.14/0017-MIPS-ath79-add-support-for-qca956x-soc.patch
  21. 2 7
      target/linux/ath79/patches-4.14/0019-MIPS-ath79-get-PCIe-controller-out-of-reset.patch
  22. 6 11
      target/linux/ath79/patches-4.14/0020-MIPS-ath79-turn-pci-ar71xx-driver-into-a-pure-OF-dri.patch
  23. 4 9
      target/linux/ath79/patches-4.14/0021-MIPS-ath79-turn-pci-ar724x-driver-into-a-pure-OF-dri.patch
  24. 6 14
      target/linux/ath79/patches-4.14/0022-MIPS-ath79-drop-pci.c.patch
  25. 9 23
      target/linux/ath79/patches-4.14/0023-MIPS-ath79-drop-mach-files.patch
  26. 0 41
      target/linux/ath79/patches-4.14/0024-MIPS-ath79-drop-pdata-helpers.patch
  27. 0 10
      target/linux/ath79/patches-4.14/0025-MIPS-ath79-drop-irq.c.patch
  28. 8 16
      target/linux/ath79/patches-4.14/0026-MIPS-ath79-sanitize-Kconfig-symbols.patch
  29. 7 15
      target/linux/ath79/patches-4.14/0027-MIPS-ath79-drop-mips_machine-support.patch
  30. 2 2
      target/linux/ath79/patches-4.14/0028-MIPS-ath79-add-helpers-for-setting-clocks-and-expose.patch
  31. 2 4
      target/linux/ath79/patches-4.14/004-register_gpio_driver_earlier.patch
  32. 4 8
      target/linux/ath79/patches-4.14/405-mtd-tp-link-partition-parser.patch
  33. 1 1
      target/linux/ath79/patches-4.14/420-net-ar71xx_mac_driver.patch
  34. 1 1
      target/linux/ath79/patches-4.14/430-drivers-link-spi-before-mtd.patch
  35. 3 3
      target/linux/ath79/patches-4.14/461-spi-ath79-add-fast-flash-read.patch
  36. 3 7
      target/linux/ath79/patches-4.14/470-MIPS-ath79-swizzle-pci-address-for-ar71xx.patch
  37. 3 3
      target/linux/ath79/patches-4.14/490-usb-ehci-add-quirks-for-qca-socs.patch
  38. 2 4
      target/linux/ath79/patches-4.14/901-phy-mdio-bitbang-prevent-rescheduling-during-command.patch
  39. 89 169
      target/linux/ath79/patches-4.14/910-unaligned_access_hacks.patch
  40. 1 1
      target/linux/bcm53xx/patches-4.14/910-Revert-earlycon-initialise-baud-field-of-earlycon-de.patch
  41. 4 4
      target/linux/brcm47xx/patches-4.14/159-cpu_fixes.patch
  42. 3 3
      target/linux/brcm63xx/patches-4.14/120-mtd-add-of_match_table-parsing-for-partition-parsers.patch
  43. 1 6
      target/linux/gemini/patches-4.14/0032-usb-host-fotg2-restart-hcd-after-port-reset.patch
  44. 0 7
      target/linux/gemini/patches-4.14/0033-ARM-dts-Fix-bootargs-for-Gemini-D-Link-devices.patch
  45. 0 7
      target/linux/gemini/patches-4.14/0034-ARM-dts-Add-ethernet-to-a-bunch-of-platforms.patch
  46. 0 2
      target/linux/gemini/patches-4.14/0905-arm-dts-gemini-dlink-dir-685-add-rtl8366rb.patch
  47. 7 7
      target/linux/generic/backport-4.14/030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch
  48. 1 0
      target/linux/generic/config-4.14
  49. 2 4
      target/linux/generic/pending-4.14/103-MIPS-c-r4k-fix-data-corruption-related-to-cache-coherence.patch
  50. 1 1
      target/linux/generic/pending-4.14/181-net-usb-add-lte-modem-wistron-neweb-d18q1.patch
  51. 1 1
      target/linux/generic/pending-4.14/182-net-qmi_wwan-add-BroadMobi-BM806U-2020-2033.patch
  52. 1 1
      target/linux/generic/pending-4.14/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch
  53. 8 8
      target/linux/generic/pending-4.14/630-packet_socket_type.patch
  54. 1 1
      target/linux/generic/pending-4.14/644-net-pppoe-support-hardware-flow-table-offload.patch
  55. 11 11
      target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
  56. 8 8
      target/linux/generic/pending-4.14/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
  57. 4 4
      target/linux/generic/pending-4.14/834-ledtrig-libata.patch
  58. 0 66
      target/linux/mvebu/patches-4.14/522-PCI-aardvark-fix-logic-in-PCI-configuration-read-write-functions.patch
  59. 0 53
      target/linux/mvebu/patches-4.14/523-PCI-aardvark-set-PIO_ADDR_LS-correctly-in-advk_pcie_rd_conf.patch
  60. 6 5
      target/linux/mvebu/patches-4.14/524-PCI-aardvark-set-host-and-device-to-the-same-MAX-payload-size.patch
  61. 0 143
      target/linux/mvebu/patches-4.14/525-PCI-aardvark-use-isr1-instead-of-isr0-interrupt-in-legacy-irq-mode.patch
  62. 0 63
      target/linux/mvebu/patches-4.14/527-PCI-aardvark-fix-PCIe-max-read-request-size-setting.patch
  63. 2 2
      target/linux/ramips/patches-4.14/0036-mtd-fix-cfi-cmdset-0002-erase-status-check.patch
  64. 3 3
      target/linux/ramips/patches-4.14/0037-mtd-cfi-cmdset-0002-force-word-write.patch
  65. 5 11
      target/linux/ramips/patches-4.14/0043-spi-add-mt7621-support.patch

+ 2 - 2
include/kernel-version.mk

@@ -4,13 +4,13 @@ LINUX_RELEASE?=1
 
 
 LINUX_VERSION-3.18 = .71
 LINUX_VERSION-3.18 = .71
 LINUX_VERSION-4.4 = .121
 LINUX_VERSION-4.4 = .121
-LINUX_VERSION-4.14 = .37
 LINUX_VERSION-4.9 = .100
 LINUX_VERSION-4.9 = .100
+LINUX_VERSION-4.14 = .41
 
 
 LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240
 LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240
 LINUX_KERNEL_HASH-4.4.121 = 44a88268b5088dc326b30c9b9133ac35a9a200b636b7268d08f32abeae6ca729
 LINUX_KERNEL_HASH-4.4.121 = 44a88268b5088dc326b30c9b9133ac35a9a200b636b7268d08f32abeae6ca729
-LINUX_KERNEL_HASH-4.14.37 = 8197e7ed3620713e412905430a7bf93e2048384042ffba189a66f0eeb6908e92
 LINUX_KERNEL_HASH-4.9.100 = c5bb6f3a7113e05cbaf6e48b2b485dea4f7edae5e42b3fe81c963ba63413a77c
 LINUX_KERNEL_HASH-4.9.100 = c5bb6f3a7113e05cbaf6e48b2b485dea4f7edae5e42b3fe81c963ba63413a77c
+LINUX_KERNEL_HASH-4.14.41 = ccf1147a9b05c986728bc9fa1b407e029c23a16c9f915134dc3f6f8663d8ce6d
 
 
 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
 sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
 sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))

+ 3 - 3
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 <[email protected]>
  
  
  #include "xhci.h"
  #include "xhci.h"
  #include "xhci-trace.h"
  #include "xhci-trace.h"
-@@ -241,6 +243,458 @@ static void xhci_pme_acpi_rtd3_enable(st
+@@ -244,6 +246,458 @@ static void xhci_pme_acpi_rtd3_enable(st
  static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
  static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
  #endif /* CONFIG_ACPI */
  #endif /* CONFIG_ACPI */
  
  
@@ -503,7 +503,7 @@ Signed-off-by: Christian Lamparter <[email protected]>
  /* called during probe() after chip reset completes */
  /* called during probe() after chip reset completes */
  static int xhci_pci_setup(struct usb_hcd *hcd)
  static int xhci_pci_setup(struct usb_hcd *hcd)
  {
  {
-@@ -276,6 +730,22 @@ static int xhci_pci_probe(struct pci_dev
+@@ -279,6 +733,22 @@ static int xhci_pci_probe(struct pci_dev
  	struct hc_driver *driver;
  	struct hc_driver *driver;
  	struct usb_hcd *hcd;
  	struct usb_hcd *hcd;
  
  
@@ -526,7 +526,7 @@ Signed-off-by: Christian Lamparter <[email protected]>
  	driver = (struct hc_driver *)id->driver_data;
  	driver = (struct hc_driver *)id->driver_data;
  
  
  	/* For some HW implementation, a XHCI reset is just not enough... */
  	/* For some HW implementation, a XHCI reset is just not enough... */
-@@ -340,6 +810,16 @@ static void xhci_pci_remove(struct pci_d
+@@ -343,6 +813,16 @@ static void xhci_pci_remove(struct pci_d
  {
  {
  	struct xhci_hcd *xhci;
  	struct xhci_hcd *xhci;
  
  

+ 1 - 1
target/linux/apm821xx/patches-4.14/802-usb-xhci-force-msi-renesas-xhci.patch

@@ -13,7 +13,7 @@ produce a noisy warning.
 
 
 --- a/drivers/usb/host/xhci-pci.c
 --- a/drivers/usb/host/xhci-pci.c
 +++ b/drivers/usb/host/xhci-pci.c
 +++ b/drivers/usb/host/xhci-pci.c
-@@ -199,7 +199,7 @@ static void xhci_pci_quirks(struct devic
+@@ -202,7 +202,7 @@ static void xhci_pci_quirks(struct devic
  		xhci->quirks |= XHCI_TRUST_TX_LENGTH;
  		xhci->quirks |= XHCI_TRUST_TX_LENGTH;
  	if (pdev->vendor == PCI_VENDOR_ID_RENESAS &&
  	if (pdev->vendor == PCI_VENDOR_ID_RENESAS &&
  			pdev->device == 0x0015)
  			pdev->device == 0x0015)

+ 1 - 6
target/linux/ath79/patches-4.14/0001-tty-serial-drop-QCA-pecific-SoC-symbols.patch

@@ -8,11 +8,9 @@ Signed-off-by: John Crispin <[email protected]>
  drivers/tty/serial/Kconfig | 2 +-
  drivers/tty/serial/Kconfig | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 
-diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
-index 3682fd3e960c..c92bd969bbf9 100644
 --- a/drivers/tty/serial/Kconfig
 --- a/drivers/tty/serial/Kconfig
 +++ b/drivers/tty/serial/Kconfig
 +++ b/drivers/tty/serial/Kconfig
-@@ -1469,7 +1469,7 @@ config SERIAL_XILINX_PS_UART_CONSOLE
+@@ -1463,7 +1463,7 @@ config SERIAL_XILINX_PS_UART_CONSOLE
  
  
  config SERIAL_AR933X
  config SERIAL_AR933X
  	tristate "AR933X serial port support"
  	tristate "AR933X serial port support"
@@ -21,6 +19,3 @@ index 3682fd3e960c..c92bd969bbf9 100644
  	select SERIAL_CORE
  	select SERIAL_CORE
  	help
  	help
  	  If you have an Atheros AR933X SOC based board and want to use the
  	  If you have an Atheros AR933X SOC based board and want to use the
--- 
-2.11.0
-

+ 1 - 6
target/linux/ath79/patches-4.14/0002-watchdog-ath79-fix-maximum-timeout.patch

@@ -11,11 +11,9 @@ Signed-off-by: John Crispin <[email protected]>
  drivers/watchdog/ath79_wdt.c | 8 ++++++--
  drivers/watchdog/ath79_wdt.c | 8 ++++++--
  1 file changed, 6 insertions(+), 2 deletions(-)
  1 file changed, 6 insertions(+), 2 deletions(-)
 
 
-diff --git a/drivers/watchdog/ath79_wdt.c b/drivers/watchdog/ath79_wdt.c
-index e2209bf5fa8a..c2fc6c3d0092 100644
 --- a/drivers/watchdog/ath79_wdt.c
 --- a/drivers/watchdog/ath79_wdt.c
 +++ b/drivers/watchdog/ath79_wdt.c
 +++ b/drivers/watchdog/ath79_wdt.c
-@@ -115,10 +115,14 @@ static inline void ath79_wdt_disable(void)
+@@ -115,10 +115,14 @@ static inline void ath79_wdt_disable(voi
  
  
  static int ath79_wdt_set_timeout(int val)
  static int ath79_wdt_set_timeout(int val)
  {
  {
@@ -32,6 +30,3 @@ index e2209bf5fa8a..c2fc6c3d0092 100644
  	ath79_wdt_keepalive();
  	ath79_wdt_keepalive();
  
  
  	return 0;
  	return 0;
--- 
-2.11.0
-

+ 5 - 11
target/linux/ath79/patches-4.14/0003-leds-add-reset-controller-based-driver.patch

@@ -11,10 +11,8 @@ Signed-off-by: John Crispin <[email protected]>
  3 files changed, 149 insertions(+)
  3 files changed, 149 insertions(+)
  create mode 100644 drivers/leds/leds-reset.c
  create mode 100644 drivers/leds/leds-reset.c
 
 
-Index: linux-4.14.32/drivers/leds/Kconfig
-===================================================================
---- linux-4.14.32.orig/drivers/leds/Kconfig
-+++ linux-4.14.32/drivers/leds/Kconfig
+--- a/drivers/leds/Kconfig
++++ b/drivers/leds/Kconfig
 @@ -696,6 +696,17 @@ config LEDS_NIC78BX
 @@ -696,6 +696,17 @@ config LEDS_NIC78BX
  	  To compile this driver as a module, choose M here: the module
  	  To compile this driver as a module, choose M here: the module
  	  will be called leds-nic78bx.
  	  will be called leds-nic78bx.
@@ -33,10 +31,8 @@ Index: linux-4.14.32/drivers/leds/Kconfig
  comment "LED Triggers"
  comment "LED Triggers"
  source "drivers/leds/trigger/Kconfig"
  source "drivers/leds/trigger/Kconfig"
  
  
-Index: linux-4.14.32/drivers/leds/leds-reset.c
-===================================================================
 --- /dev/null
 --- /dev/null
-+++ linux-4.14.32/drivers/leds/leds-reset.c
++++ b/drivers/leds/leds-reset.c
 @@ -0,0 +1,137 @@
 @@ -0,0 +1,137 @@
 +/*
 +/*
 + * Copyright (C) 2018 John Crispin <[email protected]>
 + * Copyright (C) 2018 John Crispin <[email protected]>
@@ -175,10 +171,8 @@ Index: linux-4.14.32/drivers/leds/leds-reset.c
 +MODULE_DESCRIPTION("reset controller LED driver");
 +MODULE_DESCRIPTION("reset controller LED driver");
 +MODULE_LICENSE("GPL");
 +MODULE_LICENSE("GPL");
 +MODULE_ALIAS("platform:leds-reset");
 +MODULE_ALIAS("platform:leds-reset");
-Index: linux-4.14.32/drivers/leds/Makefile
-===================================================================
---- linux-4.14.32.orig/drivers/leds/Makefile
-+++ linux-4.14.32/drivers/leds/Makefile
+--- a/drivers/leds/Makefile
++++ b/drivers/leds/Makefile
 @@ -73,6 +73,7 @@ obj-$(CONFIG_LEDS_PM8058)		+= leds-pm805
 @@ -73,6 +73,7 @@ obj-$(CONFIG_LEDS_PM8058)		+= leds-pm805
  obj-$(CONFIG_LEDS_MLXCPLD)		+= leds-mlxcpld.o
  obj-$(CONFIG_LEDS_MLXCPLD)		+= leds-mlxcpld.o
  obj-$(CONFIG_LEDS_NIC78BX)		+= leds-nic78bx.o
  obj-$(CONFIG_LEDS_NIC78BX)		+= leds-nic78bx.o

+ 6 - 14
target/linux/ath79/patches-4.14/0004-phy-add-ath79-usb-phys.patch

@@ -13,10 +13,8 @@ Signed-off-by: John Crispin <[email protected]>
  create mode 100644 drivers/phy/phy-ar7100-usb.c
  create mode 100644 drivers/phy/phy-ar7100-usb.c
  create mode 100644 drivers/phy/phy-ar7200-usb.c
  create mode 100644 drivers/phy/phy-ar7200-usb.c
 
 
-Index: linux-4.14.37/drivers/phy/Kconfig
-===================================================================
---- linux-4.14.37.orig/drivers/phy/Kconfig
-+++ linux-4.14.37/drivers/phy/Kconfig
+--- a/drivers/phy/Kconfig
++++ b/drivers/phy/Kconfig
 @@ -15,6 +15,22 @@ config GENERIC_PHY
 @@ -15,6 +15,22 @@ config GENERIC_PHY
  	  phy users can obtain reference to the PHY. All the users of this
  	  phy users can obtain reference to the PHY. All the users of this
  	  framework should select this config.
  	  framework should select this config.
@@ -40,10 +38,8 @@ Index: linux-4.14.37/drivers/phy/Kconfig
  config PHY_LPC18XX_USB_OTG
  config PHY_LPC18XX_USB_OTG
  	tristate "NXP LPC18xx/43xx SoC USB OTG PHY driver"
  	tristate "NXP LPC18xx/43xx SoC USB OTG PHY driver"
  	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
  	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
-Index: linux-4.14.37/drivers/phy/Makefile
-===================================================================
---- linux-4.14.37.orig/drivers/phy/Makefile
-+++ linux-4.14.37/drivers/phy/Makefile
+--- a/drivers/phy/Makefile
++++ b/drivers/phy/Makefile
 @@ -4,6 +4,8 @@
 @@ -4,6 +4,8 @@
  #
  #
  
  
@@ -53,10 +49,8 @@ Index: linux-4.14.37/drivers/phy/Makefile
  obj-$(CONFIG_PHY_LPC18XX_USB_OTG)	+= phy-lpc18xx-usb-otg.o
  obj-$(CONFIG_PHY_LPC18XX_USB_OTG)	+= phy-lpc18xx-usb-otg.o
  obj-$(CONFIG_PHY_XGENE)			+= phy-xgene.o
  obj-$(CONFIG_PHY_XGENE)			+= phy-xgene.o
  obj-$(CONFIG_PHY_PISTACHIO_USB)		+= phy-pistachio-usb.o
  obj-$(CONFIG_PHY_PISTACHIO_USB)		+= phy-pistachio-usb.o
-Index: linux-4.14.37/drivers/phy/phy-ar7100-usb.c
-===================================================================
 --- /dev/null
 --- /dev/null
-+++ linux-4.14.37/drivers/phy/phy-ar7100-usb.c
++++ b/drivers/phy/phy-ar7100-usb.c
 @@ -0,0 +1,140 @@
 @@ -0,0 +1,140 @@
 +/*
 +/*
 + * Copyright (C) 2018 John Crispin <[email protected]>
 + * Copyright (C) 2018 John Crispin <[email protected]>
@@ -198,10 +192,8 @@ Index: linux-4.14.37/drivers/phy/phy-ar7100-usb.c
 +MODULE_DESCRIPTION("ATH79 USB PHY driver");
 +MODULE_DESCRIPTION("ATH79 USB PHY driver");
 +MODULE_AUTHOR("Alban Bedel <[email protected]>");
 +MODULE_AUTHOR("Alban Bedel <[email protected]>");
 +MODULE_LICENSE("GPL");
 +MODULE_LICENSE("GPL");
-Index: linux-4.14.37/drivers/phy/phy-ar7200-usb.c
-===================================================================
 --- /dev/null
 --- /dev/null
-+++ linux-4.14.37/drivers/phy/phy-ar7200-usb.c
++++ b/drivers/phy/phy-ar7200-usb.c
 @@ -0,0 +1,123 @@
 @@ -0,0 +1,123 @@
 +/*
 +/*
 + * Copyright (C) 2015 Alban Bedel <[email protected]>
 + * Copyright (C) 2015 Alban Bedel <[email protected]>

+ 1 - 6
target/linux/ath79/patches-4.14/0005-usb-add-more-OF-quirk-properties.patch

@@ -8,11 +8,9 @@ Signed-off-by: John Crispin <[email protected]>
  drivers/usb/host/ehci-platform.c | 5 +++++
  drivers/usb/host/ehci-platform.c | 5 +++++
  1 file changed, 5 insertions(+)
  1 file changed, 5 insertions(+)
 
 
-diff --git a/drivers/usb/host/ehci-platform.c b/drivers/usb/host/ehci-platform.c
-index b065a960adc2..b1cc841b5399 100644
 --- a/drivers/usb/host/ehci-platform.c
 --- a/drivers/usb/host/ehci-platform.c
 +++ b/drivers/usb/host/ehci-platform.c
 +++ b/drivers/usb/host/ehci-platform.c
-@@ -185,6 +185,11 @@ static int ehci_platform_probe(struct platform_device *dev)
+@@ -187,6 +187,11 @@ static int ehci_platform_probe(struct pl
  	ehci = hcd_to_ehci(hcd);
  	ehci = hcd_to_ehci(hcd);
  
  
  	if (pdata == &ehci_platform_defaults && dev->dev.of_node) {
  	if (pdata == &ehci_platform_defaults && dev->dev.of_node) {
@@ -24,6 +22,3 @@ index b065a960adc2..b1cc841b5399 100644
  		if (of_property_read_bool(dev->dev.of_node, "big-endian-regs"))
  		if (of_property_read_bool(dev->dev.of_node, "big-endian-regs"))
  			ehci->big_endian_mmio = 1;
  			ehci->big_endian_mmio = 1;
  
  
--- 
-2.11.0
-

+ 2 - 7
target/linux/ath79/patches-4.14/0006-usb-drop-deprecated-symbols.patch

@@ -8,11 +8,9 @@ Signed-off-by: John Crispin <[email protected]>
  drivers/usb/host/Kconfig | 25 -------------------------
  drivers/usb/host/Kconfig | 25 -------------------------
  1 file changed, 25 deletions(-)
  1 file changed, 25 deletions(-)
 
 
-diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
-index 4fcfb3084b36..55b45dcd7a4b 100644
 --- a/drivers/usb/host/Kconfig
 --- a/drivers/usb/host/Kconfig
 +++ b/drivers/usb/host/Kconfig
 +++ b/drivers/usb/host/Kconfig
-@@ -293,19 +293,6 @@ config USB_CNS3XXX_EHCI
+@@ -297,19 +297,6 @@ config USB_CNS3XXX_EHCI
  	  It is needed for high-speed (480Mbit/sec) USB 2.0 device
  	  It is needed for high-speed (480Mbit/sec) USB 2.0 device
  	  support.
  	  support.
  
  
@@ -32,7 +30,7 @@ index 4fcfb3084b36..55b45dcd7a4b 100644
  config USB_EHCI_HCD_PLATFORM
  config USB_EHCI_HCD_PLATFORM
  	tristate "Generic EHCI driver for a platform device"
  	tristate "Generic EHCI driver for a platform device"
  	default n
  	default n
-@@ -489,18 +476,6 @@ config USB_OHCI_HCD_DAVINCI
+@@ -493,18 +480,6 @@ config USB_OHCI_HCD_DAVINCI
  	  controller. This driver cannot currently be a loadable
  	  controller. This driver cannot currently be a loadable
  	  module because it lacks a proper PHY abstraction.
  	  module because it lacks a proper PHY abstraction.
  
  
@@ -51,6 +49,3 @@ index 4fcfb3084b36..55b45dcd7a4b 100644
  config USB_OHCI_HCD_PPC_OF_BE
  config USB_OHCI_HCD_PPC_OF_BE
  	bool "OHCI support for OF platform bus (big endian)"
  	bool "OHCI support for OF platform bus (big endian)"
  	depends on PPC
  	depends on PPC
--- 
-2.11.0
-

+ 0 - 8
target/linux/ath79/patches-4.14/0007-irqchip-irq-ath79-intc-add-irq-cascade-driver-for-QC.patch

@@ -11,8 +11,6 @@ Signed-off-by: John Crispin <[email protected]>
  2 files changed, 105 insertions(+)
  2 files changed, 105 insertions(+)
  create mode 100644 drivers/irqchip/irq-ath79-intc.c
  create mode 100644 drivers/irqchip/irq-ath79-intc.c
 
 
-diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile
-index d27e3e3619e0..f63c94a92e25 100644
 --- a/drivers/irqchip/Makefile
 --- a/drivers/irqchip/Makefile
 +++ b/drivers/irqchip/Makefile
 +++ b/drivers/irqchip/Makefile
 @@ -3,6 +3,7 @@ obj-$(CONFIG_IRQCHIP)			+= irqchip.o
 @@ -3,6 +3,7 @@ obj-$(CONFIG_IRQCHIP)			+= irqchip.o
@@ -23,9 +21,6 @@ index d27e3e3619e0..f63c94a92e25 100644
  obj-$(CONFIG_ATH79)			+= irq-ath79-misc.o
  obj-$(CONFIG_ATH79)			+= irq-ath79-misc.o
  obj-$(CONFIG_ARCH_BCM2835)		+= irq-bcm2835.o
  obj-$(CONFIG_ARCH_BCM2835)		+= irq-bcm2835.o
  obj-$(CONFIG_ARCH_BCM2835)		+= irq-bcm2836.o
  obj-$(CONFIG_ARCH_BCM2835)		+= irq-bcm2836.o
-diff --git a/drivers/irqchip/irq-ath79-intc.c b/drivers/irqchip/irq-ath79-intc.c
-new file mode 100644
-index 000000000000..a26d3efe6e10
 --- /dev/null
 --- /dev/null
 +++ b/drivers/irqchip/irq-ath79-intc.c
 +++ b/drivers/irqchip/irq-ath79-intc.c
 @@ -0,0 +1,104 @@
 @@ -0,0 +1,104 @@
@@ -133,6 +128,3 @@ index 000000000000..a26d3efe6e10
 +}
 +}
 +IRQCHIP_DECLARE(qca9556_intc, "qcom,qca9556-intc",
 +IRQCHIP_DECLARE(qca9556_intc, "qcom,qca9556-intc",
 +		qca9556_intc_of_init);
 +		qca9556_intc_of_init);
--- 
-2.11.0
-

+ 0 - 5
target/linux/ath79/patches-4.14/0008-irqchip-irq-ath79-cpu-drop-OF-init-helper.patch

@@ -8,8 +8,6 @@ Signed-off-by: John Crispin <[email protected]>
  drivers/irqchip/irq-ath79-cpu.c | 7 -------
  drivers/irqchip/irq-ath79-cpu.c | 7 -------
  1 file changed, 7 deletions(-)
  1 file changed, 7 deletions(-)
 
 
-diff --git a/drivers/irqchip/irq-ath79-cpu.c b/drivers/irqchip/irq-ath79-cpu.c
-index befe93c5a51a..f29cb9c933f5 100644
 --- a/drivers/irqchip/irq-ath79-cpu.c
 --- a/drivers/irqchip/irq-ath79-cpu.c
 +++ b/drivers/irqchip/irq-ath79-cpu.c
 +++ b/drivers/irqchip/irq-ath79-cpu.c
 @@ -88,10 +88,3 @@ static int __init ar79_cpu_intc_of_init(
 @@ -88,10 +88,3 @@ static int __init ar79_cpu_intc_of_init(
@@ -23,6 +21,3 @@ index befe93c5a51a..f29cb9c933f5 100644
 -	irq_wb_chan[3] = irq_wb_chan3;
 -	irq_wb_chan[3] = irq_wb_chan3;
 -	mips_cpu_irq_init();
 -	mips_cpu_irq_init();
 -}
 -}
--- 
-2.11.0
-

+ 1 - 7
target/linux/ath79/patches-4.14/0009-MIPS-ath79-add-lots-of-missing-registers.patch

@@ -8,8 +8,6 @@ Signed-off-by: John Crispin <[email protected]>
  arch/mips/include/asm/mach-ath79/ar71xx_regs.h | 773 ++++++++++++++++++++++++-
  arch/mips/include/asm/mach-ath79/ar71xx_regs.h | 773 ++++++++++++++++++++++++-
  1 file changed, 771 insertions(+), 2 deletions(-)
  1 file changed, 771 insertions(+), 2 deletions(-)
 
 
-diff --git a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
-index aa3800c82332..284b4fa23e03 100644
 --- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
 --- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
 +++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
 +++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
 @@ -20,6 +20,10 @@
 @@ -20,6 +20,10 @@
@@ -399,7 +397,6 @@ index aa3800c82332..284b4fa23e03 100644
  #define AR934X_RESET_USB_HOST		BIT(5)
  #define AR934X_RESET_USB_HOST		BIT(5)
  #define AR934X_RESET_USB_PHY		BIT(4)
  #define AR934X_RESET_USB_PHY		BIT(4)
  #define AR934X_RESET_USBSUS_OVERRIDE	BIT(3)
  #define AR934X_RESET_USBSUS_OVERRIDE	BIT(3)
--
 +#define AR934X_RESET_LUT		BIT(2)
 +#define AR934X_RESET_LUT		BIT(2)
 +#define AR934X_RESET_MBOX		BIT(1)
 +#define AR934X_RESET_MBOX		BIT(1)
 +#define AR934X_RESET_I2S		BIT(0)
 +#define AR934X_RESET_I2S		BIT(0)
@@ -476,7 +473,7 @@ index aa3800c82332..284b4fa23e03 100644
 +#define QCA956X_RESET_USBSUS_OVERRIDE	BIT(3)
 +#define QCA956X_RESET_USBSUS_OVERRIDE	BIT(3)
 +#define QCA956X_RESET_SWITCH_ANALOG	BIT(2)
 +#define QCA956X_RESET_SWITCH_ANALOG	BIT(2)
 +#define QCA956X_RESET_SWITCH		BIT(0)
 +#define QCA956X_RESET_SWITCH		BIT(0)
-+
+ 
 +#define AR933X_BOOTSTRAP_MDIO_GPIO_EN	BIT(18)
 +#define AR933X_BOOTSTRAP_MDIO_GPIO_EN	BIT(18)
 +#define AR933X_BOOTSTRAP_EEPBUSY	BIT(4)
 +#define AR933X_BOOTSTRAP_EEPBUSY	BIT(4)
  #define AR933X_BOOTSTRAP_REF_CLK_40	BIT(0)
  #define AR933X_BOOTSTRAP_REF_CLK_40	BIT(0)
@@ -972,6 +969,3 @@ index aa3800c82332..284b4fa23e03 100644
 +#define QCA956X_SGMII_CONFIG_MODE_CTRL_MASK	0x7
 +#define QCA956X_SGMII_CONFIG_MODE_CTRL_MASK	0x7
 +
 +
  #endif /* __ASM_MACH_AR71XX_REGS_H */
  #endif /* __ASM_MACH_AR71XX_REGS_H */
--- 
-2.11.0
-

+ 1 - 6
target/linux/ath79/patches-4.14/0010-MIPS-ath79-select-the-PINCTRL-subsystem.patch

@@ -8,11 +8,9 @@ Signed-off-by: John Crispin <[email protected]>
  arch/mips/Kconfig | 1 +
  arch/mips/Kconfig | 1 +
  1 file changed, 1 insertion(+)
  1 file changed, 1 insertion(+)
 
 
-diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
-index 8128c3b68d6b..922a53cb1b3d 100644
 --- a/arch/mips/Kconfig
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -188,6 +188,7 @@ config ATH79
+@@ -191,6 +191,7 @@ config ATH79
  	select CSRC_R4K
  	select CSRC_R4K
  	select DMA_NONCOHERENT
  	select DMA_NONCOHERENT
  	select GPIOLIB
  	select GPIOLIB
@@ -20,6 +18,3 @@ index 8128c3b68d6b..922a53cb1b3d 100644
  	select HAVE_CLK
  	select HAVE_CLK
  	select COMMON_CLK
  	select COMMON_CLK
  	select CLKDEV_LOOKUP
  	select CLKDEV_LOOKUP
--- 
-2.11.0
-

+ 0 - 5
target/linux/ath79/patches-4.14/0011-MIPS-ath79-fix-register-address-in-ath79_ddr_wb_flus.patch

@@ -14,8 +14,6 @@ Signed-off-by: Felix Fietkau <[email protected]>
  arch/mips/ath79/common.c | 2 +-
  arch/mips/ath79/common.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 
-diff --git a/arch/mips/ath79/common.c b/arch/mips/ath79/common.c
-index 10a405d593df..c782b10ddf50 100644
 --- a/arch/mips/ath79/common.c
 --- a/arch/mips/ath79/common.c
 +++ b/arch/mips/ath79/common.c
 +++ b/arch/mips/ath79/common.c
 @@ -58,7 +58,7 @@ EXPORT_SYMBOL_GPL(ath79_ddr_ctrl_init);
 @@ -58,7 +58,7 @@ EXPORT_SYMBOL_GPL(ath79_ddr_ctrl_init);
@@ -27,6 +25,3 @@ index 10a405d593df..c782b10ddf50 100644
  
  
  	/* Flush the DDR write buffer. */
  	/* Flush the DDR write buffer. */
  	__raw_writel(0x1, flush_reg);
  	__raw_writel(0x1, flush_reg);
--- 
-2.11.0
-

+ 0 - 5
target/linux/ath79/patches-4.14/0012-MIPS-ath79-Avoid-using-unitialized-reg-variable.patch

@@ -20,8 +20,6 @@ Acked-by: Gabor Juhos <[email protected]>
  arch/mips/ath79/common.c | 4 ++--
  arch/mips/ath79/common.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 
-diff --git a/arch/mips/ath79/common.c b/arch/mips/ath79/common.c
-index c782b10ddf50..a32a9181a296 100644
 --- a/arch/mips/ath79/common.c
 --- a/arch/mips/ath79/common.c
 +++ b/arch/mips/ath79/common.c
 +++ b/arch/mips/ath79/common.c
 @@ -106,7 +106,7 @@ void ath79_device_reset_set(u32 mask)
 @@ -106,7 +106,7 @@ void ath79_device_reset_set(u32 mask)
@@ -42,6 +40,3 @@ index c782b10ddf50..a32a9181a296 100644
  
  
  	spin_lock_irqsave(&ath79_device_reset_lock, flags);
  	spin_lock_irqsave(&ath79_device_reset_lock, flags);
  	t = ath79_reset_rr(reg);
  	t = ath79_reset_rr(reg);
--- 
-2.11.0
-

+ 2 - 9
target/linux/ath79/patches-4.14/0013-MIPS-ath79-fix-system-restart.patch

@@ -10,11 +10,9 @@ Signed-off-by: John Crispin <[email protected]>
  arch/mips/include/asm/mach-ath79/ath79.h | 1 +
  arch/mips/include/asm/mach-ath79/ath79.h | 1 +
  2 files changed, 2 insertions(+)
  2 files changed, 2 insertions(+)
 
 
-diff --git a/arch/mips/ath79/setup.c b/arch/mips/ath79/setup.c
-index f206dafbb0a3..26a058d58d37 100644
 --- a/arch/mips/ath79/setup.c
 --- a/arch/mips/ath79/setup.c
 +++ b/arch/mips/ath79/setup.c
 +++ b/arch/mips/ath79/setup.c
-@@ -40,6 +40,7 @@ static char ath79_sys_type[ATH79_SYS_TYPE_LEN];
+@@ -40,6 +40,7 @@ static char ath79_sys_type[ATH79_SYS_TYP
  
  
  static void ath79_restart(char *command)
  static void ath79_restart(char *command)
  {
  {
@@ -22,11 +20,9 @@ index f206dafbb0a3..26a058d58d37 100644
  	ath79_device_reset_set(AR71XX_RESET_FULL_CHIP);
  	ath79_device_reset_set(AR71XX_RESET_FULL_CHIP);
  	for (;;)
  	for (;;)
  		if (cpu_wait)
  		if (cpu_wait)
-diff --git a/arch/mips/include/asm/mach-ath79/ath79.h b/arch/mips/include/asm/mach-ath79/ath79.h
-index 441faa92c3cd..6e6c0fead776 100644
 --- a/arch/mips/include/asm/mach-ath79/ath79.h
 --- a/arch/mips/include/asm/mach-ath79/ath79.h
 +++ b/arch/mips/include/asm/mach-ath79/ath79.h
 +++ b/arch/mips/include/asm/mach-ath79/ath79.h
-@@ -134,6 +134,7 @@ static inline u32 ath79_pll_rr(unsigned reg)
+@@ -134,6 +134,7 @@ static inline u32 ath79_pll_rr(unsigned
  static inline void ath79_reset_wr(unsigned reg, u32 val)
  static inline void ath79_reset_wr(unsigned reg, u32 val)
  {
  {
  	__raw_writel(val, ath79_reset_base + reg);
  	__raw_writel(val, ath79_reset_base + reg);
@@ -34,6 +30,3 @@ index 441faa92c3cd..6e6c0fead776 100644
  }
  }
  
  
  static inline u32 ath79_reset_rr(unsigned reg)
  static inline u32 ath79_reset_rr(unsigned reg)
--- 
-2.11.0
-

+ 0 - 5
target/linux/ath79/patches-4.14/0014-MIPS-ath79-finetune-cpu-overrides.patch

@@ -8,8 +8,6 @@ Signed-off-by: Felix Fietkau <[email protected]>
  arch/mips/include/asm/mach-ath79/cpu-feature-overrides.h | 6 ++++++
  arch/mips/include/asm/mach-ath79/cpu-feature-overrides.h | 6 ++++++
  1 file changed, 6 insertions(+)
  1 file changed, 6 insertions(+)
 
 
-diff --git a/arch/mips/include/asm/mach-ath79/cpu-feature-overrides.h b/arch/mips/include/asm/mach-ath79/cpu-feature-overrides.h
-index 0089a740e5ae..026ad90c8ac0 100644
 --- a/arch/mips/include/asm/mach-ath79/cpu-feature-overrides.h
 --- a/arch/mips/include/asm/mach-ath79/cpu-feature-overrides.h
 +++ b/arch/mips/include/asm/mach-ath79/cpu-feature-overrides.h
 +++ b/arch/mips/include/asm/mach-ath79/cpu-feature-overrides.h
 @@ -36,6 +36,7 @@
 @@ -36,6 +36,7 @@
@@ -38,6 +36,3 @@ index 0089a740e5ae..026ad90c8ac0 100644
 +#define cpu_has_pindexed_dcache	0
 +#define cpu_has_pindexed_dcache	0
  
  
  #endif /* __ASM_MACH_ATH79_CPU_FEATURE_OVERRIDES_H */
  #endif /* __ASM_MACH_ATH79_CPU_FEATURE_OVERRIDES_H */
--- 
-2.11.0
-

+ 1 - 6
target/linux/ath79/patches-4.14/0015-MIPS-ath79-enable-uart-during-early_prink.patch

@@ -8,11 +8,9 @@ Signed-off-by: Gabor Juhos <[email protected]>
  arch/mips/ath79/early_printk.c | 44 +++++++++++++++++++++++++++++++++++++++++-
  arch/mips/ath79/early_printk.c | 44 +++++++++++++++++++++++++++++++++++++++++-
  1 file changed, 43 insertions(+), 1 deletion(-)
  1 file changed, 43 insertions(+), 1 deletion(-)
 
 
-diff --git a/arch/mips/ath79/early_printk.c b/arch/mips/ath79/early_printk.c
-index d1adc59af5bf..ec3978678653 100644
 --- a/arch/mips/ath79/early_printk.c
 --- a/arch/mips/ath79/early_printk.c
 +++ b/arch/mips/ath79/early_printk.c
 +++ b/arch/mips/ath79/early_printk.c
-@@ -58,6 +58,46 @@ static void prom_putchar_dummy(unsigned char ch)
+@@ -58,6 +58,46 @@ static void prom_putchar_dummy(unsigned
  	/* nothing to do */
  	/* nothing to do */
  }
  }
  
  
@@ -71,6 +69,3 @@ index d1adc59af5bf..ec3978678653 100644
  }
  }
  
  
  void prom_putchar(unsigned char ch)
  void prom_putchar(unsigned char ch)
--- 
-2.11.0
-

+ 4 - 23
target/linux/ath79/patches-4.14/0016-MIPS-ath79-add-support-for-QCA953x-SoC.patch

@@ -18,8 +18,6 @@ Signed-off-by: Matthias Schiffer <[email protected]>
  arch/mips/include/asm/mach-ath79/ath79.h | 11 ++++
  arch/mips/include/asm/mach-ath79/ath79.h | 11 ++++
  8 files changed, 162 insertions(+), 6 deletions(-)
  8 files changed, 162 insertions(+), 6 deletions(-)
 
 
-diff --git a/arch/mips/ath79/Kconfig b/arch/mips/ath79/Kconfig
-index 9547cf1ea38d..b03f5c8b9d1e 100644
 --- a/arch/mips/ath79/Kconfig
 --- a/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
 @@ -94,6 +94,10 @@ config SOC_AR934X
 @@ -94,6 +94,10 @@ config SOC_AR934X
@@ -42,11 +40,9 @@ index 9547cf1ea38d..b03f5c8b9d1e 100644
  	def_bool n
  	def_bool n
  
  
  endif
  endif
-diff --git a/arch/mips/ath79/clock.c b/arch/mips/ath79/clock.c
-index 6b1000b6a6a6..b9595b2d1b65 100644
 --- a/arch/mips/ath79/clock.c
 --- a/arch/mips/ath79/clock.c
 +++ b/arch/mips/ath79/clock.c
 +++ b/arch/mips/ath79/clock.c
-@@ -355,6 +355,91 @@ static void __init ar934x_clocks_init(void)
+@@ -355,6 +355,91 @@ static void __init ar934x_clocks_init(vo
  	iounmap(dpll_base);
  	iounmap(dpll_base);
  }
  }
  
  
@@ -147,8 +143,6 @@ index 6b1000b6a6a6..b9595b2d1b65 100644
  	else if (soc_is_qca955x())
  	else if (soc_is_qca955x())
  		qca955x_clocks_init();
  		qca955x_clocks_init();
  	else
  	else
-diff --git a/arch/mips/ath79/common.c b/arch/mips/ath79/common.c
-index a32a9181a296..a485a7c35b9b 100644
 --- a/arch/mips/ath79/common.c
 --- a/arch/mips/ath79/common.c
 +++ b/arch/mips/ath79/common.c
 +++ b/arch/mips/ath79/common.c
 @@ -103,6 +103,8 @@ void ath79_device_reset_set(u32 mask)
 @@ -103,6 +103,8 @@ void ath79_device_reset_set(u32 mask)
@@ -169,8 +163,6 @@ index a32a9181a296..a485a7c35b9b 100644
  	else if (soc_is_qca955x())
  	else if (soc_is_qca955x())
  		reg = QCA955X_RESET_REG_RESET_MODULE;
  		reg = QCA955X_RESET_REG_RESET_MODULE;
  	else
  	else
-diff --git a/arch/mips/ath79/dev-common.c b/arch/mips/ath79/dev-common.c
-index 9d0172a4dc69..99d8b88f1e6d 100644
 --- a/arch/mips/ath79/dev-common.c
 --- a/arch/mips/ath79/dev-common.c
 +++ b/arch/mips/ath79/dev-common.c
 +++ b/arch/mips/ath79/dev-common.c
 @@ -85,6 +85,7 @@ void __init ath79_register_uart(void)
 @@ -85,6 +85,7 @@ void __init ath79_register_uart(void)
@@ -191,8 +183,6 @@ index 9d0172a4dc69..99d8b88f1e6d 100644
  	} else if (soc_is_qca955x()) {
  	} else if (soc_is_qca955x()) {
  		ath79_gpio_pdata.ngpios = QCA955X_GPIO_COUNT;
  		ath79_gpio_pdata.ngpios = QCA955X_GPIO_COUNT;
  		ath79_gpio_pdata.oe_inverted = 1;
  		ath79_gpio_pdata.oe_inverted = 1;
-diff --git a/arch/mips/ath79/early_printk.c b/arch/mips/ath79/early_printk.c
-index ec3978678653..cc00839b7181 100644
 --- a/arch/mips/ath79/early_printk.c
 --- a/arch/mips/ath79/early_printk.c
 +++ b/arch/mips/ath79/early_printk.c
 +++ b/arch/mips/ath79/early_printk.c
 @@ -116,6 +116,8 @@ static void prom_putchar_init(void)
 @@ -116,6 +116,8 @@ static void prom_putchar_init(void)
@@ -204,8 +194,6 @@ index ec3978678653..cc00839b7181 100644
  	case REV_ID_MAJOR_QCA9556:
  	case REV_ID_MAJOR_QCA9556:
  	case REV_ID_MAJOR_QCA9558:
  	case REV_ID_MAJOR_QCA9558:
  		_prom_putchar = prom_putchar_ar71xx;
  		_prom_putchar = prom_putchar_ar71xx;
-diff --git a/arch/mips/ath79/irq.c b/arch/mips/ath79/irq.c
-index 2dfff1f19004..756b5aee3500 100644
 --- a/arch/mips/ath79/irq.c
 --- a/arch/mips/ath79/irq.c
 +++ b/arch/mips/ath79/irq.c
 +++ b/arch/mips/ath79/irq.c
 @@ -56,6 +56,34 @@ static void ar934x_ip2_irq_init(void)
 @@ -56,6 +56,34 @@ static void ar934x_ip2_irq_init(void)
@@ -269,11 +257,9 @@ index 2dfff1f19004..756b5aee3500 100644
  	else if (soc_is_qca955x())
  	else if (soc_is_qca955x())
  		qca955x_irq_init();
  		qca955x_irq_init();
  }
  }
-diff --git a/arch/mips/ath79/setup.c b/arch/mips/ath79/setup.c
-index 26a058d58d37..f782ae6c77d6 100644
 --- a/arch/mips/ath79/setup.c
 --- a/arch/mips/ath79/setup.c
 +++ b/arch/mips/ath79/setup.c
 +++ b/arch/mips/ath79/setup.c
-@@ -60,6 +60,7 @@ static void __init ath79_detect_sys_type(void)
+@@ -60,6 +60,7 @@ static void __init ath79_detect_sys_type
  	u32 major;
  	u32 major;
  	u32 minor;
  	u32 minor;
  	u32 rev = 0;
  	u32 rev = 0;
@@ -281,7 +267,7 @@ index 26a058d58d37..f782ae6c77d6 100644
  
  
  	id = ath79_reset_rr(AR71XX_RESET_REG_REV_ID);
  	id = ath79_reset_rr(AR71XX_RESET_REG_REV_ID);
  	major = id & REV_ID_MAJOR_MASK;
  	major = id & REV_ID_MAJOR_MASK;
-@@ -152,6 +153,17 @@ static void __init ath79_detect_sys_type(void)
+@@ -152,6 +153,17 @@ static void __init ath79_detect_sys_type
  		rev = id & AR934X_REV_ID_REVISION_MASK;
  		rev = id & AR934X_REV_ID_REVISION_MASK;
  		break;
  		break;
  
  
@@ -299,7 +285,7 @@ index 26a058d58d37..f782ae6c77d6 100644
  	case REV_ID_MAJOR_QCA9556:
  	case REV_ID_MAJOR_QCA9556:
  		ath79_soc = ATH79_SOC_QCA9556;
  		ath79_soc = ATH79_SOC_QCA9556;
  		chip = "9556";
  		chip = "9556";
-@@ -168,11 +180,12 @@ static void __init ath79_detect_sys_type(void)
+@@ -168,11 +180,12 @@ static void __init ath79_detect_sys_type
  		panic("ath79: unknown SoC, id:0x%08x", id);
  		panic("ath79: unknown SoC, id:0x%08x", id);
  	}
  	}
  
  
@@ -316,8 +302,6 @@ index 26a058d58d37..f782ae6c77d6 100644
  	else
  	else
  		sprintf(ath79_sys_type, "Atheros AR%s rev %u", chip, rev);
  		sprintf(ath79_sys_type, "Atheros AR%s rev %u", chip, rev);
  	pr_info("SoC: %s\n", ath79_sys_type);
  	pr_info("SoC: %s\n", ath79_sys_type);
-diff --git a/arch/mips/include/asm/mach-ath79/ath79.h b/arch/mips/include/asm/mach-ath79/ath79.h
-index 6e6c0fead776..98a7ccf3d358 100644
 --- a/arch/mips/include/asm/mach-ath79/ath79.h
 --- a/arch/mips/include/asm/mach-ath79/ath79.h
 +++ b/arch/mips/include/asm/mach-ath79/ath79.h
 +++ b/arch/mips/include/asm/mach-ath79/ath79.h
 @@ -32,6 +32,7 @@ enum ath79_soc_type {
 @@ -32,6 +32,7 @@ enum ath79_soc_type {
@@ -345,6 +329,3 @@ index 6e6c0fead776..98a7ccf3d358 100644
  static inline int soc_is_qca9556(void)
  static inline int soc_is_qca9556(void)
  {
  {
  	return ath79_soc == ATH79_SOC_QCA9556;
  	return ath79_soc == ATH79_SOC_QCA9556;
--- 
-2.11.0
-

+ 4 - 25
target/linux/ath79/patches-4.14/0017-MIPS-ath79-add-support-for-qca956x-soc.patch

@@ -22,8 +22,6 @@ Signed-off-by: Weijie Gao <[email protected]>
  arch/mips/include/asm/mach-ath79/ath79.h | 22 ++++++++
  arch/mips/include/asm/mach-ath79/ath79.h | 22 ++++++++
  9 files changed, 245 insertions(+), 4 deletions(-)
  9 files changed, 245 insertions(+), 4 deletions(-)
 
 
-diff --git a/arch/mips/ath79/Kconfig b/arch/mips/ath79/Kconfig
-index b03f5c8b9d1e..ad56cdbc8abd 100644
 --- a/arch/mips/ath79/Kconfig
 --- a/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
 @@ -119,7 +119,7 @@ config ATH79_DEV_USB
 @@ -119,7 +119,7 @@ config ATH79_DEV_USB
@@ -35,11 +33,9 @@ index b03f5c8b9d1e..ad56cdbc8abd 100644
  	def_bool n
  	def_bool n
  
  
  endif
  endif
-diff --git a/arch/mips/ath79/clock.c b/arch/mips/ath79/clock.c
-index b9595b2d1b65..65701b45fb1b 100644
 --- a/arch/mips/ath79/clock.c
 --- a/arch/mips/ath79/clock.c
 +++ b/arch/mips/ath79/clock.c
 +++ b/arch/mips/ath79/clock.c
-@@ -525,6 +525,100 @@ static void __init qca955x_clocks_init(void)
+@@ -525,6 +525,100 @@ static void __init qca955x_clocks_init(v
  	clk_add_alias("uart", NULL, "ref", NULL);
  	clk_add_alias("uart", NULL, "ref", NULL);
  }
  }
  
  
@@ -149,8 +145,6 @@ index b9595b2d1b65..65701b45fb1b 100644
  	else
  	else
  		BUG();
  		BUG();
  }
  }
-diff --git a/arch/mips/ath79/common.c b/arch/mips/ath79/common.c
-index a485a7c35b9b..fc3438150b3e 100644
 --- a/arch/mips/ath79/common.c
 --- a/arch/mips/ath79/common.c
 +++ b/arch/mips/ath79/common.c
 +++ b/arch/mips/ath79/common.c
 @@ -107,6 +107,8 @@ void ath79_device_reset_set(u32 mask)
 @@ -107,6 +107,8 @@ void ath79_device_reset_set(u32 mask)
@@ -171,8 +165,6 @@ index a485a7c35b9b..fc3438150b3e 100644
  	else
  	else
  		panic("Reset register not defined for this SOC");
  		panic("Reset register not defined for this SOC");
  
  
-diff --git a/arch/mips/ath79/dev-common.c b/arch/mips/ath79/dev-common.c
-index 99d8b88f1e6d..ac8bfe86b656 100644
 --- a/arch/mips/ath79/dev-common.c
 --- a/arch/mips/ath79/dev-common.c
 +++ b/arch/mips/ath79/dev-common.c
 +++ b/arch/mips/ath79/dev-common.c
 @@ -86,7 +86,9 @@ void __init ath79_register_uart(void)
 @@ -86,7 +86,9 @@ void __init ath79_register_uart(void)
@@ -196,8 +188,6 @@ index 99d8b88f1e6d..ac8bfe86b656 100644
  	} else {
  	} else {
  		BUG();
  		BUG();
  	}
  	}
-diff --git a/arch/mips/ath79/early_printk.c b/arch/mips/ath79/early_printk.c
-index cc00839b7181..2024a0bb9144 100644
 --- a/arch/mips/ath79/early_printk.c
 --- a/arch/mips/ath79/early_printk.c
 +++ b/arch/mips/ath79/early_printk.c
 +++ b/arch/mips/ath79/early_printk.c
 @@ -120,6 +120,8 @@ static void prom_putchar_init(void)
 @@ -120,6 +120,8 @@ static void prom_putchar_init(void)
@@ -209,8 +199,6 @@ index cc00839b7181..2024a0bb9144 100644
  		_prom_putchar = prom_putchar_ar71xx;
  		_prom_putchar = prom_putchar_ar71xx;
  		break;
  		break;
  
  
-diff --git a/arch/mips/ath79/irq.c b/arch/mips/ath79/irq.c
-index 756b5aee3500..58d17ef6f58f 100644
 --- a/arch/mips/ath79/irq.c
 --- a/arch/mips/ath79/irq.c
 +++ b/arch/mips/ath79/irq.c
 +++ b/arch/mips/ath79/irq.c
 @@ -156,6 +156,87 @@ static void qca955x_irq_init(void)
 @@ -156,6 +156,87 @@ static void qca955x_irq_init(void)
@@ -319,11 +307,9 @@ index 756b5aee3500..58d17ef6f58f 100644
 +	else if (soc_is_qca956x() || soc_is_tp9343())
 +	else if (soc_is_qca956x() || soc_is_tp9343())
 +		qca956x_irq_init();
 +		qca956x_irq_init();
  }
  }
-diff --git a/arch/mips/ath79/pci.c b/arch/mips/ath79/pci.c
-index b816cb4a25ff..d905a67e1a07 100644
 --- a/arch/mips/ath79/pci.c
 --- a/arch/mips/ath79/pci.c
 +++ b/arch/mips/ath79/pci.c
 +++ b/arch/mips/ath79/pci.c
-@@ -82,6 +82,9 @@ int pcibios_map_irq(const struct pci_dev *dev, uint8_t slot, uint8_t pin)
+@@ -82,6 +82,9 @@ int pcibios_map_irq(const struct pci_dev
  		} else if (soc_is_qca955x()) {
  		} else if (soc_is_qca955x()) {
  			ath79_pci_irq_map = qca955x_pci_irq_map;
  			ath79_pci_irq_map = qca955x_pci_irq_map;
  			ath79_pci_nr_irqs = ARRAY_SIZE(qca955x_pci_irq_map);
  			ath79_pci_nr_irqs = ARRAY_SIZE(qca955x_pci_irq_map);
@@ -349,11 +335,9 @@ index b816cb4a25ff..d905a67e1a07 100644
  	} else {
  	} else {
  		/* No PCI support */
  		/* No PCI support */
  		return -ENODEV;
  		return -ENODEV;
-diff --git a/arch/mips/ath79/setup.c b/arch/mips/ath79/setup.c
-index f782ae6c77d6..4c7a93f4039a 100644
 --- a/arch/mips/ath79/setup.c
 --- a/arch/mips/ath79/setup.c
 +++ b/arch/mips/ath79/setup.c
 +++ b/arch/mips/ath79/setup.c
-@@ -176,6 +176,18 @@ static void __init ath79_detect_sys_type(void)
+@@ -176,6 +176,18 @@ static void __init ath79_detect_sys_type
  		rev = id & QCA955X_REV_ID_REVISION_MASK;
  		rev = id & QCA955X_REV_ID_REVISION_MASK;
  		break;
  		break;
  
  
@@ -372,7 +356,7 @@ index f782ae6c77d6..4c7a93f4039a 100644
  	default:
  	default:
  		panic("ath79: unknown SoC, id:0x%08x", id);
  		panic("ath79: unknown SoC, id:0x%08x", id);
  	}
  	}
-@@ -183,9 +195,12 @@ static void __init ath79_detect_sys_type(void)
+@@ -183,9 +195,12 @@ static void __init ath79_detect_sys_type
  	if (ver == 1)
  	if (ver == 1)
  		ath79_soc_rev = rev;
  		ath79_soc_rev = rev;
  
  
@@ -386,8 +370,6 @@ index f782ae6c77d6..4c7a93f4039a 100644
  	else
  	else
  		sprintf(ath79_sys_type, "Atheros AR%s rev %u", chip, rev);
  		sprintf(ath79_sys_type, "Atheros AR%s rev %u", chip, rev);
  	pr_info("SoC: %s\n", ath79_sys_type);
  	pr_info("SoC: %s\n", ath79_sys_type);
-diff --git a/arch/mips/include/asm/mach-ath79/ath79.h b/arch/mips/include/asm/mach-ath79/ath79.h
-index 98a7ccf3d358..73dcd63b8243 100644
 --- a/arch/mips/include/asm/mach-ath79/ath79.h
 --- a/arch/mips/include/asm/mach-ath79/ath79.h
 +++ b/arch/mips/include/asm/mach-ath79/ath79.h
 +++ b/arch/mips/include/asm/mach-ath79/ath79.h
 @@ -35,6 +35,8 @@ enum ath79_soc_type {
 @@ -35,6 +35,8 @@ enum ath79_soc_type {
@@ -426,6 +408,3 @@ index 98a7ccf3d358..73dcd63b8243 100644
  void ath79_ddr_wb_flush(unsigned int reg);
  void ath79_ddr_wb_flush(unsigned int reg);
  void ath79_ddr_set_pci_windows(void);
  void ath79_ddr_set_pci_windows(void);
  
  
--- 
-2.11.0
-

+ 2 - 7
target/linux/ath79/patches-4.14/0019-MIPS-ath79-get-PCIe-controller-out-of-reset.patch

@@ -25,8 +25,6 @@ Signed-off-by: Mathias Kresin <[email protected]>
  arch/mips/pci/pci-ar724x.c | 42 ++++++++++++++++++++++++++++++++++++++++++
  arch/mips/pci/pci-ar724x.c | 42 ++++++++++++++++++++++++++++++++++++++++++
  1 file changed, 42 insertions(+)
  1 file changed, 42 insertions(+)
 
 
-diff --git a/arch/mips/pci/pci-ar724x.c b/arch/mips/pci/pci-ar724x.c
-index 1e23c8d587bd..64b58cc48a91 100644
 --- a/arch/mips/pci/pci-ar724x.c
 --- a/arch/mips/pci/pci-ar724x.c
 +++ b/arch/mips/pci/pci-ar724x.c
 +++ b/arch/mips/pci/pci-ar724x.c
 @@ -12,14 +12,18 @@
 @@ -12,14 +12,18 @@
@@ -48,7 +46,7 @@ index 1e23c8d587bd..64b58cc48a91 100644
  #define AR724X_PCI_RESET_LINK_UP	BIT(0)
  #define AR724X_PCI_RESET_LINK_UP	BIT(0)
  
  
  #define AR724X_PCI_INT_DEV0		BIT(14)
  #define AR724X_PCI_INT_DEV0		BIT(14)
-@@ -325,6 +329,37 @@ static void ar724x_pci_irq_init(struct ar724x_pci_controller *apc,
+@@ -325,6 +329,37 @@ static void ar724x_pci_irq_init(struct a
  					 apc);
  					 apc);
  }
  }
  
  
@@ -86,7 +84,7 @@ index 1e23c8d587bd..64b58cc48a91 100644
  static int ar724x_pci_probe(struct platform_device *pdev)
  static int ar724x_pci_probe(struct platform_device *pdev)
  {
  {
  	struct ar724x_pci_controller *apc;
  	struct ar724x_pci_controller *apc;
-@@ -383,6 +418,13 @@ static int ar724x_pci_probe(struct platform_device *pdev)
+@@ -383,6 +418,13 @@ static int ar724x_pci_probe(struct platf
  	apc->pci_controller.io_resource = &apc->io_res;
  	apc->pci_controller.io_resource = &apc->io_res;
  	apc->pci_controller.mem_resource = &apc->mem_res;
  	apc->pci_controller.mem_resource = &apc->mem_res;
  
  
@@ -100,6 +98,3 @@ index 1e23c8d587bd..64b58cc48a91 100644
  	apc->link_up = ar724x_pci_check_link(apc);
  	apc->link_up = ar724x_pci_check_link(apc);
  	if (!apc->link_up)
  	if (!apc->link_up)
  		dev_warn(&pdev->dev, "PCIe link is down\n");
  		dev_warn(&pdev->dev, "PCIe link is down\n");
--- 
-2.11.0
-

+ 6 - 11
target/linux/ath79/patches-4.14/0020-MIPS-ath79-turn-pci-ar71xx-driver-into-a-pure-OF-dri.patch

@@ -9,8 +9,6 @@ Signed-off-by: John Crispin <[email protected]>
  arch/mips/pci/pci-ar71xx.c | 81 +++++++++++++++++++++++-----------------------
  arch/mips/pci/pci-ar71xx.c | 81 +++++++++++++++++++++++-----------------------
  1 file changed, 40 insertions(+), 41 deletions(-)
  1 file changed, 40 insertions(+), 41 deletions(-)
 
 
-diff --git a/arch/mips/pci/pci-ar71xx.c b/arch/mips/pci/pci-ar71xx.c
-index bdf87b43633f..1dc9f01a495d 100644
 --- a/arch/mips/pci/pci-ar71xx.c
 --- a/arch/mips/pci/pci-ar71xx.c
 +++ b/arch/mips/pci/pci-ar71xx.c
 +++ b/arch/mips/pci/pci-ar71xx.c
 @@ -18,8 +18,11 @@
 @@ -18,8 +18,11 @@
@@ -78,7 +76,7 @@ index bdf87b43633f..1dc9f01a495d 100644
  }
  }
  
  
  static void ar71xx_pci_irq_unmask(struct irq_data *d)
  static void ar71xx_pci_irq_unmask(struct irq_data *d)
-@@ -261,7 +266,7 @@ static void ar71xx_pci_irq_unmask(struct irq_data *d)
+@@ -261,7 +266,7 @@ static void ar71xx_pci_irq_unmask(struct
  	u32 t;
  	u32 t;
  
  
  	apc = irq_data_get_irq_chip_data(d);
  	apc = irq_data_get_irq_chip_data(d);
@@ -87,7 +85,7 @@ index bdf87b43633f..1dc9f01a495d 100644
  
  
  	t = __raw_readl(base + AR71XX_RESET_REG_PCI_INT_ENABLE);
  	t = __raw_readl(base + AR71XX_RESET_REG_PCI_INT_ENABLE);
  	__raw_writel(t | (1 << irq), base + AR71XX_RESET_REG_PCI_INT_ENABLE);
  	__raw_writel(t | (1 << irq), base + AR71XX_RESET_REG_PCI_INT_ENABLE);
-@@ -278,7 +283,7 @@ static void ar71xx_pci_irq_mask(struct irq_data *d)
+@@ -278,7 +283,7 @@ static void ar71xx_pci_irq_mask(struct i
  	u32 t;
  	u32 t;
  
  
  	apc = irq_data_get_irq_chip_data(d);
  	apc = irq_data_get_irq_chip_data(d);
@@ -96,7 +94,7 @@ index bdf87b43633f..1dc9f01a495d 100644
  
  
  	t = __raw_readl(base + AR71XX_RESET_REG_PCI_INT_ENABLE);
  	t = __raw_readl(base + AR71XX_RESET_REG_PCI_INT_ENABLE);
  	__raw_writel(t & ~(1 << irq), base + AR71XX_RESET_REG_PCI_INT_ENABLE);
  	__raw_writel(t & ~(1 << irq), base + AR71XX_RESET_REG_PCI_INT_ENABLE);
-@@ -294,24 +299,30 @@ static struct irq_chip ar71xx_pci_irq_chip = {
+@@ -294,24 +299,30 @@ static struct irq_chip ar71xx_pci_irq_ch
  	.irq_mask_ack	= ar71xx_pci_irq_mask,
  	.irq_mask_ack	= ar71xx_pci_irq_mask,
  };
  };
  
  
@@ -150,7 +148,7 @@ index bdf87b43633f..1dc9f01a495d 100644
  static int ar71xx_pci_probe(struct platform_device *pdev)
  static int ar71xx_pci_probe(struct platform_device *pdev)
  {
  {
  	struct ar71xx_pci_controller *apc;
  	struct ar71xx_pci_controller *apc;
-@@ -348,26 +364,6 @@ static int ar71xx_pci_probe(struct platform_device *pdev)
+@@ -348,26 +364,6 @@ static int ar71xx_pci_probe(struct platf
  	if (apc->irq < 0)
  	if (apc->irq < 0)
  		return -EINVAL;
  		return -EINVAL;
  
  
@@ -177,7 +175,7 @@ index bdf87b43633f..1dc9f01a495d 100644
  	ar71xx_pci_reset();
  	ar71xx_pci_reset();
  
  
  	/* setup COMMAND register */
  	/* setup COMMAND register */
-@@ -380,9 +376,11 @@ static int ar71xx_pci_probe(struct platform_device *pdev)
+@@ -380,9 +376,11 @@ static int ar71xx_pci_probe(struct platf
  
  
  	ar71xx_pci_irq_init(apc);
  	ar71xx_pci_irq_init(apc);
  
  
@@ -189,7 +187,7 @@ index bdf87b43633f..1dc9f01a495d 100644
  
  
  	register_pci_controller(&apc->pci_ctrl);
  	register_pci_controller(&apc->pci_ctrl);
  
  
-@@ -393,6 +391,7 @@ static struct platform_driver ar71xx_pci_driver = {
+@@ -393,6 +391,7 @@ static struct platform_driver ar71xx_pci
  	.probe = ar71xx_pci_probe,
  	.probe = ar71xx_pci_probe,
  	.driver = {
  	.driver = {
  		.name = "ar71xx-pci",
  		.name = "ar71xx-pci",
@@ -197,6 +195,3 @@ index bdf87b43633f..1dc9f01a495d 100644
  	},
  	},
  };
  };
  
  
--- 
-2.11.0
-

+ 4 - 9
target/linux/ath79/patches-4.14/0021-MIPS-ath79-turn-pci-ar724x-driver-into-a-pure-OF-dri.patch

@@ -9,8 +9,6 @@ Signed-off-by: John Crispin <[email protected]>
  arch/mips/pci/pci-ar724x.c | 86 +++++++++++++++++++++-------------------------
  arch/mips/pci/pci-ar724x.c | 86 +++++++++++++++++++++-------------------------
  1 file changed, 40 insertions(+), 46 deletions(-)
  1 file changed, 40 insertions(+), 46 deletions(-)
 
 
-diff --git a/arch/mips/pci/pci-ar724x.c b/arch/mips/pci/pci-ar724x.c
-index 64b58cc48a91..7eb9b0999c8c 100644
 --- a/arch/mips/pci/pci-ar724x.c
 --- a/arch/mips/pci/pci-ar724x.c
 +++ b/arch/mips/pci/pci-ar724x.c
 +++ b/arch/mips/pci/pci-ar724x.c
 @@ -14,8 +14,11 @@
 @@ -14,8 +14,11 @@
@@ -91,7 +89,7 @@ index 64b58cc48a91..7eb9b0999c8c 100644
  	case 0:
  	case 0:
  		t = __raw_readl(base + AR724X_PCI_REG_INT_MASK);
  		t = __raw_readl(base + AR724X_PCI_REG_INT_MASK);
  		__raw_writel(t | AR724X_PCI_INT_DEV0,
  		__raw_writel(t | AR724X_PCI_INT_DEV0,
-@@ -273,14 +275,12 @@ static void ar724x_pci_irq_mask(struct irq_data *d)
+@@ -273,14 +275,12 @@ static void ar724x_pci_irq_mask(struct i
  {
  {
  	struct ar724x_pci_controller *apc;
  	struct ar724x_pci_controller *apc;
  	void __iomem *base;
  	void __iomem *base;
@@ -107,7 +105,7 @@ index 64b58cc48a91..7eb9b0999c8c 100644
  	case 0:
  	case 0:
  		t = __raw_readl(base + AR724X_PCI_REG_INT_MASK);
  		t = __raw_readl(base + AR724X_PCI_REG_INT_MASK);
  		__raw_writel(t & ~AR724X_PCI_INT_DEV0,
  		__raw_writel(t & ~AR724X_PCI_INT_DEV0,
-@@ -305,26 +305,32 @@ static struct irq_chip ar724x_pci_irq_chip = {
+@@ -305,26 +305,32 @@ static struct irq_chip ar724x_pci_irq_ch
  	.irq_mask_ack	= ar724x_pci_irq_mask,
  	.irq_mask_ack	= ar724x_pci_irq_mask,
  };
  };
  
  
@@ -150,7 +148,7 @@ index 64b58cc48a91..7eb9b0999c8c 100644
  	irq_set_chained_handler_and_data(apc->irq, ar724x_pci_irq_handler,
  	irq_set_chained_handler_and_data(apc->irq, ar724x_pci_irq_handler,
  					 apc);
  					 apc);
  }
  }
-@@ -394,29 +400,11 @@ static int ar724x_pci_probe(struct platform_device *pdev)
+@@ -394,29 +400,11 @@ static int ar724x_pci_probe(struct platf
  	if (apc->irq < 0)
  	if (apc->irq < 0)
  		return -EINVAL;
  		return -EINVAL;
  
  
@@ -182,7 +180,7 @@ index 64b58cc48a91..7eb9b0999c8c 100644
  
  
  	/*
  	/*
  	 * Do the full PCIE Root Complex Initialization Sequence if the PCIe
  	 * Do the full PCIE Root Complex Initialization Sequence if the PCIe
-@@ -438,10 +426,16 @@ static int ar724x_pci_probe(struct platform_device *pdev)
+@@ -438,10 +426,16 @@ static int ar724x_pci_probe(struct platf
  	return 0;
  	return 0;
  }
  }
  
  
@@ -199,6 +197,3 @@ index 64b58cc48a91..7eb9b0999c8c 100644
  	},
  	},
  };
  };
  
  
--- 
-2.11.0
-

+ 6 - 14
target/linux/ath79/patches-4.14/0022-MIPS-ath79-drop-pci.c.patch

@@ -16,10 +16,8 @@ Signed-off-by: John Crispin <[email protected]>
  delete mode 100644 arch/mips/ath79/pci.c
  delete mode 100644 arch/mips/ath79/pci.c
  create mode 100644 arch/mips/pci/fixup-ath79.c
  create mode 100644 arch/mips/pci/fixup-ath79.c
 
 
-Index: linux-4.14.25/arch/mips/ath79/Makefile
-===================================================================
---- linux-4.14.25.orig/arch/mips/ath79/Makefile
-+++ linux-4.14.25/arch/mips/ath79/Makefile
+--- a/arch/mips/ath79/Makefile
++++ b/arch/mips/ath79/Makefile
 @@ -11,7 +11,6 @@
 @@ -11,7 +11,6 @@
  obj-y	:= prom.o setup.o irq.o common.o clock.o
  obj-y	:= prom.o setup.o irq.o common.o clock.o
  
  
@@ -28,9 +26,7 @@ Index: linux-4.14.25/arch/mips/ath79/Makefile
  
  
  #
  #
  # Devices
  # Devices
-Index: linux-4.14.25/arch/mips/ath79/pci.c
-===================================================================
---- linux-4.14.25.orig/arch/mips/ath79/pci.c
+--- a/arch/mips/ath79/pci.c
 +++ /dev/null
 +++ /dev/null
 @@ -1,285 +0,0 @@
 @@ -1,285 +0,0 @@
 -/*
 -/*
@@ -318,10 +314,8 @@ Index: linux-4.14.25/arch/mips/ath79/pci.c
 -
 -
 -	return pdev ? 0 : -ENODEV;
 -	return pdev ? 0 : -ENODEV;
 -}
 -}
-Index: linux-4.14.25/arch/mips/pci/Makefile
-===================================================================
---- linux-4.14.25.orig/arch/mips/pci/Makefile
-+++ linux-4.14.25/arch/mips/pci/Makefile
+--- a/arch/mips/pci/Makefile
++++ b/arch/mips/pci/Makefile
 @@ -29,6 +29,7 @@ obj-$(CONFIG_MIPS_PCI_VIRTIO)	+= pci-vir
 @@ -29,6 +29,7 @@ obj-$(CONFIG_MIPS_PCI_VIRTIO)	+= pci-vir
  #
  #
  # These are still pretty much in the old state, watch, go blind.
  # These are still pretty much in the old state, watch, go blind.
@@ -330,10 +324,8 @@ Index: linux-4.14.25/arch/mips/pci/Makefile
  obj-$(CONFIG_LASAT)		+= pci-lasat.o
  obj-$(CONFIG_LASAT)		+= pci-lasat.o
  obj-$(CONFIG_MIPS_COBALT)	+= fixup-cobalt.o
  obj-$(CONFIG_MIPS_COBALT)	+= fixup-cobalt.o
  obj-$(CONFIG_LEMOTE_FULOONG2E)	+= fixup-fuloong2e.o ops-loongson2.o
  obj-$(CONFIG_LEMOTE_FULOONG2E)	+= fixup-fuloong2e.o ops-loongson2.o
-Index: linux-4.14.25/arch/mips/pci/fixup-ath79.c
-===================================================================
 --- /dev/null
 --- /dev/null
-+++ linux-4.14.25/arch/mips/pci/fixup-ath79.c
++++ b/arch/mips/pci/fixup-ath79.c
 @@ -0,0 +1,21 @@
 @@ -0,0 +1,21 @@
 +/*
 +/*
 + *  Copyright (C) 2018 John Crispin <[email protected]>
 + *  Copyright (C) 2018 John Crispin <[email protected]>

+ 9 - 23
target/linux/ath79/patches-4.14/0023-MIPS-ath79-drop-mach-files.patch

@@ -21,10 +21,8 @@ Signed-off-by: John Crispin <[email protected]>
  delete mode 100644 arch/mips/ath79/mach-pb44.c
  delete mode 100644 arch/mips/ath79/mach-pb44.c
  delete mode 100644 arch/mips/ath79/mach-ubnt-xm.c
  delete mode 100644 arch/mips/ath79/mach-ubnt-xm.c
 
 
-Index: linux-4.14.25/arch/mips/ath79/Kconfig
-===================================================================
---- linux-4.14.25.orig/arch/mips/ath79/Kconfig
-+++ linux-4.14.25/arch/mips/ath79/Kconfig
+--- a/arch/mips/ath79/Kconfig
++++ b/arch/mips/ath79/Kconfig
 @@ -1,79 +1,6 @@
 @@ -1,79 +1,6 @@
  # SPDX-License-Identifier: GPL-2.0
  # SPDX-License-Identifier: GPL-2.0
  if ATH79
  if ATH79
@@ -105,10 +103,8 @@ Index: linux-4.14.25/arch/mips/ath79/Kconfig
  config SOC_AR71XX
  config SOC_AR71XX
  	select HW_HAS_PCI
  	select HW_HAS_PCI
  	def_bool n
  	def_bool n
-Index: linux-4.14.25/arch/mips/ath79/Makefile
-===================================================================
---- linux-4.14.25.orig/arch/mips/ath79/Makefile
-+++ linux-4.14.25/arch/mips/ath79/Makefile
+--- a/arch/mips/ath79/Makefile
++++ b/arch/mips/ath79/Makefile
 @@ -21,13 +21,3 @@ obj-$(CONFIG_ATH79_DEV_LEDS_GPIO)	+= dev
 @@ -21,13 +21,3 @@ obj-$(CONFIG_ATH79_DEV_LEDS_GPIO)	+= dev
  obj-$(CONFIG_ATH79_DEV_SPI)		+= dev-spi.o
  obj-$(CONFIG_ATH79_DEV_SPI)		+= dev-spi.o
  obj-$(CONFIG_ATH79_DEV_USB)		+= dev-usb.o
  obj-$(CONFIG_ATH79_DEV_USB)		+= dev-usb.o
@@ -123,9 +119,7 @@ Index: linux-4.14.25/arch/mips/ath79/Makefile
 -obj-$(CONFIG_ATH79_MACH_DB120)		+= mach-db120.o
 -obj-$(CONFIG_ATH79_MACH_DB120)		+= mach-db120.o
 -obj-$(CONFIG_ATH79_MACH_PB44)		+= mach-pb44.o
 -obj-$(CONFIG_ATH79_MACH_PB44)		+= mach-pb44.o
 -obj-$(CONFIG_ATH79_MACH_UBNT_XM)	+= mach-ubnt-xm.o
 -obj-$(CONFIG_ATH79_MACH_UBNT_XM)	+= mach-ubnt-xm.o
-Index: linux-4.14.25/arch/mips/ath79/mach-ap121.c
-===================================================================
---- linux-4.14.25.orig/arch/mips/ath79/mach-ap121.c
+--- a/arch/mips/ath79/mach-ap121.c
 +++ /dev/null
 +++ /dev/null
 @@ -1,92 +0,0 @@
 @@ -1,92 +0,0 @@
 -/*
 -/*
@@ -220,9 +214,7 @@ Index: linux-4.14.25/arch/mips/ath79/mach-ap121.c
 -
 -
 -MIPS_MACHINE(ATH79_MACH_AP121, "AP121", "Atheros AP121 reference board",
 -MIPS_MACHINE(ATH79_MACH_AP121, "AP121", "Atheros AP121 reference board",
 -	     ap121_setup);
 -	     ap121_setup);
-Index: linux-4.14.25/arch/mips/ath79/mach-ap136.c
-===================================================================
---- linux-4.14.25.orig/arch/mips/ath79/mach-ap136.c
+--- a/arch/mips/ath79/mach-ap136.c
 +++ /dev/null
 +++ /dev/null
 @@ -1,156 +0,0 @@
 @@ -1,156 +0,0 @@
 -/*
 -/*
@@ -381,9 +373,7 @@ Index: linux-4.14.25/arch/mips/ath79/mach-ap136.c
 -MIPS_MACHINE(ATH79_MACH_AP136_010, "AP136-010",
 -MIPS_MACHINE(ATH79_MACH_AP136_010, "AP136-010",
 -	     "Atheros AP136-010 reference board",
 -	     "Atheros AP136-010 reference board",
 -	     ap136_setup);
 -	     ap136_setup);
-Index: linux-4.14.25/arch/mips/ath79/mach-ap81.c
-===================================================================
---- linux-4.14.25.orig/arch/mips/ath79/mach-ap81.c
+--- a/arch/mips/ath79/mach-ap81.c
 +++ /dev/null
 +++ /dev/null
 @@ -1,100 +0,0 @@
 @@ -1,100 +0,0 @@
 -/*
 -/*
@@ -486,9 +476,7 @@ Index: linux-4.14.25/arch/mips/ath79/mach-ap81.c
 -
 -
 -MIPS_MACHINE(ATH79_MACH_AP81, "AP81", "Atheros AP81 reference board",
 -MIPS_MACHINE(ATH79_MACH_AP81, "AP81", "Atheros AP81 reference board",
 -	     ap81_setup);
 -	     ap81_setup);
-Index: linux-4.14.25/arch/mips/ath79/mach-db120.c
-===================================================================
---- linux-4.14.25.orig/arch/mips/ath79/mach-db120.c
+--- a/arch/mips/ath79/mach-db120.c
 +++ /dev/null
 +++ /dev/null
 @@ -1,136 +0,0 @@
 @@ -1,136 +0,0 @@
 -/*
 -/*
@@ -627,9 +615,7 @@ Index: linux-4.14.25/arch/mips/ath79/mach-db120.c
 -
 -
 -MIPS_MACHINE(ATH79_MACH_DB120, "DB120", "Atheros DB120 reference board",
 -MIPS_MACHINE(ATH79_MACH_DB120, "DB120", "Atheros DB120 reference board",
 -	     db120_setup);
 -	     db120_setup);
-Index: linux-4.14.25/arch/mips/ath79/mach-pb44.c
-===================================================================
---- linux-4.14.25.orig/arch/mips/ath79/mach-pb44.c
+--- a/arch/mips/ath79/mach-pb44.c
 +++ /dev/null
 +++ /dev/null
 @@ -1,122 +0,0 @@
 @@ -1,122 +0,0 @@
 -/*
 -/*

+ 0 - 41
target/linux/ath79/patches-4.14/0024-MIPS-ath79-drop-pdata-helpers.patch

@@ -32,9 +32,6 @@ Signed-off-by: John Crispin <[email protected]>
  delete mode 100644 arch/mips/ath79/dev-wmac.c
  delete mode 100644 arch/mips/ath79/dev-wmac.c
  delete mode 100644 arch/mips/ath79/dev-wmac.h
  delete mode 100644 arch/mips/ath79/dev-wmac.h
 
 
-diff --git a/arch/mips/ath79/dev-common.c b/arch/mips/ath79/dev-common.c
-deleted file mode 100644
-index ac8bfe86b656..000000000000
 --- a/arch/mips/ath79/dev-common.c
 --- a/arch/mips/ath79/dev-common.c
 +++ /dev/null
 +++ /dev/null
 @@ -1,168 +0,0 @@
 @@ -1,168 +0,0 @@
@@ -206,9 +203,6 @@ index ac8bfe86b656..000000000000
 -
 -
 -	platform_device_register(&ath79_gpio_device);
 -	platform_device_register(&ath79_gpio_device);
 -}
 -}
-diff --git a/arch/mips/ath79/dev-common.h b/arch/mips/ath79/dev-common.h
-deleted file mode 100644
-index 0f514e1affce..000000000000
 --- a/arch/mips/ath79/dev-common.h
 --- a/arch/mips/ath79/dev-common.h
 +++ /dev/null
 +++ /dev/null
 @@ -1,18 +0,0 @@
 @@ -1,18 +0,0 @@
@@ -230,9 +224,6 @@ index 0f514e1affce..000000000000
 -void ath79_register_wdt(void);
 -void ath79_register_wdt(void);
 -
 -
 -#endif /* _ATH79_DEV_COMMON_H */
 -#endif /* _ATH79_DEV_COMMON_H */
-diff --git a/arch/mips/ath79/dev-gpio-buttons.c b/arch/mips/ath79/dev-gpio-buttons.c
-deleted file mode 100644
-index 366b35fb164d..000000000000
 --- a/arch/mips/ath79/dev-gpio-buttons.c
 --- a/arch/mips/ath79/dev-gpio-buttons.c
 +++ /dev/null
 +++ /dev/null
 @@ -1,56 +0,0 @@
 @@ -1,56 +0,0 @@
@@ -292,9 +283,6 @@ index 366b35fb164d..000000000000
 -err_free_buttons:
 -err_free_buttons:
 -	kfree(p);
 -	kfree(p);
 -}
 -}
-diff --git a/arch/mips/ath79/dev-gpio-buttons.h b/arch/mips/ath79/dev-gpio-buttons.h
-deleted file mode 100644
-index 481847ac1cba..000000000000
 --- a/arch/mips/ath79/dev-gpio-buttons.h
 --- a/arch/mips/ath79/dev-gpio-buttons.h
 +++ /dev/null
 +++ /dev/null
 @@ -1,23 +0,0 @@
 @@ -1,23 +0,0 @@
@@ -321,9 +309,6 @@ index 481847ac1cba..000000000000
 -				     struct gpio_keys_button *buttons);
 -				     struct gpio_keys_button *buttons);
 -
 -
 -#endif /* _ATH79_DEV_GPIO_BUTTONS_H */
 -#endif /* _ATH79_DEV_GPIO_BUTTONS_H */
-diff --git a/arch/mips/ath79/dev-leds-gpio.c b/arch/mips/ath79/dev-leds-gpio.c
-deleted file mode 100644
-index dcb1debcefb8..000000000000
 --- a/arch/mips/ath79/dev-leds-gpio.c
 --- a/arch/mips/ath79/dev-leds-gpio.c
 +++ /dev/null
 +++ /dev/null
 @@ -1,54 +0,0 @@
 @@ -1,54 +0,0 @@
@@ -381,9 +366,6 @@ index dcb1debcefb8..000000000000
 -err_free_leds:
 -err_free_leds:
 -	kfree(p);
 -	kfree(p);
 -}
 -}
-diff --git a/arch/mips/ath79/dev-leds-gpio.h b/arch/mips/ath79/dev-leds-gpio.h
-deleted file mode 100644
-index 6e5d8851ebcf..000000000000
 --- a/arch/mips/ath79/dev-leds-gpio.h
 --- a/arch/mips/ath79/dev-leds-gpio.h
 +++ /dev/null
 +++ /dev/null
 @@ -1,21 +0,0 @@
 @@ -1,21 +0,0 @@
@@ -408,9 +390,6 @@ index 6e5d8851ebcf..000000000000
 -			      struct gpio_led *leds);
 -			      struct gpio_led *leds);
 -
 -
 -#endif /* _ATH79_DEV_LEDS_GPIO_H */
 -#endif /* _ATH79_DEV_LEDS_GPIO_H */
-diff --git a/arch/mips/ath79/dev-spi.c b/arch/mips/ath79/dev-spi.c
-deleted file mode 100644
-index aa30163efbfd..000000000000
 --- a/arch/mips/ath79/dev-spi.c
 --- a/arch/mips/ath79/dev-spi.c
 +++ /dev/null
 +++ /dev/null
 @@ -1,38 +0,0 @@
 @@ -1,38 +0,0 @@
@@ -452,9 +431,6 @@ index aa30163efbfd..000000000000
 -	ath79_spi_device.dev.platform_data = pdata;
 -	ath79_spi_device.dev.platform_data = pdata;
 -	platform_device_register(&ath79_spi_device);
 -	platform_device_register(&ath79_spi_device);
 -}
 -}
-diff --git a/arch/mips/ath79/dev-spi.h b/arch/mips/ath79/dev-spi.h
-deleted file mode 100644
-index d732565ca736..000000000000
 --- a/arch/mips/ath79/dev-spi.h
 --- a/arch/mips/ath79/dev-spi.h
 +++ /dev/null
 +++ /dev/null
 @@ -1,22 +0,0 @@
 @@ -1,22 +0,0 @@
@@ -480,9 +456,6 @@ index d732565ca736..000000000000
 -			 unsigned n);
 -			 unsigned n);
 -
 -
 -#endif /* _ATH79_DEV_SPI_H */
 -#endif /* _ATH79_DEV_SPI_H */
-diff --git a/arch/mips/ath79/dev-usb.c b/arch/mips/ath79/dev-usb.c
-deleted file mode 100644
-index 8227265bcc2d..000000000000
 --- a/arch/mips/ath79/dev-usb.c
 --- a/arch/mips/ath79/dev-usb.c
 +++ /dev/null
 +++ /dev/null
 @@ -1,242 +0,0 @@
 @@ -1,242 +0,0 @@
@@ -728,9 +701,6 @@ index 8227265bcc2d..000000000000
 -	else
 -	else
 -		BUG();
 -		BUG();
 -}
 -}
-diff --git a/arch/mips/ath79/dev-usb.h b/arch/mips/ath79/dev-usb.h
-deleted file mode 100644
-index 4b86a69ca080..000000000000
 --- a/arch/mips/ath79/dev-usb.h
 --- a/arch/mips/ath79/dev-usb.h
 +++ /dev/null
 +++ /dev/null
 @@ -1,17 +0,0 @@
 @@ -1,17 +0,0 @@
@@ -751,9 +721,6 @@ index 4b86a69ca080..000000000000
 -void ath79_register_usb(void);
 -void ath79_register_usb(void);
 -
 -
 -#endif /* _ATH79_DEV_USB_H */
 -#endif /* _ATH79_DEV_USB_H */
-diff --git a/arch/mips/ath79/dev-wmac.c b/arch/mips/ath79/dev-wmac.c
-deleted file mode 100644
-index da190b1b87ce..000000000000
 --- a/arch/mips/ath79/dev-wmac.c
 --- a/arch/mips/ath79/dev-wmac.c
 +++ /dev/null
 +++ /dev/null
 @@ -1,155 +0,0 @@
 @@ -1,155 +0,0 @@
@@ -912,9 +879,6 @@ index da190b1b87ce..000000000000
 -
 -
 -	platform_device_register(&ath79_wmac_device);
 -	platform_device_register(&ath79_wmac_device);
 -}
 -}
-diff --git a/arch/mips/ath79/dev-wmac.h b/arch/mips/ath79/dev-wmac.h
-deleted file mode 100644
-index c9cd8709f090..000000000000
 --- a/arch/mips/ath79/dev-wmac.h
 --- a/arch/mips/ath79/dev-wmac.h
 +++ /dev/null
 +++ /dev/null
 @@ -1,17 +0,0 @@
 @@ -1,17 +0,0 @@
@@ -935,8 +899,6 @@ index c9cd8709f090..000000000000
 -void ath79_register_wmac(u8 *cal_data);
 -void ath79_register_wmac(u8 *cal_data);
 -
 -
 -#endif /* _ATH79_DEV_WMAC_H */
 -#endif /* _ATH79_DEV_WMAC_H */
-diff --git a/arch/mips/ath79/setup.c b/arch/mips/ath79/setup.c
-index 4c7a93f4039a..8d7ffa2e8265 100644
 --- a/arch/mips/ath79/setup.c
 --- a/arch/mips/ath79/setup.c
 +++ b/arch/mips/ath79/setup.c
 +++ b/arch/mips/ath79/setup.c
 @@ -31,7 +31,6 @@
 @@ -31,7 +31,6 @@
@@ -958,6 +920,3 @@ index 4c7a93f4039a..8d7ffa2e8265 100644
  	mips_machine_setup();
  	mips_machine_setup();
  
  
  	return 0;
  	return 0;
--- 
-2.11.0
-

+ 0 - 10
target/linux/ath79/patches-4.14/0025-MIPS-ath79-drop-irq.c.patch

@@ -13,8 +13,6 @@ Signed-off-by: John Crispin <[email protected]>
  3 files changed, 7 insertions(+), 286 deletions(-)
  3 files changed, 7 insertions(+), 286 deletions(-)
  delete mode 100644 arch/mips/ath79/irq.c
  delete mode 100644 arch/mips/ath79/irq.c
 
 
-diff --git a/arch/mips/ath79/Makefile b/arch/mips/ath79/Makefile
-index 783369bc1c5b..bd0c9b8b1b5b 100644
 --- a/arch/mips/ath79/Makefile
 --- a/arch/mips/ath79/Makefile
 +++ b/arch/mips/ath79/Makefile
 +++ b/arch/mips/ath79/Makefile
 @@ -8,7 +8,7 @@
 @@ -8,7 +8,7 @@
@@ -26,9 +24,6 @@ index 783369bc1c5b..bd0c9b8b1b5b 100644
  
  
  obj-$(CONFIG_EARLY_PRINTK)		+= early_printk.o
  obj-$(CONFIG_EARLY_PRINTK)		+= early_printk.o
  
  
-diff --git a/arch/mips/ath79/irq.c b/arch/mips/ath79/irq.c
-deleted file mode 100644
-index 58d17ef6f58f..000000000000
 --- a/arch/mips/ath79/irq.c
 --- a/arch/mips/ath79/irq.c
 +++ /dev/null
 +++ /dev/null
 @@ -1,285 +0,0 @@
 @@ -1,285 +0,0 @@
@@ -317,8 +312,6 @@ index 58d17ef6f58f..000000000000
 -	else if (soc_is_qca956x() || soc_is_tp9343())
 -	else if (soc_is_qca956x() || soc_is_tp9343())
 -		qca956x_irq_init();
 -		qca956x_irq_init();
 -}
 -}
-diff --git a/arch/mips/ath79/setup.c b/arch/mips/ath79/setup.c
-index 8d7ffa2e8265..7b089c07d2fa 100644
 --- a/arch/mips/ath79/setup.c
 --- a/arch/mips/ath79/setup.c
 +++ b/arch/mips/ath79/setup.c
 +++ b/arch/mips/ath79/setup.c
 @@ -19,6 +19,7 @@
 @@ -19,6 +19,7 @@
@@ -341,6 +334,3 @@ index 8d7ffa2e8265..7b089c07d2fa 100644
  static int __init ath79_setup(void)
  static int __init ath79_setup(void)
  {
  {
  	if  (mips_machtype == ATH79_MACH_GENERIC_OF)
  	if  (mips_machtype == ATH79_MACH_GENERIC_OF)
--- 
-2.11.0
-

+ 8 - 16
target/linux/ath79/patches-4.14/0026-MIPS-ath79-sanitize-Kconfig-symbols.patch

@@ -11,10 +11,8 @@ Signed-off-by: John Crispin <[email protected]>
  arch/mips/pci/Makefile   |  2 +-
  arch/mips/pci/Makefile   |  2 +-
  4 files changed, 8 insertions(+), 54 deletions(-)
  4 files changed, 8 insertions(+), 54 deletions(-)
 
 
-Index: linux-4.14.18/arch/mips/Kconfig
-===================================================================
---- linux-4.14.18.orig/arch/mips/Kconfig
-+++ linux-4.14.18/arch/mips/Kconfig
+--- a/arch/mips/Kconfig
++++ b/arch/mips/Kconfig
 @@ -203,6 +203,8 @@ config ATH79
 @@ -203,6 +203,8 @@ config ATH79
  	select SYS_SUPPORTS_BIG_ENDIAN
  	select SYS_SUPPORTS_BIG_ENDIAN
  	select SYS_SUPPORTS_MIPS16
  	select SYS_SUPPORTS_MIPS16
@@ -24,10 +22,8 @@ Index: linux-4.14.18/arch/mips/Kconfig
  	select USE_OF
  	select USE_OF
  	help
  	help
  	  Support for the Atheros AR71XX/AR724X/AR913X SoCs.
  	  Support for the Atheros AR71XX/AR724X/AR913X SoCs.
-Index: linux-4.14.18/arch/mips/ath79/Kconfig
-===================================================================
---- linux-4.14.18.orig/arch/mips/ath79/Kconfig
-+++ linux-4.14.18/arch/mips/ath79/Kconfig
+--- a/arch/mips/ath79/Kconfig
++++ b/arch/mips/ath79/Kconfig
 @@ -1,52 +1,14 @@
 @@ -1,52 +1,14 @@
  # SPDX-License-Identifier: GPL-2.0
  # SPDX-License-Identifier: GPL-2.0
  if ATH79
  if ATH79
@@ -86,10 +82,8 @@ Index: linux-4.14.18/arch/mips/ath79/Kconfig
  	def_bool n
  	def_bool n
  
  
  endif
  endif
-Index: linux-4.14.18/arch/mips/ath79/Makefile
-===================================================================
---- linux-4.14.18.orig/arch/mips/ath79/Makefile
-+++ linux-4.14.18/arch/mips/ath79/Makefile
+--- a/arch/mips/ath79/Makefile
++++ b/arch/mips/ath79/Makefile
 @@ -11,13 +11,3 @@
 @@ -11,13 +11,3 @@
  obj-y	:= prom.o setup.o common.o clock.o
  obj-y	:= prom.o setup.o common.o clock.o
  
  
@@ -104,10 +98,8 @@ Index: linux-4.14.18/arch/mips/ath79/Makefile
 -obj-$(CONFIG_ATH79_DEV_SPI)		+= dev-spi.o
 -obj-$(CONFIG_ATH79_DEV_SPI)		+= dev-spi.o
 -obj-$(CONFIG_ATH79_DEV_USB)		+= dev-usb.o
 -obj-$(CONFIG_ATH79_DEV_USB)		+= dev-usb.o
 -obj-$(CONFIG_ATH79_DEV_WMAC)		+= dev-wmac.o
 -obj-$(CONFIG_ATH79_DEV_WMAC)		+= dev-wmac.o
-Index: linux-4.14.18/arch/mips/pci/Makefile
-===================================================================
---- linux-4.14.18.orig/arch/mips/pci/Makefile
-+++ linux-4.14.18/arch/mips/pci/Makefile
+--- a/arch/mips/pci/Makefile
++++ b/arch/mips/pci/Makefile
 @@ -23,7 +23,7 @@ obj-$(CONFIG_BCM63XX)		+= pci-bcm63xx.o
 @@ -23,7 +23,7 @@ obj-$(CONFIG_BCM63XX)		+= pci-bcm63xx.o
  					ops-bcm63xx.o
  					ops-bcm63xx.o
  obj-$(CONFIG_MIPS_ALCHEMY)	+= pci-alchemy.o
  obj-$(CONFIG_MIPS_ALCHEMY)	+= pci-alchemy.o

+ 7 - 15
target/linux/ath79/patches-4.14/0027-MIPS-ath79-drop-mips_machine-support.patch

@@ -11,10 +11,8 @@ Signed-off-by: John Crispin <[email protected]>
  3 files changed, 10 insertions(+), 93 deletions(-)
  3 files changed, 10 insertions(+), 93 deletions(-)
  delete mode 100644 arch/mips/ath79/machtypes.h
  delete mode 100644 arch/mips/ath79/machtypes.h
 
 
-Index: linux-4.14.18/arch/mips/Kconfig
-===================================================================
---- linux-4.14.18.orig/arch/mips/Kconfig
-+++ linux-4.14.18/arch/mips/Kconfig
+--- a/arch/mips/Kconfig
++++ b/arch/mips/Kconfig
 @@ -196,7 +196,6 @@ config ATH79
 @@ -196,7 +196,6 @@ config ATH79
  	select COMMON_CLK
  	select COMMON_CLK
  	select CLKDEV_LOOKUP
  	select CLKDEV_LOOKUP
@@ -23,9 +21,7 @@ Index: linux-4.14.18/arch/mips/Kconfig
  	select SYS_HAS_CPU_MIPS32_R2
  	select SYS_HAS_CPU_MIPS32_R2
  	select SYS_HAS_EARLY_PRINTK
  	select SYS_HAS_EARLY_PRINTK
  	select SYS_SUPPORTS_32BIT_KERNEL
  	select SYS_SUPPORTS_32BIT_KERNEL
-Index: linux-4.14.18/arch/mips/ath79/machtypes.h
-===================================================================
---- linux-4.14.18.orig/arch/mips/ath79/machtypes.h
+--- a/arch/mips/ath79/machtypes.h
 +++ /dev/null
 +++ /dev/null
 @@ -1,28 +0,0 @@
 @@ -1,28 +0,0 @@
 -/*
 -/*
@@ -56,10 +52,8 @@ Index: linux-4.14.18/arch/mips/ath79/machtypes.h
 -};
 -};
 -
 -
 -#endif /* _ATH79_MACHTYPE_H */
 -#endif /* _ATH79_MACHTYPE_H */
-Index: linux-4.14.18/arch/mips/ath79/setup.c
-===================================================================
---- linux-4.14.18.orig/arch/mips/ath79/setup.c
-+++ linux-4.14.18/arch/mips/ath79/setup.c
+--- a/arch/mips/ath79/setup.c
++++ b/arch/mips/ath79/setup.c
 @@ -32,7 +32,6 @@
 @@ -32,7 +32,6 @@
  #include <asm/mach-ath79/ath79.h>
  #include <asm/mach-ath79/ath79.h>
  #include <asm/mach-ath79/ar71xx_regs.h>
  #include <asm/mach-ath79/ar71xx_regs.h>
@@ -166,10 +160,8 @@ Index: linux-4.14.18/arch/mips/ath79/setup.c
 -	     "DTB",
 -	     "DTB",
 -	     "Generic AR71XX/AR724X/AR913X based board (DT)",
 -	     "Generic AR71XX/AR724X/AR913X based board (DT)",
 -	     NULL);
 -	     NULL);
-Index: linux-4.14.18/arch/mips/ath79/clock.c
-===================================================================
---- linux-4.14.18.orig/arch/mips/ath79/clock.c
-+++ linux-4.14.18/arch/mips/ath79/clock.c
+--- a/arch/mips/ath79/clock.c
++++ b/arch/mips/ath79/clock.c
 @@ -26,7 +26,6 @@
 @@ -26,7 +26,6 @@
  #include <asm/mach-ath79/ath79.h>
  #include <asm/mach-ath79/ath79.h>
  #include <asm/mach-ath79/ar71xx_regs.h>
  #include <asm/mach-ath79/ar71xx_regs.h>

+ 2 - 2
target/linux/ath79/patches-4.14/0028-MIPS-ath79-add-helpers-for-setting-clocks-and-expose.patch

@@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 +	clks[type] = clk;
 +	clks[type] = clk;
 +	clk_register_clkdev(clk, name, NULL);
 +	clk_register_clkdev(clk, name, NULL);
 +}
 +}
-+
+ 
 +static struct clk * __init ath79_set_clk(int type, unsigned long rate)
 +static struct clk * __init ath79_set_clk(int type, unsigned long rate)
 +{
 +{
 +	const char *name = ath79_clk_name(type);
 +	const char *name = ath79_clk_name(type);
@@ -61,7 +61,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
 +{
 +{
 +	const char *name = ath79_clk_name(type);
 +	const char *name = ath79_clk_name(type);
 +	struct clk *clk;
 +	struct clk *clk;
- 
++
 +	clk = clk_register_fixed_factor(NULL, name, parent, 0, mult, div);
 +	clk = clk_register_fixed_factor(NULL, name, parent, 0, mult, div);
 +	__ath79_set_clk(type, name, clk);
 +	__ath79_set_clk(type, name, clk);
  	return clk;
  	return clk;

+ 2 - 4
target/linux/ath79/patches-4.14/004-register_gpio_driver_earlier.patch

@@ -1,10 +1,8 @@
 HACK: register the GPIO driver earlier to ensure that gpio_request calls
 HACK: register the GPIO driver earlier to ensure that gpio_request calls
 from mach files succeed.
 from mach files succeed.
 
 
-Index: linux-4.14.18/drivers/gpio/gpio-ath79.c
-===================================================================
---- linux-4.14.18.orig/drivers/gpio/gpio-ath79.c
-+++ linux-4.14.18/drivers/gpio/gpio-ath79.c
+--- a/drivers/gpio/gpio-ath79.c
++++ b/drivers/gpio/gpio-ath79.c
 @@ -322,7 +322,11 @@ static struct platform_driver ath79_gpio
 @@ -322,7 +322,11 @@ static struct platform_driver ath79_gpio
  	.remove = ath79_gpio_remove,
  	.remove = ath79_gpio_remove,
  };
  };

+ 4 - 8
target/linux/ath79/patches-4.14/405-mtd-tp-link-partition-parser.patch

@@ -1,7 +1,5 @@
-Index: linux-4.14.18/drivers/mtd/Kconfig
-===================================================================
---- linux-4.14.18.orig/drivers/mtd/Kconfig
-+++ linux-4.14.18/drivers/mtd/Kconfig
+--- a/drivers/mtd/Kconfig
++++ b/drivers/mtd/Kconfig
 @@ -194,6 +194,12 @@ config MTD_MYLOADER_PARTS
 @@ -194,6 +194,12 @@ config MTD_MYLOADER_PARTS
  	  You will still need the parsing functions to be called by the driver
  	  You will still need the parsing functions to be called by the driver
  	  for your particular device. It won't happen automatically.
  	  for your particular device. It won't happen automatically.
@@ -15,10 +13,8 @@ Index: linux-4.14.18/drivers/mtd/Kconfig
  comment "User Modules And Translation Layers"
  comment "User Modules And Translation Layers"
  
  
  #
  #
-Index: linux-4.14.18/drivers/mtd/Makefile
-===================================================================
---- linux-4.14.18.orig/drivers/mtd/Makefile
-+++ linux-4.14.18/drivers/mtd/Makefile
+--- a/drivers/mtd/Makefile
++++ b/drivers/mtd/Makefile
 @@ -18,6 +18,7 @@ obj-$(CONFIG_MTD_BCM63XX_PARTS)	+= bcm63
 @@ -18,6 +18,7 @@ obj-$(CONFIG_MTD_BCM63XX_PARTS)	+= bcm63
  obj-$(CONFIG_MTD_BCM47XX_PARTS)	+= bcm47xxpart.o
  obj-$(CONFIG_MTD_BCM47XX_PARTS)	+= bcm47xxpart.o
  obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o
  obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o

+ 1 - 1
target/linux/ath79/patches-4.14/420-net-ar71xx_mac_driver.patch

@@ -18,7 +18,7 @@
  endif # NET_VENDOR_ATHEROS
  endif # NET_VENDOR_ATHEROS
 --- a/drivers/net/ethernet/atheros/Makefile
 --- a/drivers/net/ethernet/atheros/Makefile
 +++ b/drivers/net/ethernet/atheros/Makefile
 +++ b/drivers/net/ethernet/atheros/Makefile
-@@ -2,6 +2,7 @@
+@@ -3,6 +3,7 @@
  # Makefile for the Atheros network device drivers.
  # Makefile for the Atheros network device drivers.
  #
  #
  
  

+ 1 - 1
target/linux/ath79/patches-4.14/430-drivers-link-spi-before-mtd.patch

@@ -1,6 +1,6 @@
 --- a/drivers/Makefile
 --- a/drivers/Makefile
 +++ b/drivers/Makefile
 +++ b/drivers/Makefile
-@@ -77,8 +77,8 @@ obj-$(CONFIG_SCSI)		+= scsi/
+@@ -83,8 +83,8 @@ obj-$(CONFIG_SCSI)		+= scsi/
  obj-y				+= nvme/
  obj-y				+= nvme/
  obj-$(CONFIG_ATA)		+= ata/
  obj-$(CONFIG_ATA)		+= ata/
  obj-$(CONFIG_TARGET_CORE)	+= target/
  obj-$(CONFIG_TARGET_CORE)	+= target/

+ 3 - 3
target/linux/ath79/patches-4.14/461-spi-ath79-add-fast-flash-read.patch

@@ -10,7 +10,7 @@
  }
  }
  
  
  static void ath79_spi_disable(struct ath79_spi *sp)
  static void ath79_spi_disable(struct ath79_spi *sp)
-@@ -205,6 +202,38 @@ static u32 ath79_spi_txrx_mode0(struct s
+@@ -204,6 +201,38 @@ static u32 ath79_spi_txrx_mode0(struct s
  	return ath79_spi_rr(sp, AR71XX_SPI_REG_RDS);
  	return ath79_spi_rr(sp, AR71XX_SPI_REG_RDS);
  }
  }
  
  
@@ -49,9 +49,9 @@
  static int ath79_spi_probe(struct platform_device *pdev)
  static int ath79_spi_probe(struct platform_device *pdev)
  {
  {
  	struct spi_master *master;
  	struct spi_master *master;
-@@ -234,6 +263,8 @@ static int ath79_spi_probe(struct platfo
+@@ -232,6 +261,8 @@ static int ath79_spi_probe(struct platfo
+ 		master->bus_num = pdata->bus_num;
  		master->num_chipselect = pdata->num_chipselect;
  		master->num_chipselect = pdata->num_chipselect;
- 		master->cs_gpios = pdata->cs_gpios;
  	}
  	}
 +	master->spi_flash_read = ath79_spi_read_flash_data;
 +	master->spi_flash_read = ath79_spi_read_flash_data;
 +	master->flash_read_supported = ath79_spi_flash_read_supported;
 +	master->flash_read_supported = ath79_spi_flash_read_supported;

+ 3 - 7
target/linux/ath79/patches-4.14/470-MIPS-ath79-swizzle-pci-address-for-ar71xx.patch

@@ -1,7 +1,5 @@
-Index: linux-4.14.18/arch/mips/include/asm/mach-ath79/mangle-port.h
-===================================================================
 --- /dev/null
 --- /dev/null
-+++ linux-4.14.18/arch/mips/include/asm/mach-ath79/mangle-port.h
++++ b/arch/mips/include/asm/mach-ath79/mangle-port.h
 @@ -0,0 +1,37 @@
 @@ -0,0 +1,37 @@
 +/*
 +/*
 + *  Copyright (C) 2012 Gabor Juhos <[email protected]>
 + *  Copyright (C) 2012 Gabor Juhos <[email protected]>
@@ -40,10 +38,8 @@ Index: linux-4.14.18/arch/mips/include/asm/mach-ath79/mangle-port.h
 +# define __mem_ioswabq(a, x)     cpu_to_le64(x)
 +# define __mem_ioswabq(a, x)     cpu_to_le64(x)
 +
 +
 +#endif /* __ASM_MACH_ATH79_MANGLE_PORT_H */
 +#endif /* __ASM_MACH_ATH79_MANGLE_PORT_H */
-Index: linux-4.14.18/arch/mips/pci/pci-ar71xx.c
-===================================================================
---- linux-4.14.18.orig/arch/mips/pci/pci-ar71xx.c
-+++ linux-4.14.18/arch/mips/pci/pci-ar71xx.c
+--- a/arch/mips/pci/pci-ar71xx.c
++++ b/arch/mips/pci/pci-ar71xx.c
 @@ -73,6 +73,45 @@ static const u32 ar71xx_pci_read_mask[8]
 @@ -73,6 +73,45 @@ static const u32 ar71xx_pci_read_mask[8]
  	0, 0xff, 0xffff, 0, 0xffffffff, 0, 0, 0
  	0, 0xff, 0xffff, 0, 0xffffffff, 0, 0, 0
  };
  };

+ 3 - 3
target/linux/ath79/patches-4.14/490-usb-ehci-add-quirks-for-qca-socs.patch

@@ -40,7 +40,7 @@
  	retval = ehci_handshake(ehci, &ehci->regs->command,
  	retval = ehci_handshake(ehci, &ehci->regs->command,
 --- a/drivers/usb/host/ehci.h
 --- a/drivers/usb/host/ehci.h
 +++ b/drivers/usb/host/ehci.h
 +++ b/drivers/usb/host/ehci.h
-@@ -231,6 +231,10 @@ struct ehci_hcd {			/* one per controlle
+@@ -232,6 +232,10 @@ struct ehci_hcd {			/* one per controlle
  	unsigned		need_oc_pp_cycle:1; /* MPC834X port power */
  	unsigned		need_oc_pp_cycle:1; /* MPC834X port power */
  	unsigned		imx28_write_fix:1; /* For Freescale i.MX28 */
  	unsigned		imx28_write_fix:1; /* For Freescale i.MX28 */
  	unsigned		ignore_oc:1;
  	unsigned		ignore_oc:1;
@@ -72,7 +72,7 @@
  #endif /* __USB_CORE_EHCI_PDRIVER_H */
  #endif /* __USB_CORE_EHCI_PDRIVER_H */
 --- a/drivers/usb/host/ehci-platform.c
 --- a/drivers/usb/host/ehci-platform.c
 +++ b/drivers/usb/host/ehci-platform.c
 +++ b/drivers/usb/host/ehci-platform.c
-@@ -52,6 +52,14 @@ struct ehci_platform_priv {
+@@ -53,6 +53,14 @@ struct ehci_platform_priv {
  
  
  static const char hcd_name[] = "ehci-platform";
  static const char hcd_name[] = "ehci-platform";
  
  
@@ -87,7 +87,7 @@
  static int ehci_platform_reset(struct usb_hcd *hcd)
  static int ehci_platform_reset(struct usb_hcd *hcd)
  {
  {
  	struct platform_device *pdev = to_platform_device(hcd->self.controller);
  	struct platform_device *pdev = to_platform_device(hcd->self.controller);
-@@ -261,6 +269,13 @@ static int ehci_platform_probe(struct pl
+@@ -270,6 +278,13 @@ static int ehci_platform_probe(struct pl
  		priv->reset_on_resume = true;
  		priv->reset_on_resume = true;
  	if (pdata->ignore_oc)
  	if (pdata->ignore_oc)
  		ehci->ignore_oc = 1;
  		ehci->ignore_oc = 1;

+ 2 - 4
target/linux/ath79/patches-4.14/901-phy-mdio-bitbang-prevent-rescheduling-during-command.patch

@@ -12,10 +12,8 @@ Signed-off-by: Jonas Gorski <[email protected]>
  drivers/net/phy/mdio-bitbang.c | 9 +++++++++
  drivers/net/phy/mdio-bitbang.c | 9 +++++++++
  1 file changed, 9 insertions(+)
  1 file changed, 9 insertions(+)
 
 
-Index: linux-4.14.18/drivers/net/phy/mdio-bitbang.c
-===================================================================
---- linux-4.14.18.orig/drivers/net/phy/mdio-bitbang.c
-+++ linux-4.14.18/drivers/net/phy/mdio-bitbang.c
+--- a/drivers/net/phy/mdio-bitbang.c
++++ b/drivers/net/phy/mdio-bitbang.c
 @@ -17,6 +17,7 @@
 @@ -17,6 +17,7 @@
   * kind, whether express or implied.
   * kind, whether express or implied.
   */
   */

+ 89 - 169
target/linux/ath79/patches-4.14/910-unaligned_access_hacks.patch

@@ -1,7 +1,5 @@
-Index: linux-4.14.18/arch/mips/include/asm/checksum.h
-===================================================================
---- linux-4.14.18.orig/arch/mips/include/asm/checksum.h
-+++ linux-4.14.18/arch/mips/include/asm/checksum.h
+--- a/arch/mips/include/asm/checksum.h
++++ b/arch/mips/include/asm/checksum.h
 @@ -134,26 +134,30 @@ static inline __sum16 ip_fast_csum(const
 @@ -134,26 +134,30 @@ static inline __sum16 ip_fast_csum(const
  	const unsigned int *stop = word + ihl;
  	const unsigned int *stop = word + ihl;
  	unsigned int csum;
  	unsigned int csum;
@@ -118,10 +116,8 @@ Index: linux-4.14.18/arch/mips/include/asm/checksum.h
  #include <asm-generic/checksum.h>
  #include <asm-generic/checksum.h>
  #endif /* CONFIG_GENERIC_CSUM */
  #endif /* CONFIG_GENERIC_CSUM */
  
  
-Index: linux-4.14.18/include/uapi/linux/ip.h
-===================================================================
---- linux-4.14.18.orig/include/uapi/linux/ip.h
-+++ linux-4.14.18/include/uapi/linux/ip.h
+--- a/include/uapi/linux/ip.h
++++ b/include/uapi/linux/ip.h
 @@ -103,7 +103,7 @@ struct iphdr {
 @@ -103,7 +103,7 @@ struct iphdr {
  	__be32	saddr;
  	__be32	saddr;
  	__be32	daddr;
  	__be32	daddr;
@@ -131,10 +127,8 @@ Index: linux-4.14.18/include/uapi/linux/ip.h
  
  
  
  
  struct ip_auth_hdr {
  struct ip_auth_hdr {
-Index: linux-4.14.18/include/uapi/linux/ipv6.h
-===================================================================
---- linux-4.14.18.orig/include/uapi/linux/ipv6.h
-+++ linux-4.14.18/include/uapi/linux/ipv6.h
+--- a/include/uapi/linux/ipv6.h
++++ b/include/uapi/linux/ipv6.h
 @@ -131,7 +131,7 @@ struct ipv6hdr {
 @@ -131,7 +131,7 @@ struct ipv6hdr {
  
  
  	struct	in6_addr	saddr;
  	struct	in6_addr	saddr;
@@ -144,10 +138,8 @@ Index: linux-4.14.18/include/uapi/linux/ipv6.h
  
  
  
  
  /* index values for the variables in ipv6_devconf */
  /* index values for the variables in ipv6_devconf */
-Index: linux-4.14.18/include/uapi/linux/tcp.h
-===================================================================
---- linux-4.14.18.orig/include/uapi/linux/tcp.h
-+++ linux-4.14.18/include/uapi/linux/tcp.h
+--- a/include/uapi/linux/tcp.h
++++ b/include/uapi/linux/tcp.h
 @@ -55,7 +55,7 @@ struct tcphdr {
 @@ -55,7 +55,7 @@ struct tcphdr {
  	__be16	window;
  	__be16	window;
  	__sum16	check;
  	__sum16	check;
@@ -166,10 +158,8 @@ Index: linux-4.14.18/include/uapi/linux/tcp.h
  
  
  #define tcp_flag_word(tp) ( ((union tcp_word_hdr *)(tp))->words [3]) 
  #define tcp_flag_word(tp) ( ((union tcp_word_hdr *)(tp))->words [3]) 
  
  
-Index: linux-4.14.18/include/uapi/linux/udp.h
-===================================================================
---- linux-4.14.18.orig/include/uapi/linux/udp.h
-+++ linux-4.14.18/include/uapi/linux/udp.h
+--- a/include/uapi/linux/udp.h
++++ b/include/uapi/linux/udp.h
 @@ -25,7 +25,7 @@ struct udphdr {
 @@ -25,7 +25,7 @@ struct udphdr {
  	__be16	dest;
  	__be16	dest;
  	__be16	len;
  	__be16	len;
@@ -179,10 +169,8 @@ Index: linux-4.14.18/include/uapi/linux/udp.h
  
  
  /* UDP socket options */
  /* UDP socket options */
  #define UDP_CORK	1	/* Never send partially complete segments */
  #define UDP_CORK	1	/* Never send partially complete segments */
-Index: linux-4.14.18/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
-===================================================================
---- linux-4.14.18.orig/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
-+++ linux-4.14.18/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
+--- a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
++++ b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
 @@ -48,8 +48,8 @@ static bool ipv4_pkt_to_tuple(const stru
 @@ -48,8 +48,8 @@ static bool ipv4_pkt_to_tuple(const stru
  	if (ap == NULL)
  	if (ap == NULL)
  		return false;
  		return false;
@@ -194,10 +182,8 @@ Index: linux-4.14.18/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
  
  
  	return true;
  	return true;
  }
  }
-Index: linux-4.14.18/include/uapi/linux/icmp.h
-===================================================================
---- linux-4.14.18.orig/include/uapi/linux/icmp.h
-+++ linux-4.14.18/include/uapi/linux/icmp.h
+--- a/include/uapi/linux/icmp.h
++++ b/include/uapi/linux/icmp.h
 @@ -82,7 +82,7 @@ struct icmphdr {
 @@ -82,7 +82,7 @@ struct icmphdr {
  	} frag;
  	} frag;
  	__u8	reserved[4];
  	__u8	reserved[4];
@@ -207,10 +193,8 @@ Index: linux-4.14.18/include/uapi/linux/icmp.h
  
  
  
  
  /*
  /*
-Index: linux-4.14.18/include/uapi/linux/in6.h
-===================================================================
---- linux-4.14.18.orig/include/uapi/linux/in6.h
-+++ linux-4.14.18/include/uapi/linux/in6.h
+--- a/include/uapi/linux/in6.h
++++ b/include/uapi/linux/in6.h
 @@ -43,7 +43,7 @@ struct in6_addr {
 @@ -43,7 +43,7 @@ struct in6_addr {
  #define s6_addr16		in6_u.u6_addr16
  #define s6_addr16		in6_u.u6_addr16
  #define s6_addr32		in6_u.u6_addr32
  #define s6_addr32		in6_u.u6_addr32
@@ -220,10 +204,8 @@ Index: linux-4.14.18/include/uapi/linux/in6.h
  #endif /* __UAPI_DEF_IN6_ADDR */
  #endif /* __UAPI_DEF_IN6_ADDR */
  
  
  #if __UAPI_DEF_SOCKADDR_IN6
  #if __UAPI_DEF_SOCKADDR_IN6
-Index: linux-4.14.18/net/ipv6/tcp_ipv6.c
-===================================================================
---- linux-4.14.18.orig/net/ipv6/tcp_ipv6.c
-+++ linux-4.14.18/net/ipv6/tcp_ipv6.c
+--- a/net/ipv6/tcp_ipv6.c
++++ b/net/ipv6/tcp_ipv6.c
 @@ -39,6 +39,7 @@
 @@ -39,6 +39,7 @@
  #include <linux/ipsec.h>
  #include <linux/ipsec.h>
  #include <linux/times.h>
  #include <linux/times.h>
@@ -247,10 +229,8 @@ Index: linux-4.14.18/net/ipv6/tcp_ipv6.c
  	}
  	}
  
  
  #ifdef CONFIG_TCP_MD5SIG
  #ifdef CONFIG_TCP_MD5SIG
-Index: linux-4.14.18/include/linux/ipv6.h
-===================================================================
---- linux-4.14.18.orig/include/linux/ipv6.h
-+++ linux-4.14.18/include/linux/ipv6.h
+--- a/include/linux/ipv6.h
++++ b/include/linux/ipv6.h
 @@ -6,6 +6,7 @@
 @@ -6,6 +6,7 @@
  
  
  #define ipv6_optlen(p)  (((p)->hdrlen+1) << 3)
  #define ipv6_optlen(p)  (((p)->hdrlen+1) << 3)
@@ -259,11 +239,9 @@ Index: linux-4.14.18/include/linux/ipv6.h
  /*
  /*
   * This structure contains configuration options per IPv6 link.
   * This structure contains configuration options per IPv6 link.
   */
   */
-Index: linux-4.14.18/net/ipv6/datagram.c
-===================================================================
---- linux-4.14.18.orig/net/ipv6/datagram.c
-+++ linux-4.14.18/net/ipv6/datagram.c
-@@ -478,7 +478,7 @@ int ipv6_recv_error(struct sock *sk, str
+--- a/net/ipv6/datagram.c
++++ b/net/ipv6/datagram.c
+@@ -485,7 +485,7 @@ int ipv6_recv_error(struct sock *sk, str
  				ipv6_iface_scope_id(&sin->sin6_addr,
  				ipv6_iface_scope_id(&sin->sin6_addr,
  						    IP6CB(skb)->iif);
  						    IP6CB(skb)->iif);
  		} else {
  		} else {
@@ -272,7 +250,7 @@ Index: linux-4.14.18/net/ipv6/datagram.c
  					       &sin->sin6_addr);
  					       &sin->sin6_addr);
  			sin->sin6_scope_id = 0;
  			sin->sin6_scope_id = 0;
  		}
  		}
-@@ -826,12 +826,12 @@ int ip6_datagram_send_ctl(struct net *ne
+@@ -833,12 +833,12 @@ int ip6_datagram_send_ctl(struct net *ne
  			}
  			}
  
  
  			if (fl6->flowlabel&IPV6_FLOWINFO_MASK) {
  			if (fl6->flowlabel&IPV6_FLOWINFO_MASK) {
@@ -287,11 +265,9 @@ Index: linux-4.14.18/net/ipv6/datagram.c
  			break;
  			break;
  
  
  		case IPV6_2292HOPOPTS:
  		case IPV6_2292HOPOPTS:
-Index: linux-4.14.18/net/ipv6/ip6_gre.c
-===================================================================
---- linux-4.14.18.orig/net/ipv6/ip6_gre.c
-+++ linux-4.14.18/net/ipv6/ip6_gre.c
-@@ -395,7 +395,7 @@ static void ip6gre_err(struct sk_buff *s
+--- a/net/ipv6/ip6_gre.c
++++ b/net/ipv6/ip6_gre.c
+@@ -397,7 +397,7 @@ static void ip6gre_err(struct sk_buff *s
  		return;
  		return;
  	ipv6h = (const struct ipv6hdr *)skb->data;
  	ipv6h = (const struct ipv6hdr *)skb->data;
  	greh = (const struct gre_base_hdr *)(skb->data + offset);
  	greh = (const struct gre_base_hdr *)(skb->data + offset);
@@ -300,10 +276,8 @@ Index: linux-4.14.18/net/ipv6/ip6_gre.c
  
  
  	t = ip6gre_tunnel_lookup(skb->dev, &ipv6h->daddr, &ipv6h->saddr,
  	t = ip6gre_tunnel_lookup(skb->dev, &ipv6h->daddr, &ipv6h->saddr,
  				 key, greh->protocol);
  				 key, greh->protocol);
-Index: linux-4.14.18/net/ipv6/exthdrs.c
-===================================================================
---- linux-4.14.18.orig/net/ipv6/exthdrs.c
-+++ linux-4.14.18/net/ipv6/exthdrs.c
+--- a/net/ipv6/exthdrs.c
++++ b/net/ipv6/exthdrs.c
 @@ -733,7 +733,7 @@ static bool ipv6_hop_jumbo(struct sk_buf
 @@ -733,7 +733,7 @@ static bool ipv6_hop_jumbo(struct sk_buf
  		goto drop;
  		goto drop;
  	}
  	}
@@ -313,10 +287,8 @@ Index: linux-4.14.18/net/ipv6/exthdrs.c
  	if (pkt_len <= IPV6_MAXPLEN) {
  	if (pkt_len <= IPV6_MAXPLEN) {
  		__IP6_INC_STATS(net, ipv6_skb_idev(skb),
  		__IP6_INC_STATS(net, ipv6_skb_idev(skb),
  				IPSTATS_MIB_INHDRERRORS);
  				IPSTATS_MIB_INHDRERRORS);
-Index: linux-4.14.18/include/linux/types.h
-===================================================================
---- linux-4.14.18.orig/include/linux/types.h
-+++ linux-4.14.18/include/linux/types.h
+--- a/include/linux/types.h
++++ b/include/linux/types.h
 @@ -229,5 +229,11 @@ struct callback_head {
 @@ -229,5 +229,11 @@ struct callback_head {
  typedef void (*rcu_callback_t)(struct rcu_head *head);
  typedef void (*rcu_callback_t)(struct rcu_head *head);
  typedef void (*call_rcu_func_t)(struct rcu_head *head, rcu_callback_t func);
  typedef void (*call_rcu_func_t)(struct rcu_head *head, rcu_callback_t func);
@@ -329,10 +301,8 @@ Index: linux-4.14.18/include/linux/types.h
 +
 +
  #endif /*  __ASSEMBLY__ */
  #endif /*  __ASSEMBLY__ */
  #endif /* _LINUX_TYPES_H */
  #endif /* _LINUX_TYPES_H */
-Index: linux-4.14.18/net/ipv4/af_inet.c
-===================================================================
---- linux-4.14.18.orig/net/ipv4/af_inet.c
-+++ linux-4.14.18/net/ipv4/af_inet.c
+--- a/net/ipv4/af_inet.c
++++ b/net/ipv4/af_inet.c
 @@ -1351,8 +1351,8 @@ struct sk_buff **inet_gro_receive(struct
 @@ -1351,8 +1351,8 @@ struct sk_buff **inet_gro_receive(struct
  	if (unlikely(ip_fast_csum((u8 *)iph, 5)))
  	if (unlikely(ip_fast_csum((u8 *)iph, 5)))
  		goto out_unlock;
  		goto out_unlock;
@@ -344,11 +314,9 @@ Index: linux-4.14.18/net/ipv4/af_inet.c
  	id >>= 16;
  	id >>= 16;
  
  
  	for (p = *head; p; p = p->next) {
  	for (p = *head; p; p = p->next) {
-Index: linux-4.14.18/net/ipv4/route.c
-===================================================================
---- linux-4.14.18.orig/net/ipv4/route.c
-+++ linux-4.14.18/net/ipv4/route.c
-@@ -462,7 +462,7 @@ static struct neighbour *ipv4_neigh_look
+--- a/net/ipv4/route.c
++++ b/net/ipv4/route.c
+@@ -465,7 +465,7 @@ static struct neighbour *ipv4_neigh_look
  	else if (skb)
  	else if (skb)
  		pkey = &ip_hdr(skb)->daddr;
  		pkey = &ip_hdr(skb)->daddr;
  
  
@@ -357,10 +325,8 @@ Index: linux-4.14.18/net/ipv4/route.c
  	if (n)
  	if (n)
  		return n;
  		return n;
  	return neigh_create(&arp_tbl, pkey, dev);
  	return neigh_create(&arp_tbl, pkey, dev);
-Index: linux-4.14.18/net/ipv4/tcp_output.c
-===================================================================
---- linux-4.14.18.orig/net/ipv4/tcp_output.c
-+++ linux-4.14.18/net/ipv4/tcp_output.c
+--- a/net/ipv4/tcp_output.c
++++ b/net/ipv4/tcp_output.c
 @@ -449,48 +449,53 @@ static void tcp_options_write(__be32 *pt
 @@ -449,48 +449,53 @@ static void tcp_options_write(__be32 *pt
  	u16 options = opts->options;	/* mungable copy */
  	u16 options = opts->options;	/* mungable copy */
  
  
@@ -480,10 +446,8 @@ Index: linux-4.14.18/net/ipv4/tcp_output.c
  		}
  		}
  
  
  		memcpy(p, foc->val, foc->len);
  		memcpy(p, foc->val, foc->len);
-Index: linux-4.14.18/include/uapi/linux/igmp.h
-===================================================================
---- linux-4.14.18.orig/include/uapi/linux/igmp.h
-+++ linux-4.14.18/include/uapi/linux/igmp.h
+--- a/include/uapi/linux/igmp.h
++++ b/include/uapi/linux/igmp.h
 @@ -33,7 +33,7 @@ struct igmphdr {
 @@ -33,7 +33,7 @@ struct igmphdr {
  	__u8 code;		/* For newer IGMP */
  	__u8 code;		/* For newer IGMP */
  	__sum16 csum;
  	__sum16 csum;
@@ -520,10 +484,8 @@ Index: linux-4.14.18/include/uapi/linux/igmp.h
  
  
  #define IGMP_HOST_MEMBERSHIP_QUERY	0x11	/* From RFC1112 */
  #define IGMP_HOST_MEMBERSHIP_QUERY	0x11	/* From RFC1112 */
  #define IGMP_HOST_MEMBERSHIP_REPORT	0x12	/* Ditto */
  #define IGMP_HOST_MEMBERSHIP_REPORT	0x12	/* Ditto */
-Index: linux-4.14.18/net/core/flow_dissector.c
-===================================================================
---- linux-4.14.18.orig/net/core/flow_dissector.c
-+++ linux-4.14.18/net/core/flow_dissector.c
+--- a/net/core/flow_dissector.c
++++ b/net/core/flow_dissector.c
 @@ -108,7 +108,7 @@ __be32 __skb_flow_get_ports(const struct
 @@ -108,7 +108,7 @@ __be32 __skb_flow_get_ports(const struct
  		ports = __skb_header_pointer(skb, thoff + poff,
  		ports = __skb_header_pointer(skb, thoff + poff,
  					     sizeof(_ports), data, hlen, &_ports);
  					     sizeof(_ports), data, hlen, &_ports);
@@ -533,10 +495,8 @@ Index: linux-4.14.18/net/core/flow_dissector.c
  	}
  	}
  
  
  	return 0;
  	return 0;
-Index: linux-4.14.18/include/uapi/linux/icmpv6.h
-===================================================================
---- linux-4.14.18.orig/include/uapi/linux/icmpv6.h
-+++ linux-4.14.18/include/uapi/linux/icmpv6.h
+--- a/include/uapi/linux/icmpv6.h
++++ b/include/uapi/linux/icmpv6.h
 @@ -77,7 +77,7 @@ struct icmp6hdr {
 @@ -77,7 +77,7 @@ struct icmp6hdr {
  #define icmp6_addrconf_other	icmp6_dataun.u_nd_ra.other
  #define icmp6_addrconf_other	icmp6_dataun.u_nd_ra.other
  #define icmp6_rt_lifetime	icmp6_dataun.u_nd_ra.rt_lifetime
  #define icmp6_rt_lifetime	icmp6_dataun.u_nd_ra.rt_lifetime
@@ -546,10 +506,8 @@ Index: linux-4.14.18/include/uapi/linux/icmpv6.h
  
  
  
  
  #define ICMPV6_ROUTER_PREF_LOW		0x3
  #define ICMPV6_ROUTER_PREF_LOW		0x3
-Index: linux-4.14.18/include/net/ndisc.h
-===================================================================
---- linux-4.14.18.orig/include/net/ndisc.h
-+++ linux-4.14.18/include/net/ndisc.h
+--- a/include/net/ndisc.h
++++ b/include/net/ndisc.h
 @@ -89,7 +89,7 @@ struct ra_msg {
 @@ -89,7 +89,7 @@ struct ra_msg {
          struct icmp6hdr		icmph;
          struct icmp6hdr		icmph;
  	__be32			reachable_time;
  	__be32			reachable_time;
@@ -574,10 +532,8 @@ Index: linux-4.14.18/include/net/ndisc.h
  }
  }
  
  
  static inline struct neighbour *__ipv6_neigh_lookup_noref(struct net_device *dev, const void *pkey)
  static inline struct neighbour *__ipv6_neigh_lookup_noref(struct net_device *dev, const void *pkey)
-Index: linux-4.14.18/net/sched/cls_u32.c
-===================================================================
---- linux-4.14.18.orig/net/sched/cls_u32.c
-+++ linux-4.14.18/net/sched/cls_u32.c
+--- a/net/sched/cls_u32.c
++++ b/net/sched/cls_u32.c
 @@ -165,7 +165,7 @@ next_knode:
 @@ -165,7 +165,7 @@ next_knode:
  			data = skb_header_pointer(skb, toff, 4, &hdata);
  			data = skb_header_pointer(skb, toff, 4, &hdata);
  			if (!data)
  			if (!data)
@@ -598,10 +554,8 @@ Index: linux-4.14.18/net/sched/cls_u32.c
  		}
  		}
  		if (!(n->sel.flags & (TC_U32_VAROFFSET | TC_U32_OFFSET | TC_U32_EAT)))
  		if (!(n->sel.flags & (TC_U32_VAROFFSET | TC_U32_OFFSET | TC_U32_EAT)))
  			goto next_ht;
  			goto next_ht;
-Index: linux-4.14.18/net/ipv6/ip6_offload.c
-===================================================================
---- linux-4.14.18.orig/net/ipv6/ip6_offload.c
-+++ linux-4.14.18/net/ipv6/ip6_offload.c
+--- a/net/ipv6/ip6_offload.c
++++ b/net/ipv6/ip6_offload.c
 @@ -220,7 +220,7 @@ static struct sk_buff **ipv6_gro_receive
 @@ -220,7 +220,7 @@ static struct sk_buff **ipv6_gro_receive
  			continue;
  			continue;
  
  
@@ -611,10 +565,8 @@ Index: linux-4.14.18/net/ipv6/ip6_offload.c
  
  
  		/* All fields must match except length and Traffic Class.
  		/* All fields must match except length and Traffic Class.
  		 * XXX skbs on the gro_list have all been parsed and pulled
  		 * XXX skbs on the gro_list have all been parsed and pulled
-Index: linux-4.14.18/include/net/addrconf.h
-===================================================================
---- linux-4.14.18.orig/include/net/addrconf.h
-+++ linux-4.14.18/include/net/addrconf.h
+--- a/include/net/addrconf.h
++++ b/include/net/addrconf.h
 @@ -47,7 +47,7 @@ struct prefix_info {
 @@ -47,7 +47,7 @@ struct prefix_info {
  	__be32			reserved2;
  	__be32			reserved2;
  
  
@@ -624,10 +576,8 @@ Index: linux-4.14.18/include/net/addrconf.h
  
  
  #include <linux/netdevice.h>
  #include <linux/netdevice.h>
  #include <net/if_inet6.h>
  #include <net/if_inet6.h>
-Index: linux-4.14.18/include/net/inet_ecn.h
-===================================================================
---- linux-4.14.18.orig/include/net/inet_ecn.h
-+++ linux-4.14.18/include/net/inet_ecn.h
+--- a/include/net/inet_ecn.h
++++ b/include/net/inet_ecn.h
 @@ -125,9 +125,9 @@ static inline int IP6_ECN_set_ce(struct
 @@ -125,9 +125,9 @@ static inline int IP6_ECN_set_ce(struct
  	if (INET_ECN_is_not_ect(ipv6_get_dsfield(iph)))
  	if (INET_ECN_is_not_ect(ipv6_get_dsfield(iph)))
  		return 0;
  		return 0;
@@ -649,10 +599,8 @@ Index: linux-4.14.18/include/net/inet_ecn.h
  }
  }
  
  
  static inline void ipv6_copy_dscp(unsigned int dscp, struct ipv6hdr *inner)
  static inline void ipv6_copy_dscp(unsigned int dscp, struct ipv6hdr *inner)
-Index: linux-4.14.18/include/net/ipv6.h
-===================================================================
---- linux-4.14.18.orig/include/net/ipv6.h
-+++ linux-4.14.18/include/net/ipv6.h
+--- a/include/net/ipv6.h
++++ b/include/net/ipv6.h
 @@ -108,7 +108,7 @@ struct frag_hdr {
 @@ -108,7 +108,7 @@ struct frag_hdr {
  	__u8	reserved;
  	__u8	reserved;
  	__be16	frag_off;
  	__be16	frag_off;
@@ -731,10 +679,8 @@ Index: linux-4.14.18/include/net/ipv6.h
  }
  }
  
  
  static inline u8 ip6_tclass(__be32 flowinfo)
  static inline u8 ip6_tclass(__be32 flowinfo)
-Index: linux-4.14.18/include/net/secure_seq.h
-===================================================================
---- linux-4.14.18.orig/include/net/secure_seq.h
-+++ linux-4.14.18/include/net/secure_seq.h
+--- a/include/net/secure_seq.h
++++ b/include/net/secure_seq.h
 @@ -3,6 +3,7 @@
 @@ -3,6 +3,7 @@
  #define _NET_SECURE_SEQ
  #define _NET_SECURE_SEQ
  
  
@@ -743,10 +689,8 @@ Index: linux-4.14.18/include/net/secure_seq.h
  
  
  u32 secure_ipv4_port_ephemeral(__be32 saddr, __be32 daddr, __be16 dport);
  u32 secure_ipv4_port_ephemeral(__be32 saddr, __be32 daddr, __be16 dport);
  u32 secure_ipv6_port_ephemeral(const __be32 *saddr, const __be32 *daddr,
  u32 secure_ipv6_port_ephemeral(const __be32 *saddr, const __be32 *daddr,
-Index: linux-4.14.18/include/uapi/linux/in.h
-===================================================================
---- linux-4.14.18.orig/include/uapi/linux/in.h
-+++ linux-4.14.18/include/uapi/linux/in.h
+--- a/include/uapi/linux/in.h
++++ b/include/uapi/linux/in.h
 @@ -84,7 +84,7 @@ enum {
 @@ -84,7 +84,7 @@ enum {
  /* Internet address. */
  /* Internet address. */
  struct in_addr {
  struct in_addr {
@@ -756,10 +700,8 @@ Index: linux-4.14.18/include/uapi/linux/in.h
  #endif
  #endif
  
  
  #define IP_TOS		1
  #define IP_TOS		1
-Index: linux-4.14.18/net/ipv6/ip6_fib.c
-===================================================================
---- linux-4.14.18.orig/net/ipv6/ip6_fib.c
-+++ linux-4.14.18/net/ipv6/ip6_fib.c
+--- a/net/ipv6/ip6_fib.c
++++ b/net/ipv6/ip6_fib.c
 @@ -137,7 +137,7 @@ static __be32 addr_bit_set(const void *t
 @@ -137,7 +137,7 @@ static __be32 addr_bit_set(const void *t
  	 * See include/asm-generic/bitops/le.h.
  	 * See include/asm-generic/bitops/le.h.
  	 */
  	 */
@@ -769,11 +711,9 @@ Index: linux-4.14.18/net/ipv6/ip6_fib.c
  }
  }
  
  
  static struct fib6_node *node_alloc(void)
  static struct fib6_node *node_alloc(void)
-Index: linux-4.14.18/net/netfilter/nf_conntrack_proto_tcp.c
-===================================================================
---- linux-4.14.18.orig/net/netfilter/nf_conntrack_proto_tcp.c
-+++ linux-4.14.18/net/netfilter/nf_conntrack_proto_tcp.c
-@@ -444,7 +444,7 @@ static void tcp_sack(const struct sk_buf
+--- a/net/netfilter/nf_conntrack_proto_tcp.c
++++ b/net/netfilter/nf_conntrack_proto_tcp.c
+@@ -447,7 +447,7 @@ static void tcp_sack(const struct sk_buf
  
  
  	/* Fast path for timestamp-only option */
  	/* Fast path for timestamp-only option */
  	if (length == TCPOLEN_TSTAMP_ALIGNED
  	if (length == TCPOLEN_TSTAMP_ALIGNED
@@ -782,11 +722,9 @@ Index: linux-4.14.18/net/netfilter/nf_conntrack_proto_tcp.c
  				       | (TCPOPT_NOP << 16)
  				       | (TCPOPT_NOP << 16)
  				       | (TCPOPT_TIMESTAMP << 8)
  				       | (TCPOPT_TIMESTAMP << 8)
  				       | TCPOLEN_TIMESTAMP))
  				       | TCPOLEN_TIMESTAMP))
-Index: linux-4.14.18/net/xfrm/xfrm_input.c
-===================================================================
---- linux-4.14.18.orig/net/xfrm/xfrm_input.c
-+++ linux-4.14.18/net/xfrm/xfrm_input.c
-@@ -171,8 +171,8 @@ int xfrm_parse_spi(struct sk_buff *skb,
+--- a/net/xfrm/xfrm_input.c
++++ b/net/xfrm/xfrm_input.c
+@@ -187,8 +187,8 @@ int xfrm_parse_spi(struct sk_buff *skb,
  	if (!pskb_may_pull(skb, hlen))
  	if (!pskb_may_pull(skb, hlen))
  		return -EINVAL;
  		return -EINVAL;
  
  
@@ -797,11 +735,9 @@ Index: linux-4.14.18/net/xfrm/xfrm_input.c
  	return 0;
  	return 0;
  }
  }
  EXPORT_SYMBOL(xfrm_parse_spi);
  EXPORT_SYMBOL(xfrm_parse_spi);
-Index: linux-4.14.18/net/ipv4/tcp_input.c
-===================================================================
---- linux-4.14.18.orig/net/ipv4/tcp_input.c
-+++ linux-4.14.18/net/ipv4/tcp_input.c
-@@ -3851,14 +3851,16 @@ static bool tcp_parse_aligned_timestamp(
+--- a/net/ipv4/tcp_input.c
++++ b/net/ipv4/tcp_input.c
+@@ -3842,14 +3842,16 @@ static bool tcp_parse_aligned_timestamp(
  {
  {
  	const __be32 *ptr = (const __be32 *)(th + 1);
  	const __be32 *ptr = (const __be32 *)(th + 1);
  
  
@@ -823,10 +759,8 @@ Index: linux-4.14.18/net/ipv4/tcp_input.c
  		else
  		else
  			tp->rx_opt.rcv_tsecr = 0;
  			tp->rx_opt.rcv_tsecr = 0;
  		return true;
  		return true;
-Index: linux-4.14.18/include/uapi/linux/if_pppox.h
-===================================================================
---- linux-4.14.18.orig/include/uapi/linux/if_pppox.h
-+++ linux-4.14.18/include/uapi/linux/if_pppox.h
+--- a/include/uapi/linux/if_pppox.h
++++ b/include/uapi/linux/if_pppox.h
 @@ -51,6 +51,7 @@ struct pppoe_addr {
 @@ -51,6 +51,7 @@ struct pppoe_addr {
   */
   */
  struct pptp_addr {
  struct pptp_addr {
@@ -835,10 +769,8 @@ Index: linux-4.14.18/include/uapi/linux/if_pppox.h
  	struct in_addr	sin_addr;
  	struct in_addr	sin_addr;
  };
  };
  
  
-Index: linux-4.14.18/net/ipv6/netfilter/nf_log_ipv6.c
-===================================================================
---- linux-4.14.18.orig/net/ipv6/netfilter/nf_log_ipv6.c
-+++ linux-4.14.18/net/ipv6/netfilter/nf_log_ipv6.c
+--- a/net/ipv6/netfilter/nf_log_ipv6.c
++++ b/net/ipv6/netfilter/nf_log_ipv6.c
 @@ -66,9 +66,9 @@ static void dump_ipv6_packet(struct nf_l
 @@ -66,9 +66,9 @@ static void dump_ipv6_packet(struct nf_l
  	/* Max length: 44 "LEN=65535 TC=255 HOPLIMIT=255 FLOWLBL=FFFFF " */
  	/* Max length: 44 "LEN=65535 TC=255 HOPLIMIT=255 FLOWLBL=FFFFF " */
  	nf_log_buf_add(m, "LEN=%zu TC=%u HOPLIMIT=%u FLOWLBL=%u ",
  	nf_log_buf_add(m, "LEN=%zu TC=%u HOPLIMIT=%u FLOWLBL=%u ",
@@ -851,10 +783,8 @@ Index: linux-4.14.18/net/ipv6/netfilter/nf_log_ipv6.c
  
  
  	fragment = 0;
  	fragment = 0;
  	ptr = ip6hoff + sizeof(struct ipv6hdr);
  	ptr = ip6hoff + sizeof(struct ipv6hdr);
-Index: linux-4.14.18/include/net/neighbour.h
-===================================================================
---- linux-4.14.18.orig/include/net/neighbour.h
-+++ linux-4.14.18/include/net/neighbour.h
+--- a/include/net/neighbour.h
++++ b/include/net/neighbour.h
 @@ -265,8 +265,10 @@ static inline bool neigh_key_eq128(const
 @@ -265,8 +265,10 @@ static inline bool neigh_key_eq128(const
  	const u32 *n32 = (const u32 *)n->primary_key;
  	const u32 *n32 = (const u32 *)n->primary_key;
  	const u32 *p32 = pkey;
  	const u32 *p32 = pkey;
@@ -868,10 +798,8 @@ Index: linux-4.14.18/include/net/neighbour.h
  }
  }
  
  
  static inline struct neighbour *___neigh_lookup_noref(
  static inline struct neighbour *___neigh_lookup_noref(
-Index: linux-4.14.18/include/uapi/linux/netfilter_arp/arp_tables.h
-===================================================================
---- linux-4.14.18.orig/include/uapi/linux/netfilter_arp/arp_tables.h
-+++ linux-4.14.18/include/uapi/linux/netfilter_arp/arp_tables.h
+--- a/include/uapi/linux/netfilter_arp/arp_tables.h
++++ b/include/uapi/linux/netfilter_arp/arp_tables.h
 @@ -70,7 +70,7 @@ struct arpt_arp {
 @@ -70,7 +70,7 @@ struct arpt_arp {
  	__u8 flags;
  	__u8 flags;
  	/* Inverse flags */
  	/* Inverse flags */
@@ -881,10 +809,8 @@ Index: linux-4.14.18/include/uapi/linux/netfilter_arp/arp_tables.h
  
  
  /* Values for "flag" field in struct arpt_ip (general arp structure).
  /* Values for "flag" field in struct arpt_ip (general arp structure).
   * No flags defined yet.
   * No flags defined yet.
-Index: linux-4.14.18/net/core/utils.c
-===================================================================
---- linux-4.14.18.orig/net/core/utils.c
-+++ linux-4.14.18/net/core/utils.c
+--- a/net/core/utils.c
++++ b/net/core/utils.c
 @@ -424,8 +424,14 @@ void inet_proto_csum_replace16(__sum16 *
 @@ -424,8 +424,14 @@ void inet_proto_csum_replace16(__sum16 *
  			       bool pseudohdr)
  			       bool pseudohdr)
  {
  {
@@ -902,10 +828,8 @@ Index: linux-4.14.18/net/core/utils.c
  	};
  	};
  	if (skb->ip_summed != CHECKSUM_PARTIAL) {
  	if (skb->ip_summed != CHECKSUM_PARTIAL) {
  		*sum = csum_fold(csum_partial(diff, sizeof(diff),
  		*sum = csum_fold(csum_partial(diff, sizeof(diff),
-Index: linux-4.14.18/include/linux/etherdevice.h
-===================================================================
---- linux-4.14.18.orig/include/linux/etherdevice.h
-+++ linux-4.14.18/include/linux/etherdevice.h
+--- a/include/linux/etherdevice.h
++++ b/include/linux/etherdevice.h
 @@ -480,7 +480,7 @@ static inline bool is_etherdev_addr(cons
 @@ -480,7 +480,7 @@ static inline bool is_etherdev_addr(cons
   * @b: Pointer to Ethernet header
   * @b: Pointer to Ethernet header
   *
   *
@@ -932,10 +856,8 @@ Index: linux-4.14.18/include/linux/etherdevice.h
  #endif
  #endif
  }
  }
  
  
-Index: linux-4.14.18/net/ipv4/tcp_offload.c
-===================================================================
---- linux-4.14.18.orig/net/ipv4/tcp_offload.c
-+++ linux-4.14.18/net/ipv4/tcp_offload.c
+--- a/net/ipv4/tcp_offload.c
++++ b/net/ipv4/tcp_offload.c
 @@ -226,7 +226,7 @@ struct sk_buff **tcp_gro_receive(struct
 @@ -226,7 +226,7 @@ struct sk_buff **tcp_gro_receive(struct
  
  
  		th2 = tcp_hdr(p);
  		th2 = tcp_hdr(p);
@@ -956,11 +878,9 @@ Index: linux-4.14.18/net/ipv4/tcp_offload.c
  
  
  	/* When we receive our second frame we can made a decision on if we
  	/* When we receive our second frame we can made a decision on if we
  	 * continue this flow as an atomic flow with a fixed ID or if we use
  	 * continue this flow as an atomic flow with a fixed ID or if we use
-Index: linux-4.14.18/net/ipv6/netfilter/ip6table_mangle.c
-===================================================================
---- linux-4.14.18.orig/net/ipv6/netfilter/ip6table_mangle.c
-+++ linux-4.14.18/net/ipv6/netfilter/ip6table_mangle.c
-@@ -58,7 +58,7 @@ ip6t_mangle_out(struct sk_buff *skb, con
+--- a/net/ipv6/netfilter/ip6table_mangle.c
++++ b/net/ipv6/netfilter/ip6table_mangle.c
+@@ -50,7 +50,7 @@ ip6t_mangle_out(struct sk_buff *skb, con
  	hop_limit = ipv6_hdr(skb)->hop_limit;
  	hop_limit = ipv6_hdr(skb)->hop_limit;
  
  
  	/* flowlabel and prio (includes version, which shouldn't change either */
  	/* flowlabel and prio (includes version, which shouldn't change either */
@@ -969,7 +889,7 @@ Index: linux-4.14.18/net/ipv6/netfilter/ip6table_mangle.c
  
  
  	ret = ip6t_do_table(skb, state, state->net->ipv6.ip6table_mangle);
  	ret = ip6t_do_table(skb, state, state->net->ipv6.ip6table_mangle);
  
  
-@@ -67,7 +67,7 @@ ip6t_mangle_out(struct sk_buff *skb, con
+@@ -59,7 +59,7 @@ ip6t_mangle_out(struct sk_buff *skb, con
  	     !ipv6_addr_equal(&ipv6_hdr(skb)->daddr, &daddr) ||
  	     !ipv6_addr_equal(&ipv6_hdr(skb)->daddr, &daddr) ||
  	     skb->mark != mark ||
  	     skb->mark != mark ||
  	     ipv6_hdr(skb)->hop_limit != hop_limit ||
  	     ipv6_hdr(skb)->hop_limit != hop_limit ||

+ 1 - 1
target/linux/bcm53xx/patches-4.14/910-Revert-earlycon-initialise-baud-field-of-earlycon-de.patch

@@ -18,7 +18,7 @@ Signed-off-by: Rafał Miłecki <[email protected]>
 
 
 --- a/drivers/tty/serial/earlycon.c
 --- a/drivers/tty/serial/earlycon.c
 +++ b/drivers/tty/serial/earlycon.c
 +++ b/drivers/tty/serial/earlycon.c
-@@ -283,12 +283,7 @@ int __init of_setup_earlycon(const struc
+@@ -285,12 +285,7 @@ int __init of_setup_earlycon(const struc
  		}
  		}
  	}
  	}
  
  

+ 4 - 4
target/linux/brcm47xx/patches-4.14/159-cpu_fixes.patch

@@ -396,7 +396,7 @@
  	if (dc_lsize == 0)
  	if (dc_lsize == 0)
  		r4k_blast_dcache = (void *)cache_noop;
  		r4k_blast_dcache = (void *)cache_noop;
  	else if (dc_lsize == 16)
  	else if (dc_lsize == 16)
-@@ -952,6 +964,8 @@ static void local_r4k_flush_cache_sigtra
+@@ -955,6 +967,8 @@ static void local_r4k_flush_cache_sigtra
  	}
  	}
  
  
  	R4600_HIT_CACHEOP_WAR_IMPL;
  	R4600_HIT_CACHEOP_WAR_IMPL;
@@ -405,7 +405,7 @@
  	if (!cpu_has_ic_fills_f_dc) {
  	if (!cpu_has_ic_fills_f_dc) {
  		if (dc_lsize)
  		if (dc_lsize)
  			vaddr ? flush_dcache_line(addr & ~(dc_lsize - 1))
  			vaddr ? flush_dcache_line(addr & ~(dc_lsize - 1))
-@@ -1846,6 +1860,17 @@ static void coherency_setup(void)
+@@ -1849,6 +1863,17 @@ static void coherency_setup(void)
  	 * silly idea of putting something else there ...
  	 * silly idea of putting something else there ...
  	 */
  	 */
  	switch (current_cpu_type()) {
  	switch (current_cpu_type()) {
@@ -423,7 +423,7 @@
  	case CPU_R4000PC:
  	case CPU_R4000PC:
  	case CPU_R4000SC:
  	case CPU_R4000SC:
  	case CPU_R4000MC:
  	case CPU_R4000MC:
-@@ -1892,6 +1917,15 @@ void r4k_cache_init(void)
+@@ -1895,6 +1920,15 @@ void r4k_cache_init(void)
  	extern void build_copy_page(void);
  	extern void build_copy_page(void);
  	struct cpuinfo_mips *c = &current_cpu_data;
  	struct cpuinfo_mips *c = &current_cpu_data;
  
  
@@ -439,7 +439,7 @@
  	probe_pcache();
  	probe_pcache();
  	probe_vcache();
  	probe_vcache();
  	setup_scache();
  	setup_scache();
-@@ -1969,7 +2003,15 @@ void r4k_cache_init(void)
+@@ -1972,7 +2006,15 @@ void r4k_cache_init(void)
  	 */
  	 */
  	local_r4k___flush_cache_all(NULL);
  	local_r4k___flush_cache_all(NULL);
  
  

+ 3 - 3
target/linux/brcm63xx/patches-4.14/120-mtd-add-of_match_table-parsing-for-partition-parsers.patch

@@ -42,7 +42,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
 
 
 --- a/drivers/mtd/mtdpart.c
 --- a/drivers/mtd/mtdpart.c
 +++ b/drivers/mtd/mtdpart.c
 +++ b/drivers/mtd/mtdpart.c
-@@ -961,8 +961,7 @@ int add_mtd_partitions(struct mtd_info *
+@@ -948,8 +948,7 @@ int add_mtd_partitions(struct mtd_info *
  		add_mtd_device(&slave->mtd);
  		add_mtd_device(&slave->mtd);
  		mtd_partition_split(master, slave);
  		mtd_partition_split(master, slave);
  		mtd_add_partition_attrs(slave);
  		mtd_add_partition_attrs(slave);
@@ -52,7 +52,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  
  
  		cur_offset = slave->offset + slave->mtd.size;
  		cur_offset = slave->offset + slave->mtd.size;
  	}
  	}
-@@ -1134,7 +1133,9 @@ static int mtd_part_of_parse(struct mtd_
+@@ -1121,7 +1120,9 @@ static int mtd_part_of_parse(struct mtd_
  	const char *fixed = "fixed-partitions";
  	const char *fixed = "fixed-partitions";
  	int ret, err = 0;
  	int ret, err = 0;
  
  
@@ -63,7 +63,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  	of_property_for_each_string(np, "compatible", prop, compat) {
  	of_property_for_each_string(np, "compatible", prop, compat) {
  		parser = mtd_part_get_compatible_parser(compat);
  		parser = mtd_part_get_compatible_parser(compat);
  		if (!parser)
  		if (!parser)
-@@ -1206,8 +1207,12 @@ int parse_mtd_partitions(struct mtd_info
+@@ -1190,8 +1191,12 @@ int parse_mtd_partitions(struct mtd_info
  			types = types_of;
  			types = types_of;
  	}
  	}
  
  

+ 1 - 6
target/linux/gemini/patches-4.14/0032-usb-host-fotg2-restart-hcd-after-port-reset.patch

@@ -11,11 +11,9 @@ Signed-off-by: Hans Ulli Kroll <[email protected]>
  drivers/usb/host/fotg210-hcd.c | 4 ++++
  drivers/usb/host/fotg210-hcd.c | 4 ++++
  1 file changed, 4 insertions(+)
  1 file changed, 4 insertions(+)
 
 
-diff --git a/drivers/usb/host/fotg210-hcd.c b/drivers/usb/host/fotg210-hcd.c
-index 2acc51b0be5a..bc9efb49adc7 100644
 --- a/drivers/usb/host/fotg210-hcd.c
 --- a/drivers/usb/host/fotg210-hcd.c
 +++ b/drivers/usb/host/fotg210-hcd.c
 +++ b/drivers/usb/host/fotg210-hcd.c
-@@ -1658,6 +1658,10 @@ static int fotg210_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue,
+@@ -1658,6 +1658,10 @@ static int fotg210_hub_control(struct us
  			/* see what we found out */
  			/* see what we found out */
  			temp = check_reset_complete(fotg210, wIndex, status_reg,
  			temp = check_reset_complete(fotg210, wIndex, status_reg,
  					fotg210_readl(fotg210, status_reg));
  					fotg210_readl(fotg210, status_reg));
@@ -26,6 +24,3 @@ index 2acc51b0be5a..bc9efb49adc7 100644
  		}
  		}
  
  
  		if (!(temp & (PORT_RESUME|PORT_RESET))) {
  		if (!(temp & (PORT_RESUME|PORT_RESET))) {
--- 
-2.16.2
-

+ 0 - 7
target/linux/gemini/patches-4.14/0033-ARM-dts-Fix-bootargs-for-Gemini-D-Link-devices.patch

@@ -14,8 +14,6 @@ Signed-off-by: Linus Walleij <[email protected]>
  arch/arm/boot/dts/gemini-dlink-dns-313.dts | 1 +
  arch/arm/boot/dts/gemini-dlink-dns-313.dts | 1 +
  2 files changed, 3 insertions(+), 1 deletion(-)
  2 files changed, 3 insertions(+), 1 deletion(-)
 
 
-diff --git a/arch/arm/boot/dts/gemini-dlink-dir-685.dts b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
-index a39914dece98..840f4a32f37c 100644
 --- a/arch/arm/boot/dts/gemini-dlink-dir-685.dts
 --- a/arch/arm/boot/dts/gemini-dlink-dir-685.dts
 +++ b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
 +++ b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
 @@ -20,7 +20,8 @@
 @@ -20,7 +20,8 @@
@@ -28,8 +26,6 @@ index a39914dece98..840f4a32f37c 100644
  	};
  	};
  
  
  	gpio_keys {
  	gpio_keys {
-diff --git a/arch/arm/boot/dts/gemini-dlink-dns-313.dts b/arch/arm/boot/dts/gemini-dlink-dns-313.dts
-index 4904f1251671..685719a0b8c0 100644
 --- a/arch/arm/boot/dts/gemini-dlink-dns-313.dts
 --- a/arch/arm/boot/dts/gemini-dlink-dns-313.dts
 +++ b/arch/arm/boot/dts/gemini-dlink-dns-313.dts
 +++ b/arch/arm/boot/dts/gemini-dlink-dns-313.dts
 @@ -26,6 +26,7 @@
 @@ -26,6 +26,7 @@
@@ -40,6 +36,3 @@ index 4904f1251671..685719a0b8c0 100644
  		stdout-path = "uart0:19200n8";
  		stdout-path = "uart0:19200n8";
  	};
  	};
  
  
--- 
-2.14.3
-

+ 0 - 7
target/linux/gemini/patches-4.14/0034-ARM-dts-Add-ethernet-to-a-bunch-of-platforms.patch

@@ -20,8 +20,6 @@ Signed-off-by: Linus Walleij <[email protected]>
  arch/arm/boot/dts/gemini-wbd222.dts        |  7 ++++
  arch/arm/boot/dts/gemini-wbd222.dts        |  7 ++++
  2 files changed, 69 insertions(+)
  2 files changed, 69 insertions(+)
 
 
-diff --git a/arch/arm/boot/dts/gemini-dlink-dns-313.dts b/arch/arm/boot/dts/gemini-dlink-dns-313.dts
-index 685719a0b8c0..df46375457b6 100644
 --- a/arch/arm/boot/dts/gemini-dlink-dns-313.dts
 --- a/arch/arm/boot/dts/gemini-dlink-dns-313.dts
 +++ b/arch/arm/boot/dts/gemini-dlink-dns-313.dts
 +++ b/arch/arm/boot/dts/gemini-dlink-dns-313.dts
 @@ -215,6 +215,56 @@
 @@ -215,6 +215,56 @@
@@ -100,8 +98,6 @@ index 685719a0b8c0..df46375457b6 100644
  		ata@63000000 {
  		ata@63000000 {
  			status = "okay";
  			status = "okay";
  		};
  		};
-diff --git a/arch/arm/boot/dts/gemini-wbd222.dts b/arch/arm/boot/dts/gemini-wbd222.dts
-index 0678d3beb51d..820978d20166 100644
 --- a/arch/arm/boot/dts/gemini-wbd222.dts
 --- a/arch/arm/boot/dts/gemini-wbd222.dts
 +++ b/arch/arm/boot/dts/gemini-wbd222.dts
 +++ b/arch/arm/boot/dts/gemini-wbd222.dts
 @@ -136,6 +136,13 @@
 @@ -136,6 +136,13 @@
@@ -118,6 +114,3 @@ index 0678d3beb51d..820978d20166 100644
  			};
  			};
  		};
  		};
  
  
--- 
-2.14.3
-

+ 0 - 2
target/linux/gemini/patches-4.14/0905-arm-dts-gemini-dlink-dir-685-add-rtl8366rb.patch

@@ -1,5 +1,3 @@
-diff --git a/arch/arm/boot/dts/gemini-dlink-dir-685.dts b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
-index 840f4a32f37c..456556f52bc7 100644
 --- a/arch/arm/boot/dts/gemini-dlink-dir-685.dts
 --- a/arch/arm/boot/dts/gemini-dlink-dir-685.dts
 +++ b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
 +++ b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
 @@ -87,6 +87,12 @@
 @@ -87,6 +87,12 @@

+ 7 - 7
target/linux/generic/backport-4.14/030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch

@@ -1,7 +1,7 @@
-From ebe37f322acbb95966094cb2b0fff6e44b5893a6 Mon Sep 17 00:00:00 2001
+From 4d304a6fe93538ce356b4593dc43476b50c023e7 Mon Sep 17 00:00:00 2001
 From: Giuseppe Lippolis <[email protected]>
 From: Giuseppe Lippolis <[email protected]>
 Date: Mon, 23 Apr 2018 09:03:06 +0200
 Date: Mon, 23 Apr 2018 09:03:06 +0200
-Subject: [PATCH] USB: serial: option: fix dwm-158 3g modem interface
+Subject: USB: serial: option: blacklist unused dwm-158 interfaces
 
 
 The dwm-158 interface 4 and 5 doesn't answer to the AT commands
 The dwm-158 interface 4 and 5 doesn't answer to the AT commands
 and doesn't appears a option interface.
 and doesn't appears a option interface.
@@ -20,9 +20,9 @@ Lars Melin also writes:
 	MI_06 USB Mass Storage Device
 	MI_06 USB Mass Storage Device
 
 
 Signed-off-by: Giuseppe Lippolis <[email protected]>
 Signed-off-by: Giuseppe Lippolis <[email protected]>
-[ johan: add Lars's comment on the interface layout ]
+[ johan: add Lars's comment on the interface layout and reword summary ]
 Cc: Lars Melin <[email protected]>
 Cc: Lars Melin <[email protected]>
-Cc: stable <[email protected]>	# c3a65808f04a
+Cc: Dan Williams <[email protected]>
 Signed-off-by: Johan Hovold <[email protected]>
 Signed-off-by: Johan Hovold <[email protected]>
 ---
 ---
  drivers/usb/serial/option.c | 3 ++-
  drivers/usb/serial/option.c | 3 ++-
@@ -30,13 +30,13 @@ Signed-off-by: Johan Hovold <[email protected]>
 
 
 --- a/drivers/usb/serial/option.c
 --- a/drivers/usb/serial/option.c
 +++ b/drivers/usb/serial/option.c
 +++ b/drivers/usb/serial/option.c
-@@ -2046,7 +2046,8 @@ static const struct usb_device_id option
+@@ -1919,7 +1919,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, 0x7d01, 0xff) },			/* D-Link DWM-156 (variant) */
  	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) },
  	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) },
  	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },
  	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },
 -	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff) },			/* D-Link DWM-158 */
 -	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff) },			/* D-Link DWM-158 */
 +	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff),			/* D-Link DWM-158 */
 +	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff),			/* D-Link DWM-158 */
-+	 .driver_info = (kernel_ulong_t)&cinterion_rmnet2_blacklist },
++	 .driver_info = RSVD(4) | RSVD(5) },
  	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d0e, 0xff) },			/* D-Link DWM-157 C1 */
  	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d0e, 0xff) },			/* D-Link DWM-157 C1 */
  	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e19, 0xff),			/* D-Link DWM-221 B1 */
  	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e19, 0xff),			/* D-Link DWM-221 B1 */
- 	  .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
+ 	  .driver_info = RSVD(4) },

+ 1 - 0
target/linux/generic/config-4.14

@@ -281,6 +281,7 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
 # CONFIG_ARM64_ERRATUM_843419 is not set
 # CONFIG_ARM64_ERRATUM_843419 is not set
 # CONFIG_ARM64_ERRATUM_845719 is not set
 # CONFIG_ARM64_ERRATUM_845719 is not set
 # CONFIG_ARM64_ERRATUM_858921 is not set
 # CONFIG_ARM64_ERRATUM_858921 is not set
+# CONFIG_ARM64_ERRATUM_1024718 is not set
 # CONFIG_ARM64_RELOC_TEST is not set
 # CONFIG_ARM64_RELOC_TEST is not set
 # CONFIG_ARM_APPENDED_DTB is not set
 # CONFIG_ARM_APPENDED_DTB is not set
 # CONFIG_ARM_ARCH_TIMER is not set
 # CONFIG_ARM_ARCH_TIMER is not set

+ 2 - 4
target/linux/generic/pending-4.14/103-MIPS-c-r4k-fix-data-corruption-related-to-cache-coherence.patch

@@ -62,11 +62,9 @@ Signed-off-by: NeilBrown <[email protected]>
  arch/mips/mm/c-r4k.c | 9 ++++++---
  arch/mips/mm/c-r4k.c | 9 ++++++---
  1 file changed, 6 insertions(+), 3 deletions(-)
  1 file changed, 6 insertions(+), 3 deletions(-)
 
 
-diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
-index 6f534b209971..e12dfa48b478 100644
 --- a/arch/mips/mm/c-r4k.c
 --- a/arch/mips/mm/c-r4k.c
 +++ b/arch/mips/mm/c-r4k.c
 +++ b/arch/mips/mm/c-r4k.c
-@@ -851,9 +851,12 @@ static void r4k_dma_cache_wback_inv(unsigned long addr, unsigned long size)
+@@ -851,9 +851,12 @@ static void r4k_dma_cache_wback_inv(unsi
  	/*
  	/*
  	 * Either no secondary cache or the available caches don't have the
  	 * Either no secondary cache or the available caches don't have the
  	 * subset property so we have to flush the primary caches
  	 * subset property so we have to flush the primary caches
@@ -81,7 +79,7 @@ index 6f534b209971..e12dfa48b478 100644
  		r4k_blast_dcache();
  		r4k_blast_dcache();
  	} else {
  	} else {
  		R4600_HIT_CACHEOP_WAR_IMPL;
  		R4600_HIT_CACHEOP_WAR_IMPL;
-@@ -890,7 +893,7 @@ static void r4k_dma_cache_inv(unsigned long addr, unsigned long size)
+@@ -890,7 +893,7 @@ static void r4k_dma_cache_inv(unsigned l
  		return;
  		return;
  	}
  	}
  
  

+ 1 - 1
target/linux/generic/pending-4.14/181-net-usb-add-lte-modem-wistron-neweb-d18q1.patch

@@ -49,7 +49,7 @@ Signed-off-by: David S. Miller <[email protected]>
 
 
 --- a/drivers/net/usb/qmi_wwan.c
 --- a/drivers/net/usb/qmi_wwan.c
 +++ b/drivers/net/usb/qmi_wwan.c
 +++ b/drivers/net/usb/qmi_wwan.c
-@@ -1104,6 +1104,9 @@ static const struct usb_device_id produc
+@@ -1105,6 +1105,9 @@ static const struct usb_device_id produc
  	{QMI_FIXED_INTF(0x0846, 0x68a2, 8)},
  	{QMI_FIXED_INTF(0x0846, 0x68a2, 8)},
  	{QMI_FIXED_INTF(0x12d1, 0x140c, 1)},	/* Huawei E173 */
  	{QMI_FIXED_INTF(0x12d1, 0x140c, 1)},	/* Huawei E173 */
  	{QMI_FIXED_INTF(0x12d1, 0x14ac, 1)},	/* Huawei E1820 */
  	{QMI_FIXED_INTF(0x12d1, 0x14ac, 1)},	/* Huawei E1820 */

+ 1 - 1
target/linux/generic/pending-4.14/182-net-qmi_wwan-add-BroadMobi-BM806U-2020-2033.patch

@@ -18,7 +18,7 @@ Signed-off-by: David S. Miller <[email protected]>
 
 
 --- a/drivers/net/usb/qmi_wwan.c
 --- a/drivers/net/usb/qmi_wwan.c
 +++ b/drivers/net/usb/qmi_wwan.c
 +++ b/drivers/net/usb/qmi_wwan.c
-@@ -1183,6 +1183,7 @@ static const struct usb_device_id produc
+@@ -1184,6 +1184,7 @@ static const struct usb_device_id produc
  	{QMI_FIXED_INTF(0x19d2, 0x2002, 4)},	/* ZTE (Vodafone) K3765-Z */
  	{QMI_FIXED_INTF(0x19d2, 0x2002, 4)},	/* ZTE (Vodafone) K3765-Z */
  	{QMI_FIXED_INTF(0x2001, 0x7e19, 4)},	/* D-Link DWM-221 B1 */
  	{QMI_FIXED_INTF(0x2001, 0x7e19, 4)},	/* D-Link DWM-221 B1 */
  	{QMI_FIXED_INTF(0x2001, 0x7e35, 4)},	/* D-Link DWM-222 */
  	{QMI_FIXED_INTF(0x2001, 0x7e35, 4)},	/* D-Link DWM-222 */

+ 1 - 1
target/linux/generic/pending-4.14/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch

@@ -7,7 +7,7 @@ Signed-off-by: George Kashperko <[email protected]>
  1 file changed, 1 insertion(+)
  1 file changed, 1 insertion(+)
 --- a/drivers/mtd/chips/cfi_cmdset_0002.c
 --- a/drivers/mtd/chips/cfi_cmdset_0002.c
 +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
 +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
-@@ -1832,6 +1832,7 @@ static int __xipram do_write_buffer(stru
+@@ -1833,6 +1833,7 @@ static int __xipram do_write_buffer(stru
  
  
  	/* Write Buffer Load */
  	/* Write Buffer Load */
  	map_write(map, CMD(0x25), cmd_adr);
  	map_write(map, CMD(0x25), cmd_adr);

+ 8 - 8
target/linux/generic/pending-4.14/630-packet_socket_type.patch

@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  #define PACKET_FANOUT_LB		1
  #define PACKET_FANOUT_LB		1
 --- a/net/packet/af_packet.c
 --- a/net/packet/af_packet.c
 +++ b/net/packet/af_packet.c
 +++ b/net/packet/af_packet.c
-@@ -1822,6 +1822,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1829,6 +1829,7 @@ static int packet_rcv_spkt(struct sk_buf
  {
  {
  	struct sock *sk;
  	struct sock *sk;
  	struct sockaddr_pkt *spkt;
  	struct sockaddr_pkt *spkt;
@@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
  
  	/*
  	/*
  	 *	When we registered the protocol we saved the socket in the data
  	 *	When we registered the protocol we saved the socket in the data
-@@ -1829,6 +1830,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1836,6 +1837,7 @@ static int packet_rcv_spkt(struct sk_buf
  	 */
  	 */
  
  
  	sk = pt->af_packet_priv;
  	sk = pt->af_packet_priv;
@@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
  
  	/*
  	/*
  	 *	Yank back the headers [hope the device set this
  	 *	Yank back the headers [hope the device set this
-@@ -1841,7 +1843,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1848,7 +1850,7 @@ static int packet_rcv_spkt(struct sk_buf
  	 *	so that this procedure is noop.
  	 *	so that this procedure is noop.
  	 */
  	 */
  
  
@@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  		goto out;
  		goto out;
  
  
  	if (!net_eq(dev_net(dev), sock_net(sk)))
  	if (!net_eq(dev_net(dev), sock_net(sk)))
-@@ -2068,12 +2070,12 @@ static int packet_rcv(struct sk_buff *sk
+@@ -2075,12 +2077,12 @@ static int packet_rcv(struct sk_buff *sk
  	unsigned int snaplen, res;
  	unsigned int snaplen, res;
  	bool is_drop_n_account = false;
  	bool is_drop_n_account = false;
  
  
@@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	if (!net_eq(dev_net(dev), sock_net(sk)))
  	if (!net_eq(dev_net(dev), sock_net(sk)))
  		goto drop;
  		goto drop;
  
  
-@@ -2199,12 +2201,12 @@ static int tpacket_rcv(struct sk_buff *s
+@@ -2206,12 +2208,12 @@ static int tpacket_rcv(struct sk_buff *s
  	BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
  	BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
  	BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
  	BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
  
  
@@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	if (!net_eq(dev_net(dev), sock_net(sk)))
  	if (!net_eq(dev_net(dev), sock_net(sk)))
  		goto drop;
  		goto drop;
  
  
-@@ -3251,6 +3253,7 @@ static int packet_create(struct net *net
+@@ -3260,6 +3262,7 @@ static int packet_create(struct net *net
  	mutex_init(&po->pg_vec_lock);
  	mutex_init(&po->pg_vec_lock);
  	po->rollover = NULL;
  	po->rollover = NULL;
  	po->prot_hook.func = packet_rcv;
  	po->prot_hook.func = packet_rcv;
@@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  
  
  	if (sock->type == SOCK_PACKET)
  	if (sock->type == SOCK_PACKET)
  		po->prot_hook.func = packet_rcv_spkt;
  		po->prot_hook.func = packet_rcv_spkt;
-@@ -3837,6 +3840,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3873,6 +3876,16 @@ packet_setsockopt(struct socket *sock, i
  		po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
  		po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
  		return 0;
  		return 0;
  	}
  	}
@@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	default:
  	default:
  		return -ENOPROTOOPT;
  		return -ENOPROTOOPT;
  	}
  	}
-@@ -3889,6 +3902,13 @@ static int packet_getsockopt(struct sock
+@@ -3925,6 +3938,13 @@ static int packet_getsockopt(struct sock
  	case PACKET_VNET_HDR:
  	case PACKET_VNET_HDR:
  		val = po->has_vnet_hdr;
  		val = po->has_vnet_hdr;
  		break;
  		break;

+ 1 - 1
target/linux/generic/pending-4.14/644-net-pppoe-support-hardware-flow-table-offload.patch

@@ -73,7 +73,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  #include <linux/nsproxy.h>
  #include <linux/nsproxy.h>
  #include <net/net_namespace.h>
  #include <net/net_namespace.h>
  #include <net/netns/generic.h>
  #include <net/netns/generic.h>
-@@ -970,8 +975,36 @@ static int pppoe_xmit(struct ppp_channel
+@@ -974,8 +979,36 @@ static int pppoe_xmit(struct ppp_channel
  	return __pppoe_xmit(sk, skb);
  	return __pppoe_xmit(sk, skb);
  }
  }
  
  

+ 11 - 11
target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch

@@ -300,7 +300,7 @@ Signed-off-by: Steven Barth <[email protected]>
  /**
  /**
   * ip6_tnl_addr_conflict - compare packet addresses to tunnel's own
   * ip6_tnl_addr_conflict - compare packet addresses to tunnel's own
   *   @t: the outgoing tunnel device
   *   @t: the outgoing tunnel device
-@@ -1304,6 +1444,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1303,6 +1443,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
  {
  {
  	struct ip6_tnl *t = netdev_priv(dev);
  	struct ip6_tnl *t = netdev_priv(dev);
  	struct ipv6hdr *ipv6h = ipv6_hdr(skb);
  	struct ipv6hdr *ipv6h = ipv6_hdr(skb);
@@ -308,7 +308,7 @@ Signed-off-by: Steven Barth <[email protected]>
  	int encap_limit = -1;
  	int encap_limit = -1;
  	__u16 offset;
  	__u16 offset;
  	struct flowi6 fl6;
  	struct flowi6 fl6;
-@@ -1366,6 +1507,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1365,6 +1506,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
  
  
  	fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL);
  	fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL);
  
  
@@ -327,7 +327,7 @@ Signed-off-by: Steven Barth <[email protected]>
  	if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
  	if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
  		return -1;
  		return -1;
  
  
-@@ -1494,6 +1647,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
+@@ -1493,6 +1646,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
  	t->parms.link = p->link;
  	t->parms.link = p->link;
  	t->parms.proto = p->proto;
  	t->parms.proto = p->proto;
  	t->parms.fwmark = p->fwmark;
  	t->parms.fwmark = p->fwmark;
@@ -342,7 +342,7 @@ Signed-off-by: Steven Barth <[email protected]>
  	dst_cache_reset(&t->dst_cache);
  	dst_cache_reset(&t->dst_cache);
  	ip6_tnl_link_config(t);
  	ip6_tnl_link_config(t);
  	return 0;
  	return 0;
-@@ -1532,6 +1693,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
+@@ -1531,6 +1692,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
  	p->flowinfo = u->flowinfo;
  	p->flowinfo = u->flowinfo;
  	p->link = u->link;
  	p->link = u->link;
  	p->proto = u->proto;
  	p->proto = u->proto;
@@ -350,7 +350,7 @@ Signed-off-by: Steven Barth <[email protected]>
  	memcpy(p->name, u->name, sizeof(u->name));
  	memcpy(p->name, u->name, sizeof(u->name));
  }
  }
  
  
-@@ -1913,6 +2075,15 @@ static int ip6_tnl_validate(struct nlatt
+@@ -1912,6 +2074,15 @@ static int ip6_tnl_validate(struct nlatt
  	return 0;
  	return 0;
  }
  }
  
  
@@ -366,7 +366,7 @@ Signed-off-by: Steven Barth <[email protected]>
  static void ip6_tnl_netlink_parms(struct nlattr *data[],
  static void ip6_tnl_netlink_parms(struct nlattr *data[],
  				  struct __ip6_tnl_parm *parms)
  				  struct __ip6_tnl_parm *parms)
  {
  {
-@@ -1950,6 +2121,46 @@ static void ip6_tnl_netlink_parms(struct
+@@ -1949,6 +2120,46 @@ static void ip6_tnl_netlink_parms(struct
  
  
  	if (data[IFLA_IPTUN_FWMARK])
  	if (data[IFLA_IPTUN_FWMARK])
  		parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]);
  		parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]);
@@ -413,7 +413,7 @@ Signed-off-by: Steven Barth <[email protected]>
  }
  }
  
  
  static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
  static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
-@@ -2061,6 +2272,12 @@ static void ip6_tnl_dellink(struct net_d
+@@ -2060,6 +2271,12 @@ static void ip6_tnl_dellink(struct net_d
  
  
  static size_t ip6_tnl_get_size(const struct net_device *dev)
  static size_t ip6_tnl_get_size(const struct net_device *dev)
  {
  {
@@ -426,7 +426,7 @@ Signed-off-by: Steven Barth <[email protected]>
  	return
  	return
  		/* IFLA_IPTUN_LINK */
  		/* IFLA_IPTUN_LINK */
  		nla_total_size(4) +
  		nla_total_size(4) +
-@@ -2090,6 +2307,24 @@ static size_t ip6_tnl_get_size(const str
+@@ -2089,6 +2306,24 @@ static size_t ip6_tnl_get_size(const str
  		nla_total_size(0) +
  		nla_total_size(0) +
  		/* IFLA_IPTUN_FWMARK */
  		/* IFLA_IPTUN_FWMARK */
  		nla_total_size(4) +
  		nla_total_size(4) +
@@ -451,7 +451,7 @@ Signed-off-by: Steven Barth <[email protected]>
  		0;
  		0;
  }
  }
  
  
-@@ -2097,6 +2332,9 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2096,6 +2331,9 @@ static int ip6_tnl_fill_info(struct sk_b
  {
  {
  	struct ip6_tnl *tunnel = netdev_priv(dev);
  	struct ip6_tnl *tunnel = netdev_priv(dev);
  	struct __ip6_tnl_parm *parm = &tunnel->parms;
  	struct __ip6_tnl_parm *parm = &tunnel->parms;
@@ -461,7 +461,7 @@ Signed-off-by: Steven Barth <[email protected]>
  
  
  	if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
  	if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
  	    nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
  	    nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
-@@ -2106,9 +2344,27 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2105,9 +2343,27 @@ static int ip6_tnl_fill_info(struct sk_b
  	    nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
  	    nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
  	    nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
  	    nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
  	    nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) ||
  	    nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) ||
@@ -490,7 +490,7 @@ Signed-off-by: Steven Barth <[email protected]>
  	if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
  	if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
  	    nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) ||
  	    nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) ||
  	    nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
  	    nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
-@@ -2148,6 +2404,7 @@ static const struct nla_policy ip6_tnl_p
+@@ -2147,6 +2403,7 @@ static const struct nla_policy ip6_tnl_p
  	[IFLA_IPTUN_ENCAP_DPORT]	= { .type = NLA_U16 },
  	[IFLA_IPTUN_ENCAP_DPORT]	= { .type = NLA_U16 },
  	[IFLA_IPTUN_COLLECT_METADATA]	= { .type = NLA_FLAG },
  	[IFLA_IPTUN_COLLECT_METADATA]	= { .type = NLA_FLAG },
  	[IFLA_IPTUN_FWMARK]		= { .type = NLA_U32 },
  	[IFLA_IPTUN_FWMARK]		= { .type = NLA_U32 },

+ 8 - 8
target/linux/generic/pending-4.14/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch

@@ -171,7 +171,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  /*
  /*
   *	Allocate a dst for local (unicast / anycast) address.
   *	Allocate a dst for local (unicast / anycast) address.
   */
   */
-@@ -3000,7 +3033,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -3002,7 +3035,8 @@ static int rtm_to_fib6_config(struct sk_
  	if (rtm->rtm_type == RTN_UNREACHABLE ||
  	if (rtm->rtm_type == RTN_UNREACHABLE ||
  	    rtm->rtm_type == RTN_BLACKHOLE ||
  	    rtm->rtm_type == RTN_BLACKHOLE ||
  	    rtm->rtm_type == RTN_PROHIBIT ||
  	    rtm->rtm_type == RTN_PROHIBIT ||
@@ -181,7 +181,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  		cfg->fc_flags |= RTF_REJECT;
  		cfg->fc_flags |= RTF_REJECT;
  
  
  	if (rtm->rtm_type == RTN_LOCAL)
  	if (rtm->rtm_type == RTN_LOCAL)
-@@ -3490,6 +3524,9 @@ static int rt6_fill_node(struct net *net
+@@ -3492,6 +3526,9 @@ static int rt6_fill_node(struct net *net
  		case -EACCES:
  		case -EACCES:
  			rtm->rtm_type = RTN_PROHIBIT;
  			rtm->rtm_type = RTN_PROHIBIT;
  			break;
  			break;
@@ -191,7 +191,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  		case -EAGAIN:
  		case -EAGAIN:
  			rtm->rtm_type = RTN_THROW;
  			rtm->rtm_type = RTN_THROW;
  			break;
  			break;
-@@ -3808,6 +3845,8 @@ static int ip6_route_dev_notify(struct n
+@@ -3810,6 +3847,8 @@ static int ip6_route_dev_notify(struct n
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  		net->ipv6.ip6_prohibit_entry->dst.dev = dev;
  		net->ipv6.ip6_prohibit_entry->dst.dev = dev;
  		net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
  		net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
@@ -200,7 +200,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  		net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
  		net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
  		net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
  		net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
  #endif
  #endif
-@@ -3819,6 +3858,7 @@ static int ip6_route_dev_notify(struct n
+@@ -3821,6 +3860,7 @@ static int ip6_route_dev_notify(struct n
  		in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
  		in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  		in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
  		in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
@@ -208,7 +208,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  		in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
  		in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
  #endif
  #endif
  	}
  	}
-@@ -4035,6 +4075,17 @@ static int __net_init ip6_route_net_init
+@@ -4037,6 +4077,17 @@ static int __net_init ip6_route_net_init
  	net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
  	net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
  	dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
  	dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
  			 ip6_template_metrics, true);
  			 ip6_template_metrics, true);
@@ -226,7 +226,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  #endif
  #endif
  
  
  	net->ipv6.sysctl.flush_delay = 0;
  	net->ipv6.sysctl.flush_delay = 0;
-@@ -4053,6 +4104,8 @@ out:
+@@ -4055,6 +4106,8 @@ out:
  	return ret;
  	return ret;
  
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
@@ -235,7 +235,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  out_ip6_prohibit_entry:
  out_ip6_prohibit_entry:
  	kfree(net->ipv6.ip6_prohibit_entry);
  	kfree(net->ipv6.ip6_prohibit_entry);
  out_ip6_null_entry:
  out_ip6_null_entry:
-@@ -4070,6 +4123,7 @@ static void __net_exit ip6_route_net_exi
+@@ -4072,6 +4125,7 @@ static void __net_exit ip6_route_net_exi
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  	kfree(net->ipv6.ip6_prohibit_entry);
  	kfree(net->ipv6.ip6_prohibit_entry);
  	kfree(net->ipv6.ip6_blk_hole_entry);
  	kfree(net->ipv6.ip6_blk_hole_entry);
@@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <[email protected]>
  #endif
  #endif
  	dst_entries_destroy(&net->ipv6.ip6_dst_ops);
  	dst_entries_destroy(&net->ipv6.ip6_dst_ops);
  }
  }
-@@ -4143,6 +4197,9 @@ void __init ip6_route_init_special_entri
+@@ -4145,6 +4199,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_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->dst.dev = init_net.loopback_dev;
  	init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
  	init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);

+ 4 - 4
target/linux/generic/pending-4.14/834-ledtrig-libata.patch

@@ -65,7 +65,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  /**
  /**
   *	ata_build_rw_tf - Build ATA taskfile for given read/write request
   *	ata_build_rw_tf - Build ATA taskfile for given read/write request
   *	@tf: Target ATA taskfile
   *	@tf: Target ATA taskfile
-@@ -5111,6 +5124,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
+@@ -5114,6 +5127,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
  		if (tag < 0)
  		if (tag < 0)
  			return NULL;
  			return NULL;
  	}
  	}
@@ -75,7 +75,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  
  
  	qc = __ata_qc_from_tag(ap, tag);
  	qc = __ata_qc_from_tag(ap, tag);
  	qc->tag = tag;
  	qc->tag = tag;
-@@ -6012,6 +6028,9 @@ struct ata_port *ata_port_alloc(struct a
+@@ -6015,6 +6031,9 @@ struct ata_port *ata_port_alloc(struct a
  	ap->stats.unhandled_irq = 1;
  	ap->stats.unhandled_irq = 1;
  	ap->stats.idle_irq = 1;
  	ap->stats.idle_irq = 1;
  #endif
  #endif
@@ -85,7 +85,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  	ata_sff_port_init(ap);
  	ata_sff_port_init(ap);
  
  
  	return ap;
  	return ap;
-@@ -6033,6 +6052,12 @@ static void ata_host_release(struct devi
+@@ -6036,6 +6055,12 @@ static void ata_host_release(struct devi
  
  
  		kfree(ap->pmp_link);
  		kfree(ap->pmp_link);
  		kfree(ap->slave_link);
  		kfree(ap->slave_link);
@@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle <[email protected]>
  		kfree(ap);
  		kfree(ap);
  		host->ports[i] = NULL;
  		host->ports[i] = NULL;
  	}
  	}
-@@ -6479,7 +6504,23 @@ int ata_host_register(struct ata_host *h
+@@ -6482,7 +6507,23 @@ int ata_host_register(struct ata_host *h
  		host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
  		host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
  		host->ports[i]->local_port_no = i + 1;
  		host->ports[i]->local_port_no = i + 1;
  	}
  	}

+ 0 - 66
target/linux/mvebu/patches-4.14/522-PCI-aardvark-fix-logic-in-PCI-configuration-read-write-functions.patch

@@ -1,66 +0,0 @@
-From patchwork Thu Sep 28 12:58:32 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v2, 1/7] PCI: aardvark: fix logic in PCI configuration read/write
- functions
-X-Patchwork-Submitter: Thomas Petazzoni <[email protected]>
-X-Patchwork-Id: 819586
-Message-Id: <[email protected]>
-To: Bjorn Helgaas <[email protected]>, [email protected]
-Cc: Jason Cooper <[email protected]>, Andrew Lunn <[email protected]>,
- Sebastian Hesselbarth <[email protected]>, Gregory Clement
- <[email protected]>, 
- Nadav Haklai <[email protected]>, Hanna Hawa <[email protected]>,
- Yehuda Yitschak <[email protected]>,
- [email protected], Antoine Tenart
- <[email protected]>, =?utf-8?q?Miqu=C3=A8l_Raynal?=
- <[email protected]>, Victor Gu <[email protected]>,
- [email protected], Thomas Petazzoni
- <[email protected]>
-Date: Thu, 28 Sep 2017 14:58:32 +0200
-From: Thomas Petazzoni <[email protected]>
-List-Id: <linux-pci.vger.kernel.org>
-
-From: Victor Gu <[email protected]>
-
-The PCI configuration space read/write functions were special casing
-the situation where PCI_SLOT(devfn) != 0, and returned
-PCIBIOS_DEVICE_NOT_FOUND in this case.
-
-However, will this is what is intended for the root bus, it is not
-intended for the child busses, as it prevents discovering devices with
-PCI_SLOT(x) != 0. Therefore, we return PCIBIOS_DEVICE_NOT_FOUND only
-if we're on the root bus.
-
-Fixes: 8c39d710363c1 ("PCI: aardvark: Add Aardvark PCI host controller driver")
-Cc: <[email protected]>
-Signed-off-by: Victor Gu <[email protected]>
-Reviewed-by: Wilson Ding <[email protected]>
-Reviewed-by: Nadav Haklai <[email protected]>
-[Thomas: tweak commit log.]
-Signed-off-by: Thomas Petazzoni <[email protected]>
----
- drivers/pci/host/pci-aardvark.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/drivers/pci/host/pci-aardvark.c
-+++ b/drivers/pci/host/pci-aardvark.c
-@@ -440,7 +440,7 @@ static int advk_pcie_rd_conf(struct pci_
- 	u32 reg;
- 	int ret;
- 
--	if (PCI_SLOT(devfn) != 0) {
-+	if ((bus->number == pcie->root_bus_nr) && (PCI_SLOT(devfn) != 0)) {
- 		*val = 0xffffffff;
- 		return PCIBIOS_DEVICE_NOT_FOUND;
- 	}
-@@ -494,7 +494,7 @@ static int advk_pcie_wr_conf(struct pci_
- 	int offset;
- 	int ret;
- 
--	if (PCI_SLOT(devfn) != 0)
-+	if ((bus->number == pcie->root_bus_nr) && (PCI_SLOT(devfn) != 0))
- 		return PCIBIOS_DEVICE_NOT_FOUND;
- 
- 	if (where % size)

+ 0 - 53
target/linux/mvebu/patches-4.14/523-PCI-aardvark-set-PIO_ADDR_LS-correctly-in-advk_pcie_rd_conf.patch

@@ -1,53 +0,0 @@
-From patchwork Thu Sep 28 12:58:33 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v2,
- 2/7] PCI: aardvark: set PIO_ADDR_LS correctly in advk_pcie_rd_conf()
-X-Patchwork-Submitter: Thomas Petazzoni <[email protected]>
-X-Patchwork-Id: 819589
-Message-Id: <[email protected]>
-To: Bjorn Helgaas <[email protected]>, [email protected]
-Cc: Jason Cooper <[email protected]>, Andrew Lunn <[email protected]>,
- Sebastian Hesselbarth <[email protected]>, Gregory Clement
- <[email protected]>, 
- Nadav Haklai <[email protected]>, Hanna Hawa <[email protected]>,
- Yehuda Yitschak <[email protected]>,
- [email protected], Antoine Tenart
- <[email protected]>, =?utf-8?q?Miqu=C3=A8l_Raynal?=
- <[email protected]>, Victor Gu <[email protected]>,
- [email protected], Thomas Petazzoni
- <[email protected]>
-Date: Thu, 28 Sep 2017 14:58:33 +0200
-From: Thomas Petazzoni <[email protected]>
-List-Id: <linux-pci.vger.kernel.org>
-
-From: Victor Gu <[email protected]>
-
-When setting the PIO_ADDR_LS register during a configuration read, we
-were properly passing the device number, function number and register
-number, but not the bus number, causing issues when reading the
-configuration of PCIe devices.
-
-Fixes: 8c39d710363c1 ("PCI: aardvark: Add Aardvark PCI host controller driver")
-Cc: <[email protected]>
-Signed-off-by: Victor Gu <[email protected]>
-Reviewed-by: Wilson Ding <[email protected]>
-Reviewed-by: Nadav Haklai <[email protected]>
-[Thomas: tweak commit log.]
-Signed-off-by: Thomas Petazzoni <[email protected]>
----
- drivers/pci/host/pci-aardvark.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/pci/host/pci-aardvark.c
-+++ b/drivers/pci/host/pci-aardvark.c
-@@ -459,7 +459,7 @@ static int advk_pcie_rd_conf(struct pci_
- 	advk_writel(pcie, reg, PIO_CTRL);
- 
- 	/* Program the address registers */
--	reg = PCIE_BDF(devfn) | PCIE_CONF_REG(where);
-+	reg = PCIE_CONF_ADDR(bus->number, devfn, where);
- 	advk_writel(pcie, reg, PIO_ADDR_LS);
- 	advk_writel(pcie, 0, PIO_ADDR_MS);
- 

+ 6 - 5
target/linux/mvebu/patches-4.14/524-PCI-aardvark-set-host-and-device-to-the-same-MAX-payload-size.patch

@@ -45,13 +45,14 @@ Signed-off-by: Thomas Petazzoni <[email protected]>
 
 
 --- a/drivers/pci/host/pci-aardvark.c
 --- a/drivers/pci/host/pci-aardvark.c
 +++ b/drivers/pci/host/pci-aardvark.c
 +++ b/drivers/pci/host/pci-aardvark.c
-@@ -30,8 +30,10 @@
+@@ -30,9 +30,11 @@
  #define PCIE_CORE_DEV_CTRL_STATS_REG				0xc8
  #define PCIE_CORE_DEV_CTRL_STATS_REG				0xc8
  #define     PCIE_CORE_DEV_CTRL_STATS_RELAX_ORDER_DISABLE	(0 << 4)
  #define     PCIE_CORE_DEV_CTRL_STATS_RELAX_ORDER_DISABLE	(0 << 4)
  #define     PCIE_CORE_DEV_CTRL_STATS_MAX_PAYLOAD_SZ_SHIFT	5
  #define     PCIE_CORE_DEV_CTRL_STATS_MAX_PAYLOAD_SZ_SHIFT	5
 +#define     PCIE_CORE_DEV_CTRL_STATS_MAX_PAYLOAD_SZ		0x2
 +#define     PCIE_CORE_DEV_CTRL_STATS_MAX_PAYLOAD_SZ		0x2
  #define     PCIE_CORE_DEV_CTRL_STATS_SNOOP_DISABLE		(0 << 11)
  #define     PCIE_CORE_DEV_CTRL_STATS_SNOOP_DISABLE		(0 << 11)
  #define     PCIE_CORE_DEV_CTRL_STATS_MAX_RD_REQ_SIZE_SHIFT	12
  #define     PCIE_CORE_DEV_CTRL_STATS_MAX_RD_REQ_SIZE_SHIFT	12
+ #define     PCIE_CORE_DEV_CTRL_STATS_MAX_RD_REQ_SZ		0x2
 +#define     PCIE_CORE_MPS_UNIT_BYTE				128
 +#define     PCIE_CORE_MPS_UNIT_BYTE				128
  #define PCIE_CORE_LINK_CTRL_STAT_REG				0xd0
  #define PCIE_CORE_LINK_CTRL_STAT_REG				0xd0
  #define     PCIE_CORE_LINK_L0S_ENTRY				BIT(0)
  #define     PCIE_CORE_LINK_L0S_ENTRY				BIT(0)
@@ -64,9 +65,9 @@ Signed-off-by: Thomas Petazzoni <[email protected]>
 +		(PCIE_CORE_DEV_CTRL_STATS_MAX_PAYLOAD_SZ <<
 +		(PCIE_CORE_DEV_CTRL_STATS_MAX_PAYLOAD_SZ <<
 +		 PCIE_CORE_DEV_CTRL_STATS_MAX_PAYLOAD_SZ_SHIFT) |
 +		 PCIE_CORE_DEV_CTRL_STATS_MAX_PAYLOAD_SZ_SHIFT) |
  		PCIE_CORE_DEV_CTRL_STATS_SNOOP_DISABLE |
  		PCIE_CORE_DEV_CTRL_STATS_SNOOP_DISABLE |
- 		PCIE_CORE_DEV_CTRL_STATS_MAX_RD_REQ_SIZE_SHIFT;
- 	advk_writel(pcie, reg, PCIE_CORE_DEV_CTRL_STATS_REG);
-@@ -879,6 +882,58 @@ out_release_res:
+ 		(PCIE_CORE_DEV_CTRL_STATS_MAX_RD_REQ_SZ <<
+ 		 PCIE_CORE_DEV_CTRL_STATS_MAX_RD_REQ_SIZE_SHIFT);
+@@ -886,6 +889,58 @@ out_release_res:
  	return err;
  	return err;
  }
  }
  
  
@@ -125,7 +126,7 @@ Signed-off-by: Thomas Petazzoni <[email protected]>
  static int advk_pcie_probe(struct platform_device *pdev)
  static int advk_pcie_probe(struct platform_device *pdev)
  {
  {
  	struct device *dev = &pdev->dev;
  	struct device *dev = &pdev->dev;
-@@ -952,6 +1007,9 @@ static int advk_pcie_probe(struct platfo
+@@ -959,6 +1014,9 @@ static int advk_pcie_probe(struct platfo
  	list_for_each_entry(child, &bus->children, node)
  	list_for_each_entry(child, &bus->children, node)
  		pcie_bus_configure_settings(child);
  		pcie_bus_configure_settings(child);
  
  

+ 0 - 143
target/linux/mvebu/patches-4.14/525-PCI-aardvark-use-isr1-instead-of-isr0-interrupt-in-legacy-irq-mode.patch

@@ -1,143 +0,0 @@
-From patchwork Thu Sep 28 12:58:35 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v2,
- 4/7] PCI: aardvark: use isr1 instead of isr0 interrupt in legacy irq
- mode
-X-Patchwork-Submitter: Thomas Petazzoni <[email protected]>
-X-Patchwork-Id: 819592
-Message-Id: <[email protected]>
-To: Bjorn Helgaas <[email protected]>, [email protected]
-Cc: Jason Cooper <[email protected]>, Andrew Lunn <[email protected]>,
- Sebastian Hesselbarth <[email protected]>, Gregory Clement
- <[email protected]>, 
- Nadav Haklai <[email protected]>, Hanna Hawa <[email protected]>,
- Yehuda Yitschak <[email protected]>,
- [email protected], Antoine Tenart
- <[email protected]>, =?utf-8?q?Miqu=C3=A8l_Raynal?=
- <[email protected]>, Victor Gu <[email protected]>,
- Thomas Petazzoni <[email protected]>
-Date: Thu, 28 Sep 2017 14:58:35 +0200
-From: Thomas Petazzoni <[email protected]>
-List-Id: <linux-pci.vger.kernel.org>
-
-From: Victor Gu <[email protected]>
-
-The Aardvark has two interrupts sets:
-
- - first set is bit[23:16] of PCIe ISR 0 register(RD0074840h)
-
- - second set is bit[11:8] of PCIe ISR 1 register(RD0074848h)
-
-Only one set should be used, while another set should be masked.
-
-The second set, ISR1, is more advanced, the Legacy INT_X status bit is
-asserted once Assert_INTX message is received, and de-asserted after
-Deassert_INTX message is received. Therefore, it matches what the
-driver is currently doing in the ->irq_mask() and ->irq_unmask()
-functions. The ISR0 requires additional work to deassert the
-interrupt, which the driver doesn't do currently.
-
-This commit resolves a number of issues with legacy interrupts.
-
-This is part of fixing bug
-https://bugzilla.kernel.org/show_bug.cgi?id=196339, this commit was
-reported as the user to be important to get a Intel 7260 mini-PCIe
-WiFi card working.
-
-Fixes: 8c39d710363c1 ("PCI: aardvark: Add Aardvark PCI host controller driver")
-Signed-off-by: Victor Gu <[email protected]>
-Reviewed-by: Evan Wang <[email protected]>
-Reviewed-by: Nadav Haklai <[email protected]>
-[Thomas: tweak commit log.]
-Signed-off-by: Thomas Petazzoni <[email protected]>
----
- drivers/pci/host/pci-aardvark.c | 41 ++++++++++++++++++++++++-----------------
- 1 file changed, 24 insertions(+), 17 deletions(-)
-
---- a/drivers/pci/host/pci-aardvark.c
-+++ b/drivers/pci/host/pci-aardvark.c
-@@ -105,7 +105,8 @@
- #define PCIE_ISR1_MASK_REG			(CONTROL_BASE_ADDR + 0x4C)
- #define     PCIE_ISR1_POWER_STATE_CHANGE	BIT(4)
- #define     PCIE_ISR1_FLUSH			BIT(5)
--#define     PCIE_ISR1_ALL_MASK			GENMASK(5, 4)
-+#define     PCIE_ISR1_INTX_ASSERT(val)		BIT(8 + (val))
-+#define     PCIE_ISR1_ALL_MASK			GENMASK(11, 4)
- #define PCIE_MSI_ADDR_LOW_REG			(CONTROL_BASE_ADDR + 0x50)
- #define PCIE_MSI_ADDR_HIGH_REG			(CONTROL_BASE_ADDR + 0x54)
- #define PCIE_MSI_STATUS_REG			(CONTROL_BASE_ADDR + 0x58)
-@@ -615,9 +616,9 @@ static void advk_pcie_irq_mask(struct ir
- 	irq_hw_number_t hwirq = irqd_to_hwirq(d);
- 	u32 mask;
- 
--	mask = advk_readl(pcie, PCIE_ISR0_MASK_REG);
--	mask |= PCIE_ISR0_INTX_ASSERT(hwirq);
--	advk_writel(pcie, mask, PCIE_ISR0_MASK_REG);
-+	mask = advk_readl(pcie, PCIE_ISR1_MASK_REG);
-+	mask |= PCIE_ISR1_INTX_ASSERT(hwirq);
-+	advk_writel(pcie, mask, PCIE_ISR1_MASK_REG);
- }
- 
- static void advk_pcie_irq_unmask(struct irq_data *d)
-@@ -626,9 +627,9 @@ static void advk_pcie_irq_unmask(struct
- 	irq_hw_number_t hwirq = irqd_to_hwirq(d);
- 	u32 mask;
- 
--	mask = advk_readl(pcie, PCIE_ISR0_MASK_REG);
--	mask &= ~PCIE_ISR0_INTX_ASSERT(hwirq);
--	advk_writel(pcie, mask, PCIE_ISR0_MASK_REG);
-+	mask = advk_readl(pcie, PCIE_ISR1_MASK_REG);
-+	mask &= ~PCIE_ISR1_INTX_ASSERT(hwirq);
-+	advk_writel(pcie, mask, PCIE_ISR1_MASK_REG);
- }
- 
- static int advk_pcie_irq_map(struct irq_domain *h,
-@@ -771,29 +772,35 @@ static void advk_pcie_handle_msi(struct
- 
- static void advk_pcie_handle_int(struct advk_pcie *pcie)
- {
--	u32 val, mask, status;
-+	u32 isr0_val, isr0_mask, isr0_status;
-+	u32 isr1_val, isr1_mask, isr1_status;
- 	int i, virq;
- 
--	val = advk_readl(pcie, PCIE_ISR0_REG);
--	mask = advk_readl(pcie, PCIE_ISR0_MASK_REG);
--	status = val & ((~mask) & PCIE_ISR0_ALL_MASK);
--
--	if (!status) {
--		advk_writel(pcie, val, PCIE_ISR0_REG);
-+	isr0_val = advk_readl(pcie, PCIE_ISR0_REG);
-+	isr0_mask = advk_readl(pcie, PCIE_ISR0_MASK_REG);
-+	isr0_status = isr0_val & ((~isr0_mask) & PCIE_ISR0_ALL_MASK);
-+
-+	isr1_val = advk_readl(pcie, PCIE_ISR1_REG);
-+	isr1_mask = advk_readl(pcie, PCIE_ISR1_MASK_REG);
-+	isr1_status = isr1_val & ((~isr1_mask) & PCIE_ISR1_ALL_MASK);
-+
-+	if (!isr0_status && !isr1_status) {
-+		advk_writel(pcie, isr0_val, PCIE_ISR0_REG);
-+		advk_writel(pcie, isr1_val, PCIE_ISR1_REG);
- 		return;
- 	}
- 
- 	/* Process MSI interrupts */
--	if (status & PCIE_ISR0_MSI_INT_PENDING)
-+	if (isr0_status & PCIE_ISR0_MSI_INT_PENDING)
- 		advk_pcie_handle_msi(pcie);
- 
- 	/* Process legacy interrupts */
- 	for (i = 0; i < PCI_NUM_INTX; i++) {
--		if (!(status & PCIE_ISR0_INTX_ASSERT(i)))
-+		if (!(isr1_status & PCIE_ISR1_INTX_ASSERT(i)))
- 			continue;
- 
--		advk_writel(pcie, PCIE_ISR0_INTX_ASSERT(i),
--			    PCIE_ISR0_REG);
-+		advk_writel(pcie, PCIE_ISR1_INTX_ASSERT(i),
-+			    PCIE_ISR1_REG);
- 
- 		virq = irq_find_mapping(pcie->irq_domain, i);
- 		generic_handle_irq(virq);

+ 0 - 63
target/linux/mvebu/patches-4.14/527-PCI-aardvark-fix-PCIe-max-read-request-size-setting.patch

@@ -1,63 +0,0 @@
-From patchwork Thu Sep 28 12:58:37 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v2,6/7] PCI: aardvark: fix PCIe max read request size setting
-X-Patchwork-Submitter: Thomas Petazzoni <[email protected]>
-X-Patchwork-Id: 819591
-Message-Id: <[email protected]>
-To: Bjorn Helgaas <[email protected]>, [email protected]
-Cc: Jason Cooper <[email protected]>, Andrew Lunn <[email protected]>,
- Sebastian Hesselbarth <[email protected]>, Gregory Clement
- <[email protected]>, 
- Nadav Haklai <[email protected]>, Hanna Hawa <[email protected]>,
- Yehuda Yitschak <[email protected]>,
- [email protected], Antoine Tenart
- <[email protected]>, =?utf-8?q?Miqu=C3=A8l_Raynal?=
- <[email protected]>, Evan Wang <[email protected]>,
- Thomas Petazzoni <[email protected]>
-Date: Thu, 28 Sep 2017 14:58:37 +0200
-From: Thomas Petazzoni <[email protected]>
-List-Id: <linux-pci.vger.kernel.org>
-
-From: Evan Wang <[email protected]>
-
-There is an obvious typo issue in the definition of the PCIe maximum
-read request size: a bit shift is directly used as a value, while it
-should be used to shift the correct value.
-
-This is part of fixing bug
-https://bugzilla.kernel.org/show_bug.cgi?id=196339, this commit was
-reported as the user to be important to get a Intel 7260 mini-PCIe
-WiFi card working.
-
-Fixes: 8c39d710363c1 ("PCI: aardvark: Add Aardvark PCI host controller driver")
-Signed-off-by: Evan Wang <[email protected]>
-Reviewed-by: Victor Gu <[email protected]>
-Reviewed-by: Nadav Haklai <[email protected]>
-[Thomas: tweak commit log.]
-Signed-off-by: Thomas Petazzoni <[email protected]>
----
- drivers/pci/host/pci-aardvark.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
---- a/drivers/pci/host/pci-aardvark.c
-+++ b/drivers/pci/host/pci-aardvark.c
-@@ -33,6 +33,7 @@
- #define     PCIE_CORE_DEV_CTRL_STATS_MAX_PAYLOAD_SZ		0x2
- #define     PCIE_CORE_DEV_CTRL_STATS_SNOOP_DISABLE		(0 << 11)
- #define     PCIE_CORE_DEV_CTRL_STATS_MAX_RD_REQ_SIZE_SHIFT	12
-+#define     PCIE_CORE_DEV_CTRL_STATS_MAX_RD_REQ_SZ		0x2
- #define     PCIE_CORE_MPS_UNIT_BYTE				128
- #define PCIE_CORE_LINK_CTRL_STAT_REG				0xd0
- #define     PCIE_CORE_LINK_L0S_ENTRY				BIT(0)
-@@ -303,7 +304,8 @@ static void advk_pcie_setup_hw(struct ad
- 		(PCIE_CORE_DEV_CTRL_STATS_MAX_PAYLOAD_SZ <<
- 		 PCIE_CORE_DEV_CTRL_STATS_MAX_PAYLOAD_SZ_SHIFT) |
- 		PCIE_CORE_DEV_CTRL_STATS_SNOOP_DISABLE |
--		PCIE_CORE_DEV_CTRL_STATS_MAX_RD_REQ_SIZE_SHIFT;
-+		(PCIE_CORE_DEV_CTRL_STATS_MAX_RD_REQ_SZ <<
-+		 PCIE_CORE_DEV_CTRL_STATS_MAX_RD_REQ_SIZE_SHIFT);
- 	advk_writel(pcie, reg, PCIE_CORE_DEV_CTRL_STATS_REG);
- 
- 	/* Program PCIe Control 2 to disable strict ordering */

+ 2 - 2
target/linux/ramips/patches-4.14/0036-mtd-fix-cfi-cmdset-0002-erase-status-check.patch

@@ -9,7 +9,7 @@ Subject: [PATCH 36/53] mtd: fix cfi cmdset 0002 erase status check
 
 
 --- a/drivers/mtd/chips/cfi_cmdset_0002.c
 --- a/drivers/mtd/chips/cfi_cmdset_0002.c
 +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
 +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
-@@ -2293,7 +2293,7 @@ static int __xipram do_erase_chip(struct
+@@ -2295,7 +2295,7 @@ static int __xipram do_erase_chip(struct
  			chip->erase_suspended = 0;
  			chip->erase_suspended = 0;
  		}
  		}
  
  
@@ -18,7 +18,7 @@ Subject: [PATCH 36/53] mtd: fix cfi cmdset 0002 erase status check
  			break;
  			break;
  
  
  		if (time_after(jiffies, timeo)) {
  		if (time_after(jiffies, timeo)) {
-@@ -2382,7 +2382,7 @@ static int __xipram do_erase_oneblock(st
+@@ -2385,7 +2385,7 @@ static int __xipram do_erase_oneblock(st
  			chip->erase_suspended = 0;
  			chip->erase_suspended = 0;
  		}
  		}
  
  

+ 3 - 3
target/linux/ramips/patches-4.14/0037-mtd-cfi-cmdset-0002-force-word-write.patch

@@ -44,7 +44,7 @@ Subject: [PATCH 37/53] mtd: cfi cmdset 0002 force word write
  
  
  /* Atmel chips don't use the same PRI format as AMD chips */
  /* Atmel chips don't use the same PRI format as AMD chips */
  static void fixup_convert_atmel_pri(struct mtd_info *mtd)
  static void fixup_convert_atmel_pri(struct mtd_info *mtd)
-@@ -1791,6 +1795,7 @@ static int cfi_amdstd_write_words(struct
+@@ -1792,6 +1796,7 @@ static int cfi_amdstd_write_words(struct
  /*
  /*
   * FIXME: interleaved mode not tested, and probably not supported!
   * FIXME: interleaved mode not tested, and probably not supported!
   */
   */
@@ -52,7 +52,7 @@ Subject: [PATCH 37/53] mtd: cfi cmdset 0002 force word write
  static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip,
  static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip,
  				    unsigned long adr, const u_char *buf,
  				    unsigned long adr, const u_char *buf,
  				    int len)
  				    int len)
-@@ -1919,7 +1924,6 @@ static int __xipram do_write_buffer(stru
+@@ -1920,7 +1925,6 @@ static int __xipram do_write_buffer(stru
  	return ret;
  	return ret;
  }
  }
  
  
@@ -60,7 +60,7 @@ Subject: [PATCH 37/53] mtd: cfi cmdset 0002 force word write
  static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len,
  static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len,
  				    size_t *retlen, const u_char *buf)
  				    size_t *retlen, const u_char *buf)
  {
  {
-@@ -1994,6 +1998,7 @@ static int cfi_amdstd_write_buffers(stru
+@@ -1995,6 +1999,7 @@ static int cfi_amdstd_write_buffers(stru
  
  
  	return 0;
  	return 0;
  }
  }

+ 5 - 11
target/linux/ramips/patches-4.14/0043-spi-add-mt7621-support.patch

@@ -11,10 +11,8 @@ Signed-off-by: John Crispin <[email protected]>
  3 files changed, 487 insertions(+)
  3 files changed, 487 insertions(+)
  create mode 100644 drivers/spi/spi-mt7621.c
  create mode 100644 drivers/spi/spi-mt7621.c
 
 
-Index: linux-4.14.37/drivers/spi/Kconfig
-===================================================================
---- linux-4.14.37.orig/drivers/spi/Kconfig
-+++ linux-4.14.37/drivers/spi/Kconfig
+--- a/drivers/spi/Kconfig
++++ b/drivers/spi/Kconfig
 @@ -569,6 +569,12 @@ config SPI_RT2880
 @@ -569,6 +569,12 @@ config SPI_RT2880
  	help
  	help
  	  This selects a driver for the Ralink RT288x/RT305x SPI Controller.
  	  This selects a driver for the Ralink RT288x/RT305x SPI Controller.
@@ -28,10 +26,8 @@ Index: linux-4.14.37/drivers/spi/Kconfig
  config SPI_S3C24XX
  config SPI_S3C24XX
  	tristate "Samsung S3C24XX series SPI"
  	tristate "Samsung S3C24XX series SPI"
  	depends on ARCH_S3C24XX
  	depends on ARCH_S3C24XX
-Index: linux-4.14.37/drivers/spi/Makefile
-===================================================================
---- linux-4.14.37.orig/drivers/spi/Makefile
-+++ linux-4.14.37/drivers/spi/Makefile
+--- a/drivers/spi/Makefile
++++ b/drivers/spi/Makefile
 @@ -60,6 +60,7 @@ obj-$(CONFIG_SPI_MPC512x_PSC)		+= spi-mp
 @@ -60,6 +60,7 @@ obj-$(CONFIG_SPI_MPC512x_PSC)		+= spi-mp
  obj-$(CONFIG_SPI_MPC52xx_PSC)		+= spi-mpc52xx-psc.o
  obj-$(CONFIG_SPI_MPC52xx_PSC)		+= spi-mpc52xx-psc.o
  obj-$(CONFIG_SPI_MPC52xx)		+= spi-mpc52xx.o
  obj-$(CONFIG_SPI_MPC52xx)		+= spi-mpc52xx.o
@@ -40,10 +36,8 @@ Index: linux-4.14.37/drivers/spi/Makefile
  obj-$(CONFIG_SPI_MXS)			+= spi-mxs.o
  obj-$(CONFIG_SPI_MXS)			+= spi-mxs.o
  obj-$(CONFIG_SPI_NUC900)		+= spi-nuc900.o
  obj-$(CONFIG_SPI_NUC900)		+= spi-nuc900.o
  obj-$(CONFIG_SPI_OC_TINY)		+= spi-oc-tiny.o
  obj-$(CONFIG_SPI_OC_TINY)		+= spi-oc-tiny.o
-Index: linux-4.14.37/drivers/spi/spi-mt7621.c
-===================================================================
 --- /dev/null
 --- /dev/null
-+++ linux-4.14.37/drivers/spi/spi-mt7621.c
++++ b/drivers/spi/spi-mt7621.c
 @@ -0,0 +1,494 @@
 @@ -0,0 +1,494 @@
 +/*
 +/*
 + * spi-mt7621.c -- MediaTek MT7621 SPI controller driver
 + * spi-mt7621.c -- MediaTek MT7621 SPI controller driver