diff --git a/include/kernel-version.mk b/include/kernel-version.mk
index 877fa880f53..3e923037298 100644
--- a/include/kernel-version.mk
+++ b/include/kernel-version.mk
@@ -5,12 +5,12 @@ LINUX_RELEASE?=1
 LINUX_VERSION-3.18 = .71
 LINUX_VERSION-4.4 = .121
 LINUX_VERSION-4.9 = .105
-LINUX_VERSION-4.14 = .44
+LINUX_VERSION-4.14 = .48
 
 LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240
 LINUX_KERNEL_HASH-4.4.121 = 44a88268b5088dc326b30c9b9133ac35a9a200b636b7268d08f32abeae6ca729
 LINUX_KERNEL_HASH-4.9.105 = d085d228e3ac1fdbdf5a31bb8154e4e8a0943a9085f0384842601db8e9d96dc4
-LINUX_KERNEL_HASH-4.14.44 = 2eb356e6af25f6ca65affe7704be8c4e0cdf224505e7441ac9d5b6e8d96ec8e4
+LINUX_KERNEL_HASH-4.14.48 = 80a0608f611fe7a5c54556402cdc2880a21301e1c4e1b19d4c1db82ad2bf22b9
 
 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
 sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
diff --git a/target/linux/apm821xx/patches-4.14/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch b/target/linux/apm821xx/patches-4.14/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch
index efaf61a5f31..e8154253a32 100644
--- a/target/linux/apm821xx/patches-4.14/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch
+++ b/target/linux/apm821xx/patches-4.14/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch
@@ -44,7 +44,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
  
  #include "xhci.h"
  #include "xhci-trace.h"
