diff --git a/include/kernel-version.mk b/include/kernel-version.mk index ac19721b1b..91704c039e 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -6,14 +6,14 @@ ifdef CONFIG_TESTING_KERNEL KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER) endif -LINUX_VERSION-4.9 = .220 -LINUX_VERSION-4.14 = .176 -LINUX_VERSION-4.19 = .119 +LINUX_VERSION-4.9 = .221 +LINUX_VERSION-4.14 = .178 +LINUX_VERSION-4.19 = .120 LINUX_VERSION-5.4 = .38 -LINUX_KERNEL_HASH-4.9.220 = dad9c760787f9694173308c29f8e357b2c447b87a7965565ae4bb7f5979f0b2e -LINUX_KERNEL_HASH-4.14.176 = bcae0956baaeb55dab5bad0401873fbc5baaa7fbe957ea6d27a5ab241cec5ca2 -LINUX_KERNEL_HASH-4.19.119 = 2ba4b94a71bed9957d4d44b08de5552a30576ef2ceaa90f517af598dfe6f9bce +LINUX_KERNEL_HASH-4.9.221 = e64281cf92c7a6597b740267ce34a389588b33d483bd78445ab3d3d5c7e901be +LINUX_KERNEL_HASH-4.14.178 = fd2c33875e822e3ded994b60c5a3dbe456c1d352abf0a886498ee49870ed98dd +LINUX_KERNEL_HASH-4.19.120 = 0b9b00e182d707f5eca475b047bdc7789c9f95f62998945a34c527cdcbb3b20e LINUX_KERNEL_HASH-5.4.38 = e72b9fa4e3a222d42d64dce9915e5b18f1b75ae722d529a1e560ced2e5d0f30e remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) diff --git a/package/ctcgfw/luci-app-rclone/Makefile b/package/ctcgfw/luci-app-rclone/Makefile index 0a10544d52..597ce40be5 100644 --- a/package/ctcgfw/luci-app-rclone/Makefile +++ b/package/ctcgfw/luci-app-rclone/Makefile @@ -13,7 +13,7 @@ LUCI_TITLE:=LuCI support for Rclone LUCI_DEPENDS:=+rclone +rclone-webui-react LUCI_PKGARCH:=all PKG_NAME:=luci-app-rclone -PKG_VERSION:=1.3.21 +PKG_VERSION:=1.3.22 PKG_RELEASE:=1 PKG_LICENSE:=GPLv3.0+ PKG_MAINTAINER:=ElonH diff --git a/package/ctcgfw/luci-app-rclone/root/etc/init.d/rclone b/package/ctcgfw/luci-app-rclone/root/etc/init.d/rclone index 15205215ce..b5dbc71094 100755 --- a/package/ctcgfw/luci-app-rclone/root/etc/init.d/rclone +++ b/package/ctcgfw/luci-app-rclone/root/etc/init.d/rclone @@ -1,4 +1,4 @@ -#!/bin/bash /etc/rc.common +#!/bin/sh /etc/rc.common # Copyright (C) 2019 ElonH USE_PROCD=1 @@ -81,8 +81,8 @@ start_service() { procd_append_param command "--rc-allow-origin=*" procd_append_param command "--log-file=${log_path}" if [[ "${proxy_enable}" == "1" ]]; then - procd_set_param env all_proxy="$proxy_addr" https_proxy="$proxy_addr" http_proxy="$proxy_addr" - procd_set_param env ALL_PROXY="$proxy_addr" HTTPS_PROXY="$proxy_addr" HTTP_PROXY="$proxy_addr" + procd_set_param env all_proxy="$proxy_addr" https_proxy="$proxy_addr" http_proxy="$proxy_addr" + procd_append_param env ALL_PROXY="$proxy_addr" HTTPS_PROXY="$proxy_addr" HTTP_PROXY="$proxy_addr" fi procd_set_param stdout 1 procd_set_param stderr 1 diff --git a/package/ctcgfw/rclone/patches/010-change-default-config-path.patch b/package/ctcgfw/rclone/patches/010-change-default-config-path.patch index 800bd28896..b1d381ecf2 100644 --- a/package/ctcgfw/rclone/patches/010-change-default-config-path.patch +++ b/package/ctcgfw/rclone/patches/010-change-default-config-path.patch @@ -1,3 +1,12 @@ +## +# File: /patches/010-change-default-config-path.patch +# Project: rclone +# File Created: Friday, 1st May 2020 10:54:31 pm +# Author: ElonH[EH](elonhhuang@gmail.com) +# License: GNU General Public License v3.0 or later(http://www.gnu.org/licenses/gpl-3.0-standalone.html) +# Copyright (C) 2020 [ElonH] +## +# set /etc/rclone/rclone.conf as default configuration path diff --git a/fs/config/config.go b/fs/config/config.go index 53d67ef03..cc5d6436b 100644 --- a/fs/config/config.go diff --git a/package/ctcgfw/rclone/patches/020-Notice-Access-Control-Allow-Origin-only-once.patch b/package/ctcgfw/rclone/patches/020-Notice-Access-Control-Allow-Origin-only-once.patch new file mode 100644 index 0000000000..5317aa56f6 --- /dev/null +++ b/package/ctcgfw/rclone/patches/020-Notice-Access-Control-Allow-Origin-only-once.patch @@ -0,0 +1,44 @@ +## +# File: /patches/020-Notice-Access-Control-Allow-Origin-only-once.patch +# Project: rclone +# File Created: Sunday, 3rd May 2020 1:44:22 pm +# Author: ElonH[EH](elonhhuang@gmail.com) +# License: GNU General Public License v3.0 or later(http://www.gnu.org/licenses/gpl-3.0-standalone.html) +# Copyright (C) 2020 [ElonH] +## +diff --git a/fs/rc/rcserver/rcserver.go b/fs/rc/rcserver/rcserver.go +index 4a2b5c71e..f00994e93 100644 +--- a/fs/rc/rcserver/rcserver.go ++++ b/fs/rc/rcserver/rcserver.go +@@ -14,6 +14,7 @@ import ( + "regexp" + "sort" + "strings" ++ "sync" + + "github.com/pkg/errors" + "github.com/rclone/rclone/cmd/serve/httplib" +@@ -29,6 +30,8 @@ import ( + "github.com/skratchdot/open-golang/open" + ) + ++var onlyOnce sync.Once ++ + // Start the remote control server if configured + // + // If the server wasn't configured the *Server returned may be nil +@@ -172,9 +175,11 @@ func (s *Server) handler(w http.ResponseWriter, r *http.Request) { + + allowOrigin := rcflags.Opt.AccessControlAllowOrigin + if allowOrigin != "" { +- if allowOrigin == "*" { +- fs.Logf(nil, "Warning: Allow origin set to *. This can cause serious security problems.") +- } ++ onlyOnce.Do(func() { ++ if allowOrigin == "*" { ++ fs.Logf(nil, "Warning: Allow origin set to *. This can cause serious security problems.") ++ } ++ }) + w.Header().Add("Access-Control-Allow-Origin", allowOrigin) + } else { + w.Header().Add("Access-Control-Allow-Origin", s.URL()) diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index c2d2e0e023..3bcf064cfe 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -25,6 +25,7 @@ ALLWIFIBOARDS:= \ dlink_dap2610 \ engenius_emd1 \ ezviz_cs-w3-wd1200g-eup \ + hiwifi_c526a \ hugo_ac1200 \ linksys_ea8300 \ mobipromo_cm520-79f \ @@ -96,6 +97,7 @@ $(eval $(call generate-ipq-wifi-package,avm_fritzrepeater-1200,AVM FRITZRepeater $(eval $(call generate-ipq-wifi-package,dlink_dap2610,D-Link DAP-2610)) $(eval $(call generate-ipq-wifi-package,engenius_emd1,EnGenius EMD1)) $(eval $(call generate-ipq-wifi-package,ezviz_cs-w3-wd1200g-eup,EZVIZ CS-W3-WD1200G EUP)) +$(eval $(call generate-ipq-wifi-package,hiwifi_c526a,HiWiFi C526A)) $(eval $(call generate-ipq-wifi-package,hugo_ac1200,Hugo AC1200)) $(eval $(call generate-ipq-wifi-package,linksys_ea8300,Linksys EA8300)) $(eval $(call generate-ipq-wifi-package,mobipromo_cm520-79f,MobiPromo CM520-79F)) diff --git a/package/firmware/ipq-wifi/board-hiwifi_c526a.qca4019 b/package/firmware/ipq-wifi/board-hiwifi_c526a.qca4019 new file mode 100644 index 0000000000..ce91af5b14 Binary files /dev/null and b/package/firmware/ipq-wifi/board-hiwifi_c526a.qca4019 differ diff --git a/package/ntlf9t/luci-app-smartdns/po/zh-cn/smartdns.po b/package/ntlf9t/luci-app-smartdns/po/zh-cn/smartdns.po index 0338434f41..2d6780490f 100644 --- a/package/ntlf9t/luci-app-smartdns/po/zh-cn/smartdns.po +++ b/package/ntlf9t/luci-app-smartdns/po/zh-cn/smartdns.po @@ -212,10 +212,10 @@ msgid "Set TLS hostname to verify." msgstr "设置校验TLS主机名。" msgid "No check certificate" -msgstr "跳过证书检查" +msgstr "停用证书校验" msgid "Do not check certificate." -msgstr "不检查服务器证书。" +msgstr "不校验证书的合法性。" msgid "TLS SNI name" msgstr "TLS SNI名称" diff --git a/package/ntlf9t/smartdns/Makefile b/package/ntlf9t/smartdns/Makefile index 4e428a2876..a9db62e773 100644 --- a/package/ntlf9t/smartdns/Makefile +++ b/package/ntlf9t/smartdns/Makefile @@ -16,13 +16,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=smartdns -PKG_VERSION:=4.2020.30 +PKG_VERSION:=5.2020.04 PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/pymumu/smartdns.git -PKG_SOURCE_VERSION:=f79ceeac436162d62a7231679f4f8c61ee79958e -PKG_MIRROR_HASH:=8b5fad1c62391e06e6c234e1575fe7b31df8bcabe9d9594b6c2455d692120c2cc +PKG_SOURCE_VERSION:=770ce9e8bc502b2769f897676df9495129fb3afa +PKG_MIRROR_HASH:=14bf2f569af822f254c02389786496cdd179edf753ada061fad77e16f989be47 PKG_MAINTAINER:=Nick Peng PKG_LICENSE:=GPL-3.0-or-later 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 892cdaef33..f95fdf3d7f 100644 --- a/target/linux/apm821xx/patches-4.14/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch +++ b/target/linux/apm821xx/patches-4.14/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch @@ -44,7 +44,7 @@ Signed-off-by: Christian Lamparter #include "xhci.h" #include "xhci-trace.h" -@@ -268,6 +270,458 @@ static void xhci_pme_acpi_rtd3_enable(st +@@ -269,6 +271,458 @@ static void xhci_pme_acpi_rtd3_enable(st static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { } #endif /* CONFIG_ACPI */ @@ -503,7 +503,7 @@ Signed-off-by: Christian Lamparter /* called during probe() after chip reset completes */ static int xhci_pci_setup(struct usb_hcd *hcd) { -@@ -306,6 +760,22 @@ static int xhci_pci_probe(struct pci_dev +@@ -307,6 +761,22 @@ static int xhci_pci_probe(struct pci_dev struct hc_driver *driver; struct usb_hcd *hcd; @@ -526,7 +526,7 @@ Signed-off-by: Christian Lamparter driver = (struct hc_driver *)id->driver_data; /* For some HW implementation, a XHCI reset is just not enough... */ -@@ -367,6 +837,16 @@ static void xhci_pci_remove(struct pci_d +@@ -368,6 +838,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 c7315f9b8b..1fe94e8c6f 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 -@@ -221,7 +221,7 @@ static void xhci_pci_quirks(struct devic +@@ -222,7 +222,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/ar71xx/patches-4.14/403-mtd_fix_cfi_cmdset_0002_status_check.patch b/target/linux/ar71xx/patches-4.14/403-mtd_fix_cfi_cmdset_0002_status_check.patch index 4ef2303769..faf4391a57 100644 --- a/target/linux/ar71xx/patches-4.14/403-mtd_fix_cfi_cmdset_0002_status_check.patch +++ b/target/linux/ar71xx/patches-4.14/403-mtd_fix_cfi_cmdset_0002_status_check.patch @@ -18,7 +18,7 @@ xip_enable(map, chip, adr); op_done: if (mode == FL_OTP_WRITE) -@@ -2236,7 +2238,6 @@ static int cfi_amdstd_panic_write(struct +@@ -2240,7 +2242,6 @@ static int cfi_amdstd_panic_write(struct return 0; } @@ -26,7 +26,7 @@ /* * Handle devices with one erase region, that only implement * the chip erase command. -@@ -2304,7 +2305,7 @@ static int __xipram do_erase_chip(struct +@@ -2308,7 +2309,7 @@ static int __xipram do_erase_chip(struct } if (chip_good(map, adr, map_word_ff(map))) @@ -35,7 +35,7 @@ if (time_after(jiffies, timeo)) { printk(KERN_WARNING "MTD %s(): software timeout\n", -@@ -2328,6 +2329,7 @@ static int __xipram do_erase_chip(struct +@@ -2332,6 +2333,7 @@ static int __xipram do_erase_chip(struct } } @@ -43,7 +43,7 @@ chip->state = FL_READY; xip_enable(map, chip, adr); DISABLE_VPP(map); -@@ -2401,7 +2403,7 @@ static int __xipram do_erase_oneblock(st +@@ -2405,7 +2407,7 @@ static int __xipram do_erase_oneblock(st if (chip_good(map, adr, map_word_ff(map))) { xip_enable(map, chip, adr); @@ -52,7 +52,7 @@ } if (time_after(jiffies, timeo)) { -@@ -2427,6 +2429,7 @@ static int __xipram do_erase_oneblock(st +@@ -2431,6 +2433,7 @@ static int __xipram do_erase_oneblock(st } } diff --git a/target/linux/ar71xx/patches-4.14/411-mtd-cfi_cmdset_0002-force-word-write.patch b/target/linux/ar71xx/patches-4.14/411-mtd-cfi_cmdset_0002-force-word-write.patch index bb013c6cf5..9a367c2ab0 100644 --- a/target/linux/ar71xx/patches-4.14/411-mtd-cfi_cmdset_0002-force-word-write.patch +++ b/target/linux/ar71xx/patches-4.14/411-mtd-cfi_cmdset_0002-force-word-write.patch @@ -35,7 +35,7 @@ /* Atmel chips don't use the same PRI format as AMD chips */ static void fixup_convert_atmel_pri(struct mtd_info *mtd) -@@ -1798,6 +1802,7 @@ static int cfi_amdstd_write_words(struct +@@ -1800,6 +1804,7 @@ static int cfi_amdstd_write_words(struct /* * FIXME: interleaved mode not tested, and probably not supported! */ @@ -43,7 +43,7 @@ static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip, unsigned long adr, const u_char *buf, int len) -@@ -1926,7 +1931,6 @@ static int __xipram do_write_buffer(stru +@@ -1932,7 +1937,6 @@ static int __xipram do_write_buffer(stru return ret; } @@ -51,7 +51,7 @@ static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len, size_t *retlen, const u_char *buf) { -@@ -2001,6 +2005,7 @@ static int cfi_amdstd_write_buffers(stru +@@ -2007,6 +2011,7 @@ static int cfi_amdstd_write_buffers(stru return 0; } diff --git a/target/linux/ar71xx/patches-4.14/622-MIPS-ath79-add-more-register-defines-for-QCA956x-SoC.patch b/target/linux/ar71xx/patches-4.14/622-MIPS-ath79-add-more-register-defines-for-QCA956x-SoC.patch index cab2f6f9cb..d1fbe2e31d 100644 --- a/target/linux/ar71xx/patches-4.14/622-MIPS-ath79-add-more-register-defines-for-QCA956x-SoC.patch +++ b/target/linux/ar71xx/patches-4.14/622-MIPS-ath79-add-more-register-defines-for-QCA956x-SoC.patch @@ -19,7 +19,7 @@ #define QCA956X_PLL_CPU_CONFIG_REFDIV_SHIFT 12 #define QCA956X_PLL_CPU_CONFIG_REFDIV_MASK 0x1f -@@ -1196,4 +1201,16 @@ +@@ -1198,4 +1203,16 @@ #define QCA955X_ETH_CFG_TXE_DELAY_MASK 0x3 #define QCA955X_ETH_CFG_TXE_DELAY_SHIFT 20 diff --git a/target/linux/ar71xx/patches-4.14/910-unaligned_access_hacks.patch b/target/linux/ar71xx/patches-4.14/910-unaligned_access_hacks.patch index 2585bb10c1..b6d8348e18 100644 --- a/target/linux/ar71xx/patches-4.14/910-unaligned_access_hacks.patch +++ b/target/linux/ar71xx/patches-4.14/910-unaligned_access_hacks.patch @@ -325,7 +325,7 @@ for (p = *head; p; p = p->next) { --- a/net/ipv4/route.c +++ b/net/ipv4/route.c -@@ -466,7 +466,7 @@ static struct neighbour *ipv4_neigh_look +@@ -464,7 +464,7 @@ static struct neighbour *ipv4_neigh_look else if (skb) pkey = &ip_hdr(skb)->daddr; diff --git a/target/linux/ar71xx/patches-4.14/921-MIPS-ath79-add-even-more-register-defines-for-QCA956x-SoC.patch b/target/linux/ar71xx/patches-4.14/921-MIPS-ath79-add-even-more-register-defines-for-QCA956x-SoC.patch index a4608ea48d..a1a16817e3 100644 --- a/target/linux/ar71xx/patches-4.14/921-MIPS-ath79-add-even-more-register-defines-for-QCA956x-SoC.patch +++ b/target/linux/ar71xx/patches-4.14/921-MIPS-ath79-add-even-more-register-defines-for-QCA956x-SoC.patch @@ -130,8 +130,8 @@ Add more registers for QCA955x and QCA956x. +#define QCA955X_GMAC_REG_SGMII_SERDES 0x18 #define QCA955X_ETH_CFG_RGMII_EN BIT(0) - #define QCA955X_ETH_CFG_MII_GE0 BIT(1) -@@ -1210,16 +1291,58 @@ + #define QCA955X_ETH_CFG_GE0_MII_EN BIT(1) +@@ -1212,16 +1293,58 @@ #define QCA955X_ETH_CFG_TXE_DELAY_MASK 0x3 #define QCA955X_ETH_CFG_TXE_DELAY_SHIFT 20 diff --git a/target/linux/ar71xx/patches-4.14/940-qca955x-add-more-registers.patch b/target/linux/ar71xx/patches-4.14/940-qca955x-add-more-registers.patch index ff72308465..705763a7a2 100644 --- a/target/linux/ar71xx/patches-4.14/940-qca955x-add-more-registers.patch +++ b/target/linux/ar71xx/patches-4.14/940-qca955x-add-more-registers.patch @@ -20,8 +20,8 @@ +#define QCA955X_GMAC_REG_SGMII_DEBUG 0x58 #define QCA955X_ETH_CFG_RGMII_EN BIT(0) - #define QCA955X_ETH_CFG_MII_GE0 BIT(1) -@@ -1291,6 +1295,18 @@ + #define QCA955X_ETH_CFG_GE0_MII_EN BIT(1) +@@ -1293,6 +1297,18 @@ #define QCA955X_ETH_CFG_TXE_DELAY_MASK 0x3 #define QCA955X_ETH_CFG_TXE_DELAY_SHIFT 20 diff --git a/target/linux/ar71xx/patches-4.9/403-mtd_fix_cfi_cmdset_0002_status_check.patch b/target/linux/ar71xx/patches-4.9/403-mtd_fix_cfi_cmdset_0002_status_check.patch index 7f1f6ae0a3..5fc15589b8 100644 --- a/target/linux/ar71xx/patches-4.9/403-mtd_fix_cfi_cmdset_0002_status_check.patch +++ b/target/linux/ar71xx/patches-4.9/403-mtd_fix_cfi_cmdset_0002_status_check.patch @@ -18,7 +18,7 @@ xip_enable(map, chip, adr); op_done: if (mode == FL_OTP_WRITE) -@@ -2232,7 +2234,6 @@ static int cfi_amdstd_panic_write(struct +@@ -2236,7 +2238,6 @@ static int cfi_amdstd_panic_write(struct return 0; } @@ -26,7 +26,7 @@ /* * Handle devices with one erase region, that only implement * the chip erase command. -@@ -2300,7 +2301,7 @@ static int __xipram do_erase_chip(struct +@@ -2304,7 +2305,7 @@ static int __xipram do_erase_chip(struct } if (chip_good(map, adr, map_word_ff(map))) @@ -35,7 +35,7 @@ if (time_after(jiffies, timeo)) { printk(KERN_WARNING "MTD %s(): software timeout\n", -@@ -2324,6 +2325,7 @@ static int __xipram do_erase_chip(struct +@@ -2328,6 +2329,7 @@ static int __xipram do_erase_chip(struct } } @@ -43,7 +43,7 @@ chip->state = FL_READY; xip_enable(map, chip, adr); DISABLE_VPP(map); -@@ -2397,7 +2399,7 @@ static int __xipram do_erase_oneblock(st +@@ -2401,7 +2403,7 @@ static int __xipram do_erase_oneblock(st if (chip_good(map, adr, map_word_ff(map))) { xip_enable(map, chip, adr); @@ -52,7 +52,7 @@ } if (time_after(jiffies, timeo)) { -@@ -2423,6 +2425,7 @@ static int __xipram do_erase_oneblock(st +@@ -2427,6 +2429,7 @@ static int __xipram do_erase_oneblock(st } } diff --git a/target/linux/ar71xx/patches-4.9/411-mtd-cfi_cmdset_0002-force-word-write.patch b/target/linux/ar71xx/patches-4.9/411-mtd-cfi_cmdset_0002-force-word-write.patch index 6185651ee8..7b375ab0fa 100644 --- a/target/linux/ar71xx/patches-4.9/411-mtd-cfi_cmdset_0002-force-word-write.patch +++ b/target/linux/ar71xx/patches-4.9/411-mtd-cfi_cmdset_0002-force-word-write.patch @@ -43,7 +43,7 @@ static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip, unsigned long adr, const u_char *buf, int len) -@@ -1924,7 +1929,6 @@ static int __xipram do_write_buffer(stru +@@ -1928,7 +1933,6 @@ static int __xipram do_write_buffer(stru return ret; } @@ -51,7 +51,7 @@ static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len, size_t *retlen, const u_char *buf) { -@@ -1999,6 +2003,7 @@ static int cfi_amdstd_write_buffers(stru +@@ -2003,6 +2007,7 @@ static int cfi_amdstd_write_buffers(stru return 0; } diff --git a/target/linux/ar71xx/patches-4.9/910-unaligned_access_hacks.patch b/target/linux/ar71xx/patches-4.9/910-unaligned_access_hacks.patch index 450214a533..e94f1ce92e 100644 --- a/target/linux/ar71xx/patches-4.9/910-unaligned_access_hacks.patch +++ b/target/linux/ar71xx/patches-4.9/910-unaligned_access_hacks.patch @@ -316,7 +316,7 @@ for (p = *head; p; p = p->next) { --- a/net/ipv4/route.c +++ b/net/ipv4/route.c -@@ -461,7 +461,7 @@ static struct neighbour *ipv4_neigh_look +@@ -459,7 +459,7 @@ static struct neighbour *ipv4_neigh_look else if (skb) pkey = &ip_hdr(skb)->daddr; diff --git a/target/linux/bcm27xx/patches-4.19/950-0179-BCM283x-DT-Add-CSI-nodes-to-the-device-tree.patch b/target/linux/bcm27xx/patches-4.19/950-0179-BCM283x-DT-Add-CSI-nodes-to-the-device-tree.patch index 551a60ce9e..cf59fff9ae 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0179-BCM283x-DT-Add-CSI-nodes-to-the-device-tree.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0179-BCM283x-DT-Add-CSI-nodes-to-the-device-tree.patch @@ -156,7 +156,7 @@ Signed-off-by: Dave Stevenson +}; --- a/arch/arm/boot/dts/bcm283x.dtsi +++ b/arch/arm/boot/dts/bcm283x.dtsi -@@ -565,6 +565,32 @@ +@@ -566,6 +566,32 @@ status = "disabled"; }; diff --git a/target/linux/bcm27xx/patches-4.19/950-0556-ARM-dts-bcm283x-Move-BCM2835-6-7-specific-to-bcm2835.patch b/target/linux/bcm27xx/patches-4.19/950-0556-ARM-dts-bcm283x-Move-BCM2835-6-7-specific-to-bcm2835.patch index e3ee39abba..900bc4911c 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0556-ARM-dts-bcm283x-Move-BCM2835-6-7-specific-to-bcm2835.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0556-ARM-dts-bcm283x-Move-BCM2835-6-7-specific-to-bcm2835.patch @@ -159,8 +159,8 @@ Signed-off-by: Stefan Wahren jtag_gpio22: jtag_gpio22 { brcm,pins = <22 23 24 25 26 27>; brcm,function = ; -@@ -487,14 +460,6 @@ - +@@ -488,14 +461,6 @@ + status = "disabled"; }; - thermal: thermal@7e212000 { @@ -174,7 +174,7 @@ Signed-off-by: Stefan Wahren aux: aux@7e215000 { compatible = "brcm,bcm2835-aux"; #clock-cells = <1>; -@@ -660,12 +625,6 @@ +@@ -661,12 +626,6 @@ phy-names = "usb2-phy"; }; diff --git a/target/linux/bcm53xx/patches-4.14/322-ARM-dts-BCM5301X-Add-DT-for-ARRIS-SBR-AC1900P.patch b/target/linux/bcm53xx/patches-4.14/322-ARM-dts-BCM5301X-Add-DT-for-ARRIS-SBR-AC1900P.patch index 258407352c..c34f19b9d2 100644 --- a/target/linux/bcm53xx/patches-4.14/322-ARM-dts-BCM5301X-Add-DT-for-ARRIS-SBR-AC1900P.patch +++ b/target/linux/bcm53xx/patches-4.14/322-ARM-dts-BCM5301X-Add-DT-for-ARRIS-SBR-AC1900P.patch @@ -8,8 +8,8 @@ see 700-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -105,6 +105,8 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \ - bcm4709-netgear-r7000.dtb \ +@@ -101,6 +101,8 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \ + bcm4709-netgear-r7900.dtb \ bcm4709-netgear-r8000.dtb \ bcm4709-tplink-archer-c9-v1.dtb \ + bcm4709-arris-sbr-ac1900p.dtb \ diff --git a/target/linux/bcm53xx/patches-4.14/323-ARM-dts-BCM5301X-Add-DT-for-ARRIS-SBR-AC3200P.patch b/target/linux/bcm53xx/patches-4.14/323-ARM-dts-BCM5301X-Add-DT-for-ARRIS-SBR-AC3200P.patch index 606b22c3e2..f0b08deb4a 100644 --- a/target/linux/bcm53xx/patches-4.14/323-ARM-dts-BCM5301X-Add-DT-for-ARRIS-SBR-AC3200P.patch +++ b/target/linux/bcm53xx/patches-4.14/323-ARM-dts-BCM5301X-Add-DT-for-ARRIS-SBR-AC3200P.patch @@ -93,4 +93,3 @@ + }; + }; +}; -+ \ No newline at end of file diff --git a/target/linux/bcm63xx/patches-4.14/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch b/target/linux/bcm63xx/patches-4.14/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch index bbd39811c5..e1d43da87a 100644 --- a/target/linux/bcm63xx/patches-4.14/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch +++ b/target/linux/bcm63xx/patches-4.14/143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch @@ -89,7 +89,7 @@ Signed-off-by: Jonas Gorski --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c -@@ -1958,7 +1958,8 @@ int gpiochip_add_pingroup_range(struct g +@@ -1941,7 +1941,8 @@ int gpiochip_add_pingroup_range(struct g list_add_tail(&pin_range->node, &gdev->pin_ranges); @@ -99,7 +99,7 @@ Signed-off-by: Jonas Gorski } EXPORT_SYMBOL_GPL(gpiochip_add_pingroup_range); -@@ -2010,7 +2011,7 @@ int gpiochip_add_pin_range(struct gpio_c +@@ -1993,7 +1994,7 @@ int gpiochip_add_pin_range(struct gpio_c list_add_tail(&pin_range->node, &gdev->pin_ranges); diff --git a/target/linux/generic/backport-4.14/095-Allow-class-e-address-assignment-via-ifconfig-ioctl.patch b/target/linux/generic/backport-4.14/095-Allow-class-e-address-assignment-via-ifconfig-ioctl.patch index 1c501867a9..e3f77ab9da 100644 --- a/target/linux/generic/backport-4.14/095-Allow-class-e-address-assignment-via-ifconfig-ioctl.patch +++ b/target/linux/generic/backport-4.14/095-Allow-class-e-address-assignment-via-ifconfig-ioctl.patch @@ -48,7 +48,7 @@ Reviewed-by: John Gilmore #define INADDR_ANY ((unsigned long int) 0x00000000) --- a/net/ipv4/devinet.c +++ b/net/ipv4/devinet.c -@@ -929,7 +929,7 @@ static int inet_abc_len(__be32 addr) +@@ -934,7 +934,7 @@ static int inet_abc_len(__be32 addr) { int rc = -1; /* Something else, probably a multicast. */ @@ -57,7 +57,7 @@ Reviewed-by: John Gilmore rc = 0; else { __u32 haddr = ntohl(addr); -@@ -940,6 +940,8 @@ static int inet_abc_len(__be32 addr) +@@ -945,6 +945,8 @@ static int inet_abc_len(__be32 addr) rc = 16; else if (IN_CLASSC(haddr)) rc = 24; diff --git a/target/linux/generic/backport-4.14/350-v4.18-ipv6-make-ip6_dst_mtu_forward-inline.patch b/target/linux/generic/backport-4.14/350-v4.18-ipv6-make-ip6_dst_mtu_forward-inline.patch index dddc347436..bbc04555f7 100644 --- a/target/linux/generic/backport-4.14/350-v4.18-ipv6-make-ip6_dst_mtu_forward-inline.patch +++ b/target/linux/generic/backport-4.14/350-v4.18-ipv6-make-ip6_dst_mtu_forward-inline.patch @@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau --- a/include/net/ip6_route.h +++ b/include/net/ip6_route.h -@@ -252,4 +252,26 @@ static inline bool rt6_duplicate_nexthop +@@ -253,4 +253,26 @@ static inline bool rt6_duplicate_nexthop ipv6_addr_equal(&a->rt6i_gateway, &b->rt6i_gateway) && !lwtunnel_cmp_encap(a->dst.lwtstate, b->dst.lwtstate); } 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 30328b87d7..54c6b4d265 100644 --- a/target/linux/generic/hack-4.14/902-debloat_proc.patch +++ b/target/linux/generic/hack-4.14/902-debloat_proc.patch @@ -232,7 +232,7 @@ Signed-off-by: Felix Fietkau return -ENOMEM; --- a/mm/vmalloc.c +++ b/mm/vmalloc.c -@@ -2786,6 +2786,8 @@ static const struct file_operations proc +@@ -2798,6 +2798,8 @@ static const struct file_operations proc static int __init proc_vmalloc_init(void) { @@ -393,7 +393,7 @@ Signed-off-by: Felix Fietkau --- a/net/ipv4/route.c +++ b/net/ipv4/route.c -@@ -428,6 +428,9 @@ static struct pernet_operations ip_rt_pr +@@ -426,6 +426,9 @@ static struct pernet_operations ip_rt_pr static int __init ip_rt_proc_init(void) { diff --git a/target/linux/generic/hack-4.9/902-debloat_proc.patch b/target/linux/generic/hack-4.9/902-debloat_proc.patch index 43614633dd..338bbea553 100644 --- a/target/linux/generic/hack-4.9/902-debloat_proc.patch +++ b/target/linux/generic/hack-4.9/902-debloat_proc.patch @@ -233,7 +233,7 @@ Signed-off-by: Felix Fietkau return -ENOMEM; --- a/mm/vmalloc.c +++ b/mm/vmalloc.c -@@ -2730,6 +2730,8 @@ static const struct file_operations proc +@@ -2740,6 +2740,8 @@ static const struct file_operations proc static int __init proc_vmalloc_init(void) { @@ -394,7 +394,7 @@ Signed-off-by: Felix Fietkau --- a/net/ipv4/route.c +++ b/net/ipv4/route.c -@@ -423,6 +423,9 @@ static struct pernet_operations ip_rt_pr +@@ -421,6 +421,9 @@ static struct pernet_operations ip_rt_pr static int __init ip_rt_proc_init(void) { diff --git a/target/linux/generic/hack-4.9/951-bridge-Add-new-bridge-APIs-needed-for-network-HW-acc.patch b/target/linux/generic/hack-4.9/951-bridge-Add-new-bridge-APIs-needed-for-network-HW-acc.patch index b576ad91b6..5cc7dabad7 100644 --- a/target/linux/generic/hack-4.9/951-bridge-Add-new-bridge-APIs-needed-for-network-HW-acc.patch +++ b/target/linux/generic/hack-4.9/951-bridge-Add-new-bridge-APIs-needed-for-network-HW-acc.patch @@ -24,6 +24,8 @@ Signed-off-by: Murat Sezgin net/bridge/br_if.c | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) +diff --git a/include/linux/if_bridge.h b/include/linux/if_bridge.h +index 0911c8c..4473f62 100644 --- a/include/linux/if_bridge.h +++ b/include/linux/if_bridge.h @@ -52,6 +52,7 @@ struct br_ip_list { @@ -34,9 +36,11 @@ Signed-off-by: Murat Sezgin typedef int br_should_route_hook_t(struct sk_buff *skb); extern br_should_route_hook_t __rcu *br_should_route_hook; +diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c +index ed0dd33..342b2d9 100644 --- a/net/bridge/br_if.c +++ b/net/bridge/br_if.c -@@ -654,3 +654,28 @@ void br_port_flags_change(struct net_bri +@@ -655,3 +655,28 @@ void br_port_flags_change(struct net_bridge_port *p, unsigned long mask) if (mask & BR_AUTO_MASK) nbp_update_port_count(br); } @@ -65,3 +69,6 @@ Signed-off-by: Murat Sezgin + u64_stats_update_end(&stats->syncp); +} +EXPORT_SYMBOL_GPL(br_dev_update_stats); +-- +2.7.4 + diff --git a/target/linux/generic/hack-4.9/952-net-conntrack-events-support-multiple-registrant.patch b/target/linux/generic/hack-4.9/952-net-conntrack-events-support-multiple-registrant.patch index 1ad4ad2ea5..a898c4a695 100644 --- a/target/linux/generic/hack-4.9/952-net-conntrack-events-support-multiple-registrant.patch +++ b/target/linux/generic/hack-4.9/952-net-conntrack-events-support-multiple-registrant.patch @@ -20,6 +20,8 @@ Signed-off-by: Zhi Chen net/netfilter/nf_conntrack_netlink.c | 19 ++++++ 6 files changed, 139 insertions(+), 1 deletion(-) +diff --git a/include/net/netfilter/nf_conntrack_ecache.h b/include/net/netfilter/nf_conntrack_ecache.h +index 12d967b..c2b98b6 100644 --- a/include/net/netfilter/nf_conntrack_ecache.h +++ b/include/net/netfilter/nf_conntrack_ecache.h @@ -70,6 +70,10 @@ struct nf_ct_event { @@ -33,7 +35,7 @@ Signed-off-by: Zhi Chen struct nf_ct_event_notifier { int (*fcn)(unsigned int events, struct nf_ct_event *item); }; -@@ -78,6 +82,7 @@ int nf_conntrack_register_notifier(struc +@@ -78,6 +82,7 @@ int nf_conntrack_register_notifier(struct net *net, struct nf_ct_event_notifier *nb); void nf_conntrack_unregister_notifier(struct net *net, struct nf_ct_event_notifier *nb); @@ -41,7 +43,7 @@ Signed-off-by: Zhi Chen void nf_ct_deliver_cached_events(struct nf_conn *ct); int nf_conntrack_eventmask_report(unsigned int eventmask, struct nf_conn *ct, -@@ -86,11 +91,13 @@ int nf_conntrack_eventmask_report(unsign +@@ -86,11 +91,13 @@ int nf_conntrack_eventmask_report(unsigned int eventmask, struct nf_conn *ct, static inline void nf_conntrack_event_cache(enum ip_conntrack_events event, struct nf_conn *ct) { @@ -69,7 +71,7 @@ Signed-off-by: Zhi Chen return nf_conntrack_eventmask_report(1 << event, ct, portid, report); } -@@ -114,10 +123,12 @@ nf_conntrack_event_report(enum ip_conntr +@@ -114,10 +123,12 @@ nf_conntrack_event_report(enum ip_conntrack_events event, struct nf_conn *ct, static inline int nf_conntrack_event(enum ip_conntrack_events event, struct nf_conn *ct) { @@ -82,6 +84,8 @@ Signed-off-by: Zhi Chen return nf_conntrack_eventmask_report(1 << event, ct, 0, 0); } +diff --git a/include/net/netns/conntrack.h b/include/net/netns/conntrack.h +index e469e85..1d31db8 100644 --- a/include/net/netns/conntrack.h +++ b/include/net/netns/conntrack.h @@ -86,7 +86,11 @@ struct netns_ct { @@ -96,6 +100,8 @@ Signed-off-by: Zhi Chen struct nf_exp_event_notifier __rcu *nf_expect_event_cb; struct nf_ip_net nf_ct_proto; #if defined(CONFIG_NF_CONNTRACK_LABELS) +diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig +index 63073be..08d7aab 100644 --- a/net/netfilter/Kconfig +++ b/net/netfilter/Kconfig @@ -136,6 +136,14 @@ config NF_CONNTRACK_TIMEOUT @@ -113,9 +119,11 @@ Signed-off-by: Zhi Chen config NF_CONNTRACK_TIMESTAMP bool 'Connection tracking timestamping' depends on NETFILTER_ADVANCED +diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c +index 6bd1508..9b81c7c 100644 --- a/net/netfilter/nf_conntrack_core.c +++ b/net/netfilter/nf_conntrack_core.c -@@ -2077,6 +2077,10 @@ int nf_conntrack_init_net(struct net *ne +@@ -1998,6 +1998,10 @@ int nf_conntrack_init_net(struct net *net) ret = nf_conntrack_proto_pernet_init(net); if (ret < 0) goto err_proto; @@ -126,6 +134,8 @@ Signed-off-by: Zhi Chen return 0; err_proto: +diff --git a/net/netfilter/nf_conntrack_ecache.c b/net/netfilter/nf_conntrack_ecache.c +index da9df2d..e0e2a8f 100644 --- a/net/netfilter/nf_conntrack_ecache.c +++ b/net/netfilter/nf_conntrack_ecache.c @@ -18,6 +18,9 @@ @@ -138,7 +148,7 @@ Signed-off-by: Zhi Chen #include #include #include -@@ -117,6 +120,38 @@ static void ecache_work(struct work_stru +@@ -117,6 +120,38 @@ static void ecache_work(struct work_struct *work) schedule_delayed_work(&ctnet->ecache_dwork, delay); } @@ -177,7 +187,7 @@ Signed-off-by: Zhi Chen int nf_conntrack_eventmask_report(unsigned int eventmask, struct nf_conn *ct, u32 portid, int report) { -@@ -171,10 +206,52 @@ out_unlock: +@@ -171,10 +206,52 @@ int nf_conntrack_eventmask_report(unsigned int eventmask, struct nf_conn *ct, rcu_read_unlock(); return ret; } @@ -230,7 +240,7 @@ Signed-off-by: Zhi Chen void nf_ct_deliver_cached_events(struct nf_conn *ct) { struct net *net = nf_ct_net(ct); -@@ -225,6 +302,7 @@ void nf_ct_deliver_cached_events(struct +@@ -225,6 +302,7 @@ void nf_ct_deliver_cached_events(struct nf_conn *ct) out_unlock: rcu_read_unlock(); } @@ -238,7 +248,7 @@ Signed-off-by: Zhi Chen EXPORT_SYMBOL_GPL(nf_ct_deliver_cached_events); void nf_ct_expect_event_report(enum ip_conntrack_expect_events event, -@@ -257,6 +335,12 @@ out_unlock: +@@ -257,6 +335,12 @@ void nf_ct_expect_event_report(enum ip_conntrack_expect_events event, rcu_read_unlock(); } @@ -251,7 +261,7 @@ Signed-off-by: Zhi Chen int nf_conntrack_register_notifier(struct net *net, struct nf_ct_event_notifier *new) { -@@ -277,8 +361,15 @@ out_unlock: +@@ -277,8 +361,15 @@ int nf_conntrack_register_notifier(struct net *net, mutex_unlock(&nf_ct_ecache_mutex); return ret; } @@ -267,14 +277,16 @@ Signed-off-by: Zhi Chen void nf_conntrack_unregister_notifier(struct net *net, struct nf_ct_event_notifier *new) { -@@ -292,6 +383,7 @@ void nf_conntrack_unregister_notifier(st +@@ -291,6 +382,7 @@ void nf_conntrack_unregister_notifier(struct net *net, + RCU_INIT_POINTER(net->ct.nf_conntrack_event_cb, NULL); mutex_unlock(&nf_ct_ecache_mutex); - /* synchronize_rcu() is called from ctnetlink_exit. */ } +#endif EXPORT_SYMBOL_GPL(nf_conntrack_unregister_notifier); int nf_ct_expect_register_notifier(struct net *net, +diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c +index 04111c1..8c741f7 100644 --- a/net/netfilter/nf_conntrack_netlink.c +++ b/net/netfilter/nf_conntrack_netlink.c @@ -28,6 +28,11 @@ @@ -287,9 +299,9 @@ Signed-off-by: Zhi Chen +#endif + #include - #include -@@ -618,14 +623,22 @@ static size_t ctnetlink_nlmsg_size(const + #include +@@ -615,14 +620,22 @@ static size_t ctnetlink_nlmsg_size(const struct nf_conn *ct) ; } @@ -312,7 +324,7 @@ Signed-off-by: Zhi Chen struct nf_conn *ct = item->ct; struct sk_buff *skb; unsigned int type; -@@ -3288,9 +3301,15 @@ static int ctnetlink_stat_exp_cpu(struct +@@ -3260,9 +3273,15 @@ static int ctnetlink_stat_exp_cpu(struct net *net, struct sock *ctnl, } #ifdef CONFIG_NF_CONNTRACK_EVENTS @@ -328,3 +340,6 @@ Signed-off-by: Zhi Chen static struct nf_exp_event_notifier ctnl_notifier_exp = { .fcn = ctnetlink_expect_event, +-- +2.7.4 + diff --git a/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index 245ef291ed..0c5016d368 100644 --- a/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau __u16 tc_index; /* traffic control index */ --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4815,6 +4815,9 @@ static enum gro_result dev_gro_receive(s +@@ -4816,6 +4816,9 @@ static enum gro_result dev_gro_receive(s enum gro_result ret; int grow; @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau if (netif_elide_gro(skb->dev)) goto normal; -@@ -6292,6 +6295,48 @@ static void __netdev_adjacent_dev_unlink +@@ -6293,6 +6296,48 @@ static void __netdev_adjacent_dev_unlink &upper_dev->adj_list.lower); } @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau static int __netdev_upper_dev_link(struct net_device *dev, struct net_device *upper_dev, bool master, void *upper_priv, void *upper_info) -@@ -6330,6 +6375,7 @@ static int __netdev_upper_dev_link(struc +@@ -6331,6 +6376,7 @@ static int __netdev_upper_dev_link(struc if (ret) return ret; @@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev, &changeupper_info.info); ret = notifier_to_errno(ret); -@@ -6407,6 +6453,7 @@ void netdev_upper_dev_unlink(struct net_ +@@ -6408,6 +6454,7 @@ void netdev_upper_dev_unlink(struct net_ __netdev_adjacent_dev_unlink_neighbour(dev, upper_dev); @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev, &changeupper_info.info); } -@@ -6971,6 +7018,7 @@ int dev_set_mac_address(struct net_devic +@@ -6972,6 +7019,7 @@ int dev_set_mac_address(struct net_devic if (err) return err; dev->addr_assign_type = NET_ADDR_SET; diff --git a/target/linux/ipq40xx/base-files/etc/board.d/02_network b/target/linux/ipq40xx/base-files/etc/board.d/02_network index 1307fd8dda..6c15767c76 100755 --- a/target/linux/ipq40xx/base-files/etc/board.d/02_network +++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network @@ -61,6 +61,10 @@ ipq40xx_setup_interfaces() ucidef_add_switch "switch0" \ "0t@eth0" "3:lan" "4:lan" "5:wan" ;; + hiwifi,c526a) + ucidef_add_switch "switch0" \ + "0t@eth0" "2:lan" "3:lan" "4:lan" "5:wan" + ;; hugo,ac1200) ucidef_add_switch "switch0" \ "0t@eth0" "5:wan" "3:lan" @@ -120,6 +124,10 @@ ipq40xx_setup_macs() ezviz,cs-w3-wd1200g-eup) label_mac=$(mtd_get_mac_binary "ART" 0x6) ;; + hiwifi,c526a) + lan_mac=$(mtd_get_mac_ascii bdinfo "Vfac_mac ") + wan_mac=$(macaddr_add "$lan_mac" 1) + ;; linksys,ea6350v3) wan_mac=$(mtd_get_mac_ascii devinfo hw_mac_addr) lan_mac=$(macaddr_add "$wan_mac" 1) diff --git a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index d37b3c8e7e..1c1c21a222 100644 --- a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -199,6 +199,10 @@ case "$FIRMWARE" in ath10kcal_extract "ART" 4096 12064 ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) +2) ;; + hiwifi,c526a) + ath10kcal_extract "ART" 4096 12064 + ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_ascii bdinfo "Vfac_mac ") +2) + ;; linksys,ea8300) ath10kcal_extract "ART" 4096 12064 ath10kcal_patch_mac_crc $(macaddr_add "$(cat /sys/class/net/eth0/address)" +2) @@ -283,6 +287,10 @@ case "$FIRMWARE" in ath10kcal_extract "ART" 20480 12064 ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) +3) ;; + hiwifi,c526a) + ath10kcal_extract "ART" 20480 12064 + ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_ascii bdinfo "Vfac_mac ") +3) + ;; linksys,ea8300) ath10kcal_extract "ART" 20480 12064 ath10kcal_patch_mac_crc $(macaddr_add "$(cat /sys/class/net/eth0/address)" +3) diff --git a/target/linux/ipq40xx/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac b/target/linux/ipq40xx/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac new file mode 100644 index 0000000000..0be00f5ebd --- /dev/null +++ b/target/linux/ipq40xx/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac @@ -0,0 +1,21 @@ +#!/bin/ash + +[ "$ACTION" = "add" ] || exit 0 + +PHYNBR=${DEVPATH##*/phy} + +[ -n $PHYNBR ] || exit 0 + +. /lib/functions.sh +. /lib/functions/system.sh + +board=$(board_name) + +case "$board" in + hiwifi,c526a) + [ "$PHYNBR" -eq 0 ] && \ + mtd_get_mac_ascii bdinfo "Vfac_mac " > /sys${DEVPATH}/macaddress + ;; + *) + ;; +esac diff --git a/target/linux/ipq40xx/base-files/lib/preinit/05_set_iface_mac_ipq40xx.sh b/target/linux/ipq40xx/base-files/lib/preinit/05_set_iface_mac_ipq40xx.sh index 00b56a3e64..7f1554cff4 100644 --- a/target/linux/ipq40xx/base-files/lib/preinit/05_set_iface_mac_ipq40xx.sh +++ b/target/linux/ipq40xx/base-files/lib/preinit/05_set_iface_mac_ipq40xx.sh @@ -7,7 +7,6 @@ preinit_set_mac_address() { asus,map-ac2200) base_mac=$(mtd_get_mac_binary_ubi Factory 4102) ip link set dev eth0 address $(macaddr_add "$base_mac" +1) - ip link set dev eth1 address $(macaddr_add "$base_mac" +3) ;; asus,rt-acrh17|\ asus,rt-ac58u|\ @@ -18,12 +17,10 @@ preinit_set_mac_address() { ;; ezviz,cs-w3-wd1200g-eup) ip link set dev eth0 address $(mtd_get_mac_binary "ART" 6) - ip link set dev eth1 address $(mtd_get_mac_binary "ART" 0) ;; linksys,ea8300) base_mac=$(mtd_get_mac_ascii devinfo hw_mac_addr) ip link set dev eth0 address "${base_mac}" - ip link set dev eth1 address $(macaddr_add "${base_mac}" 1) ;; meraki,mr33) mac_lan=$(get_mac_binary "/sys/bus/i2c/devices/0-0050/eeprom" 102) @@ -32,7 +29,6 @@ preinit_set_mac_address() { zyxel,nbg6617) base_mac=$(cat /sys/class/net/eth0/address) ip link set dev eth0 address $(macaddr_add "$base_mac" +2) - ip link set dev eth1 address $(macaddr_add "$base_mac" +3) ;; esac } diff --git a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh index 5fca4bdbde..c2da688d92 100644 --- a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh @@ -166,6 +166,7 @@ platform_do_upgrade() { avm,fritzrepeater-1200 |\ avm,fritzrepeater-3000 |\ cilab,meshpoint-one |\ + hiwifi,c526a |\ mobipromo,cm520-79f |\ qxwlan,e2600ac-c2) nand_do_upgrade "$ARGV" diff --git a/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-c526a.dts b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-c526a.dts new file mode 100644 index 0000000000..2d4b4ea08c --- /dev/null +++ b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-c526a.dts @@ -0,0 +1,325 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qcom-ipq4019.dtsi" +#include +#include +#include + +/ { + + model = "HiWiFi C526A"; + compatible = "hiwifi,c526a"; + + aliases { + led-boot = &led_boot; + led-failsafe = &led_boot; + led-running = &led_sys; + led-upgrade = &led_sys; + }; + + chosen { + bootargs-append = " ubi.mtd=ubi root=/dev/ubiblock0_1"; + }; + + soc { + rng@22000 { + status = "okay"; + }; + + mdio@90000 { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + }; + + ess-psgmii@98000 { + status = "okay"; + }; + + tcsr@1949000 { + compatible = "qcom,tcsr"; + reg = <0x1949000 0x100>; + qcom,wifi_glb_cfg = ; + }; + + tcsr@194b000 { + compatible = "qcom,tcsr"; + reg = <0x194b000 0x100>; + qcom,usb-hsphy-mode-select = ; + }; + + ess_tcsr@1953000 { + compatible = "qcom,tcsr"; + reg = <0x1953000 0x1000>; + qcom,ess-interface-select = ; + }; + + tcsr@1957000 { + compatible = "qcom,tcsr"; + reg = <0x1957000 0x100>; + qcom,wifi_noc_memtype_m0_m2 = ; + }; + + usb2@60f8800 { + status = "okay"; + }; + + usb3@8af8800 { + status = "okay"; + }; + + crypto@8e3a000 { + status = "okay"; + }; + + watchdog@b017000 { + status = "okay"; + }; + + ess-switch@c000000 { + status = "okay"; + }; + + edma@c080000 { + status = "okay"; + }; + }; + + leds { + compatible = "gpio-leds"; + + led_sys: blue { + label = "c526a:blue:sys"; + gpios = <&tlmm 36 GPIO_ACTIVE_LOW>; + }; + + led_boot: red { + label = "c526a:red:sys"; + gpios = <&tlmm 40 GPIO_ACTIVE_LOW>; + panic-indicator; + }; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + gpios = <&tlmm 18 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; +}; + +&blsp_dma { + status = "okay"; +}; + +&blsp1_spi1 { + status = "okay"; + + flash@0 { + reg = <0>; + compatible = "jedec,spi-nor"; + spi-max-frequency = <24000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "SBL1"; + reg = <0x0 0x40000>; + read-only; + }; + + partition@40000 { + label = "MIBIB"; + reg = <0x40000 0x20000>; + read-only; + }; + + partition@60000 { + label = "QSEE"; + reg = <0x60000 0x60000>; + read-only; + }; + + partition@c0000 { + label = "CDT"; + reg = <0xc0000 0x10000>; + read-only; + }; + + partition@d0000 { + label = "DDRPARAMS"; + reg = <0xd0000 0x10000>; + read-only; + }; + + partition@e0000 { + label = "APPSBLENV"; + reg = <0xe0000 0x10000>; + read-only; + }; + + partition@f0000 { + label = "APPSBL"; + reg = <0xf0000 0x80000>; + read-only; + }; + + partition@170000 { + label = "ART"; + reg = <0x170000 0x10000>; + read-only; + }; + + partition@180000 { + label = "bdinfo"; + reg = <0x180000 0x10000>; + read-only; + }; + + partition@190000 { + label = "debug"; + reg = <0x190000 0x10000>; + read-only; + }; + + partition@1a0000 { + label = "oem"; + reg = <0x1a0000 0x20000>; + read-only; + }; + + factory: partition@1c0000 { + label = "Factory"; + reg = <0x1c0000 0x10000>; + read-only; + }; + + partition@1d0000 { + label = "hw_panic"; + reg = <0x1d0000 0x10000>; + read-only; + }; + + partition@1e0000 { + label = "upgrade_config"; + reg = <0x1e0000 0x10000>; + read-only; + }; + }; + }; +}; + +&blsp1_uart1 { + pinctrl-0 = <&serial_0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&cryptobam { + status = "okay"; +}; + +&nand { + status = "okay"; + + nand@0 { + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "ubi"; + reg = <0x0 0x2c00000>; + }; + + partition@2c00000 { + label = "hiwifi_rootfs"; + reg = <0x2c00000 0x2c00000>; + }; + + partition@5800000 { + label = "hiwifi_opt"; + reg = <0x5800000 0x2800000>; + }; + }; + }; +}; + +&pcie0 { + status = "okay"; + perst-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; + wake-gpios = <&tlmm 50 GPIO_ACTIVE_LOW>; + + bridge@0,0 { + reg = <0x00000000 0 0 0 0>; + #address-cells = <3>; + #size-cells = <2>; + ranges; + + wifi@1,0 { + compatible = "mediatek,mt76"; + reg = <0x0000 0 0 0 0>; + mediatek,mtd-eeprom = <&factory 0x0000>; + ieee80211-freq-limit = <2400000 2500000>; + }; + }; +}; + +&qpic_bam { + status = "okay"; +}; + +&tlmm { + mdio_pins: mdio_pinmux { + mux_1 { + pins = "gpio6"; + function = "mdio"; + bias-pull-up; + }; + + mux_2 { + pins = "gpio7"; + function = "mdc"; + bias-pull-up; + }; + }; + + serial_0_pins: serial0-pinmux { + mux { + pins = "gpio16", "gpio17"; + function = "blsp_uart0"; + bias-disable; + }; + }; +}; + +&usb3_ss_phy { + status = "okay"; +}; + +&usb3_hs_phy { + status = "okay"; +}; + +&usb2_hs_phy { + status = "okay"; +}; + +&wifi0 { + status = "okay"; + ieee80211-freq-limit = <5470000 5875000>; + qcom,ath10k-calibration-variant = "C526A"; +}; + +&wifi1 { + status = "okay"; + ieee80211-freq-limit = <5170000 5350000>; + qcom,ath10k-calibration-variant = "C526A"; +}; diff --git a/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-c526a.dts b/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-c526a.dts new file mode 100644 index 0000000000..2d4b4ea08c --- /dev/null +++ b/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-c526a.dts @@ -0,0 +1,325 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qcom-ipq4019.dtsi" +#include +#include +#include + +/ { + + model = "HiWiFi C526A"; + compatible = "hiwifi,c526a"; + + aliases { + led-boot = &led_boot; + led-failsafe = &led_boot; + led-running = &led_sys; + led-upgrade = &led_sys; + }; + + chosen { + bootargs-append = " ubi.mtd=ubi root=/dev/ubiblock0_1"; + }; + + soc { + rng@22000 { + status = "okay"; + }; + + mdio@90000 { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + }; + + ess-psgmii@98000 { + status = "okay"; + }; + + tcsr@1949000 { + compatible = "qcom,tcsr"; + reg = <0x1949000 0x100>; + qcom,wifi_glb_cfg = ; + }; + + tcsr@194b000 { + compatible = "qcom,tcsr"; + reg = <0x194b000 0x100>; + qcom,usb-hsphy-mode-select = ; + }; + + ess_tcsr@1953000 { + compatible = "qcom,tcsr"; + reg = <0x1953000 0x1000>; + qcom,ess-interface-select = ; + }; + + tcsr@1957000 { + compatible = "qcom,tcsr"; + reg = <0x1957000 0x100>; + qcom,wifi_noc_memtype_m0_m2 = ; + }; + + usb2@60f8800 { + status = "okay"; + }; + + usb3@8af8800 { + status = "okay"; + }; + + crypto@8e3a000 { + status = "okay"; + }; + + watchdog@b017000 { + status = "okay"; + }; + + ess-switch@c000000 { + status = "okay"; + }; + + edma@c080000 { + status = "okay"; + }; + }; + + leds { + compatible = "gpio-leds"; + + led_sys: blue { + label = "c526a:blue:sys"; + gpios = <&tlmm 36 GPIO_ACTIVE_LOW>; + }; + + led_boot: red { + label = "c526a:red:sys"; + gpios = <&tlmm 40 GPIO_ACTIVE_LOW>; + panic-indicator; + }; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + gpios = <&tlmm 18 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; +}; + +&blsp_dma { + status = "okay"; +}; + +&blsp1_spi1 { + status = "okay"; + + flash@0 { + reg = <0>; + compatible = "jedec,spi-nor"; + spi-max-frequency = <24000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "SBL1"; + reg = <0x0 0x40000>; + read-only; + }; + + partition@40000 { + label = "MIBIB"; + reg = <0x40000 0x20000>; + read-only; + }; + + partition@60000 { + label = "QSEE"; + reg = <0x60000 0x60000>; + read-only; + }; + + partition@c0000 { + label = "CDT"; + reg = <0xc0000 0x10000>; + read-only; + }; + + partition@d0000 { + label = "DDRPARAMS"; + reg = <0xd0000 0x10000>; + read-only; + }; + + partition@e0000 { + label = "APPSBLENV"; + reg = <0xe0000 0x10000>; + read-only; + }; + + partition@f0000 { + label = "APPSBL"; + reg = <0xf0000 0x80000>; + read-only; + }; + + partition@170000 { + label = "ART"; + reg = <0x170000 0x10000>; + read-only; + }; + + partition@180000 { + label = "bdinfo"; + reg = <0x180000 0x10000>; + read-only; + }; + + partition@190000 { + label = "debug"; + reg = <0x190000 0x10000>; + read-only; + }; + + partition@1a0000 { + label = "oem"; + reg = <0x1a0000 0x20000>; + read-only; + }; + + factory: partition@1c0000 { + label = "Factory"; + reg = <0x1c0000 0x10000>; + read-only; + }; + + partition@1d0000 { + label = "hw_panic"; + reg = <0x1d0000 0x10000>; + read-only; + }; + + partition@1e0000 { + label = "upgrade_config"; + reg = <0x1e0000 0x10000>; + read-only; + }; + }; + }; +}; + +&blsp1_uart1 { + pinctrl-0 = <&serial_0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&cryptobam { + status = "okay"; +}; + +&nand { + status = "okay"; + + nand@0 { + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "ubi"; + reg = <0x0 0x2c00000>; + }; + + partition@2c00000 { + label = "hiwifi_rootfs"; + reg = <0x2c00000 0x2c00000>; + }; + + partition@5800000 { + label = "hiwifi_opt"; + reg = <0x5800000 0x2800000>; + }; + }; + }; +}; + +&pcie0 { + status = "okay"; + perst-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; + wake-gpios = <&tlmm 50 GPIO_ACTIVE_LOW>; + + bridge@0,0 { + reg = <0x00000000 0 0 0 0>; + #address-cells = <3>; + #size-cells = <2>; + ranges; + + wifi@1,0 { + compatible = "mediatek,mt76"; + reg = <0x0000 0 0 0 0>; + mediatek,mtd-eeprom = <&factory 0x0000>; + ieee80211-freq-limit = <2400000 2500000>; + }; + }; +}; + +&qpic_bam { + status = "okay"; +}; + +&tlmm { + mdio_pins: mdio_pinmux { + mux_1 { + pins = "gpio6"; + function = "mdio"; + bias-pull-up; + }; + + mux_2 { + pins = "gpio7"; + function = "mdc"; + bias-pull-up; + }; + }; + + serial_0_pins: serial0-pinmux { + mux { + pins = "gpio16", "gpio17"; + function = "blsp_uart0"; + bias-disable; + }; + }; +}; + +&usb3_ss_phy { + status = "okay"; +}; + +&usb3_hs_phy { + status = "okay"; +}; + +&usb2_hs_phy { + status = "okay"; +}; + +&wifi0 { + status = "okay"; + ieee80211-freq-limit = <5470000 5875000>; + qcom,ath10k-calibration-variant = "C526A"; +}; + +&wifi1 { + status = "okay"; + ieee80211-freq-limit = <5170000 5350000>; + qcom,ath10k-calibration-variant = "C526A"; +}; diff --git a/target/linux/ipq40xx/image/Makefile b/target/linux/ipq40xx/image/Makefile index 107e0d250a..718caf340c 100644 --- a/target/linux/ipq40xx/image/Makefile +++ b/target/linux/ipq40xx/image/Makefile @@ -300,6 +300,18 @@ define Device/glinet_gl-b1300 endef TARGET_DEVICES += glinet_gl-b1300 +define Device/hiwifi_c526a + $(call Device/FitzImage) + $(call Device/UbiFit) + DEVICE_VENDOR := HiWiFi + DEVICE_MODEL := C526A + DEVICE_DTS := qcom-ipq4019-c526a + BLOCKSIZE := 128k + PAGESIZE := 2048 + DEVICE_PACKAGES := ipq-wifi-hiwifi_c526a kmod-mt7615e +endef +TARGET_DEVICES += hiwifi_c526a + define Device/hugo_ac1200 $(call Device/FitImage) DEVICE_VENDOR := Hugo diff --git a/target/linux/ipq40xx/patches-4.14/304-spi-nor-add-en25qh16.patch b/target/linux/ipq40xx/patches-4.14/304-spi-nor-add-en25qh16.patch new file mode 100644 index 0000000000..2b0ed83824 --- /dev/null +++ b/target/linux/ipq40xx/patches-4.14/304-spi-nor-add-en25qh16.patch @@ -0,0 +1,10 @@ +--- a/drivers/mtd/spi-nor/spi-nor.c ++++ b/drivers/mtd/spi-nor/spi-nor.c +@@ -955,6 +955,7 @@ static const struct flash_info spi_nor_i + { "en25p64", INFO(0x1c2017, 0, 64 * 1024, 128, 0) }, + { "en25q64", INFO(0x1c3017, 0, 64 * 1024, 128, SECT_4K) }, + { "en25q128", INFO(0x1c3018, 0, 64 * 1024, 256, SECT_4K) }, ++ { "en25qh16", INFO(0x1c7015, 0, 64 * 1024, 32, SECT_4K | SPI_NOR_DUAL_READ) }, + { "en25qh32", INFO(0x1c7016, 0, 64 * 1024, 64, 0) }, + { "en25qh64", INFO(0x1c7017, 0, 64 * 1024, 128, 0) }, + { "en25qh128", INFO(0x1c7018, 0, 64 * 1024, 256, 0) }, diff --git a/target/linux/ipq40xx/patches-4.14/400-sdhci-msm-fix-clock.patch b/target/linux/ipq40xx/patches-4.14/400-sdhci-msm-fix-clock.patch index e2b4bcfc03..9d0be069f1 100644 --- a/target/linux/ipq40xx/patches-4.14/400-sdhci-msm-fix-clock.patch +++ b/target/linux/ipq40xx/patches-4.14/400-sdhci-msm-fix-clock.patch @@ -1,6 +1,6 @@ --- a/drivers/mmc/host/sdhci-msm.c +++ b/drivers/mmc/host/sdhci-msm.c -@@ -1681,7 +1681,7 @@ MODULE_DEVICE_TABLE(of, sdhci_msm_dt_mat +@@ -1149,7 +1149,7 @@ MODULE_DEVICE_TABLE(of, sdhci_msm_dt_mat static const struct sdhci_ops sdhci_msm_ops = { .reset = sdhci_reset, diff --git a/target/linux/ipq40xx/patches-4.14/706-ar40xx-abort-probe-on-missig-phy.patch b/target/linux/ipq40xx/patches-4.14/706-ar40xx-abort-probe-on-missig-phy.patch index 19474bff0d..2a206f3091 100644 --- a/target/linux/ipq40xx/patches-4.14/706-ar40xx-abort-probe-on-missig-phy.patch +++ b/target/linux/ipq40xx/patches-4.14/706-ar40xx-abort-probe-on-missig-phy.patch @@ -1,6 +1,6 @@ --- a/drivers/net/phy/ar40xx.c +++ b/drivers/net/phy/ar40xx.c -@@ -2021,6 +2021,12 @@ static int ar40xx_probe(struct platform_ +@@ -2022,6 +2022,12 @@ static int ar40xx_probe(struct platform_ /* register switch */ swdev = &priv->dev; @@ -13,7 +13,7 @@ swdev->alias = dev_name(&priv->mii_bus->dev); swdev->cpu_port = AR40XX_PORT_CPU; -@@ -2052,6 +2058,7 @@ err_unregister_switch: +@@ -2053,6 +2059,7 @@ err_unregister_switch: unregister_switch(&priv->dev); err_unregister_phy: phy_driver_unregister(&ar40xx_phy_driver); diff --git a/target/linux/ipq40xx/patches-4.14/851-add-ipq40xx-vqmmc-regulator-driver-to-KConfig.patch b/target/linux/ipq40xx/patches-4.14/851-add-ipq40xx-vqmmc-regulator-driver-to-KConfig.patch index 3b8ac4944a..eb9943e088 100644 --- a/target/linux/ipq40xx/patches-4.14/851-add-ipq40xx-vqmmc-regulator-driver-to-KConfig.patch +++ b/target/linux/ipq40xx/patches-4.14/851-add-ipq40xx-vqmmc-regulator-driver-to-KConfig.patch @@ -1,6 +1,6 @@ --- a/drivers/regulator/Kconfig +++ b/drivers/regulator/Kconfig -@@ -334,6 +334,13 @@ config REGULATOR_HI655X +@@ -314,6 +314,13 @@ config REGULATOR_HI655X This driver provides support for the voltage regulators of the Hisilicon Hi655x PMIC device. @@ -16,7 +16,7 @@ depends on I2C --- a/drivers/regulator/Makefile +++ b/drivers/regulator/Makefile -@@ -43,6 +43,7 @@ obj-$(CONFIG_REGULATOR_GPIO) += gpio-reg +@@ -41,6 +41,7 @@ obj-$(CONFIG_REGULATOR_GPIO) += gpio-reg obj-$(CONFIG_REGULATOR_HI6421) += hi6421-regulator.o obj-$(CONFIG_REGULATOR_HI6421V530) += hi6421v530-regulator.o obj-$(CONFIG_REGULATOR_HI655X) += hi655x-regulator.o diff --git a/target/linux/ipq40xx/patches-4.14/853-add-sdhci-msm-node-to-dts.patch b/target/linux/ipq40xx/patches-4.14/853-add-sdhci-msm-node-to-dts.patch index 4450d48501..36085e0969 100644 --- a/target/linux/ipq40xx/patches-4.14/853-add-sdhci-msm-node-to-dts.patch +++ b/target/linux/ipq40xx/patches-4.14/853-add-sdhci-msm-node-to-dts.patch @@ -20,7 +20,7 @@ Signed-off-by: Robert Marko --- a/arch/arm/boot/dts/qcom-ipq4019.dtsi +++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi -@@ -226,6 +226,18 @@ +@@ -222,6 +222,18 @@ status = "disabled"; }; diff --git a/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch b/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch index 41b65d57a3..4776d7557f 100644 --- a/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch +++ b/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch @@ -10,7 +10,7 @@ Signed-off-by: John Crispin --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -697,7 +697,36 @@ dtb-$(CONFIG_ARCH_QCOM) += \ +@@ -697,7 +697,37 @@ dtb-$(CONFIG_ARCH_QCOM) += \ qcom-apq8074-dragonboard.dtb \ qcom-apq8084-ifc6540.dtb \ qcom-apq8084-mtp.dtb \ @@ -29,6 +29,7 @@ Signed-off-by: John Crispin qcom-ipq4019-ap.dk01.1-c1.dtb \ + qcom-ipq4019-a62.dtb \ + qcom-ipq4019-ap.dk04.1-c1.dtb \ ++ qcom-ipq4019-c526a.dtb \ + qcom-ipq4019-cm520-79f.dtb \ + qcom-ipq4019-hugo-ac1200.dtb \ + qcom-ipq4019-fritzbox-7530.dtb \ diff --git a/target/linux/ipq40xx/patches-4.14/995-4g-add-u9300-driver.patch b/target/linux/ipq40xx/patches-4.14/995-4g-add-u9300-driver.patch index 14127ff67e..5b81e89375 100644 --- a/target/linux/ipq40xx/patches-4.14/995-4g-add-u9300-driver.patch +++ b/target/linux/ipq40xx/patches-4.14/995-4g-add-u9300-driver.patch @@ -1,6 +1,6 @@ --- a/drivers/net/usb/qmi_wwan.c +++ b/drivers/net/usb/qmi_wwan.c -@@ -1292,6 +1292,7 @@ static const struct usb_device_id products[] = { +@@ -1290,6 +1290,7 @@ static const struct usb_device_id produc {QMI_FIXED_INTF(0x03f0, 0x9d1d, 1)}, /* HP lt4120 Snapdragon X5 LTE */ {QMI_FIXED_INTF(0x22de, 0x9061, 3)}, /* WeTelecom WPD-600N */ {QMI_QUIRK_SET_DTR(0x1e0e, 0x9001, 5)}, /* SIMCom 7100E, 7230E, 7600E ++ */ @@ -10,7 +10,7 @@ {QMI_FIXED_INTF(0x2c7c, 0x0296, 4)}, /* Quectel BG96 */ --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c -@@ -384,6 +384,7 @@ static void option_instat_callback(struct urb *urb); +@@ -384,6 +384,7 @@ static void option_instat_callback(struc * Mobidata, etc sell under their own brand names. */ #define LONGCHEER_VENDOR_ID 0x1c9e @@ -18,7 +18,7 @@ /* 4G Systems products */ /* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick * -@@ -574,6 +575,16 @@ static void option_instat_callback(struct urb *urb); +@@ -574,6 +575,16 @@ static void option_instat_callback(struc /* Device needs ZLP */ #define ZLP BIT(17) @@ -35,7 +35,7 @@ static const struct usb_device_id option_ids[] = { { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, -@@ -608,6 +619,8 @@ static const struct usb_device_id option_ids[] = { +@@ -608,6 +619,8 @@ static const struct usb_device_id option { USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) }, { USB_DEVICE(QUANTA_VENDOR_ID, 0xea42), .driver_info = RSVD(4) }, diff --git a/target/linux/ipq40xx/patches-4.19/305-spi-nor-add-en25qh16.patch b/target/linux/ipq40xx/patches-4.19/305-spi-nor-add-en25qh16.patch new file mode 100644 index 0000000000..8006ff3944 --- /dev/null +++ b/target/linux/ipq40xx/patches-4.19/305-spi-nor-add-en25qh16.patch @@ -0,0 +1,10 @@ +--- a/drivers/mtd/spi-nor/spi-nor.c ++++ b/drivers/mtd/spi-nor/spi-nor.c +@@ -995,6 +995,7 @@ static const struct flash_info spi_nor_i + { "en25p64", INFO(0x1c2017, 0, 64 * 1024, 128, 0) }, + { "en25q64", INFO(0x1c3017, 0, 64 * 1024, 128, SECT_4K) }, + { "en25q128", INFO(0x1c3018, 0, 64 * 1024, 256, SECT_4K) }, ++ { "en25qh16", INFO(0x1c7015, 0, 64 * 1024, 32, SECT_4K | SPI_NOR_DUAL_READ) }, + { "en25qh32", INFO(0x1c7016, 0, 64 * 1024, 64, 0) }, + { "en25qh64", INFO(0x1c7017, 0, 64 * 1024, 128, 0) }, + { "en25qh128", INFO(0x1c7018, 0, 64 * 1024, 256, 0) }, diff --git a/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch b/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch index 502ddc087f..371a44c352 100644 --- a/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch +++ b/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch @@ -10,7 +10,7 @@ Signed-off-by: John Crispin --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -785,11 +785,48 @@ dtb-$(CONFIG_ARCH_QCOM) += \ +@@ -785,11 +785,49 @@ dtb-$(CONFIG_ARCH_QCOM) += \ qcom-apq8074-dragonboard.dtb \ qcom-apq8084-ifc6540.dtb \ qcom-apq8084-mtp.dtb \ @@ -37,6 +37,7 @@ Signed-off-by: John Crispin qcom-ipq4019-ap.dk07.1-c1.dtb \ qcom-ipq4019-ap.dk07.1-c2.dtb \ + qcom-ipq4019-a62.dtb \ ++ qcom-ipq4019-c526a.dtb \ + qcom-ipq4019-cm520-79f.dtb \ + qcom-ipq4019-hugo-ac1200.dtb \ + qcom-ipq4019-fritzbox-7530.dtb \ diff --git a/target/linux/ipq806x/patches-4.14/0055-cpufreq-dt-Add-L2-frequency-scaling-support.patch b/target/linux/ipq806x/patches-4.14/0055-cpufreq-dt-Add-L2-frequency-scaling-support.patch index f3e79b2178..2bcd3553f4 100644 --- a/target/linux/ipq806x/patches-4.14/0055-cpufreq-dt-Add-L2-frequency-scaling-support.patch +++ b/target/linux/ipq806x/patches-4.14/0055-cpufreq-dt-Add-L2-frequency-scaling-support.patch @@ -55,7 +55,7 @@ Signed-off-by: Georgi Djakov mutex_unlock(&priv->lock); return ret; -@@ -197,6 +227,8 @@ static int cpufreq_init(struct cpufreq_p +@@ -197,6 +228,8 @@ static int cpufreq_init(struct cpufreq_p const char *name; int ret; struct srcu_notifier_head *opp_srcu_head; @@ -64,7 +64,7 @@ Signed-off-by: Georgi Djakov cpu_dev = get_cpu_device(policy->cpu); if (!cpu_dev) { -@@ -305,6 +337,13 @@ static int cpufreq_init(struct cpufreq_p +@@ -305,6 +338,13 @@ static int cpufreq_init(struct cpufreq_p policy->suspend_freq = dev_pm_opp_get_suspend_opp_freq(cpu_dev) / 1000; diff --git a/target/linux/ipq806x/patches-4.14/0056-cpufreq-dt-Add-missing-rcu-locks.patch b/target/linux/ipq806x/patches-4.14/0056-cpufreq-dt-Add-missing-rcu-locks.patch index d9d76e409b..a5ae5629f7 100644 --- a/target/linux/ipq806x/patches-4.14/0056-cpufreq-dt-Add-missing-rcu-locks.patch +++ b/target/linux/ipq806x/patches-4.14/0056-cpufreq-dt-Add-missing-rcu-locks.patch @@ -10,7 +10,7 @@ Signed-off-by: Georgi Djakov --- a/drivers/cpufreq/cpufreq-dt.c +++ b/drivers/cpufreq/cpufreq-dt.c -@@ -144,8 +144,10 @@ static int opp_notifier(struct notifier_ +@@ -145,8 +145,10 @@ static int opp_notifier(struct notifier_ ret = PTR_ERR(cpu_reg); goto out; } diff --git a/target/linux/ipq806x/patches-4.14/851-ata-add-sata-driver.patch b/target/linux/ipq806x/patches-4.14/851-ata-add-sata-driver.patch index 998e99c721..951fe4f74e 100644 --- a/target/linux/ipq806x/patches-4.14/851-ata-add-sata-driver.patch +++ b/target/linux/ipq806x/patches-4.14/851-ata-add-sata-driver.patch @@ -22,13 +22,13 @@ Signed-off-by: Gokul Sriram Palanisamy @@ -54,7 +54,7 @@ enum { - AHCI_MAX_PORTS = 32, + AHCI_MAX_PORTS = 32, - AHCI_MAX_CLKS = 5, + AHCI_MAX_CLKS = 6, - AHCI_MAX_SG = 168, /* hardware max is 64K */ - AHCI_DMA_BOUNDARY = 0xffffffff, - AHCI_MAX_CMDS = 32, ---- a/dev/null + AHCI_MAX_SG = 168, /* hardware max is 64K */ + AHCI_DMA_BOUNDARY = 0xffffffff, + AHCI_MAX_CMDS = 32, +--- /dev/null +++ b/drivers/ata/ahci_ipq.c @@ -0,0 +1,248 @@ +/* Copyright (c) 2015 - 2017, The Linux Foundation. All rights reserved. @@ -283,7 +283,7 @@ Signed-off-by: Gokul Sriram Palanisamy +++ b/drivers/ata/Kconfig @@ -162,6 +162,14 @@ config AHCI_IMX - If unsure, say N. + If unsure, say N. +config AHCI_IPQ + tristate "Qualcomm Atheros IPQ806X AHCI SATA support" @@ -294,11 +294,11 @@ Signed-off-by: Gokul Sriram Palanisamy + If unsure, say N. + config AHCI_CEVA - tristate "CEVA AHCI SATA support" - depends on OF + tristate "CEVA AHCI SATA support" + depends on OF --- a/drivers/ata/Makefile +++ b/drivers/ata/Makefile -@@ -18,6 +18,7 @@ +@@ -18,6 +18,7 @@ obj-$(CONFIG_AHCI_CEVA) += ahci_ceva.o obj-$(CONFIG_AHCI_DA850) += ahci_da850.o libahci.o libahci_platform.o obj-$(CONFIG_AHCI_DM816) += ahci_dm816.o libahci.o libahci_platform.o obj-$(CONFIG_AHCI_IMX) += ahci_imx.o libahci.o libahci_platform.o diff --git a/target/linux/ipq806x/patches-4.14/995-4g-add-u9300-driver.patch b/target/linux/ipq806x/patches-4.14/995-4g-add-u9300-driver.patch index 14127ff67e..5b81e89375 100644 --- a/target/linux/ipq806x/patches-4.14/995-4g-add-u9300-driver.patch +++ b/target/linux/ipq806x/patches-4.14/995-4g-add-u9300-driver.patch @@ -1,6 +1,6 @@ --- a/drivers/net/usb/qmi_wwan.c +++ b/drivers/net/usb/qmi_wwan.c -@@ -1292,6 +1292,7 @@ static const struct usb_device_id products[] = { +@@ -1290,6 +1290,7 @@ static const struct usb_device_id produc {QMI_FIXED_INTF(0x03f0, 0x9d1d, 1)}, /* HP lt4120 Snapdragon X5 LTE */ {QMI_FIXED_INTF(0x22de, 0x9061, 3)}, /* WeTelecom WPD-600N */ {QMI_QUIRK_SET_DTR(0x1e0e, 0x9001, 5)}, /* SIMCom 7100E, 7230E, 7600E ++ */ @@ -10,7 +10,7 @@ {QMI_FIXED_INTF(0x2c7c, 0x0296, 4)}, /* Quectel BG96 */ --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c -@@ -384,6 +384,7 @@ static void option_instat_callback(struct urb *urb); +@@ -384,6 +384,7 @@ static void option_instat_callback(struc * Mobidata, etc sell under their own brand names. */ #define LONGCHEER_VENDOR_ID 0x1c9e @@ -18,7 +18,7 @@ /* 4G Systems products */ /* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick * -@@ -574,6 +575,16 @@ static void option_instat_callback(struct urb *urb); +@@ -574,6 +575,16 @@ static void option_instat_callback(struc /* Device needs ZLP */ #define ZLP BIT(17) @@ -35,7 +35,7 @@ static const struct usb_device_id option_ids[] = { { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, -@@ -608,6 +619,8 @@ static const struct usb_device_id option_ids[] = { +@@ -608,6 +619,8 @@ static const struct usb_device_id option { USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) }, { USB_DEVICE(QUANTA_VENDOR_ID, 0xea42), .driver_info = RSVD(4) }, diff --git a/target/linux/layerscape/patches-4.14/202-core-linux-support-layerscape.patch b/target/linux/layerscape/patches-4.14/202-core-linux-support-layerscape.patch index 784b10dd50..0dc609eed3 100644 --- a/target/linux/layerscape/patches-4.14/202-core-linux-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/202-core-linux-support-layerscape.patch @@ -442,7 +442,7 @@ Signed-off-by: Yangbo Lu --- a/drivers/soc/imx/gpc.c +++ b/drivers/soc/imx/gpc.c -@@ -209,7 +209,7 @@ static int imx_pgc_power_domain_probe(st +@@ -210,7 +210,7 @@ static int imx_pgc_power_domain_probe(st goto genpd_err; } @@ -539,7 +539,7 @@ Signed-off-by: Yangbo Lu --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h -@@ -2349,7 +2349,8 @@ int register_netdevice_notifier(struct n +@@ -2354,7 +2354,8 @@ int register_netdevice_notifier(struct n int unregister_netdevice_notifier(struct notifier_block *nb); struct netdev_notifier_info { @@ -549,7 +549,7 @@ Signed-off-by: Yangbo Lu }; struct netdev_notifier_info_ext { -@@ -2381,6 +2382,7 @@ static inline void netdev_notifier_info_ +@@ -2386,6 +2387,7 @@ static inline void netdev_notifier_info_ struct net_device *dev) { info->dev = dev; @@ -557,7 +557,7 @@ Signed-off-by: Yangbo Lu } static inline struct net_device * -@@ -2389,6 +2391,12 @@ netdev_notifier_info_to_dev(const struct +@@ -2394,6 +2396,12 @@ netdev_notifier_info_to_dev(const struct return info->dev; } @@ -572,15 +572,15 @@ Signed-off-by: Yangbo Lu --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -964,6 +964,7 @@ void kfree_skb_list(struct sk_buff *segs +@@ -977,6 +977,7 @@ void kfree_skb_list(struct sk_buff *segs void skb_tx_error(struct sk_buff *skb); void consume_skb(struct sk_buff *skb); void __consume_stateless_skb(struct sk_buff *skb); +void skb_recycle(struct sk_buff *skb); void __kfree_skb(struct sk_buff *skb); - extern struct kmem_cache *skbuff_head_cache; -@@ -3315,6 +3316,7 @@ static inline void skb_free_datagram_loc + #if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) +@@ -3334,6 +3335,7 @@ static inline void skb_free_datagram_loc } int skb_kill_datagram(struct sock *sk, struct sk_buff *skb, unsigned int flags); int skb_copy_bits(const struct sk_buff *skb, int offset, void *to, int len); @@ -642,7 +642,7 @@ Signed-off-by: Yangbo Lu --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -162,7 +162,6 @@ static struct list_head offload_base __r +@@ -165,7 +165,6 @@ static struct list_head offload_base __r static int netif_rx_internal(struct sk_buff *skb); static int call_netdevice_notifiers_info(unsigned long val, @@ -650,7 +650,7 @@ Signed-off-by: Yangbo Lu struct netdev_notifier_info *info); static struct napi_struct *napi_by_id(unsigned int napi_id); -@@ -1312,10 +1311,11 @@ EXPORT_SYMBOL(netdev_features_change); +@@ -1315,10 +1314,11 @@ EXPORT_SYMBOL(netdev_features_change); void netdev_state_change(struct net_device *dev) { if (dev->flags & IFF_UP) { @@ -665,7 +665,7 @@ Signed-off-by: Yangbo Lu &change_info.info); rtmsg_ifinfo(RTM_NEWLINK, dev, 0, GFP_KERNEL); } -@@ -1536,9 +1536,10 @@ EXPORT_SYMBOL(dev_disable_lro); +@@ -1539,9 +1539,10 @@ EXPORT_SYMBOL(dev_disable_lro); static int call_netdevice_notifier(struct notifier_block *nb, unsigned long val, struct net_device *dev) { @@ -678,7 +678,7 @@ Signed-off-by: Yangbo Lu return nb->notifier_call(nb, val, &info); } -@@ -1663,11 +1664,9 @@ EXPORT_SYMBOL(unregister_netdevice_notif +@@ -1666,11 +1667,9 @@ EXPORT_SYMBOL(unregister_netdevice_notif */ static int call_netdevice_notifiers_info(unsigned long val, @@ -690,7 +690,7 @@ Signed-off-by: Yangbo Lu return raw_notifier_call_chain(&netdev_chain, val, info); } -@@ -1682,9 +1681,11 @@ static int call_netdevice_notifiers_info +@@ -1685,9 +1684,11 @@ static int call_netdevice_notifiers_info int call_netdevice_notifiers(unsigned long val, struct net_device *dev) { @@ -704,7 +704,7 @@ Signed-off-by: Yangbo Lu } EXPORT_SYMBOL(call_netdevice_notifiers); -@@ -1707,7 +1708,7 @@ static int call_netdevice_notifiers_mtu( +@@ -1710,7 +1711,7 @@ static int call_netdevice_notifiers_mtu( BUILD_BUG_ON(offsetof(struct netdev_notifier_info_ext, info) != 0); @@ -713,7 +713,7 @@ Signed-off-by: Yangbo Lu } #ifdef CONFIG_NET_INGRESS -@@ -6341,7 +6342,15 @@ static int __netdev_upper_dev_link(struc +@@ -6352,7 +6353,15 @@ static int __netdev_upper_dev_link(struc struct net_device *upper_dev, bool master, void *upper_priv, void *upper_info) { @@ -730,7 +730,7 @@ Signed-off-by: Yangbo Lu int ret = 0; ASSERT_RTNL(); -@@ -6359,12 +6368,7 @@ static int __netdev_upper_dev_link(struc +@@ -6370,12 +6379,7 @@ static int __netdev_upper_dev_link(struc if (master && netdev_master_upper_dev_get(dev)) return -EBUSY; @@ -744,7 +744,7 @@ Signed-off-by: Yangbo Lu &changeupper_info.info); ret = notifier_to_errno(ret); if (ret) -@@ -6376,7 +6380,7 @@ static int __netdev_upper_dev_link(struc +@@ -6387,7 +6391,7 @@ static int __netdev_upper_dev_link(struc return ret; netdev_update_addr_mask(dev); @@ -753,7 +753,7 @@ Signed-off-by: Yangbo Lu &changeupper_info.info); ret = notifier_to_errno(ret); if (ret) -@@ -6440,21 +6444,25 @@ EXPORT_SYMBOL(netdev_master_upper_dev_li +@@ -6451,21 +6455,25 @@ EXPORT_SYMBOL(netdev_master_upper_dev_li void netdev_upper_dev_unlink(struct net_device *dev, struct net_device *upper_dev) { @@ -784,7 +784,7 @@ Signed-off-by: Yangbo Lu &changeupper_info.info); } EXPORT_SYMBOL(netdev_upper_dev_unlink); -@@ -6470,11 +6478,13 @@ EXPORT_SYMBOL(netdev_upper_dev_unlink); +@@ -6481,11 +6489,13 @@ EXPORT_SYMBOL(netdev_upper_dev_unlink); void netdev_bonding_info_change(struct net_device *dev, struct netdev_bonding_info *bonding_info) { @@ -800,7 +800,7 @@ Signed-off-by: Yangbo Lu &info.info); } EXPORT_SYMBOL(netdev_bonding_info_change); -@@ -6600,11 +6610,13 @@ EXPORT_SYMBOL(dev_get_nest_level); +@@ -6611,11 +6621,13 @@ EXPORT_SYMBOL(dev_get_nest_level); void netdev_lower_state_changed(struct net_device *lower_dev, void *lower_state_info) { @@ -816,7 +816,7 @@ Signed-off-by: Yangbo Lu &changelowerstate_info.info); } EXPORT_SYMBOL(netdev_lower_state_changed); -@@ -6895,11 +6907,14 @@ void __dev_notify_flags(struct net_devic +@@ -6906,11 +6918,14 @@ void __dev_notify_flags(struct net_devic if (dev->flags & IFF_UP && (changes & ~(IFF_UP | IFF_PROMISC | IFF_ALLMULTI | IFF_VOLATILE))) { @@ -837,7 +837,7 @@ Signed-off-by: Yangbo Lu --- a/net/core/skbuff.c +++ b/net/core/skbuff.c -@@ -803,6 +803,32 @@ void napi_consume_skb(struct sk_buff *sk +@@ -906,6 +906,32 @@ void napi_consume_skb(struct sk_buff *sk } EXPORT_SYMBOL(napi_consume_skb); @@ -870,7 +870,7 @@ Signed-off-by: Yangbo Lu /* Make sure a field is enclosed inside headers_start/headers_end section */ #define CHECK_SKB_FIELD(field) \ BUILD_BUG_ON(offsetof(struct sk_buff, field) < \ -@@ -1322,7 +1348,7 @@ static void skb_headers_offset_update(st +@@ -1429,7 +1455,7 @@ static void skb_headers_offset_update(st skb->inner_mac_header += off; } @@ -879,7 +879,7 @@ Signed-off-by: Yangbo Lu { __copy_skb_header(new, old); -@@ -1330,6 +1356,7 @@ static void copy_skb_header(struct sk_bu +@@ -1437,6 +1463,7 @@ static void copy_skb_header(struct sk_bu skb_shinfo(new)->gso_segs = skb_shinfo(old)->gso_segs; skb_shinfo(new)->gso_type = skb_shinfo(old)->gso_type; } diff --git a/target/linux/layerscape/patches-4.14/302-dts-support-layerscape.patch b/target/linux/layerscape/patches-4.14/302-dts-support-layerscape.patch index 871a8068cb..919bb30cfc 100644 --- a/target/linux/layerscape/patches-4.14/302-dts-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/302-dts-support-layerscape.patch @@ -607,9 +607,9 @@ Signed-off-by: Zhao Qiang +}; + &enet0 { - tbi-handle = <&tbi1>; + tbi-handle = <&tbi0>; phy-handle = <&sgmii_phy2>; -@@ -228,6 +243,10 @@ +@@ -235,6 +250,10 @@ }; }; @@ -620,7 +620,7 @@ Signed-off-by: Zhao Qiang &sai1 { status = "okay"; }; -@@ -243,3 +262,11 @@ +@@ -250,3 +269,11 @@ &uart1 { status = "okay"; }; @@ -740,7 +740,7 @@ Signed-off-by: Zhao Qiang dcu: dcu@2ce0000 { compatible = "fsl,ls1021a-dcu"; reg = <0x0 0x2ce0000 0x0 0x10000>; -@@ -684,6 +734,11 @@ +@@ -693,6 +743,11 @@ dr_mode = "host"; snps,quirk-frame-length-adjustment = <0x20>; snps,dis_rxdet_inp3_quirk; @@ -752,7 +752,7 @@ Signed-off-by: Zhao Qiang }; pcie@3400000 { -@@ -691,7 +746,9 @@ +@@ -700,7 +755,9 @@ reg = <0x00 0x03400000 0x0 0x00010000 /* controller registers */ 0x40 0x00000000 0x0 0x00002000>; /* configuration space */ reg-names = "regs", "config"; @@ -763,7 +763,7 @@ Signed-off-by: Zhao Qiang fsl,pcie-scfg = <&scfg 0>; #address-cells = <3>; #size-cells = <2>; -@@ -707,6 +764,7 @@ +@@ -716,6 +773,7 @@ <0000 0 0 2 &gic GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>, <0000 0 0 3 &gic GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>, <0000 0 0 4 &gic GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>; @@ -771,7 +771,7 @@ Signed-off-by: Zhao Qiang }; pcie@3500000 { -@@ -714,7 +772,9 @@ +@@ -723,7 +781,9 @@ reg = <0x00 0x03500000 0x0 0x00010000 /* controller registers */ 0x48 0x00000000 0x0 0x00002000>; /* configuration space */ reg-names = "regs", "config"; @@ -782,7 +782,7 @@ Signed-off-by: Zhao Qiang fsl,pcie-scfg = <&scfg 1>; #address-cells = <3>; #size-cells = <2>; -@@ -730,6 +790,47 @@ +@@ -739,6 +799,47 @@ <0000 0 0 2 &gic GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>, <0000 0 0 3 &gic GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>, <0000 0 0 4 &gic GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>; diff --git a/target/linux/layerscape/patches-4.14/707-dpaa-ethernet-support-layerscape.patch b/target/linux/layerscape/patches-4.14/707-dpaa-ethernet-support-layerscape.patch index 3e512cb357..887a19e0e1 100644 --- a/target/linux/layerscape/patches-4.14/707-dpaa-ethernet-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/707-dpaa-ethernet-support-layerscape.patch @@ -156538,7 +156538,7 @@ Signed-off-by: Zhao Qiang +#endif /* __NET_IOCTLS_H */ --- a/net/sched/sch_generic.c +++ b/net/sched/sch_generic.c -@@ -313,6 +313,13 @@ static void dev_watchdog(unsigned long a +@@ -321,6 +321,13 @@ static void dev_watchdog(unsigned long a txq->trans_timeout++; break; } diff --git a/target/linux/layerscape/patches-4.14/807-usb-support-layerscape.patch b/target/linux/layerscape/patches-4.14/807-usb-support-layerscape.patch index 47481cfa99..d0bee3b450 100644 --- a/target/linux/layerscape/patches-4.14/807-usb-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/807-usb-support-layerscape.patch @@ -323,7 +323,7 @@ Signed-off-by: Zhao Chenhui usb_phy_set_suspend(dwc->usb2_phy, 0); usb_phy_set_suspend(dwc->usb3_phy, 0); ret = phy_power_on(dwc->usb2_generic_phy); -@@ -870,6 +1006,22 @@ static int dwc3_core_init(struct dwc3 *d +@@ -873,6 +1009,22 @@ static int dwc3_core_init(struct dwc3 *d dwc3_writel(dwc->regs, DWC3_GUCTL1, reg); } @@ -346,7 +346,7 @@ Signed-off-by: Zhao Chenhui return 0; err4: -@@ -1076,6 +1228,8 @@ static void dwc3_get_properties(struct d +@@ -1079,6 +1231,8 @@ static void dwc3_get_properties(struct d &hird_threshold); dwc->usb3_lpm_capable = device_property_read_bool(dev, "snps,usb3_lpm_capable"); @@ -355,9 +355,9 @@ Signed-off-by: Zhao Chenhui dwc->disable_scramble_quirk = device_property_read_bool(dev, "snps,disable_scramble_quirk"); -@@ -1108,8 +1262,16 @@ static void dwc3_get_properties(struct d - dwc->dis_tx_ipgap_linecheck_quirk = device_property_read_bool(dev, - "snps,dis-tx-ipgap-linecheck-quirk"); +@@ -1113,8 +1267,16 @@ static void dwc3_get_properties(struct d + dwc->parkmode_disable_ss_quirk = device_property_read_bool(dev, + "snps,parkmode-disable-ss-quirk"); + dwc->quirk_reverse_in_out = device_property_read_bool(dev, + "snps,quirk_reverse_in_out"); @@ -372,7 +372,7 @@ Signed-off-by: Zhao Chenhui device_property_read_u8(dev, "snps,tx_de_emphasis", &tx_de_emphasis); device_property_read_string(dev, "snps,hsphy_interface", -@@ -1120,6 +1282,9 @@ static void dwc3_get_properties(struct d +@@ -1125,6 +1287,9 @@ static void dwc3_get_properties(struct d dwc->dis_metastability_quirk = device_property_read_bool(dev, "snps,dis_metastability_quirk"); @@ -382,7 +382,7 @@ Signed-off-by: Zhao Chenhui dwc->lpm_nyet_threshold = lpm_nyet_threshold; dwc->tx_de_emphasis = tx_de_emphasis; -@@ -1371,12 +1536,14 @@ static int dwc3_resume_common(struct dwc +@@ -1376,12 +1541,14 @@ static int dwc3_resume_common(struct dwc switch (dwc->dr_mode) { case USB_DR_MODE_PERIPHERAL: @@ -440,9 +440,9 @@ Signed-off-by: Zhao Chenhui +#define DWC3_GUCTL_HSTINAUTORETRY BIT(14) + /* Global User Control 1 Register */ + #define DWC3_GUCTL1_PARKMODE_DISABLE_SS BIT(17) #define DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS BIT(28) - #define DWC3_GUCTL1_DEV_L1_EXIT_BY_HW BIT(24) -@@ -477,6 +506,14 @@ +@@ -478,6 +507,14 @@ #define DWC3_DEV_IMOD_INTERVAL_SHIFT 0 #define DWC3_DEV_IMOD_INTERVAL_MASK (0xffff << 0) @@ -457,7 +457,7 @@ Signed-off-by: Zhao Chenhui /* Structures */ struct dwc3_trb; -@@ -788,6 +825,7 @@ struct dwc3_scratchpad_array { +@@ -789,6 +826,7 @@ struct dwc3_scratchpad_array { * @regs: base address for our registers * @regs_size: address space size * @fladj: frame length adjustment @@ -465,7 +465,7 @@ Signed-off-by: Zhao Chenhui * @irq_gadget: peripheral controller's IRQ number * @nr_scratch: number of scratch buffers * @u1u2: only used on revisions <1.83a for workaround -@@ -843,6 +881,7 @@ struct dwc3_scratchpad_array { +@@ -844,6 +882,7 @@ struct dwc3_scratchpad_array { * @setup_packet_pending: true when there's a Setup Packet in FIFO. Workaround * @three_stage_setup: set if we perform a three phase setup * @usb3_lpm_capable: set if hadrware supports Link Power Management @@ -473,7 +473,7 @@ Signed-off-by: Zhao Chenhui * @disable_scramble_quirk: set if we enable the disable scramble quirk * @u2exit_lfps_quirk: set if we enable u2exit lfps quirk * @u2ss_inp3_quirk: set if we enable P3 OK for U2/SS Inactive quirk -@@ -922,6 +961,12 @@ struct dwc3 { +@@ -925,6 +964,12 @@ struct dwc3 { enum usb_phy_interface hsphy_mode; u32 fladj; @@ -486,7 +486,7 @@ Signed-off-by: Zhao Chenhui u32 irq_gadget; u32 nr_scratch; u32 u1u2; -@@ -1006,6 +1051,7 @@ struct dwc3 { +@@ -1009,6 +1054,7 @@ struct dwc3 { unsigned setup_packet_pending:1; unsigned three_stage_setup:1; unsigned usb3_lpm_capable:1; @@ -494,7 +494,7 @@ Signed-off-by: Zhao Chenhui unsigned disable_scramble_quirk:1; unsigned u2exit_lfps_quirk:1; -@@ -1025,6 +1071,11 @@ struct dwc3 { +@@ -1029,6 +1075,11 @@ struct dwc3 { unsigned tx_de_emphasis_quirk:1; unsigned tx_de_emphasis:2; @@ -528,7 +528,7 @@ Signed-off-by: Zhao Chenhui reg &= ~DWC3_DCTL_INITU2ENA; --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c -@@ -3220,6 +3220,7 @@ int dwc3_gadget_init(struct dwc3 *dwc) +@@ -3216,6 +3216,7 @@ int dwc3_gadget_init(struct dwc3 *dwc) { int ret; int irq; @@ -536,7 +536,7 @@ Signed-off-by: Zhao Chenhui irq = dwc3_gadget_get_irq(dwc); if (irq < 0) { -@@ -3298,6 +3299,12 @@ int dwc3_gadget_init(struct dwc3 *dwc) +@@ -3294,6 +3295,12 @@ int dwc3_gadget_init(struct dwc3 *dwc) dwc3_gadget_set_speed(&dwc->gadget, dwc->maximum_speed); diff --git a/target/linux/layerscape/patches-4.14/816-pcie-support-layerscape.patch b/target/linux/layerscape/patches-4.14/816-pcie-support-layerscape.patch index 6077f979cf..4362863b7b 100644 --- a/target/linux/layerscape/patches-4.14/816-pcie-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/816-pcie-support-layerscape.patch @@ -5715,7 +5715,7 @@ Signed-off-by: Yangbo Lu int (*start)(struct pci_epc *epc); void (*stop)(struct pci_epc *epc); struct module *owner; -@@ -91,8 +97,17 @@ struct pci_epc { +@@ -94,8 +100,17 @@ struct pci_epc { struct config_group *group; /* spinlock to protect against concurrent access of EP controller */ spinlock_t lock; @@ -5733,7 +5733,7 @@ Signed-off-by: Yangbo Lu #define to_pci_epc(device) container_of((device), struct pci_epc, dev) #define pci_epc_create(dev, ops) \ -@@ -124,17 +139,23 @@ void pci_epc_destroy(struct pci_epc *epc +@@ -127,17 +142,23 @@ void pci_epc_destroy(struct pci_epc *epc int pci_epc_add_epf(struct pci_epc *epc, struct pci_epf *epf); void pci_epc_linkup(struct pci_epc *epc); void pci_epc_remove_epf(struct pci_epc *epc, struct pci_epf *epf); diff --git a/target/linux/layerscape/patches-4.14/819-sdhc-support-layerscape.patch b/target/linux/layerscape/patches-4.14/819-sdhc-support-layerscape.patch index 60d0c889e5..02688c74cd 100644 --- a/target/linux/layerscape/patches-4.14/819-sdhc-support-layerscape.patch +++ b/target/linux/layerscape/patches-4.14/819-sdhc-support-layerscape.patch @@ -265,7 +265,7 @@ Signed-off-by: Yinbo Zhu u32 val; sdhci_reset(host, mask); -@@ -622,6 +713,12 @@ static void esdhc_reset(struct sdhci_hos +@@ -619,6 +710,12 @@ static void esdhc_reset(struct sdhci_hos val = sdhci_readl(host, ESDHC_TBCTL); val &= ~ESDHC_TB_EN; sdhci_writel(host, val, ESDHC_TBCTL); @@ -278,7 +278,7 @@ Signed-off-by: Yinbo Zhu } } -@@ -633,6 +730,7 @@ static void esdhc_reset(struct sdhci_hos +@@ -630,6 +727,7 @@ static void esdhc_reset(struct sdhci_hos static const struct of_device_id scfg_device_ids[] = { { .compatible = "fsl,t1040-scfg", }, { .compatible = "fsl,ls1012a-scfg", }, @@ -286,7 +286,7 @@ Signed-off-by: Yinbo Zhu { .compatible = "fsl,ls1046a-scfg", }, {} }; -@@ -695,23 +793,91 @@ static int esdhc_signal_voltage_switch(s +@@ -692,23 +790,91 @@ static int esdhc_signal_voltage_switch(s } } @@ -383,7 +383,7 @@ Signed-off-by: Yinbo Zhu } #ifdef CONFIG_PM_SLEEP -@@ -760,7 +926,7 @@ static const struct sdhci_ops sdhci_esdh +@@ -757,7 +923,7 @@ static const struct sdhci_ops sdhci_esdh .adma_workaround = esdhc_of_adma_workaround, .set_bus_width = esdhc_pltfm_set_bus_width, .reset = esdhc_reset, @@ -392,7 +392,7 @@ Signed-off-by: Yinbo Zhu }; static const struct sdhci_ops sdhci_esdhc_le_ops = { -@@ -777,7 +943,7 @@ static const struct sdhci_ops sdhci_esdh +@@ -774,7 +940,7 @@ static const struct sdhci_ops sdhci_esdh .adma_workaround = esdhc_of_adma_workaround, .set_bus_width = esdhc_pltfm_set_bus_width, .reset = esdhc_reset, @@ -401,7 +401,7 @@ Signed-off-by: Yinbo Zhu }; static const struct sdhci_pltfm_data sdhci_esdhc_be_pdata = { -@@ -803,8 +969,20 @@ static struct soc_device_attribute soc_i +@@ -800,8 +966,20 @@ static struct soc_device_attribute soc_i { }, }; @@ -422,7 +422,7 @@ Signed-off-by: Yinbo Zhu struct sdhci_pltfm_host *pltfm_host; struct sdhci_esdhc *esdhc; struct device_node *np; -@@ -824,6 +1002,24 @@ static void esdhc_init(struct platform_d +@@ -821,6 +999,24 @@ static void esdhc_init(struct platform_d else esdhc->quirk_incorrect_hostver = false; @@ -447,7 +447,7 @@ Signed-off-by: Yinbo Zhu np = pdev->dev.of_node; clk = of_clk_get(np, 0); if (!IS_ERR(clk)) { -@@ -851,6 +1047,12 @@ static void esdhc_init(struct platform_d +@@ -848,6 +1044,12 @@ static void esdhc_init(struct platform_d } } @@ -460,7 +460,7 @@ Signed-off-by: Yinbo Zhu static int sdhci_esdhc_probe(struct platform_device *pdev) { struct sdhci_host *host; -@@ -874,6 +1076,7 @@ static int sdhci_esdhc_probe(struct plat +@@ -871,6 +1073,7 @@ static int sdhci_esdhc_probe(struct plat host->mmc_host_ops.start_signal_voltage_switch = esdhc_signal_voltage_switch; host->mmc_host_ops.execute_tuning = esdhc_execute_tuning; @@ -468,7 +468,7 @@ Signed-off-by: Yinbo Zhu host->tuning_delay = 1; esdhc_init(pdev, host); -@@ -882,6 +1085,11 @@ static int sdhci_esdhc_probe(struct plat +@@ -879,6 +1082,11 @@ static int sdhci_esdhc_probe(struct plat pltfm_host = sdhci_priv(host); esdhc = sdhci_pltfm_priv(pltfm_host); @@ -480,7 +480,7 @@ Signed-off-by: Yinbo Zhu if (esdhc->vendor_ver == VENDOR_V_22) host->quirks2 |= SDHCI_QUIRK2_HOST_NO_CMD23; -@@ -928,14 +1136,6 @@ static int sdhci_esdhc_probe(struct plat +@@ -925,14 +1133,6 @@ static int sdhci_esdhc_probe(struct plat return ret; } @@ -497,7 +497,7 @@ Signed-off-by: Yinbo Zhu .name = "sdhci-esdhc", --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c -@@ -2150,7 +2150,7 @@ static void sdhci_send_tuning(struct sdh +@@ -2148,7 +2148,7 @@ static void sdhci_send_tuning(struct sdh } @@ -506,9 +506,9 @@ Signed-off-by: Yinbo Zhu { int i; -@@ -2167,13 +2167,13 @@ static void __sdhci_execute_tuning(struc - pr_info("%s: Tuning timeout, falling back to fixed sampling clock\n", - mmc_hostname(host->mmc)); +@@ -2165,13 +2165,13 @@ static void __sdhci_execute_tuning(struc + pr_debug("%s: Tuning timeout, falling back to fixed sampling clock\n", + mmc_hostname(host->mmc)); sdhci_abort_tuning(host, opcode); - return; + return -ETIMEDOUT; @@ -522,7 +522,7 @@ Signed-off-by: Yinbo Zhu break; } -@@ -2185,6 +2185,7 @@ static void __sdhci_execute_tuning(struc +@@ -2183,6 +2183,7 @@ static void __sdhci_execute_tuning(struc pr_info("%s: Tuning failed, falling back to fixed sampling clock\n", mmc_hostname(host->mmc)); sdhci_reset_tuning(host); @@ -530,7 +530,7 @@ Signed-off-by: Yinbo Zhu } int sdhci_execute_tuning(struct mmc_host *mmc, u32 opcode) -@@ -2246,7 +2247,7 @@ int sdhci_execute_tuning(struct mmc_host +@@ -2244,7 +2245,7 @@ int sdhci_execute_tuning(struct mmc_host sdhci_start_tuning(host); diff --git a/target/linux/mediatek/patches-4.14/0052-net-phy-add-FC.patch b/target/linux/mediatek/patches-4.14/0052-net-phy-add-FC.patch index bb49ee75e8..46427a1d03 100644 --- a/target/linux/mediatek/patches-4.14/0052-net-phy-add-FC.patch +++ b/target/linux/mediatek/patches-4.14/0052-net-phy-add-FC.patch @@ -10,7 +10,7 @@ Signed-off-by: John Crispin --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -1944,7 +1944,7 @@ static struct phy_driver genphy_driver = +@@ -1948,7 +1948,7 @@ static struct phy_driver genphy_driver = .config_init = genphy_config_init, .features = PHY_GBIT_FEATURES | SUPPORTED_MII | SUPPORTED_AUI | SUPPORTED_FIBRE | diff --git a/target/linux/mediatek/patches-4.14/0138-rtc-mediatek-add-driver-for-RTC-on-MT7622-SoC.patch b/target/linux/mediatek/patches-4.14/0138-rtc-mediatek-add-driver-for-RTC-on-MT7622-SoC.patch index 8cf900d143..374d4d3997 100644 --- a/target/linux/mediatek/patches-4.14/0138-rtc-mediatek-add-driver-for-RTC-on-MT7622-SoC.patch +++ b/target/linux/mediatek/patches-4.14/0138-rtc-mediatek-add-driver-for-RTC-on-MT7622-SoC.patch @@ -17,7 +17,7 @@ Signed-off-by: Alexandre Belloni --- a/drivers/rtc/Kconfig +++ b/drivers/rtc/Kconfig -@@ -1715,6 +1715,16 @@ config RTC_DRV_MT6397 +@@ -1716,6 +1716,16 @@ config RTC_DRV_MT6397 If you want to use Mediatek(R) RTC interface, select Y or M here. diff --git a/target/linux/mediatek/patches-4.14/0139-rtc-mediatek-enhance-the-description-for-MediaTek-PM.patch b/target/linux/mediatek/patches-4.14/0139-rtc-mediatek-enhance-the-description-for-MediaTek-PM.patch index 0513a085ac..f8840f930d 100644 --- a/target/linux/mediatek/patches-4.14/0139-rtc-mediatek-enhance-the-description-for-MediaTek-PM.patch +++ b/target/linux/mediatek/patches-4.14/0139-rtc-mediatek-enhance-the-description-for-MediaTek-PM.patch @@ -18,7 +18,7 @@ Signed-off-by: Alexandre Belloni --- a/drivers/rtc/Kconfig +++ b/drivers/rtc/Kconfig -@@ -1706,14 +1706,14 @@ config RTC_DRV_MOXART +@@ -1707,14 +1707,14 @@ config RTC_DRV_MOXART will be called rtc-moxart config RTC_DRV_MT6397 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 0f79fa4fd1..df099ea3f3 100644 --- a/target/linux/mediatek/patches-4.14/0191-usb-xhci-allow-imod-interval-to-be-configurable.patch +++ b/target/linux/mediatek/patches-4.14/0191-usb-xhci-allow-imod-interval-to-be-configurable.patch @@ -86,7 +86,7 @@ Signed-off-by: Greg Kroah-Hartman if (!xhci->shared_hcd) { --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -279,6 +279,9 @@ static int xhci_pci_setup(struct usb_hcd +@@ -280,6 +280,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/300-mvneta-tx-queue-workaround.patch b/target/linux/mvebu/patches-4.14/300-mvneta-tx-queue-workaround.patch index f21f8083ee..6c21fa30be 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 --- --- 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 +@@ -3960,6 +3960,15 @@ static int mvneta_ethtool_set_wol(struct return ret; } @@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau 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 +@@ -3970,6 +3979,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 34a2d342db..8cefb1db26 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 @@ -251,7 +251,7 @@ Signed-off-by: Russell King } /* Release Tx descriptors */ -@@ -3061,7 +3020,6 @@ static int mvneta_setup_txqs(struct mvne +@@ -3060,7 +3019,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 mvneta_max_rx_size_set(pp, pp->pkt_size); mvneta_txq_max_tx_size_set(pp, pp->pkt_size); -@@ -3089,16 +3047,15 @@ static void mvneta_start_dev(struct mvne +@@ -3088,16 +3046,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 if (!pp->neta_armada3700) { for_each_online_cpu(cpu) { -@@ -3251,103 +3208,232 @@ static int mvneta_set_mac_addr(struct ne +@@ -3250,103 +3207,232 @@ static int mvneta_set_mac_addr(struct ne return 0; } @@ -585,7 +585,7 @@ Signed-off-by: Russell King } /* 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 +@@ -3625,10 +3711,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 } /* Ethtool methods */ -@@ -3640,44 +3725,25 @@ mvneta_ethtool_set_link_ksettings(struct +@@ -3639,44 +3724,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 } /* Set interrupt coalescing for ethtools */ -@@ -3769,6 +3835,22 @@ static int mvneta_ethtool_set_ringparam( +@@ -3768,6 +3834,22 @@ static int mvneta_ethtool_set_ringparam( return 0; } @@ -680,7 +680,7 @@ Signed-off-by: Russell King static void mvneta_ethtool_get_strings(struct net_device *netdev, u32 sset, u8 *data) { -@@ -3785,26 +3867,35 @@ static void mvneta_ethtool_update_stats( +@@ -3784,26 +3866,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 } } -@@ -3939,28 +4030,65 @@ static int mvneta_ethtool_get_rxfh(struc +@@ -3938,28 +4029,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 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 +@@ -3983,13 +4111,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 .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 +@@ -3997,10 +4127,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 }; /* Initialize hw */ -@@ -4146,14 +4278,13 @@ static int mvneta_probe(struct platform_ +@@ -4145,14 +4277,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 int tx_csum_limit; int phy_mode; int err; -@@ -4169,31 +4300,11 @@ static int mvneta_probe(struct platform_ +@@ -4168,31 +4299,11 @@ static int mvneta_probe(struct platform_ goto err_free_netdev; } @@ -875,7 +875,7 @@ Signed-off-by: Russell King } dev->tx_queue_len = MVNETA_MAX_TXD; -@@ -4204,12 +4315,7 @@ static int mvneta_probe(struct platform_ +@@ -4203,12 +4314,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 pp->rxq_def = rxq_def; -@@ -4231,7 +4337,7 @@ static int mvneta_probe(struct platform_ +@@ -4230,7 +4336,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 } clk_prepare_enable(pp->clk); -@@ -4357,6 +4463,14 @@ static int mvneta_probe(struct platform_ +@@ -4356,6 +4462,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 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_ +@@ -4367,14 +4481,6 @@ static int mvneta_probe(struct platform_ platform_set_drvdata(pdev, pp->dev); @@ -928,7 +928,7 @@ Signed-off-by: Russell King return 0; err_netdev: -@@ -4384,16 +4490,14 @@ err_netdev: +@@ -4383,16 +4489,14 @@ err_netdev: mvneta_bm_pool_destroy(pp->bm_priv, pp->pool_short, 1 << pp->id); } @@ -947,7 +947,7 @@ Signed-off-by: Russell King err_free_irq: irq_dispose_mapping(dev->irq); err_free_netdev: -@@ -4405,7 +4509,6 @@ err_free_netdev: +@@ -4404,7 +4508,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 struct mvneta_port *pp = netdev_priv(dev); unregister_netdev(dev); -@@ -4413,10 +4516,8 @@ static int mvneta_remove(struct platform +@@ -4412,10 +4515,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 free_netdev(dev); if (pp->bm_priv) { -@@ -4468,9 +4569,6 @@ static int mvneta_resume(struct device * +@@ -4467,9 +4568,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 906c163ac9..584e6381b4 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 struct device_node *dn; unsigned int tx_csum_limit; struct phylink *phylink; -@@ -4315,6 +4316,7 @@ static int mvneta_probe(struct platform_ +@@ -4314,6 +4315,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 7d02b0a93b..0889aff969 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 @@ -24,7 +24,7 @@ Signed-off-by: Russell King mvneta_link_change(pp); } -@@ -3045,8 +3044,7 @@ static void mvneta_start_dev(struct mvne +@@ -3044,8 +3043,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 phylink_start(pp->phylink); netif_tx_start_all_queues(pp->dev); -@@ -3542,8 +3540,7 @@ static int mvneta_cpu_online(unsigned in +@@ -3541,8 +3539,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 netif_tx_start_all_queues(pp->dev); spin_unlock(&pp->lock); return 0; -@@ -3584,8 +3581,7 @@ static int mvneta_cpu_dead(unsigned int +@@ -3583,8 +3580,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 39eb33ac2c..7b0323b1a7 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 --- 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 +@@ -4044,6 +4044,22 @@ static int mvneta_ethtool_set_wol(struct return ret; } @@ -33,7 +33,7 @@ Signed-off-by: Russell King 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 +@@ -4128,6 +4144,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 19f8f1e632..f6e8f71743 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 --- 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 +@@ -4044,22 +4044,6 @@ static int mvneta_ethtool_set_wol(struct return ret; } @@ -38,7 +38,7 @@ Signed-off-by: Russell King 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 +@@ -4144,8 +4128,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, @@ -129,7 +129,7 @@ Signed-off-by: Russell King /* 802.11 specific */ struct wireless_dev; /* 802.15.4 specific */ -@@ -1940,6 +1941,7 @@ struct net_device { +@@ -1945,6 +1946,7 @@ struct net_device { struct netprio_map __rcu *priomap; #endif struct phy_device *phydev; diff --git a/target/linux/mxs/patches-4.14/110-crypto-mxsdcp-provide-importexport.patch b/target/linux/mxs/patches-4.14/110-crypto-mxsdcp-provide-importexport.patch index 3be3e1a111..49e96d1e95 100644 --- a/target/linux/mxs/patches-4.14/110-crypto-mxsdcp-provide-importexport.patch +++ b/target/linux/mxs/patches-4.14/110-crypto-mxsdcp-provide-importexport.patch @@ -1,6 +1,6 @@ --- a/drivers/crypto/mxs-dcp.c +++ b/drivers/crypto/mxs-dcp.c -@@ -777,6 +777,24 @@ static void dcp_sha_cra_exit(struct cryp +@@ -831,6 +831,24 @@ static void dcp_sha_cra_exit(struct cryp { } @@ -25,7 +25,7 @@ /* AES 128 ECB and AES 128 CBC */ static struct crypto_alg dcp_aes_algs[] = { { -@@ -836,8 +854,11 @@ static struct ahash_alg dcp_sha1_alg = { +@@ -890,8 +908,11 @@ static struct ahash_alg dcp_sha1_alg = { .final = dcp_sha_final, .finup = dcp_sha_finup, .digest = dcp_sha_digest, @@ -37,7 +37,7 @@ .base = { .cra_name = "sha1", .cra_driver_name = "sha1-dcp", -@@ -860,8 +881,11 @@ static struct ahash_alg dcp_sha256_alg = +@@ -914,8 +935,11 @@ static struct ahash_alg dcp_sha256_alg = .final = dcp_sha_final, .finup = dcp_sha_finup, .digest = dcp_sha_digest, diff --git a/target/linux/oxnas/patches-4.14/001-irqchip-versatile-fpga-Handle-chained-IRQs-properly.patch b/target/linux/oxnas/patches-4.14/001-irqchip-versatile-fpga-Handle-chained-IRQs-properly.patch deleted file mode 100644 index f4285aadd0..0000000000 --- a/target/linux/oxnas/patches-4.14/001-irqchip-versatile-fpga-Handle-chained-IRQs-properly.patch +++ /dev/null @@ -1,77 +0,0 @@ -From patchwork Thu Mar 19 02:34:48 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Sungbo Eo -X-Patchwork-Id: 11446405 -From: Sungbo Eo -To: Linus Walleij , - Thomas Gleixner , Jason Cooper , - Marc Zyngier , linux-arm-kernel@lists.infradead.org, - linux-kernel@vger.kernel.org, linux-oxnas@groups.io -Subject: [PATCH v2] irqchip/versatile-fpga: Handle chained IRQs properly -Date: Thu, 19 Mar 2020 11:34:48 +0900 -Message-Id: <20200319023448.1479701-1-mans0n@gorani.run> -In-Reply-To: <002b72cab9896fa5ac76a52e0cb503ff@kernel.org> -References: <002b72cab9896fa5ac76a52e0cb503ff@kernel.org> -MIME-Version: 1.0 -List-Id: -Cc: Sungbo Eo , Neil Armstrong -Sender: "linux-arm-kernel" - -Enclose the chained handler with chained_irq_{enter,exit}(), so that the -muxed interrupts get properly acked. - -This patch also fixes a reboot bug on OX820 SoC, where the jiffies timer -interrupt is never acked. The kernel waits a clock tick forever in -calibrate_delay_converge(), which leads to a boot hang. - -Fixes: c41b16f8c9d9 ("ARM: integrator/versatile: consolidate FPGA IRQ handling code") -Signed-off-by: Sungbo Eo -Cc: Neil Armstrong ---- -v2: moved readl below chained_irq_enter() - added Fixes tag - - drivers/irqchip/irq-versatile-fpga.c | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - ---- a/drivers/irqchip/irq-versatile-fpga.c -+++ b/drivers/irqchip/irq-versatile-fpga.c -@@ -6,6 +6,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -68,12 +69,16 @@ static void fpga_irq_unmask(struct irq_d - - static void fpga_irq_handle(struct irq_desc *desc) - { -+ struct irq_chip *chip = irq_desc_get_chip(desc); - struct fpga_irq_data *f = irq_desc_get_handler_data(desc); -- u32 status = readl(f->base + IRQ_STATUS); -+ u32 status; - -+ chained_irq_enter(chip, desc); -+ -+ status = readl(f->base + IRQ_STATUS); - if (status == 0) { - do_bad_IRQ(desc); -- return; -+ goto out; - } - - do { -@@ -82,6 +87,9 @@ static void fpga_irq_handle(struct irq_d - status &= ~(1 << irq); - generic_handle_irq(irq_find_mapping(f->domain, irq)); - } while (status); -+ -+out: -+ chained_irq_exit(chip, desc); - } - - /* diff --git a/target/linux/oxnas/patches-4.14/002-irqchip-versatile-fpga-Apply-clear-mask-earlier.patch b/target/linux/oxnas/patches-4.14/002-irqchip-versatile-fpga-Apply-clear-mask-earlier.patch deleted file mode 100644 index eef2c4624f..0000000000 --- a/target/linux/oxnas/patches-4.14/002-irqchip-versatile-fpga-Apply-clear-mask-earlier.patch +++ /dev/null @@ -1,58 +0,0 @@ -From patchwork Sat Mar 21 13:38:42 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Sungbo Eo -X-Patchwork-Id: 11451163 -From: Sungbo Eo -To: linux-oxnas@groups.io, Linus Walleij , - Thomas Gleixner , Jason Cooper , - Marc Zyngier , linux-arm-kernel@lists.infradead.org, - linux-kernel@vger.kernel.org -Subject: [PATCH] irqchip/versatile-fpga: Apply clear-mask earlier -Date: Sat, 21 Mar 2020 22:38:42 +0900 -Message-Id: <20200321133842.2408823-1-mans0n@gorani.run> -MIME-Version: 1.0 -Sender: "linux-arm-kernel" - -Clear its own IRQs before the parent IRQ get enabled, so that the -remaining IRQs do not accidentally interrupt the parent IRQ controller. - -This patch also fixes a reboot bug on OX820 SoC, where the remaining -rps-timer IRQ raises a GIC interrupt that is left pending. After that, -the rps-timer IRQ is cleared during driver initialization, and there's -no IRQ left in rps-irq when local_irq_enable() is called, which evokes -an error message "unexpected IRQ trap". - -Fixes: bdd272cbb97a ("irqchip: versatile FPGA: support cascaded interrupts from DT") -Signed-off-by: Sungbo Eo -Cc: Neil Armstrong -Cc: Daniel Golle ---- - drivers/irqchip/irq-versatile-fpga.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/drivers/irqchip/irq-versatile-fpga.c b/drivers/irqchip/irq-versatile-fpga.c -index 70e2cfff8175..f1386733d3bc 100644 ---- a/drivers/irqchip/irq-versatile-fpga.c -+++ b/drivers/irqchip/irq-versatile-fpga.c -@@ -212,6 +212,9 @@ int __init fpga_irq_of_init(struct device_node *node, - if (of_property_read_u32(node, "valid-mask", &valid_mask)) - valid_mask = 0; - -+ writel(clear_mask, base + IRQ_ENABLE_CLEAR); -+ writel(clear_mask, base + FIQ_ENABLE_CLEAR); -+ - /* Some chips are cascaded from a parent IRQ */ - parent_irq = irq_of_parse_and_map(node, 0); - if (!parent_irq) { -@@ -221,9 +224,6 @@ int __init fpga_irq_of_init(struct device_node *node, - - fpga_irq_init(base, node->name, 0, parent_irq, valid_mask, node); - -- writel(clear_mask, base + IRQ_ENABLE_CLEAR); -- writel(clear_mask, base + FIQ_ENABLE_CLEAR); -- - /* - * On Versatile AB/PB, some secondary interrupts have a direct - * pass-thru to the primary controller for IRQs 20 and 22-31 which need diff --git a/target/linux/oxnas/patches-4.14/003-ARM-dts-oxnas-Fix-clear-mask-property.patch b/target/linux/oxnas/patches-4.14/003-ARM-dts-oxnas-Fix-clear-mask-property.patch deleted file mode 100644 index cac125e7b3..0000000000 --- a/target/linux/oxnas/patches-4.14/003-ARM-dts-oxnas-Fix-clear-mask-property.patch +++ /dev/null @@ -1,55 +0,0 @@ -From patchwork Sat Mar 21 14:36:53 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Sungbo Eo -X-Patchwork-Id: 11451187 -From: Sungbo Eo -To: Neil Armstrong , - Rob Herring , - Mark Rutland , linux-arm-kernel@lists.infradead.org, - linux-oxnas@groups.io, devicetree@vger.kernel.org, - linux-kernel@vger.kernel.org -Subject: [PATCH] ARM: dts: oxnas: Fix clear-mask property -Date: Sat, 21 Mar 2020 23:36:53 +0900 -Message-Id: <20200321143653.2412823-1-mans0n@gorani.run> -Sender: "linux-arm-kernel" - -Disable all rps-irq interrupts during driver initialization to prevent -an accidental interrupt on GIC. - -Fixes: 84316f4ef141 ("ARM: boot: dts: Add Oxford Semiconductor OX810SE dtsi") -Fixes: 38d4a53733f5 ("ARM: dts: Add support for OX820 and Pogoplug V3") -Signed-off-by: Sungbo Eo -Acked-by: Neil Armstrong ---- - arch/arm/boot/dts/ox810se.dtsi | 4 ++-- - arch/arm/boot/dts/ox820.dtsi | 4 ++-- - 2 files changed, 4 insertions(+), 4 deletions(-) - ---- a/arch/arm/boot/dts/ox810se.dtsi -+++ b/arch/arm/boot/dts/ox810se.dtsi -@@ -323,8 +323,8 @@ - interrupt-controller; - reg = <0 0x200>; - #interrupt-cells = <1>; -- valid-mask = <0xFFFFFFFF>; -- clear-mask = <0>; -+ valid-mask = <0xffffffff>; -+ clear-mask = <0xffffffff>; - }; - - timer0: timer@200 { ---- a/arch/arm/boot/dts/ox820.dtsi -+++ b/arch/arm/boot/dts/ox820.dtsi -@@ -240,8 +240,8 @@ - reg = <0 0x200>; - interrupts = ; - #interrupt-cells = <1>; -- valid-mask = <0xFFFFFFFF>; -- clear-mask = <0>; -+ valid-mask = <0xffffffff>; -+ clear-mask = <0xffffffff>; - }; - - timer0: timer@200 { diff --git a/target/linux/ramips/patches-4.14/0034-NET-multi-phy-support.patch b/target/linux/ramips/patches-4.14/0034-NET-multi-phy-support.patch index 98ea5f557c..e6583f9791 100644 --- a/target/linux/ramips/patches-4.14/0034-NET-multi-phy-support.patch +++ b/target/linux/ramips/patches-4.14/0034-NET-multi-phy-support.patch @@ -11,7 +11,7 @@ Signed-off-by: John Crispin --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c -@@ -913,7 +913,10 @@ void phy_state_machine(struct work_struc +@@ -980,7 +980,10 @@ void phy_state_machine(struct work_struc /* If the link is down, give up on negotiation for now */ if (!phydev->link) { phydev->state = PHY_NOLINK; @@ -23,7 +23,7 @@ Signed-off-by: John Crispin break; } -@@ -1000,7 +1003,10 @@ void phy_state_machine(struct work_struc +@@ -1067,7 +1070,10 @@ void phy_state_machine(struct work_struc phy_link_up(phydev); } else { phydev->state = PHY_NOLINK; @@ -35,7 +35,7 @@ Signed-off-by: John Crispin } if (phy_interrupt_is_valid(phydev)) -@@ -1010,7 +1016,10 @@ void phy_state_machine(struct work_struc +@@ -1077,7 +1083,10 @@ void phy_state_machine(struct work_struc case PHY_HALTED: if (phydev->link) { phydev->link = 0; diff --git a/target/linux/ramips/patches-4.14/0037-mtd-cfi-cmdset-0002-force-word-write.patch b/target/linux/ramips/patches-4.14/0037-mtd-cfi-cmdset-0002-force-word-write.patch index 478af4cbc9..39717bbad4 100644 --- a/target/linux/ramips/patches-4.14/0037-mtd-cfi-cmdset-0002-force-word-write.patch +++ b/target/linux/ramips/patches-4.14/0037-mtd-cfi-cmdset-0002-force-word-write.patch @@ -52,7 +52,7 @@ Subject: [PATCH 37/53] mtd: cfi cmdset 0002 force word write static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip, unsigned long adr, const u_char *buf, int len) -@@ -1926,7 +1931,6 @@ static int __xipram do_write_buffer(stru +@@ -1930,7 +1935,6 @@ static int __xipram do_write_buffer(stru return ret; } @@ -60,7 +60,7 @@ Subject: [PATCH 37/53] mtd: cfi cmdset 0002 force word write static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len, size_t *retlen, const u_char *buf) { -@@ -2001,6 +2005,7 @@ static int cfi_amdstd_write_buffers(stru +@@ -2005,6 +2009,7 @@ static int cfi_amdstd_write_buffers(stru return 0; }