diff options
46 files changed, 550 insertions, 383 deletions
diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 877fa88..3e92303 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 efaf61a..e815425 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 b78a788..3545b99 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 5963ee8..d175539 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 e2ca932..9897679 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 9f58370..3bee392 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 0ce7429..3df01c3 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 784c548..45039ce 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 d4b99a5..431098f 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 7d67e84..2cbb6ad 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 8f99cde..5fb956c 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 ef7cd6f..7fd493d 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 a6ba81f..33a18a8 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 4f5fb70..3f47d22 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 a554aa1..0000000 --- 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 69d926b..0000000 --- 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 b9bb3f7..c97e932 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 4b30bc7..093a73a 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 8ed0bde..0000000 --- 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 3c3353c..445c0bd 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 11f12bb..09dfd1b 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 410a267..f40214c 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 608bad0..9ecefc9 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 dca516e..881d08c 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 68643cc..7fbd97f 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 6efa6f1..0000000 --- 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 87e3e88..55f1015 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 51cf107..c48db55 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 5327560..c4ffd0e 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 f21f808..7ff586c 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 10f3854..3549c89 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 906c163..88ea697 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 ddb0cc8..6f9c4dd 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 39eb33a..f359eb3 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 2e135e6..3012fae 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 20289b3..db6144c 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>; +- }; +- }; +-}; +- +-ða { +- 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>; ++ }; ++ }; ++}; ++ ++ða { ++ 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 66dacab..44e1d03 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 bc4bc36..be9f1ec 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 6dd3b05..ad0df91 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 f78ecb2..d3bf9a9 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 b1ae62b..4681888 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 3825ef0..f79b100 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 7788802..6d85a04 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 8fd6f69..b4e34e5 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 7a4dce7..85947b1 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 2a3ba72..6d0f231 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); |