-@@ -244,6 +246,458 @@ static void xhci_pme_acpi_rtd3_enable(st
+@@ -255,6 +257,458 @@ static void xhci_pme_acpi_rtd3_enable(st
  static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
  #endif /* CONFIG_ACPI */
  
@@ -503,7 +503,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
  /* called during probe() after chip reset completes */
  static int xhci_pci_setup(struct usb_hcd *hcd)
  {
-@@ -279,6 +733,22 @@ static int xhci_pci_probe(struct pci_dev
+@@ -290,6 +744,22 @@ static int xhci_pci_probe(struct pci_dev
  	struct hc_driver *driver;
  	struct usb_hcd *hcd;
  
@@ -526,7 +526,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
  	driver = (struct hc_driver *)id->driver_data;
  
  	/* For some HW implementation, a XHCI reset is just not enough... */
-@@ -343,6 +813,16 @@ static void xhci_pci_remove(struct pci_d
+@@ -354,6 +824,16 @@ static void xhci_pci_remove(struct pci_d
  {
  	struct xhci_hcd *xhci;
  
diff --git a/target/linux/apm821xx/patches-4.14/802-usb-xhci-force-msi-renesas-xhci.patch b/target/linux/apm821xx/patches-4.14/802-usb-xhci-force-msi-renesas-xhci.patch
index b78a7881c12..3545b99aabb 100644
--- a/target/linux/apm821xx/patches-4.14/802-usb-xhci-force-msi-renesas-xhci.patch
+++ b/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
 +++ b/drivers/usb/host/xhci-pci.c
-@@ -202,7 +202,7 @@ static void xhci_pci_quirks(struct devic
+@@ -213,7 +213,7 @@ static void xhci_pci_quirks(struct devic
  		xhci->quirks |= XHCI_TRUST_TX_LENGTH;
  	if (pdev->vendor == PCI_VENDOR_ID_RENESAS &&
  			pdev->device == 0x0015)
diff --git a/target/linux/ath79/patches-4.14/0009-MIPS-ath79-add-lots-of-missing-registers.patch b/target/linux/ath79/patches-4.14/0009-MIPS-ath79-add-lots-of-missing-registers.patch
index 5963ee8991e..d1755394fae 100644
--- a/target/linux/ath79/patches-4.14/0009-MIPS-ath79-add-lots-of-missing-registers.patch
+++ b/target/linux/ath79/patches-4.14/0009-MIPS-ath79-add-lots-of-missing-registers.patch
@@ -156,7 +156,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
  /*
   * PLL block
   */
-@@ -166,8 +260,14 @@
+@@ -166,9 +260,15 @@
  #define AR71XX_AHB_DIV_SHIFT		20
  #define AR71XX_AHB_DIV_MASK		0x7
  
@@ -164,14 +164,14 @@ Signed-off-by: John Crispin <john@phrozen.org>
 +#define AR71XX_ETH1_PLL_SHIFT		19
 +
  #define AR724X_PLL_REG_CPU_CONFIG	0x00
--#define AR724X_PLL_REG_PCIE_CONFIG	0x18
-+#define AR724X_PLL_REG_PCIE_CONFIG	0x10
-+
+ #define AR724X_PLL_REG_PCIE_CONFIG	0x10
+ 
 +#define AR724X_PLL_REG_PCIE_CONFIG_PPL_BYPASS	BIT(16)
 +#define AR724X_PLL_REG_PCIE_CONFIG_PPL_RESET	BIT(25)
- 
++
  #define AR724X_PLL_FB_SHIFT		0
  #define AR724X_PLL_FB_MASK		0x3ff
+ #define AR724X_PLL_REF_DIV_SHIFT	10
 @@ -178,6 +278,8 @@
  #define AR724X_DDR_DIV_SHIFT		22
  #define AR724X_DDR_DIV_MASK		0x3
diff --git a/target/linux/ath79/patches-4.14/910-unaligned_access_hacks.patch b/target/linux/ath79/patches-4.14/910-unaligned_access_hacks.patch
index e2ca932af04..9897679a622 100644
--- a/target/linux/ath79/patches-4.14/910-unaligned_access_hacks.patch
+++ b/target/linux/ath79/patches-4.14/910-unaligned_access_hacks.patch
@@ -724,7 +724,7 @@
  				       | TCPOLEN_TIMESTAMP))
 --- a/net/xfrm/xfrm_input.c
 +++ b/net/xfrm/xfrm_input.c
-@@ -187,8 +187,8 @@ int xfrm_parse_spi(struct sk_buff *skb,
+@@ -193,8 +193,8 @@ int xfrm_parse_spi(struct sk_buff *skb,
  	if (!pskb_may_pull(skb, hlen))
  		return -EINVAL;
  
@@ -737,7 +737,7 @@
  EXPORT_SYMBOL(xfrm_parse_spi);
 --- a/net/ipv4/tcp_input.c
 +++ b/net/ipv4/tcp_input.c
-@@ -3842,14 +3842,16 @@ static bool tcp_parse_aligned_timestamp(
+@@ -3844,14 +3844,16 @@ static bool tcp_parse_aligned_timestamp(
  {
  	const __be32 *ptr = (const __be32 *)(th + 1);
  
diff --git a/target/linux/bcm53xx/patches-4.14/180-usb-xhci-add-support-for-performing-fake-doorbell.patch b/target/linux/bcm53xx/patches-4.14/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
index 9f58370a18a..3bee392f4ff 100644
--- a/target/linux/bcm53xx/patches-4.14/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
+++ b/target/linux/bcm53xx/patches-4.14/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
@@ -129,7 +129,7 @@ it on BCM4708 family.
 +++ b/drivers/usb/host/xhci.h
 @@ -1831,6 +1831,7 @@ struct xhci_hcd {
  #define XHCI_LIMIT_ENDPOINT_INTERVAL_7	(1 << 26)
- /* Reserved. It was XHCI_U2_DISABLE_WAKE */
+ #define XHCI_U2_DISABLE_WAKE	(1 << 27)
  #define XHCI_ASMEDIA_MODIFY_FLOWCONTROL	(1 << 28)
 +#define XHCI_FAKE_DOORBELL	(1 << 29)
  #define XHCI_SUSPEND_DELAY	(1 << 30)
diff --git a/target/linux/generic/backport-4.14/011-kbuild-export-SUBARCH.patch b/target/linux/generic/backport-4.14/011-kbuild-export-SUBARCH.patch
index 0ce7429591e..3df01c34b10 100644
--- a/target/linux/generic/backport-4.14/011-kbuild-export-SUBARCH.patch
+++ b/target/linux/generic/backport-4.14/011-kbuild-export-SUBARCH.patch
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/Makefile
 +++ b/Makefile
-@@ -433,8 +433,8 @@ KBUILD_CFLAGS_MODULE  := -DMODULE
+@@ -428,8 +428,8 @@ KBUILD_CFLAGS_MODULE  := -DMODULE
  KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds
  GCC_PLUGINS_CFLAGS :=
  
diff --git a/target/linux/generic/backport-4.14/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch b/target/linux/generic/backport-4.14/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch
index 784c548c81a..45039ce1336 100644
--- a/target/linux/generic/backport-4.14/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch
+++ b/target/linux/generic/backport-4.14/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch
@@ -26,7 +26,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
  
  /*
   *	IEEE 802.3 Ethernet magic constants.  The frame sizes omit the preamble
-@@ -149,11 +150,13 @@
+@@ -150,11 +151,13 @@
   *	This is an Ethernet frame header.
   */
  
diff --git a/target/linux/generic/backport-4.14/336-v4.15-netfilter-exit_net-cleanup-check-added.patch b/target/linux/generic/backport-4.14/336-v4.15-netfilter-exit_net-cleanup-check-added.patch
index d4b99a5dc1c..431098fa093 100644
--- a/target/linux/generic/backport-4.14/336-v4.15-netfilter-exit_net-cleanup-check-added.patch
+++ b/target/linux/generic/backport-4.14/336-v4.15-netfilter-exit_net-cleanup-check-added.patch
@@ -11,7 +11,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
 
 --- a/net/ipv4/netfilter/ipt_CLUSTERIP.c
 +++ b/net/ipv4/netfilter/ipt_CLUSTERIP.c
-@@ -829,6 +829,7 @@ static void clusterip_net_exit(struct ne
+@@ -834,6 +834,7 @@ static void clusterip_net_exit(struct ne
  	cn->procdir = NULL;
  #endif
  	nf_unregister_net_hook(net, &cip_arp_ops);
diff --git a/target/linux/generic/hack-4.14/202-reduce_module_size.patch b/target/linux/generic/hack-4.14/202-reduce_module_size.patch
index 7d67e847c64..2cbb6add9a2 100644
--- a/target/linux/generic/hack-4.14/202-reduce_module_size.patch
+++ b/target/linux/generic/hack-4.14/202-reduce_module_size.patch
@@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/Makefile
 +++ b/Makefile
-@@ -430,7 +430,7 @@ KBUILD_AFLAGS_KERNEL :=
+@@ -425,7 +425,7 @@ KBUILD_AFLAGS_KERNEL :=
  KBUILD_CFLAGS_KERNEL :=
  KBUILD_AFLAGS_MODULE  := -DMODULE
  KBUILD_CFLAGS_MODULE  := -DMODULE
diff --git a/target/linux/generic/hack-4.14/207-disable-modorder.patch b/target/linux/generic/hack-4.14/207-disable-modorder.patch
index 8f99cde617f..5fb956c98d9 100644
--- a/target/linux/generic/hack-4.14/207-disable-modorder.patch
+++ b/target/linux/generic/hack-4.14/207-disable-modorder.patch
@@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/Makefile
 +++ b/Makefile
-@@ -1233,7 +1233,6 @@ all: modules
+@@ -1227,7 +1227,6 @@ all: modules
  
  PHONY += modules
  modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
@@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	@$(kecho) '  Building modules, stage 2.';
  	$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
  
-@@ -1262,7 +1261,6 @@ _modinst_:
+@@ -1256,7 +1255,6 @@ _modinst_:
  		rm -f $(MODLIB)/build ; \
  		ln -s $(CURDIR) $(MODLIB)/build ; \
  	fi
diff --git a/target/linux/generic/hack-4.14/220-gc_sections.patch b/target/linux/generic/hack-4.14/220-gc_sections.patch
index ef7cd6f897a..7fd493d2ff0 100644
--- a/target/linux/generic/hack-4.14/220-gc_sections.patch
+++ b/target/linux/generic/hack-4.14/220-gc_sections.patch
@@ -33,7 +33,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  # Read KERNELRELEASE from include/config/kernel.release (if it exists)
  KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
  KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
-@@ -787,11 +792,6 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH
+@@ -781,11 +786,6 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH
  KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once)
  endif
  
diff --git a/target/linux/generic/hack-4.14/773-bgmac-add-srab-switch.patch b/target/linux/generic/hack-4.14/773-bgmac-add-srab-switch.patch
index a6ba81fb099..33a18a8352a 100644
--- a/target/linux/generic/hack-4.14/773-bgmac-add-srab-switch.patch
+++ b/target/linux/generic/hack-4.14/773-bgmac-add-srab-switch.patch
@@ -32,7 +32,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
  #include <linux/bcm47xx_nvram.h>
  #include <linux/phy.h>
  #include <linux/phy_fixed.h>
-@@ -1409,6 +1410,17 @@ static const struct ethtool_ops bgmac_et
+@@ -1410,6 +1411,17 @@ static const struct ethtool_ops bgmac_et
  	.set_link_ksettings     = phy_ethtool_set_link_ksettings,
  };
  
@@ -50,7 +50,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
  /**************************************************
   * MII
   **************************************************/
-@@ -1538,6 +1550,14 @@ int bgmac_enet_probe(struct bgmac *bgmac
+@@ -1539,6 +1551,14 @@ int bgmac_enet_probe(struct bgmac *bgmac
  	net_dev->hw_features = net_dev->features;
  	net_dev->vlan_features = net_dev->features;
  
@@ -65,7 +65,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
  	err = register_netdev(bgmac->net_dev);
  	if (err) {
  		dev_err(bgmac->dev, "Cannot register net device\n");
-@@ -1560,6 +1580,10 @@ EXPORT_SYMBOL_GPL(bgmac_enet_probe);
+@@ -1561,6 +1581,10 @@ EXPORT_SYMBOL_GPL(bgmac_enet_probe);
  
  void bgmac_enet_remove(struct bgmac *bgmac)
  {
diff --git a/target/linux/generic/hack-4.14/902-debloat_proc.patch b/target/linux/generic/hack-4.14/902-debloat_proc.patch
index 4f5fb7022c8..3f47d22355c 100644
--- a/target/linux/generic/hack-4.14/902-debloat_proc.patch
+++ b/target/linux/generic/hack-4.14/902-debloat_proc.patch
@@ -243,7 +243,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
 --- a/mm/vmstat.c
 +++ b/mm/vmstat.c
-@@ -1944,10 +1944,12 @@ void __init init_mm_internals(void)
+@@ -1946,10 +1946,12 @@ void __init init_mm_internals(void)
  	start_shepherd_timer();
  #endif
  #ifdef CONFIG_PROC_FS
diff --git a/target/linux/generic/pending-4.14/101-clocksource-mips-gic-timer-fix-clocksource-counter-w.patch b/target/linux/generic/pending-4.14/101-clocksource-mips-gic-timer-fix-clocksource-counter-w.patch
deleted file mode 100644
index a554aa11255..00000000000
--- a/target/linux/generic/pending-4.14/101-clocksource-mips-gic-timer-fix-clocksource-counter-w.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From: Felix Fietkau <nbd@nbd.name>
-Date: Wed, 21 Feb 2018 13:40:12 +0100
-Subject: [PATCH] clocksource: mips-gic-timer: fix clocksource counter width
-
-This code needs to use ffs instead of fls on the mask to determine the
-shift for reading the GIC_CONFIG_COUNTBITS field.
-
-Fixes: e07127a077c7 ("clocksource: mips-gic-timer: Use new GIC accessor functions")
-Cc: Paul Burton <paul.burton@imgtec.com>
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
-
---- a/drivers/clocksource/mips-gic-timer.c
-+++ b/drivers/clocksource/mips-gic-timer.c
-@@ -164,7 +164,7 @@ static int __init __gic_clocksource_init
- 
- 	/* Set clocksource mask. */
- 	count_width = read_gic_config() & GIC_CONFIG_COUNTBITS;
--	count_width >>= __fls(GIC_CONFIG_COUNTBITS);
-+	count_width >>= __ffs(GIC_CONFIG_COUNTBITS);
- 	count_width *= 4;
- 	count_width += 32;
- 	gic_clocksource.mask = CLOCKSOURCE_MASK(count_width);
diff --git a/target/linux/generic/pending-4.14/103-MIPS-c-r4k-fix-data-corruption-related-to-cache-coherence.patch b/target/linux/generic/pending-4.14/103-MIPS-c-r4k-fix-data-corruption-related-to-cache-coherence.patch
deleted file mode 100644
index 69d926bd5bf..00000000000
--- a/target/linux/generic/pending-4.14/103-MIPS-c-r4k-fix-data-corruption-related-to-cache-coherence.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From patchwork Thu Apr 26 23:28:34 2018
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v2] MIPS: c-r4k: fix data corruption related to cache coherence.
-X-Patchwork-Submitter: NeilBrown <neil@brown.name>
-X-Patchwork-Id: 19259
-Message-Id: <87vacdlf8d.fsf@notabene.neil.brown.name>
-To: James Hogan <jhogan@kernel.org>
-Cc: Ralf Baechle <ralf@linux-mips.org>,
- Paul Burton <paul.burton@mips.com>, linux-mips@linux-mips.org,
- linux-kernel@vger.kernel.org
-Date: Fri, 27 Apr 2018 09:28:34 +1000
-From: NeilBrown <neil@brown.name>
-List-Id: linux-mips <linux-mips.eddie.linux-mips.org>
-
-When DMA will be performed to a MIPS32 1004K CPS, the
-L1-cache for the range needs to be flushed and invalidated
-first.
-The code currently takes one of two approaches.
-1/ If the range is less than the size of the dcache, then
-   HIT type requests flush/invalidate cache lines for the
-   particular addresses.  HIT-type requests a globalised
-   by the CPS so this is safe on SMP.
-
-2/ If the range is larger than the size of dcache, then
-   INDEX type requests flush/invalidate the whole cache.
-   INDEX type requests affect the local cache only. CPS
-   does not propagate them in any way.  So this invalidation
-   is not safe on SMP CPS systems.
-
-Data corruption due to '2' can quite easily be demonstrated by
-repeatedly "echo 3 > /proc/sys/vm/drop_caches" and then sha1sum
-a file that is several times the size of available memory.
-Dropping caches means that large contiguous extents (large than
-dcache) are more likely.
-
-This was not a problem before Linux-4.8 because option 2 was
-never used if CONFIG_MIPS_CPS was defined.  The commit
-which removed that apparently didn't appreciate the full
-consequence of the change.
-
-We could, in theory, globalize the INDEX based flush by sending an IPI
-to other cores.  These cache invalidation routines can be called with
-interrupts disabled and synchronous IPI require interrupts to be
-enabled.  Asynchronous IPI may not trigger writeback soon enough.
-So we cannot use IPI in practice.
-
-We can already test is IPI would be needed for an INDEX operation
-with r4k_op_needs_ipi(R4K_INDEX).  If this is True then we mustn't try
-the INDEX approach as we cannot use IPI.  If this is False (e.g. when
-there is only one core and hence one L1 cache) then it is safe to
-use the INDEX approach without IPI.
-
-This patch avoids options 2 if r4k_op_needs_ipi(R4K_INDEX), and so
-eliminates the corruption.
-
-Fixes: c00ab4896ed5 ("MIPS: Remove cpu_has_safe_index_cacheops")
-Cc: stable@vger.kernel.org # v4.8+
-Signed-off-by: NeilBrown <neil@brown.name>
----
- arch/mips/mm/c-r4k.c | 9 ++++++---
- 1 file changed, 6 insertions(+), 3 deletions(-)
-
---- a/arch/mips/mm/c-r4k.c
-+++ b/arch/mips/mm/c-r4k.c
-@@ -851,9 +851,12 @@ static void r4k_dma_cache_wback_inv(unsi
- 	/*
- 	 * Either no secondary cache or the available caches don't have the
- 	 * subset property so we have to flush the primary caches
--	 * explicitly
-+	 * explicitly.
-+	 * If we would need IPI to perform an INDEX-type operation, then
-+	 * we have to use the HIT-type alternative as IPI cannot be used
-+	 * here due to interrupts possibly being disabled.
- 	 */
--	if (size >= dcache_size) {
-+	if (!r4k_op_needs_ipi(R4K_INDEX) && size >= dcache_size) {
- 		r4k_blast_dcache();
- 	} else {
- 		R4600_HIT_CACHEOP_WAR_IMPL;
-@@ -890,7 +893,7 @@ static void r4k_dma_cache_inv(unsigned l
- 		return;
- 	}
- 
--	if (size >= dcache_size) {
-+	if (!r4k_op_needs_ipi(R4K_INDEX) && size >= dcache_size) {
- 		r4k_blast_dcache();
- 	} else {
- 		R4600_HIT_CACHEOP_WAR_IMPL;
diff --git a/target/linux/generic/pending-4.14/140-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch b/target/linux/generic/pending-4.14/140-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch
index b9bb3f71f10..c97e93250b1 100644
--- a/target/linux/generic/pending-4.14/140-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch
+++ b/target/linux/generic/pending-4.14/140-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch
@@ -8,7 +8,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/fs/jffs2/dir.c
 +++ b/fs/jffs2/dir.c
-@@ -756,6 +756,24 @@ static int jffs2_mknod (struct inode *di
+@@ -752,6 +752,24 @@ static int jffs2_mknod (struct inode *di
  	return ret;
  }
  
@@ -33,7 +33,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static int jffs2_rename (struct inode *old_dir_i, struct dentry *old_dentry,
  			 struct inode *new_dir_i, struct dentry *new_dentry,
  			 unsigned int flags)
-@@ -766,7 +784,7 @@ static int jffs2_rename (struct inode *o
+@@ -762,7 +780,7 @@ static int jffs2_rename (struct inode *o
  	uint8_t type;
  	uint32_t now;
  
@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  		return -EINVAL;
  
  	/* The VFS will check for us and prevent trying to rename a
-@@ -832,9 +850,14 @@ static int jffs2_rename (struct inode *o
+@@ -828,9 +846,14 @@ static int jffs2_rename (struct inode *o
  	if (d_is_dir(old_dentry) && !victim_f)
  		inc_nlink(new_dir_i);
  
diff --git a/target/linux/generic/pending-4.14/141-jffs2-add-RENAME_EXCHANGE-support.patch b/target/linux/generic/pending-4.14/141-jffs2-add-RENAME_EXCHANGE-support.patch
index 4b30bc7cd0f..093a73ab66c 100644
--- a/target/linux/generic/pending-4.14/141-jffs2-add-RENAME_EXCHANGE-support.patch
+++ b/target/linux/generic/pending-4.14/141-jffs2-add-RENAME_EXCHANGE-support.patch
@@ -6,7 +6,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/fs/jffs2/dir.c
 +++ b/fs/jffs2/dir.c
-@@ -781,18 +781,31 @@ static int jffs2_rename (struct inode *o
+@@ -777,18 +777,31 @@ static int jffs2_rename (struct inode *o
  	int ret;
  	struct jffs2_sb_info *c = JFFS2_SB_INFO(old_dir_i->i_sb);
  	struct jffs2_inode_info *victim_f = NULL;
@@ -40,7 +40,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  		victim_f = JFFS2_INODE_INFO(d_inode(new_dentry));
  		if (d_is_dir(new_dentry)) {
  			struct jffs2_full_dirent *fd;
-@@ -827,7 +840,7 @@ static int jffs2_rename (struct inode *o
+@@ -823,7 +836,7 @@ static int jffs2_rename (struct inode *o
  	if (ret)
  		return ret;
  
@@ -49,7 +49,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  		/* There was a victim. Kill it off nicely */
  		if (d_is_dir(new_dentry))
  			clear_nlink(d_inode(new_dentry));
-@@ -853,6 +866,12 @@ static int jffs2_rename (struct inode *o
+@@ -849,6 +862,12 @@ static int jffs2_rename (struct inode *o
  	if (flags & RENAME_WHITEOUT)
  		/* Replace with whiteout */
  		ret = jffs2_whiteout(old_dir_i, old_dentry);
@@ -62,7 +62,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	else
  		/* Unlink the original */
  		ret = jffs2_do_unlink(c, JFFS2_INODE_INFO(old_dir_i),
-@@ -884,7 +903,7 @@ static int jffs2_rename (struct inode *o
+@@ -880,7 +899,7 @@ static int jffs2_rename (struct inode *o
  		return ret;
  	}
  
diff --git a/target/linux/generic/pending-4.14/182-net-qmi_wwan-add-BroadMobi-BM806U-2020-2033.patch b/target/linux/generic/pending-4.14/182-net-qmi_wwan-add-BroadMobi-BM806U-2020-2033.patch
deleted file mode 100644
index 8ed0bde0213..00000000000
--- a/target/linux/generic/pending-4.14/182-net-qmi_wwan-add-BroadMobi-BM806U-2020-2033.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 743989254ea9f132517806d8893ca9b6cf9dc86b Mon Sep 17 00:00:00 2001
-From: Pawel Dembicki <paweldembicki@gmail.com>
-Date: Sat, 24 Mar 2018 22:08:14 +0100
-Subject: [PATCH] net: qmi_wwan: add BroadMobi BM806U 2020:2033
-
-BroadMobi BM806U is an Qualcomm MDM9225 based 3G/4G modem.
-Tested hardware BM806U is mounted on D-Link DWR-921-C3 router.
-The USB id is added to qmi_wwan.c to allow QMI communication with
-the BM806U.
-
-Tested on 4.14 kernel and OpenWRT.
-
-Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- drivers/net/usb/qmi_wwan.c | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/drivers/net/usb/qmi_wwan.c
-+++ b/drivers/net/usb/qmi_wwan.c
-@@ -1184,6 +1184,7 @@ static const struct usb_device_id produc
- 	{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, 0x7e35, 4)},	/* D-Link DWM-222 */
-+	{QMI_FIXED_INTF(0x2020, 0x2033, 4)},	/* BroadMobi BM806U */
- 	{QMI_FIXED_INTF(0x0f3d, 0x68a2, 8)},    /* Sierra Wireless MC7700 */
- 	{QMI_FIXED_INTF(0x114f, 0x68a2, 8)},    /* Sierra Wireless MC7750 */
- 	{QMI_FIXED_INTF(0x1199, 0x68a2, 8)},	/* Sierra Wireless MC7710 in QMI mode */
diff --git a/target/linux/generic/pending-4.14/201-extra_optimization.patch b/target/linux/generic/pending-4.14/201-extra_optimization.patch
index 3c3353c7d16..445c0bd87d2 100644
--- a/target/linux/generic/pending-4.14/201-extra_optimization.patch
+++ b/target/linux/generic/pending-4.14/201-extra_optimization.patch
@@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/Makefile
 +++ b/Makefile
-@@ -650,12 +650,12 @@ KBUILD_CFLAGS	+= $(call cc-disable-warni
+@@ -645,12 +645,12 @@ KBUILD_CFLAGS	+= $(call cc-disable-warni
  
  ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
  KBUILD_CFLAGS	+= $(call cc-option,-Oz,-Os)
diff --git a/target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch b/target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
index 11f12bb6dd2..09dfd1b906e 100644
--- a/target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
+++ b/target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
@@ -413,7 +413,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  }
  
  static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
-@@ -2060,6 +2271,12 @@ static void ip6_tnl_dellink(struct net_d
+@@ -2064,6 +2275,12 @@ static void ip6_tnl_dellink(struct net_d
  
  static size_t ip6_tnl_get_size(const struct net_device *dev)
  {
@@ -426,7 +426,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  	return
  		/* IFLA_IPTUN_LINK */
  		nla_total_size(4) +
-@@ -2089,6 +2306,24 @@ static size_t ip6_tnl_get_size(const str
+@@ -2093,6 +2310,24 @@ static size_t ip6_tnl_get_size(const str
  		nla_total_size(0) +
  		/* IFLA_IPTUN_FWMARK */
  		nla_total_size(4) +
@@ -451,7 +451,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  		0;
  }
  
-@@ -2096,6 +2331,9 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2100,6 +2335,9 @@ static int ip6_tnl_fill_info(struct sk_b
  {
  	struct ip6_tnl *tunnel = netdev_priv(dev);
  	struct __ip6_tnl_parm *parm = &tunnel->parms;
@@ -461,7 +461,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  
  	if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
  	    nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
-@@ -2105,9 +2343,27 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2109,9 +2347,27 @@ static int ip6_tnl_fill_info(struct sk_b
  	    nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
  	    nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
  	    nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) ||
@@ -490,7 +490,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  	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_DPORT, tunnel->encap.dport) ||
-@@ -2147,6 +2403,7 @@ static const struct nla_policy ip6_tnl_p
+@@ -2151,6 +2407,7 @@ static const struct nla_policy ip6_tnl_p
  	[IFLA_IPTUN_ENCAP_DPORT]	= { .type = NLA_U16 },
  	[IFLA_IPTUN_COLLECT_METADATA]	= { .type = NLA_FLAG },
  	[IFLA_IPTUN_FWMARK]		= { .type = NLA_U32 },
diff --git a/target/linux/generic/pending-4.14/811-pci_disable_usb_common_quirks.patch b/target/linux/generic/pending-4.14/811-pci_disable_usb_common_quirks.patch
index 410a2675977..f40214c29b0 100644
--- a/target/linux/generic/pending-4.14/811-pci_disable_usb_common_quirks.patch
+++ b/target/linux/generic/pending-4.14/811-pci_disable_usb_common_quirks.patch
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/drivers/usb/host/pci-quirks.c
 +++ b/drivers/usb/host/pci-quirks.c
-@@ -107,6 +107,8 @@ struct amd_chipset_type {
+@@ -124,6 +124,8 @@ struct amd_chipset_type {
  	u8 rev;
  };
  
@@ -19,9 +19,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static struct amd_chipset_info {
  	struct pci_dev	*nb_dev;
  	struct pci_dev	*smbus_dev;
-@@ -511,6 +513,10 @@ void usb_amd_dev_put(void)
+@@ -620,6 +622,10 @@ bool usb_amd_pt_check_port(struct device
  }
- EXPORT_SYMBOL_GPL(usb_amd_dev_put);
+ EXPORT_SYMBOL_GPL(usb_amd_pt_check_port);
  
 +#endif /* CONFIG_PCI_DISABLE_COMMON_QUIRKS */
 +
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  /*
   * Make sure the controller is completely inactive, unable to
   * generate interrupts or do DMA.
-@@ -590,8 +596,17 @@ reset_needed:
+@@ -699,8 +705,17 @@ reset_needed:
  	uhci_reset_hc(pdev, base);
  	return 1;
  }
@@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static inline int io_type_enabled(struct pci_dev *pdev, unsigned int mask)
  {
  	u16 cmd;
-@@ -1178,3 +1193,4 @@ bool usb_xhci_needs_pci_reset(struct pci
+@@ -1287,3 +1302,4 @@ bool usb_xhci_needs_pci_reset(struct pci
  	return false;
  }
  EXPORT_SYMBOL_GPL(usb_xhci_needs_pci_reset);
@@ -65,8 +65,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  int usb_amd_find_chipset_info(void);
  int usb_hcd_amd_remote_wakeup_quirk(struct pci_dev *pdev);
  bool usb_amd_hang_symptom_quirk(void);
-@@ -19,12 +22,29 @@ void sb800_prefetch(struct device *dev,
- bool usb_xhci_needs_pci_reset(struct pci_dev *pdev);
+@@ -20,6 +23,18 @@ bool usb_xhci_needs_pci_reset(struct pci
+ bool usb_amd_pt_check_port(struct device *device, int port);
  #else
  struct pci_dev;
 +static inline int usb_amd_find_chipset_info(void)
@@ -84,9 +84,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static inline void usb_amd_quirk_pll_disable(void) {}
  static inline void usb_amd_quirk_pll_enable(void) {}
  static inline void usb_asmedia_modifyflowcontrol(struct pci_dev *pdev) {}
- static inline void usb_amd_dev_put(void) {}
- static inline void usb_disable_xhci_ports(struct pci_dev *xhci_pdev) {}
- static inline void sb800_prefetch(struct device *dev, int on) {}
+@@ -30,6 +45,11 @@ static inline bool usb_amd_pt_check_port
+ {
+ 	return false;
+ }
 +static inline void usb_enable_intel_xhci_ports(struct pci_dev *xhci_pdev) {}
 +static inline bool usb_xhci_needs_pci_reset(struct pci_dev *pdev)
 +{
diff --git a/target/linux/generic/pending-4.14/834-ledtrig-libata.patch b/target/linux/generic/pending-4.14/834-ledtrig-libata.patch
index 608bad00cc1..9ecefc91357 100644
--- a/target/linux/generic/pending-4.14/834-ledtrig-libata.patch
+++ b/target/linux/generic/pending-4.14/834-ledtrig-libata.patch
@@ -65,7 +65,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  /**
   *	ata_build_rw_tf - Build ATA taskfile for given read/write request
   *	@tf: Target ATA taskfile
-@@ -5114,6 +5127,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
+@@ -5120,6 +5133,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
  		if (tag < 0)
  			return NULL;
  	}
@@ -75,7 +75,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  
  	qc = __ata_qc_from_tag(ap, tag);
  	qc->tag = tag;
-@@ -6015,6 +6031,9 @@ struct ata_port *ata_port_alloc(struct a
+@@ -6021,6 +6037,9 @@ struct ata_port *ata_port_alloc(struct a
  	ap->stats.unhandled_irq = 1;
  	ap->stats.idle_irq = 1;
  #endif
@@ -85,7 +85,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  	ata_sff_port_init(ap);
  
  	return ap;
-@@ -6036,6 +6055,12 @@ static void ata_host_release(struct devi
+@@ -6042,6 +6061,12 @@ static void ata_host_release(struct devi
  
  		kfree(ap->pmp_link);
  		kfree(ap->slave_link);
@@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  		kfree(ap);
  		host->ports[i] = NULL;
  	}
-@@ -6482,7 +6507,23 @@ int ata_host_register(struct ata_host *h
+@@ -6488,7 +6513,23 @@ int ata_host_register(struct ata_host *h
  		host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
  		host->ports[i]->local_port_no = i + 1;
  	}
diff --git a/target/linux/ipq40xx/patches-4.14/040-dmaengine-qcom-bam-Process-multiple-pending-descript.patch b/target/linux/ipq40xx/patches-4.14/040-dmaengine-qcom-bam-Process-multiple-pending-descript.patch
index dca516e8783..881d08c7e5e 100644
--- a/target/linux/ipq40xx/patches-4.14/040-dmaengine-qcom-bam-Process-multiple-pending-descript.patch
+++ b/target/linux/ipq40xx/patches-4.14/040-dmaengine-qcom-bam-Process-multiple-pending-descript.patch
@@ -114,7 +114,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
  
  	struct list_head node;
  };
-@@ -539,7 +544,7 @@ static void bam_free_chan(struct dma_cha
+@@ -540,7 +545,7 @@ static void bam_free_chan(struct dma_cha
  
  	vchan_free_chan_resources(to_virt_chan(chan));
  
@@ -123,7 +123,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
  		dev_err(bchan->bdev->dev, "Cannot free busy channel\n");
  		goto err;
  	}
-@@ -632,8 +637,6 @@ static struct dma_async_tx_descriptor *b
+@@ -633,8 +638,6 @@ static struct dma_async_tx_descriptor *b
  
  	if (flags & DMA_PREP_INTERRUPT)
  		async_desc->flags |= DESC_FLAG_EOT;
@@ -132,7 +132,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
  
  	async_desc->num_desc = num_alloc;
  	async_desc->curr_desc = async_desc->desc;
-@@ -684,14 +687,16 @@ err_out:
+@@ -685,14 +688,16 @@ err_out:
  static int bam_dma_terminate_all(struct dma_chan *chan)
  {
  	struct bam_chan *bchan = to_bam_chan(chan);
@@ -152,7 +152,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
  	}
  
  	vchan_get_all_descriptors(&bchan->vc, &head);
-@@ -763,9 +768,9 @@ static int bam_resume(struct dma_chan *c
+@@ -764,9 +769,9 @@ static int bam_resume(struct dma_chan *c
   */
  static u32 process_channel_irqs(struct bam_device *bdev)
  {
@@ -164,7 +164,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
  
  	srcs = readl_relaxed(bam_addr(bdev, 0, BAM_IRQ_SRCS_EE));
  
-@@ -785,27 +790,40 @@ static u32 process_channel_irqs(struct b
+@@ -786,27 +791,40 @@ static u32 process_channel_irqs(struct b
  		writel_relaxed(pipe_stts, bam_addr(bdev, i, BAM_P_IRQ_CLR));
  
  		spin_lock_irqsave(&bchan->vc.lock, flags);
@@ -214,7 +214,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
  		}
  
  		spin_unlock_irqrestore(&bchan->vc.lock, flags);
-@@ -867,6 +885,7 @@ static enum dma_status bam_tx_status(str
+@@ -868,6 +886,7 @@ static enum dma_status bam_tx_status(str
  		struct dma_tx_state *txstate)
  {
  	struct bam_chan *bchan = to_bam_chan(chan);
@@ -222,7 +222,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
  	struct virt_dma_desc *vd;
  	int ret;
  	size_t residue = 0;
-@@ -882,11 +901,17 @@ static enum dma_status bam_tx_status(str
+@@ -883,11 +902,17 @@ static enum dma_status bam_tx_status(str
  
  	spin_lock_irqsave(&bchan->vc.lock, flags);
  	vd = vchan_find_desc(&bchan->vc, cookie);
@@ -244,7 +244,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
  
  	spin_unlock_irqrestore(&bchan->vc.lock, flags);
  
-@@ -927,63 +952,86 @@ static void bam_start_dma(struct bam_cha
+@@ -928,63 +953,86 @@ static void bam_start_dma(struct bam_cha
  {
  	struct virt_dma_desc *vd = vchan_next_desc(&bchan->vc);
  	struct bam_device *bdev = bchan->bdev;
@@ -367,7 +367,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
  
  	/* ensure descriptor writes and dma start not reordered */
  	wmb();
-@@ -1012,7 +1060,7 @@ static void dma_tasklet(unsigned long da
+@@ -1013,7 +1061,7 @@ static void dma_tasklet(unsigned long da
  		bchan = &bdev->channels[i];
  		spin_lock_irqsave(&bchan->vc.lock, flags);
  
@@ -376,7 +376,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
  			bam_start_dma(bchan);
  		spin_unlock_irqrestore(&bchan->vc.lock, flags);
  	}
-@@ -1033,7 +1081,7 @@ static void bam_issue_pending(struct dma
+@@ -1034,7 +1082,7 @@ static void bam_issue_pending(struct dma
  	spin_lock_irqsave(&bchan->vc.lock, flags);
  
  	/* if work pending and idle, start a transaction */
@@ -385,7 +385,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
  		bam_start_dma(bchan);
  
  	spin_unlock_irqrestore(&bchan->vc.lock, flags);
-@@ -1133,6 +1181,7 @@ static void bam_channel_init(struct bam_
+@@ -1138,6 +1186,7 @@ static void bam_channel_init(struct bam_
  
  	vchan_init(&bchan->vc, &bdev->common);
  	bchan->vc.desc_free = bam_dma_free_desc;
diff --git a/target/linux/lantiq/patches-4.14/0024-MIPS-lantiq-autoselect-soc-rev-matching-fw.patch b/target/linux/lantiq/patches-4.14/0024-MIPS-lantiq-autoselect-soc-rev-matching-fw.patch
index 68643cc05c6..7fbd97feca5 100644
--- a/target/linux/lantiq/patches-4.14/0024-MIPS-lantiq-autoselect-soc-rev-matching-fw.patch
+++ b/target/linux/lantiq/patches-4.14/0024-MIPS-lantiq-autoselect-soc-rev-matching-fw.patch
@@ -18,7 +18,7 @@ Signed-off-by: Mathias Kresin <dev@kresin.me>
 
 --- a/drivers/soc/lantiq/gphy.c
 +++ b/drivers/soc/lantiq/gphy.c
-@@ -56,6 +56,7 @@ static const struct xway_gphy_match_data
+@@ -55,6 +55,7 @@ static const struct xway_gphy_match_data
  };
  
  static const struct of_device_id xway_gphy_match[] = {
@@ -26,7 +26,7 @@ Signed-off-by: Mathias Kresin <dev@kresin.me>
  	{ .compatible = "lantiq,xrx200a1x-gphy", .data = &xrx200a1x_gphy_data },
  	{ .compatible = "lantiq,xrx200a2x-gphy", .data = &xrx200a2x_gphy_data },
  	{ .compatible = "lantiq,xrx300-gphy", .data = &xrx300_gphy_data },
-@@ -130,6 +131,16 @@ static int xway_gphy_of_probe(struct pla
+@@ -111,6 +112,16 @@ static int xway_gphy_of_probe(struct pla
  
  	gphy_fw_name_cfg = of_device_get_match_data(dev);
  
diff --git a/target/linux/lantiq/patches-4.14/0025-MIPS-lantiq-gphy-Remove-reboot-remove-reset-asserts.patch b/target/linux/lantiq/patches-4.14/0025-MIPS-lantiq-gphy-Remove-reboot-remove-reset-asserts.patch
deleted file mode 100644
index 6efa6f13d9a..00000000000
--- a/target/linux/lantiq/patches-4.14/0025-MIPS-lantiq-gphy-Remove-reboot-remove-reset-asserts.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From ae14aba7fc748b2da282b59a2f516a311ed1f6eb Mon Sep 17 00:00:00 2001
-From: Mathias Kresin <dev@kresin.me>
-Date: Tue, 27 Mar 2018 23:15:07 +0200
-Subject: [PATCH] MIPS: lantiq: gphy: Remove reboot/remove reset asserts
-
-While doing a global software reset, these bits are not cleared and let
-some bootloader fail to initialise the GPHYs. The bootloader don't expect
-these bits to be set, as they aren't during power on.
-
-The asserts were a workaround for a wrong syscon-reboot mask. With a mask
-set which includes the GPHY resets of the first reset register, the
-resets of the second reset register arn't required any more.
-
-Signed-off-by: Mathias Kresin <dev@kresin.me>
----
- drivers/soc/lantiq/gphy.c | 34 ----------------------------------
- 1 file changed, 34 deletions(-)
-
---- a/drivers/soc/lantiq/gphy.c
-+++ b/drivers/soc/lantiq/gphy.c
-@@ -30,7 +30,6 @@ struct xway_gphy_priv {
- 	struct clk *gphy_clk_gate;
- 	struct reset_control *gphy_reset;
- 	struct reset_control *gphy_reset2;
--	struct notifier_block gphy_reboot_nb;
- 	void __iomem *membase;
- 	char *fw_name;
- };
-@@ -65,24 +64,6 @@ static const struct of_device_id xway_gp
- };
- MODULE_DEVICE_TABLE(of, xway_gphy_match);
- 
--static struct xway_gphy_priv *to_xway_gphy_priv(struct notifier_block *nb)
--{
--	return container_of(nb, struct xway_gphy_priv, gphy_reboot_nb);
--}
--
--static int xway_gphy_reboot_notify(struct notifier_block *reboot_nb,
--				   unsigned long code, void *unused)
--{
--	struct xway_gphy_priv *priv = to_xway_gphy_priv(reboot_nb);
--
--	if (priv) {
--		reset_control_assert(priv->gphy_reset);
--		reset_control_assert(priv->gphy_reset2);
--	}
--
--	return NOTIFY_DONE;
--}
--
- static int xway_gphy_load(struct device *dev, struct xway_gphy_priv *priv,
- 			  dma_addr_t *dev_addr)
- {
-@@ -216,14 +197,6 @@ static int xway_gphy_probe(struct platfo
- 	reset_control_deassert(priv->gphy_reset);
- 	reset_control_deassert(priv->gphy_reset2);
- 
--	/* assert the gphy reset because it can hang after a reboot: */
--	priv->gphy_reboot_nb.notifier_call = xway_gphy_reboot_notify;
--	priv->gphy_reboot_nb.priority = -1;
--
--	ret = register_reboot_notifier(&priv->gphy_reboot_nb);
--	if (ret)
--		dev_warn(dev, "Failed to register reboot notifier\n");
--
- 	platform_set_drvdata(pdev, priv);
- 
- 	return ret;
-@@ -235,17 +208,10 @@ static int xway_gphy_remove(struct platf
- 	struct xway_gphy_priv *priv = platform_get_drvdata(pdev);
- 	int ret;
- 
--	reset_control_assert(priv->gphy_reset);
--	reset_control_assert(priv->gphy_reset2);
--
- 	iowrite32be(0, priv->membase);
- 
- 	clk_disable_unprepare(priv->gphy_clk_gate);
- 
--	ret = unregister_reboot_notifier(&priv->gphy_reboot_nb);
--	if (ret)
--		dev_warn(dev, "Failed to unregister reboot notifier\n");
--
- 	return 0;
- }
- 
diff --git a/target/linux/mediatek/patches-4.14/0045-net-dsa-mediatek-turn-into-platform-driver.patch b/target/linux/mediatek/patches-4.14/0045-net-dsa-mediatek-turn-into-platform-driver.patch
index 87e3e88226d..55f10157704 100644
--- a/target/linux/mediatek/patches-4.14/0045-net-dsa-mediatek-turn-into-platform-driver.patch
+++ b/target/linux/mediatek/patches-4.14/0045-net-dsa-mediatek-turn-into-platform-driver.patch
@@ -57,9 +57,9 @@ Signed-off-by: John Crispin <john@phrozen.org>
  }
  
  static const struct of_device_id mt7530_of_match[] = {
-@@ -1135,16 +1142,16 @@ static const struct of_device_id mt7530_
- 	{ /* sentinel */ },
+@@ -1136,16 +1143,16 @@ static const struct of_device_id mt7530_
  };
+ MODULE_DEVICE_TABLE(of, mt7530_of_match);
  
 -static struct mdio_driver mt7530_mdio_driver = {
 +static struct platform_driver mtk_mt7530_driver = {
diff --git a/target/linux/mediatek/patches-4.14/0191-usb-xhci-allow-imod-interval-to-be-configurable.patch b/target/linux/mediatek/patches-4.14/0191-usb-xhci-allow-imod-interval-to-be-configurable.patch
index 51cf107ba58..c48db55d7f2 100644
--- a/target/linux/mediatek/patches-4.14/0191-usb-xhci-allow-imod-interval-to-be-configurable.patch
+++ b/target/linux/mediatek/patches-4.14/0191-usb-xhci-allow-imod-interval-to-be-configurable.patch
@@ -86,7 +86,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  	if (!xhci->shared_hcd) {
 --- a/drivers/usb/host/xhci-pci.c
 +++ b/drivers/usb/host/xhci-pci.c
-@@ -255,6 +255,9 @@ static int xhci_pci_setup(struct usb_hcd
+@@ -266,6 +266,9 @@ static int xhci_pci_setup(struct usb_hcd
  	if (!xhci->sbrn)
  		pci_read_config_byte(pdev, XHCI_SBRN_OFFSET, &xhci->sbrn);
  
diff --git a/target/linux/mvebu/patches-4.14/006-mvebu-Mangle-bootloader-s-kernel-arguments.patch b/target/linux/mvebu/patches-4.14/006-mvebu-Mangle-bootloader-s-kernel-arguments.patch
index 53275607e02..c4ffd0efea9 100644
--- a/target/linux/mvebu/patches-4.14/006-mvebu-Mangle-bootloader-s-kernel-arguments.patch
+++ b/target/linux/mvebu/patches-4.14/006-mvebu-Mangle-bootloader-s-kernel-arguments.patch
@@ -28,7 +28,7 @@ Signed-off-by: Michael Gray <michael.gray@lantisproject.com>
 
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
-@@ -1948,6 +1948,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
+@@ -1938,6 +1938,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
  	  The command-line arguments provided by the boot loader will be
  	  appended to the the device tree bootargs property.
  
@@ -48,7 +48,7 @@ Signed-off-by: Michael Gray <michael.gray@lantisproject.com>
  config CMDLINE
 --- a/arch/arm/boot/compressed/atags_to_fdt.c
 +++ b/arch/arm/boot/compressed/atags_to_fdt.c
-@@ -3,6 +3,8 @@
+@@ -4,6 +4,8 @@
  
  #if defined(CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND)
  #define do_extend_cmdline 1
@@ -57,7 +57,7 @@ Signed-off-by: Michael Gray <michael.gray@lantisproject.com>
  #else
  #define do_extend_cmdline 0
  #endif
-@@ -66,6 +68,65 @@ static uint32_t get_cell_size(const void
+@@ -67,6 +69,65 @@ static uint32_t get_cell_size(const void
  	return cell_size;
  }
  
@@ -123,7 +123,7 @@ Signed-off-by: Michael Gray <michael.gray@lantisproject.com>
  static void merge_fdt_bootargs(void *fdt, const char *fdt_cmdline)
  {
  	char cmdline[COMMAND_LINE_SIZE];
-@@ -85,12 +140,21 @@ static void merge_fdt_bootargs(void *fdt
+@@ -86,12 +147,21 @@ static void merge_fdt_bootargs(void *fdt
  
  	/* and append the ATAG_CMDLINE */
  	if (fdt_cmdline) {
@@ -145,7 +145,7 @@ Signed-off-by: Michael Gray <michael.gray@lantisproject.com>
  	}
  	*ptr = '\0';
  
-@@ -147,7 +211,9 @@ int atags_to_fdt(void *atag_list, void *
+@@ -148,7 +218,9 @@ int atags_to_fdt(void *atag_list, void *
  			else
  				setprop_string(fdt, "/chosen", "bootargs",
  					       atag->u.cmdline.cmdline);
@@ -156,7 +156,7 @@ Signed-off-by: Michael Gray <michael.gray@lantisproject.com>
  			if (memcount >= sizeof(mem_reg_property)/4)
  				continue;
  			if (!atag->u.mem.size)
-@@ -186,6 +252,10 @@ int atags_to_fdt(void *atag_list, void *
+@@ -187,6 +259,10 @@ int atags_to_fdt(void *atag_list, void *
  		setprop(fdt, "/memory", "reg", mem_reg_property,
  			4 * memcount * memsize);
  	}
@@ -169,7 +169,7 @@ Signed-off-by: Michael Gray <michael.gray@lantisproject.com>
  }
 --- a/init/main.c
 +++ b/init/main.c
-@@ -89,6 +89,10 @@
+@@ -95,6 +95,10 @@
  #include <asm/sections.h>
  #include <asm/cacheflush.h>
  
@@ -180,7 +180,7 @@ Signed-off-by: Michael Gray <michael.gray@lantisproject.com>
  static int kernel_init(void *);
  
  extern void init_IRQ(void);
-@@ -540,6 +544,18 @@ asmlinkage __visible void __init start_k
+@@ -574,6 +578,18 @@ asmlinkage __visible void __init start_k
  	page_alloc_init();
  
  	pr_notice("Kernel command line: %s\n", boot_command_line);
diff --git a/target/linux/mvebu/patches-4.14/300-mvneta-tx-queue-workaround.patch b/target/linux/mvebu/patches-4.14/300-mvneta-tx-queue-workaround.patch
index f21f8083ee1..7ff586cd15e 100644
--- a/target/linux/mvebu/patches-4.14/300-mvneta-tx-queue-workaround.patch
+++ b/target/linux/mvebu/patches-4.14/300-mvneta-tx-queue-workaround.patch
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 ---
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3961,6 +3961,15 @@ static int mvneta_ethtool_set_wol(struct
+@@ -3962,6 +3962,15 @@ static int mvneta_ethtool_set_wol(struct
  	return ret;
  }
  
@@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static const struct net_device_ops mvneta_netdev_ops = {
  	.ndo_open            = mvneta_open,
  	.ndo_stop            = mvneta_stop,
-@@ -3971,6 +3980,7 @@ static const struct net_device_ops mvnet
+@@ -3972,6 +3981,7 @@ static const struct net_device_ops mvnet
  	.ndo_fix_features    = mvneta_fix_features,
  	.ndo_get_stats64     = mvneta_get_stats64,
  	.ndo_do_ioctl        = mvneta_ioctl,
diff --git a/target/linux/mvebu/patches-4.14/403-net-mvneta-convert-to-phylink.patch b/target/linux/mvebu/patches-4.14/403-net-mvneta-convert-to-phylink.patch
index 10f385461df..3549c8997e8 100644
--- a/target/linux/mvebu/patches-4.14/403-net-mvneta-convert-to-phylink.patch
+++ b/target/linux/mvebu/patches-4.14/403-net-mvneta-convert-to-phylink.patch
@@ -132,7 +132,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  	u64 ethtool_stats[ARRAY_SIZE(mvneta_statistics)];
  
  	u32 indir[MVNETA_RSS_LU_TABLE_SIZE];
-@@ -1214,10 +1233,6 @@ static void mvneta_port_disable(struct m
+@@ -1215,10 +1234,6 @@ static void mvneta_port_disable(struct m
  	val &= ~MVNETA_GMAC0_PORT_ENABLE;
  	mvreg_write(pp, MVNETA_GMAC_CTRL_0, val);
  
@@ -143,7 +143,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  	udelay(200);
  }
  
-@@ -1277,44 +1292,6 @@ static void mvneta_set_other_mcast_table
+@@ -1278,44 +1293,6 @@ static void mvneta_set_other_mcast_table
  		mvreg_write(pp, MVNETA_DA_FILT_OTH_MCAST + offset, val);
  }
  
@@ -188,7 +188,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  static void mvneta_percpu_unmask_interrupt(void *arg)
  {
  	struct mvneta_port *pp = arg;
-@@ -1467,7 +1444,6 @@ static void mvneta_defaults_set(struct m
+@@ -1468,7 +1445,6 @@ static void mvneta_defaults_set(struct m
  	val &= ~MVNETA_PHY_POLLING_ENABLE;
  	mvreg_write(pp, MVNETA_UNIT_CONTROL, val);
  
@@ -196,7 +196,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  	mvneta_set_ucast_table(pp, -1);
  	mvneta_set_special_mcast_table(pp, -1);
  	mvneta_set_other_mcast_table(pp, -1);
-@@ -2692,26 +2668,11 @@ static irqreturn_t mvneta_percpu_isr(int
+@@ -2693,26 +2669,11 @@ static irqreturn_t mvneta_percpu_isr(int
  	return IRQ_HANDLED;
  }
  
@@ -225,7 +225,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  }
  
  /* NAPI handler
-@@ -2727,7 +2688,6 @@ static int mvneta_poll(struct napi_struc
+@@ -2728,7 +2689,6 @@ static int mvneta_poll(struct napi_struc
  	u32 cause_rx_tx;
  	int rx_queue;
  	struct mvneta_port *pp = netdev_priv(napi->dev);
@@ -233,7 +233,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  	struct mvneta_pcpu_port *port = this_cpu_ptr(pp->ports);
  
  	if (!netif_running(pp->dev)) {
-@@ -2741,12 +2701,11 @@ static int mvneta_poll(struct napi_struc
+@@ -2742,12 +2702,11 @@ static int mvneta_poll(struct napi_struc
  		u32 cause_misc = mvreg_read(pp, MVNETA_INTR_MISC_CAUSE);
  
  		mvreg_write(pp, MVNETA_INTR_MISC_CAUSE, 0);
@@ -251,7 +251,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  	}
  
  	/* Release Tx descriptors */
-@@ -3060,7 +3019,6 @@ static int mvneta_setup_txqs(struct mvne
+@@ -3061,7 +3020,6 @@ static int mvneta_setup_txqs(struct mvne
  static void mvneta_start_dev(struct mvneta_port *pp)
  {
  	int cpu;
@@ -259,7 +259,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  
  	mvneta_max_rx_size_set(pp, pp->pkt_size);
  	mvneta_txq_max_tx_size_set(pp, pp->pkt_size);
-@@ -3088,16 +3046,15 @@ static void mvneta_start_dev(struct mvne
+@@ -3089,16 +3047,15 @@ static void mvneta_start_dev(struct mvne
  		    MVNETA_CAUSE_LINK_CHANGE |
  		    MVNETA_CAUSE_PSC_SYNC_CHANGE);
  
@@ -278,7 +278,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  
  	if (!pp->neta_armada3700) {
  		for_each_online_cpu(cpu) {
-@@ -3251,103 +3208,232 @@ static int mvneta_set_mac_addr(struct ne
+@@ -3252,103 +3209,232 @@ static int mvneta_set_mac_addr(struct ne
  	return 0;
  }
  
@@ -585,7 +585,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  }
  
  /* Electing a CPU must be done in an atomic way: it should be done
-@@ -3626,10 +3712,9 @@ static int mvneta_stop(struct net_device
+@@ -3627,10 +3713,9 @@ static int mvneta_stop(struct net_device
  
  static int mvneta_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
  {
@@ -598,7 +598,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  }
  
  /* Ethtool methods */
-@@ -3640,44 +3725,25 @@ mvneta_ethtool_set_link_ksettings(struct
+@@ -3641,44 +3726,25 @@ mvneta_ethtool_set_link_ksettings(struct
  				  const struct ethtool_link_ksettings *cmd)
  {
  	struct mvneta_port *pp = netdev_priv(ndev);
@@ -657,7 +657,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  }
  
  /* Set interrupt coalescing for ethtools */
-@@ -3769,6 +3835,22 @@ static int mvneta_ethtool_set_ringparam(
+@@ -3770,6 +3836,22 @@ static int mvneta_ethtool_set_ringparam(
  	return 0;
  }
  
@@ -680,7 +680,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  static void mvneta_ethtool_get_strings(struct net_device *netdev, u32 sset,
  				       u8 *data)
  {
-@@ -3785,26 +3867,35 @@ static void mvneta_ethtool_update_stats(
+@@ -3786,26 +3868,35 @@ static void mvneta_ethtool_update_stats(
  {
  	const struct mvneta_statistic *s;
  	void __iomem *base = pp->base;
@@ -721,7 +721,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  	}
  }
  
-@@ -3939,28 +4030,65 @@ static int mvneta_ethtool_get_rxfh(struc
+@@ -3940,28 +4031,65 @@ static int mvneta_ethtool_get_rxfh(struc
  static void mvneta_ethtool_get_wol(struct net_device *dev,
  				   struct ethtool_wolinfo *wol)
  {
@@ -795,7 +795,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  static u16 mvneta_select_queue(struct net_device *dev, struct sk_buff *skb,
  			       void *accel_priv,
  			       select_queue_fallback_t fallback)
-@@ -3984,13 +4112,15 @@ static const struct net_device_ops mvnet
+@@ -3985,13 +4113,15 @@ static const struct net_device_ops mvnet
  };
  
  static const struct ethtool_ops mvneta_eth_tool_ops = {
@@ -812,7 +812,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  	.get_strings	= mvneta_ethtool_get_strings,
  	.get_ethtool_stats = mvneta_ethtool_get_stats,
  	.get_sset_count	= mvneta_ethtool_get_sset_count,
-@@ -3998,10 +4128,12 @@ static const struct ethtool_ops mvneta_e
+@@ -3999,10 +4129,12 @@ static const struct ethtool_ops mvneta_e
  	.get_rxnfc	= mvneta_ethtool_get_rxnfc,
  	.get_rxfh	= mvneta_ethtool_get_rxfh,
  	.set_rxfh	= mvneta_ethtool_set_rxfh,
@@ -826,7 +826,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  };
  
  /* Initialize hw */
-@@ -4146,14 +4278,13 @@ static int mvneta_probe(struct platform_
+@@ -4147,14 +4279,13 @@ static int mvneta_probe(struct platform_
  {
  	struct resource *res;
  	struct device_node *dn = pdev->dev.of_node;
@@ -842,7 +842,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  	int tx_csum_limit;
  	int phy_mode;
  	int err;
-@@ -4169,31 +4300,11 @@ static int mvneta_probe(struct platform_
+@@ -4170,31 +4301,11 @@ static int mvneta_probe(struct platform_
  		goto err_free_netdev;
  	}
  
@@ -875,7 +875,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  	}
  
  	dev->tx_queue_len = MVNETA_MAX_TXD;
-@@ -4204,12 +4315,7 @@ static int mvneta_probe(struct platform_
+@@ -4205,12 +4316,7 @@ static int mvneta_probe(struct platform_
  
  	pp = netdev_priv(dev);
  	spin_lock_init(&pp->lock);
@@ -889,7 +889,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  
  	pp->rxq_def = rxq_def;
  
-@@ -4231,7 +4337,7 @@ static int mvneta_probe(struct platform_
+@@ -4232,7 +4338,7 @@ static int mvneta_probe(struct platform_
  		pp->clk = devm_clk_get(&pdev->dev, NULL);
  	if (IS_ERR(pp->clk)) {
  		err = PTR_ERR(pp->clk);
@@ -898,7 +898,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  	}
  
  	clk_prepare_enable(pp->clk);
-@@ -4357,6 +4463,14 @@ static int mvneta_probe(struct platform_
+@@ -4358,6 +4464,14 @@ static int mvneta_probe(struct platform_
  	/* 9676 == 9700 - 20 and rounding to 8 */
  	dev->max_mtu = 9676;
  
@@ -913,7 +913,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  	err = register_netdev(dev);
  	if (err < 0) {
  		dev_err(&pdev->dev, "failed to register\n");
-@@ -4368,14 +4482,6 @@ static int mvneta_probe(struct platform_
+@@ -4369,14 +4483,6 @@ static int mvneta_probe(struct platform_
  
  	platform_set_drvdata(pdev, pp->dev);
  
@@ -928,7 +928,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  	return 0;
  
  err_netdev:
-@@ -4386,16 +4492,14 @@ err_netdev:
+@@ -4387,16 +4493,14 @@ err_netdev:
  				       1 << pp->id);
  	}
  err_free_stats:
@@ -947,7 +947,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  err_free_irq:
  	irq_dispose_mapping(dev->irq);
  err_free_netdev:
-@@ -4407,7 +4511,6 @@ err_free_netdev:
+@@ -4408,7 +4512,6 @@ err_free_netdev:
  static int mvneta_remove(struct platform_device *pdev)
  {
  	struct net_device  *dev = platform_get_drvdata(pdev);
@@ -955,7 +955,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  	struct mvneta_port *pp = netdev_priv(dev);
  
  	unregister_netdev(dev);
-@@ -4415,10 +4518,8 @@ static int mvneta_remove(struct platform
+@@ -4416,10 +4519,8 @@ static int mvneta_remove(struct platform
  	clk_disable_unprepare(pp->clk);
  	free_percpu(pp->ports);
  	free_percpu(pp->stats);
@@ -967,7 +967,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  	free_netdev(dev);
  
  	if (pp->bm_priv) {
-@@ -4470,9 +4571,6 @@ static int mvneta_resume(struct device *
+@@ -4471,9 +4572,6 @@ static int mvneta_resume(struct device *
  		return err;
  	}
  
diff --git a/target/linux/mvebu/patches-4.14/404-net-mvneta-hack-fix-phy_interface.patch b/target/linux/mvebu/patches-4.14/404-net-mvneta-hack-fix-phy_interface.patch
index 906c163ac9b..88ea6973e13 100644
--- a/target/linux/mvebu/patches-4.14/404-net-mvneta-hack-fix-phy_interface.patch
+++ b/target/linux/mvebu/patches-4.14/404-net-mvneta-hack-fix-phy_interface.patch
@@ -18,7 +18,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
  	struct device_node *dn;
  	unsigned int tx_csum_limit;
  	struct phylink *phylink;
-@@ -4315,6 +4316,7 @@ static int mvneta_probe(struct platform_
+@@ -4316,6 +4317,7 @@ static int mvneta_probe(struct platform_
  
  	pp = netdev_priv(dev);
  	spin_lock_init(&pp->lock);
diff --git a/target/linux/mvebu/patches-4.14/405-net-mvneta-disable-MVNETA_CAUSE_PSC_SYNC_CHANGE-inte.patch b/target/linux/mvebu/patches-4.14/405-net-mvneta-disable-MVNETA_CAUSE_PSC_SYNC_CHANGE-inte.patch
index ddb0cc8a2e5..6f9c4dd5964 100644
--- a/target/linux/mvebu/patches-4.14/405-net-mvneta-disable-MVNETA_CAUSE_PSC_SYNC_CHANGE-inte.patch
+++ b/target/linux/mvebu/patches-4.14/405-net-mvneta-disable-MVNETA_CAUSE_PSC_SYNC_CHANGE-inte.patch
@@ -14,7 +14,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -2704,8 +2704,7 @@ static int mvneta_poll(struct napi_struc
+@@ -2705,8 +2705,7 @@ static int mvneta_poll(struct napi_struc
  		mvreg_write(pp, MVNETA_INTR_MISC_CAUSE, 0);
  
  		if (cause_misc & (MVNETA_CAUSE_PHY_STATUS_CHANGE |
@@ -24,7 +24,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
  			mvneta_link_change(pp);
  	}
  
-@@ -3044,8 +3043,7 @@ static void mvneta_start_dev(struct mvne
+@@ -3045,8 +3044,7 @@ static void mvneta_start_dev(struct mvne
  
  	mvreg_write(pp, MVNETA_INTR_MISC_MASK,
  		    MVNETA_CAUSE_PHY_STATUS_CHANGE |
@@ -34,7 +34,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
  
  	phylink_start(pp->phylink);
  	netif_tx_start_all_queues(pp->dev);
-@@ -3542,8 +3540,7 @@ static int mvneta_cpu_online(unsigned in
+@@ -3543,8 +3541,7 @@ static int mvneta_cpu_online(unsigned in
  	on_each_cpu(mvneta_percpu_unmask_interrupt, pp, true);
  	mvreg_write(pp, MVNETA_INTR_MISC_MASK,
  		    MVNETA_CAUSE_PHY_STATUS_CHANGE |
@@ -44,7 +44,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
  	netif_tx_start_all_queues(pp->dev);
  	spin_unlock(&pp->lock);
  	return 0;
-@@ -3584,8 +3581,7 @@ static int mvneta_cpu_dead(unsigned int
+@@ -3585,8 +3582,7 @@ static int mvneta_cpu_dead(unsigned int
  	on_each_cpu(mvneta_percpu_unmask_interrupt, pp, true);
  	mvreg_write(pp, MVNETA_INTR_MISC_MASK,
  		    MVNETA_CAUSE_PHY_STATUS_CHANGE |
diff --git a/target/linux/mvebu/patches-4.14/406-net-mvneta-add-module-EEPROM-reading-support.patch b/target/linux/mvebu/patches-4.14/406-net-mvneta-add-module-EEPROM-reading-support.patch
index 39eb33ac2c1..f359eb3d78e 100644
--- a/target/linux/mvebu/patches-4.14/406-net-mvneta-add-module-EEPROM-reading-support.patch
+++ b/target/linux/mvebu/patches-4.14/406-net-mvneta-add-module-EEPROM-reading-support.patch
@@ -10,7 +10,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -4045,6 +4045,22 @@ static int mvneta_ethtool_set_wol(struct
+@@ -4046,6 +4046,22 @@ static int mvneta_ethtool_set_wol(struct
  	return ret;
  }
  
@@ -33,7 +33,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  static int mvneta_ethtool_get_eee(struct net_device *dev,
  				  struct ethtool_eee *eee)
  {
-@@ -4129,6 +4145,8 @@ static const struct ethtool_ops mvneta_e
+@@ -4130,6 +4146,8 @@ static const struct ethtool_ops mvneta_e
  	.set_link_ksettings = mvneta_ethtool_set_link_ksettings,
  	.get_wol        = mvneta_ethtool_get_wol,
  	.set_wol        = mvneta_ethtool_set_wol,
diff --git a/target/linux/mvebu/patches-4.14/408-sfp-move-module-eeprom-ethtool-access-into-netdev-co.patch b/target/linux/mvebu/patches-4.14/408-sfp-move-module-eeprom-ethtool-access-into-netdev-co.patch
index 2e135e68451..3012fae3d0c 100644
--- a/target/linux/mvebu/patches-4.14/408-sfp-move-module-eeprom-ethtool-access-into-netdev-co.patch
+++ b/target/linux/mvebu/patches-4.14/408-sfp-move-module-eeprom-ethtool-access-into-netdev-co.patch
@@ -15,7 +15,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -4045,22 +4045,6 @@ static int mvneta_ethtool_set_wol(struct
+@@ -4046,22 +4046,6 @@ static int mvneta_ethtool_set_wol(struct
  	return ret;
  }
  
@@ -38,7 +38,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
  static int mvneta_ethtool_get_eee(struct net_device *dev,
  				  struct ethtool_eee *eee)
  {
-@@ -4145,8 +4129,6 @@ static const struct ethtool_ops mvneta_e
+@@ -4146,8 +4130,6 @@ static const struct ethtool_ops mvneta_e
  	.set_link_ksettings = mvneta_ethtool_set_link_ksettings,
  	.get_wol        = mvneta_ethtool_get_wol,
  	.set_wol        = mvneta_ethtool_set_wol,
diff --git a/target/linux/oxnas/patches-4.14/0001-ARM-dts-rename-oxnas-dts-files.patch b/target/linux/oxnas/patches-4.14/0001-ARM-dts-rename-oxnas-dts-files.patch
index 20289b39031..db6144c397c 100644
--- a/target/linux/oxnas/patches-4.14/0001-ARM-dts-rename-oxnas-dts-files.patch
+++ b/target/linux/oxnas/patches-4.14/0001-ARM-dts-rename-oxnas-dts-files.patch
@@ -20,8 +20,6 @@ Signed-off-by: Arnd Bergmann <arnd@arndb.de>
  rename arch/arm/boot/dts/{wd-mbwe.dts => ox810se-wd-mbwe.dts} (100%)
  rename arch/arm/boot/dts/{cloudengines-pogoplug-series-3.dts => ox820-cloudengines-pogoplug-series-3.dts} (100%)
 
-diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
-index eff87a344566..1ae23ffa6ff4 100644
 --- a/arch/arm/boot/dts/Makefile
 +++ b/arch/arm/boot/dts/Makefile
 @@ -685,8 +685,8 @@ dtb-$(CONFIG_ARCH_ACTIONS) += \
@@ -35,14 +33,427 @@ index eff87a344566..1ae23ffa6ff4 100644
  dtb-$(CONFIG_ARCH_QCOM) += \
  	qcom-apq8060-dragonboard.dtb \
  	qcom-apq8064-arrow-sd-600eval.dtb \
-diff --git a/arch/arm/boot/dts/wd-mbwe.dts b/arch/arm/boot/dts/ox810se-wd-mbwe.dts
-similarity index 100%
-rename from arch/arm/boot/dts/wd-mbwe.dts
-rename to arch/arm/boot/dts/ox810se-wd-mbwe.dts
-diff --git a/arch/arm/boot/dts/cloudengines-pogoplug-series-3.dts b/arch/arm/boot/dts/ox820-cloudengines-pogoplug-series-3.dts
-similarity index 100%
-rename from arch/arm/boot/dts/cloudengines-pogoplug-series-3.dts
-rename to arch/arm/boot/dts/ox820-cloudengines-pogoplug-series-3.dts
--- 
-2.17.1
-
+--- a/arch/arm/boot/dts/cloudengines-pogoplug-series-3.dts
++++ /dev/null
+@@ -1,94 +0,0 @@
+-/*
+- * cloudengines-pogoplug-series-3.dtsi - Device tree file for Cloud Engines PogoPlug Series 3
+- *
+- * Copyright (C) 2016 Neil Armstrong <narmstrong@baylibre.com>
+- *
+- * Licensed under GPLv2 or later
+- */
+-
+-/dts-v1/;
+-#include "ox820.dtsi"
+-
+-/ {
+-	model = "Cloud Engines PogoPlug Series 3";
+-
+-	compatible = "cloudengines,pogoplugv3", "oxsemi,ox820";
+-
+-	chosen {
+-		bootargs = "earlyprintk";
+-		stdout-path = "serial0:115200n8";
+-	};
+-
+-	memory {
+-		/* 128Mbytes DDR */
+-		reg = <0x60000000 0x8000000>;
+-	};
+-
+-	aliases {
+-		serial0 = &uart0;
+-		gpio0 = &gpio0;
+-		gpio1 = &gpio1;
+-	};
+-
+-	leds {
+-		compatible = "gpio-leds";
+-
+-		blue {
+-			label = "pogoplug:blue";
+-			gpios = <&gpio0 2 0>;
+-			default-state = "keep";
+-		};
+-
+-		orange {
+-			label = "pogoplug:orange";
+-			gpios = <&gpio1 16 1>;
+-			default-state = "keep";
+-		};
+-
+-		green {
+-			label = "pogoplug:green";
+-			gpios = <&gpio1 17 1>;
+-			default-state = "keep";
+-		};
+-	};
+-};
+-
+-&uart0 {
+-	status = "okay";
+-
+-	pinctrl-names = "default";
+-	pinctrl-0 = <&pinctrl_uart0>;
+-};
+-
+-&nandc {
+-	status = "okay";
+-
+-	pinctrl-names = "default";
+-	pinctrl-0 = <&pinctrl_nand>;
+-
+-	nand@0 {
+-		reg = <0>;
+-		#address-cells = <1>;
+-		#size-cells = <1>;
+-		nand-ecc-mode = "soft";
+-		nand-ecc-algo = "hamming";
+-
+-		partition@0 {
+-			label = "boot";
+-			reg = <0x00000000 0x00e00000>;
+-			read-only;
+-		};
+-
+-		partition@e00000 {
+-			label = "ubi";
+-			reg = <0x00e00000 0x07200000>;
+-		};
+-	};
+-};
+-
+-&etha {
+-	status = "okay";
+-
+-	pinctrl-names = "default";
+-	pinctrl-0 = <&pinctrl_etha_mdio>;
+-};
+--- /dev/null
++++ b/arch/arm/boot/dts/ox810se-wd-mbwe.dts
+@@ -0,0 +1,112 @@
++/*
++ * wd-mbwe.dtsi - Device tree file for Western Digital My Book World Edition
++ *
++ * Copyright (C) 2016 Neil Armstrong <narmstrong@baylibre.com>
++ *
++ * Licensed under GPLv2 or later
++ */
++
++/dts-v1/;
++#include "ox810se.dtsi"
++
++/ {
++	model = "Western Digital My Book World Edition";
++
++	compatible = "wd,mbwe", "oxsemi,ox810se";
++
++	chosen {
++		bootargs = "console=ttyS1,115200n8 earlyprintk=serial";
++	};
++
++	memory {
++		/* 128Mbytes DDR */
++		reg = <0x48000000 0x8000000>;
++	};
++
++	aliases {
++		serial1 = &uart1;
++		gpio0 = &gpio0;
++		gpio1 = &gpio1;
++	};
++
++	gpio-keys-polled {
++		compatible = "gpio-keys-polled";
++		#address-cells = <1>;
++		#size-cells = <0>;
++		poll-interval = <100>;
++
++		power {
++			label = "power";
++			gpios = <&gpio0 0 1>;
++			linux,code = <0x198>;
++		};
++
++		recovery {
++			label = "recovery";
++			gpios = <&gpio0 4 1>;
++			linux,code = <0xab>;
++		};
++	};
++
++	leds {
++		compatible = "gpio-leds";
++
++		a0 {
++			label = "activity0";
++			gpios = <&gpio0 25 0>;
++			default-state = "keep";
++		};
++
++		a1 {
++			label = "activity1";
++			gpios = <&gpio0 26 0>;
++			default-state = "keep";
++		};
++
++		a2 {
++			label = "activity2";
++			gpios = <&gpio0 5 0>;
++			default-state = "keep";
++		};
++
++		a3 {
++			label = "activity3";
++			gpios = <&gpio0 6 0>;
++			default-state = "keep";
++		};
++
++		a4 {
++			label = "activity4";
++			gpios = <&gpio0 7 0>;
++			default-state = "keep";
++		};
++
++		a5 {
++			label = "activity5";
++			gpios = <&gpio1 2 0>;
++			default-state = "keep";
++		};
++	};
++
++	i2c-gpio {
++		compatible = "i2c-gpio";
++		gpios = <&gpio0 3 0 /* sda */
++			 &gpio0 2 0 /* scl */
++			 >;
++		i2c-gpio,delay-us = <2>;        /* ~100 kHz */
++		#address-cells = <1>;
++		#size-cells = <0>;
++
++		rtc0: rtc@48 {
++			compatible = "st,m41t00";
++			reg = <0x68>;
++		};
++	};
++};
++
++&uart1 {
++	status = "okay";
++
++	pinctrl-names = "default";
++	pinctrl-0 = <&pinctrl_uart1>;
++};
+--- /dev/null
++++ b/arch/arm/boot/dts/ox820-cloudengines-pogoplug-series-3.dts
+@@ -0,0 +1,94 @@
++/*
++ * cloudengines-pogoplug-series-3.dtsi - Device tree file for Cloud Engines PogoPlug Series 3
++ *
++ * Copyright (C) 2016 Neil Armstrong <narmstrong@baylibre.com>
++ *
++ * Licensed under GPLv2 or later
++ */
++
++/dts-v1/;
++#include "ox820.dtsi"
++
++/ {
++	model = "Cloud Engines PogoPlug Series 3";
++
++	compatible = "cloudengines,pogoplugv3", "oxsemi,ox820";
++
++	chosen {
++		bootargs = "earlyprintk";
++		stdout-path = "serial0:115200n8";
++	};
++
++	memory {
++		/* 128Mbytes DDR */
++		reg = <0x60000000 0x8000000>;
++	};
++
++	aliases {
++		serial0 = &uart0;
++		gpio0 = &gpio0;
++		gpio1 = &gpio1;
++	};
++
++	leds {
++		compatible = "gpio-leds";
++
++		blue {
++			label = "pogoplug:blue";
++			gpios = <&gpio0 2 0>;
++			default-state = "keep";
++		};
++
++		orange {
++			label = "pogoplug:orange";
++			gpios = <&gpio1 16 1>;
++			default-state = "keep";
++		};
++
++		green {
++			label = "pogoplug:green";
++			gpios = <&gpio1 17 1>;
++			default-state = "keep";
++		};
++	};
++};
++
++&uart0 {
++	status = "okay";
++
++	pinctrl-names = "default";
++	pinctrl-0 = <&pinctrl_uart0>;
++};
++
++&nandc {
++	status = "okay";
++
++	pinctrl-names = "default";
++	pinctrl-0 = <&pinctrl_nand>;
++
++	nand@0 {
++		reg = <0>;
++		#address-cells = <1>;
++		#size-cells = <1>;
++		nand-ecc-mode = "soft";
++		nand-ecc-algo = "hamming";
++
++		partition@0 {
++			label = "boot";
++			reg = <0x00000000 0x00e00000>;
++			read-only;
++		};
++
++		partition@e00000 {
++			label = "ubi";
++			reg = <0x00e00000 0x07200000>;
++		};
++	};
++};
++
++&etha {
++	status = "okay";
++
++	pinctrl-names = "default";
++	pinctrl-0 = <&pinctrl_etha_mdio>;
++};
+--- a/arch/arm/boot/dts/wd-mbwe.dts
++++ /dev/null
+@@ -1,112 +0,0 @@
+-/*
+- * wd-mbwe.dtsi - Device tree file for Western Digital My Book World Edition
+- *
+- * Copyright (C) 2016 Neil Armstrong <narmstrong@baylibre.com>
+- *
+- * Licensed under GPLv2 or later
+- */
+-
+-/dts-v1/;
+-#include "ox810se.dtsi"
+-
+-/ {
+-	model = "Western Digital My Book World Edition";
+-
+-	compatible = "wd,mbwe", "oxsemi,ox810se";
+-
+-	chosen {
+-		bootargs = "console=ttyS1,115200n8 earlyprintk=serial";
+-	};
+-
+-	memory {
+-		/* 128Mbytes DDR */
+-		reg = <0x48000000 0x8000000>;
+-	};
+-
+-	aliases {
+-		serial1 = &uart1;
+-		gpio0 = &gpio0;
+-		gpio1 = &gpio1;
+-	};
+-
+-	gpio-keys-polled {
+-		compatible = "gpio-keys-polled";
+-		#address-cells = <1>;
+-		#size-cells = <0>;
+-		poll-interval = <100>;
+-
+-		power {
+-			label = "power";
+-			gpios = <&gpio0 0 1>;
+-			linux,code = <0x198>;
+-		};
+-
+-		recovery {
+-			label = "recovery";
+-			gpios = <&gpio0 4 1>;
+-			linux,code = <0xab>;
+-		};
+-	};
+-
+-	leds {
+-		compatible = "gpio-leds";
+-
+-		a0 {
+-			label = "activity0";
+-			gpios = <&gpio0 25 0>;
+-			default-state = "keep";
+-		};
+-
+-		a1 {
+-			label = "activity1";
+-			gpios = <&gpio0 26 0>;
+-			default-state = "keep";
+-		};
+-
+-		a2 {
+-			label = "activity2";
+-			gpios = <&gpio0 5 0>;
+-			default-state = "keep";
+-		};
+-
+-		a3 {
+-			label = "activity3";
+-			gpios = <&gpio0 6 0>;
+-			default-state = "keep";
+-		};
+-
+-		a4 {
+-			label = "activity4";
+-			gpios = <&gpio0 7 0>;
+-			default-state = "keep";
+-		};
+-
+-		a5 {
+-			label = "activity5";
+-			gpios = <&gpio1 2 0>;
+-			default-state = "keep";
+-		};
+-	};
+-
+-	i2c-gpio {
+-		compatible = "i2c-gpio";
+-		gpios = <&gpio0 3 0 /* sda */
+-			 &gpio0 2 0 /* scl */
+-			 >;
+-		i2c-gpio,delay-us = <2>;        /* ~100 kHz */
+-		#address-cells = <1>;
+-		#size-cells = <0>;
+-
+-		rtc0: rtc@48 {
+-			compatible = "st,m41t00";
+-			reg = <0x68>;
+-		};
+-	};
+-};
+-
+-&uart1 {
+-	status = "okay";
+-
+-	pinctrl-names = "default";
+-	pinctrl-0 = <&pinctrl_uart1>;
+-};
diff --git a/target/linux/oxnas/patches-4.14/0002-MAINTAINERS-update-ARM-OXNAS-platform-support-patter.patch b/target/linux/oxnas/patches-4.14/0002-MAINTAINERS-update-ARM-OXNAS-platform-support-patter.patch
index 66dacabbd74..44e1d035119 100644
--- a/target/linux/oxnas/patches-4.14/0002-MAINTAINERS-update-ARM-OXNAS-platform-support-patter.patch
+++ b/target/linux/oxnas/patches-4.14/0002-MAINTAINERS-update-ARM-OXNAS-platform-support-patter.patch
@@ -19,11 +19,9 @@ Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  MAINTAINERS | 4 +---
  1 file changed, 1 insertion(+), 3 deletions(-)
 
-diff --git a/MAINTAINERS b/MAINTAINERS
-index 546beb6b0176..6ecdaed0a3ef 100644
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
-@@ -1677,9 +1677,7 @@ L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+@@ -1677,9 +1677,7 @@ L:	linux-arm-kernel@lists.infradead.org
  L:	linux-oxnas@lists.tuxfamily.org (moderated for non-subscribers)
  S:	Maintained
  F:	arch/arm/mach-oxnas/
@@ -34,6 +32,3 @@ index 546beb6b0176..6ecdaed0a3ef 100644
  N:	oxnas
  
  ARM/PALM TREO SUPPORT
--- 
-2.17.1
-
diff --git a/target/linux/oxnas/patches-4.14/0003-ARM-configs-add-OXNAS-v6-defconfig.patch b/target/linux/oxnas/patches-4.14/0003-ARM-configs-add-OXNAS-v6-defconfig.patch
index bc4bc369dad..be9f1ecace4 100644
--- a/target/linux/oxnas/patches-4.14/0003-ARM-configs-add-OXNAS-v6-defconfig.patch
+++ b/target/linux/oxnas/patches-4.14/0003-ARM-configs-add-OXNAS-v6-defconfig.patch
@@ -13,9 +13,6 @@ Signed-off-by: Arnd Bergmann <arnd@arndb.de>
  1 file changed, 93 insertions(+)
  create mode 100644 arch/arm/configs/oxnas_v6_defconfig
 
-diff --git a/arch/arm/configs/oxnas_v6_defconfig b/arch/arm/configs/oxnas_v6_defconfig
-new file mode 100644
-index 000000000000..f6ba32c9d173
 --- /dev/null
 +++ b/arch/arm/configs/oxnas_v6_defconfig
 @@ -0,0 +1,93 @@
@@ -112,6 +109,3 @@ index 000000000000..f6ba32c9d173
 +CONFIG_NLS_UTF8=y
 +CONFIG_PRINTK_TIME=y
 +CONFIG_MAGIC_SYSRQ=y
--- 
-2.17.1
-
diff --git a/target/linux/oxnas/patches-4.14/050-ox820-remove-left-overs.patch b/target/linux/oxnas/patches-4.14/050-ox820-remove-left-overs.patch
index 6dd3b056cfd..ad0df9199b1 100644
--- a/target/linux/oxnas/patches-4.14/050-ox820-remove-left-overs.patch
+++ b/target/linux/oxnas/patches-4.14/050-ox820-remove-left-overs.patch
@@ -9,8 +9,6 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  include/dt-bindings/clock/oxsemi,ox820.h | 32 +++++++++++-------------
  2 files changed, 14 insertions(+), 20 deletions(-)
 
-diff --git a/drivers/clk/clk-oxnas.c b/drivers/clk/clk-oxnas.c
-index e51e0023fc6e..da6af71649de 100644
 --- a/drivers/clk/clk-oxnas.c
 +++ b/drivers/clk/clk-oxnas.c
 @@ -40,8 +40,6 @@ struct oxnas_stdclk_data {
@@ -22,8 +20,6 @@ index e51e0023fc6e..da6af71649de 100644
  };
  
  /* Regmap offsets */
-diff --git a/include/dt-bindings/clock/oxsemi,ox820.h b/include/dt-bindings/clock/oxsemi,ox820.h
-index f661ecc8d760..35b44ca1b104 100644
 --- a/include/dt-bindings/clock/oxsemi,ox820.h
 +++ b/include/dt-bindings/clock/oxsemi,ox820.h
 @@ -17,24 +17,20 @@
@@ -65,6 +61,3 @@ index f661ecc8d760..35b44ca1b104 100644
 +#define CLK_820_USBDEV		13
  
  #endif /* DT_CLOCK_OXSEMI_OX820_H */
--- 
-2.17.1
-
diff --git a/target/linux/oxnas/patches-4.14/100-oxnas-clk-plla-pllb.patch b/target/linux/oxnas/patches-4.14/100-oxnas-clk-plla-pllb.patch
index f78ecb26b27..d3bf9a9e43f 100644
--- a/target/linux/oxnas/patches-4.14/100-oxnas-clk-plla-pllb.patch
+++ b/target/linux/oxnas/patches-4.14/100-oxnas-clk-plla-pllb.patch
@@ -43,7 +43,7 @@
  /* Standard regmap gate clocks */
  struct clk_oxnas_gate {
  	struct clk_hw hw;
-@@ -49,6 +70,135 @@ struct oxnas_stdclk_data {
+@@ -47,6 +70,135 @@ struct oxnas_stdclk_data {
  #define CLK_SET_REGOFFSET	0x2c
  #define CLK_CLR_REGOFFSET	0x30
  
@@ -179,7 +179,7 @@
  static inline struct clk_oxnas_gate *to_clk_oxnas_gate(struct clk_hw *hw)
  {
  	return container_of(hw, struct clk_oxnas_gate, hw);
-@@ -262,3 +412,42 @@ static struct platform_driver oxnas_stdc
+@@ -260,3 +412,42 @@ static struct platform_driver oxnas_stdc
  	},
  };
  builtin_platform_driver(oxnas_stdclk_driver);
diff --git a/target/linux/oxnas/patches-4.14/340-oxnas-pcie.patch b/target/linux/oxnas/patches-4.14/340-oxnas-pcie.patch
index b1ae62b7af8..4681888da08 100644
--- a/target/linux/oxnas/patches-4.14/340-oxnas-pcie.patch
+++ b/target/linux/oxnas/patches-4.14/340-oxnas-pcie.patch
@@ -22,7 +22,7 @@
  
 --- a/arch/arm/boot/dts/ox820.dtsi
 +++ b/arch/arm/boot/dts/ox820.dtsi
-@@ -302,6 +302,83 @@
+@@ -307,6 +307,83 @@
  				reg = <0x1000 0x1000>,
  				      <0x100 0x500>;
  			};
diff --git a/target/linux/oxnas/patches-4.14/500-oxnas-sata.patch b/target/linux/oxnas/patches-4.14/500-oxnas-sata.patch
index 3825ef0acbf..f79b100a5ed 100644
--- a/target/linux/oxnas/patches-4.14/500-oxnas-sata.patch
+++ b/target/linux/oxnas/patches-4.14/500-oxnas-sata.patch
@@ -26,7 +26,7 @@
  obj-$(CONFIG_PATA_ALI)		+= pata_ali.o
 --- a/arch/arm/boot/dts/ox820.dtsi
 +++ b/arch/arm/boot/dts/ox820.dtsi
-@@ -380,5 +380,20 @@
+@@ -385,5 +385,20 @@
  			};
  
  		};
diff --git a/target/linux/oxnas/patches-4.14/510-ox820-libata-leds.patch b/target/linux/oxnas/patches-4.14/510-ox820-libata-leds.patch
index 77888028876..6d85a046b6f 100644
--- a/target/linux/oxnas/patches-4.14/510-ox820-libata-leds.patch
+++ b/target/linux/oxnas/patches-4.14/510-ox820-libata-leds.patch
@@ -1,5 +1,5 @@
---- linux-4.14.44.orig/arch/arm/mach-oxnas/Kconfig
-+++ linux-4.14.44/arch/arm/mach-oxnas/Kconfig
+--- a/arch/arm/mach-oxnas/Kconfig
++++ b/arch/arm/mach-oxnas/Kconfig
 @@ -1,6 +1,7 @@
  menuconfig ARCH_OXNAS
  	bool "Oxford Semiconductor OXNAS Family SoCs"
diff --git a/target/linux/oxnas/patches-4.14/800-oxnas-ehci.patch b/target/linux/oxnas/patches-4.14/800-oxnas-ehci.patch
index 8fd6f69c1de..b4e34e5e3f8 100644
--- a/target/linux/oxnas/patches-4.14/800-oxnas-ehci.patch
+++ b/target/linux/oxnas/patches-4.14/800-oxnas-ehci.patch
@@ -26,7 +26,7 @@
  obj-$(CONFIG_USB_ISP116X_HCD)	+= isp116x-hcd.o
 --- a/arch/arm/boot/dts/ox820.dtsi
 +++ b/arch/arm/boot/dts/ox820.dtsi
-@@ -120,6 +120,22 @@
+@@ -105,6 +105,22 @@
  			status = "disabled";
  		};
  
diff --git a/target/linux/oxnas/patches-4.14/996-generic-Mangle-bootloader-s-kernel-arguments.patch b/target/linux/oxnas/patches-4.14/996-generic-Mangle-bootloader-s-kernel-arguments.patch
index 7a4dce75028..85947b1974e 100644
--- a/target/linux/oxnas/patches-4.14/996-generic-Mangle-bootloader-s-kernel-arguments.patch
+++ b/target/linux/oxnas/patches-4.14/996-generic-Mangle-bootloader-s-kernel-arguments.patch
@@ -157,7 +157,7 @@ Signed-off-by: Adrian Panella <ianchi74@outlook.com>
  }
 --- a/init/main.c
 +++ b/init/main.c
-@@ -96,6 +96,10 @@
+@@ -95,6 +95,10 @@
  #include <asm/sections.h>
  #include <asm/cacheflush.h>
  
@@ -168,7 +168,7 @@ Signed-off-by: Adrian Panella <ianchi74@outlook.com>
  static int kernel_init(void *);
  
  extern void init_IRQ(void);
-@@ -575,6 +579,18 @@ asmlinkage __visible void __init start_k
+@@ -574,6 +578,18 @@ asmlinkage __visible void __init start_k
  	page_alloc_init();
  
  	pr_notice("Kernel command line: %s\n", boot_command_line);
diff --git a/target/linux/oxnas/patches-4.14/999-libata-hacks.patch b/target/linux/oxnas/patches-4.14/999-libata-hacks.patch
index 2a3ba72184f..6d0f2314032 100644
--- a/target/linux/oxnas/patches-4.14/999-libata-hacks.patch
+++ b/target/linux/oxnas/patches-4.14/999-libata-hacks.patch
@@ -15,7 +15,7 @@
  	/* initialize internal qc */
  
  	/* XXX: Tag 0 is used for drivers with legacy EH as some
-@@ -5096,6 +5104,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
+@@ -5127,6 +5135,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
  	if (unlikely(ap->pflags & ATA_PFLAG_FROZEN))
  		return NULL;
  
@@ -25,7 +25,7 @@
  	/* libsas case */
  	if (ap->flags & ATA_FLAG_SAS_HOST) {
  		tag = ata_sas_allocate_tag(ap);
-@@ -5141,6 +5152,8 @@ void ata_qc_free(struct ata_queued_cmd *
+@@ -5172,6 +5183,8 @@ void ata_qc_free(struct ata_queued_cmd *
  		qc->tag = ATA_TAG_POISON;
  		if (ap->flags & ATA_FLAG_SAS_HOST)
  			ata_sas_free_tag(tag, ap);