diff options
author | Hauke Mehrtens <hauke@hauke-m.de> | 2016-01-12 20:52:19 +0000 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2016-01-12 20:52:19 +0000 |
commit | cdb83aaf5fe8de98b909d6655d6c7b9d8d2aadb2 (patch) | |
tree | aeb91c1e1c35fc3c481922ebb7234903b6c855e8 | |
parent | 93b50ade934436d00e5f68c3feabf030ace8d98d (diff) | |
download | upstream-cdb83aaf5fe8de98b909d6655d6c7b9d8d2aadb2.tar.gz upstream-cdb83aaf5fe8de98b909d6655d6c7b9d8d2aadb2.tar.bz2 upstream-cdb83aaf5fe8de98b909d6655d6c7b9d8d2aadb2.zip |
kernel/4.3: update to version 4.3.3
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de
SVN-Revision: 48224
39 files changed, 211 insertions, 536 deletions
diff --git a/include/kernel-version.mk b/include/kernel-version.mk index f212c7ad69..79492ebd8a 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -4,12 +4,12 @@ LINUX_RELEASE?=1 LINUX_VERSION-3.18 = .23 LINUX_VERSION-4.1 = .15 -LINUX_VERSION-4.3 = +LINUX_VERSION-4.3 = .3 LINUX_VERSION-4.4 = LINUX_KERNEL_MD5SUM-3.18.23 = dc6d265ab38716be3676ac294b481ad8 LINUX_KERNEL_MD5SUM-4.1.15 = b227333912b161c96ff3e30f5041e1c0 -LINUX_KERNEL_MD5SUM-4.3 = 58b35794eee3b6d52ce7be39357801e7 +LINUX_KERNEL_MD5SUM-4.3.3 = f3068333fa524ff98914cf751d0b5710 LINUX_KERNEL_MD5SUM-4.4 = 9a78fa2eb6c68ca5a40ed5af08142599 ifdef KERNEL_PATCHVER diff --git a/target/linux/arc770/patches-4.3/0001-openwrt-arc-remove-dependency-on-DEVTMPFS.patch b/target/linux/arc770/patches-4.3/0001-openwrt-arc-remove-dependency-on-DEVTMPFS.patch index 53f80749bd..135bfb6e2a 100644 --- a/target/linux/arc770/patches-4.3/0001-openwrt-arc-remove-dependency-on-DEVTMPFS.patch +++ b/target/linux/arc770/patches-4.3/0001-openwrt-arc-remove-dependency-on-DEVTMPFS.patch @@ -18,11 +18,9 @@ Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> arch/arc/Kconfig | 2 -- 1 file changed, 2 deletions(-) -diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig -index cf96ef2..f0c6d4c 100644 --- a/arch/arc/Kconfig +++ b/arch/arc/Kconfig -@@ -11,8 +11,6 @@ config ARC +@@ -12,8 +12,6 @@ config ARC select BUILDTIME_EXTABLE_SORT select COMMON_CLK select CLONE_BACKWARDS @@ -31,6 +29,3 @@ index cf96ef2..f0c6d4c 100644 select GENERIC_ATOMIC64 select GENERIC_CLOCKEVENTS select GENERIC_FIND_FIRST_BIT --- -2.4.3 - diff --git a/target/linux/arc770/patches-4.3/0002-openwrt-arc-add-OWRTDTB-section.patch b/target/linux/arc770/patches-4.3/0002-openwrt-arc-add-OWRTDTB-section.patch index ddb426f15b..a0392cb2f5 100644 --- a/target/linux/arc770/patches-4.3/0002-openwrt-arc-add-OWRTDTB-section.patch +++ b/target/linux/arc770/patches-4.3/0002-openwrt-arc-add-OWRTDTB-section.patch @@ -19,8 +19,6 @@ Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> arch/arc/kernel/vmlinux.lds.S | 13 +++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) -diff --git a/arch/arc/kernel/head.S b/arch/arc/kernel/head.S -index 689dd86..51154ae 100644 --- a/arch/arc/kernel/head.S +++ b/arch/arc/kernel/head.S @@ -49,6 +49,16 @@ @@ -38,13 +36,11 @@ index 689dd86..51154ae 100644 +END(__image_dtb) + .section .init.text, "ax",@progbits - - ;---------------------------------------------------------------- -diff --git a/arch/arc/kernel/setup.c b/arch/arc/kernel/setup.c -index c33e77c..96fbfd0 100644 + .type stext, @function + .globl stext --- a/arch/arc/kernel/setup.c +++ b/arch/arc/kernel/setup.c -@@ -370,6 +370,8 @@ static inline int is_kernel(unsigned long addr) +@@ -374,6 +374,8 @@ static inline int is_kernel(unsigned lon return 0; } @@ -53,7 +49,7 @@ index c33e77c..96fbfd0 100644 void __init setup_arch(char **cmdline_p) { #ifdef CONFIG_ARC_UBOOT_SUPPORT -@@ -383,7 +385,7 @@ void __init setup_arch(char **cmdline_p) +@@ -387,7 +389,7 @@ void __init setup_arch(char **cmdline_p) #endif { /* No, so try the embedded one */ @@ -62,8 +58,6 @@ index c33e77c..96fbfd0 100644 if (!machine_desc) panic("Embedded DT invalid\n"); -diff --git a/arch/arc/kernel/vmlinux.lds.S b/arch/arc/kernel/vmlinux.lds.S -index dd35bde..f309104 100644 --- a/arch/arc/kernel/vmlinux.lds.S +++ b/arch/arc/kernel/vmlinux.lds.S @@ -30,6 +30,19 @@ SECTIONS @@ -86,6 +80,3 @@ index dd35bde..f309104 100644 _int_vec_base_lds = .; .vector : { *(.vector) --- -2.4.3 - diff --git a/target/linux/bcm53xx/patches-4.3/043-clk-iproc-Fix-PLL-output-frequency-calculation.patch b/target/linux/bcm53xx/patches-4.3/043-clk-iproc-Fix-PLL-output-frequency-calculation.patch deleted file mode 100644 index 20dd90e31c..0000000000 --- a/target/linux/bcm53xx/patches-4.3/043-clk-iproc-Fix-PLL-output-frequency-calculation.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 63243a4da7d0dfa19dcacd0a529782eeb2f86f92 Mon Sep 17 00:00:00 2001 -From: Simran Rai <ssimran@broadcom.com> -Date: Mon, 19 Oct 2015 15:27:19 -0700 -Subject: [PATCH] clk: iproc: Fix PLL output frequency calculation - -This patch affects the clocks that use fractional ndivider in their -PLL output frequency calculation. Instead of 2^20 divide factor, the -clock's ndiv integer shift was used. Fixed the bug by replacing ndiv -integer shift with 2^20 factor. - -Signed-off-by: Simran Rai <ssimran@broadcom.com> -Signed-off-by: Ray Jui <rjui@broadcom.com> -Reviewed-by: Scott Branden <sbranden@broadcom.com> -Fixes: 5fe225c105fd ("clk: iproc: add initial common clock support") -Cc: <stable@vger.kernel.org> # v4.1+ -Signed-off-by: Michael Turquette <mturquette@baylibre.com> ---- - drivers/clk/bcm/clk-iproc-pll.c | 13 +++++-------- - 1 file changed, 5 insertions(+), 8 deletions(-) - ---- a/drivers/clk/bcm/clk-iproc-pll.c -+++ b/drivers/clk/bcm/clk-iproc-pll.c -@@ -345,8 +345,8 @@ static unsigned long iproc_pll_recalc_ra - struct iproc_pll *pll = clk->pll; - const struct iproc_pll_ctrl *ctrl = pll->ctrl; - u32 val; -- u64 ndiv; -- unsigned int ndiv_int, ndiv_frac, pdiv; -+ u64 ndiv, ndiv_int, ndiv_frac; -+ unsigned int pdiv; - - if (parent_rate == 0) - return 0; -@@ -366,22 +366,19 @@ static unsigned long iproc_pll_recalc_ra - val = readl(pll->pll_base + ctrl->ndiv_int.offset); - ndiv_int = (val >> ctrl->ndiv_int.shift) & - bit_mask(ctrl->ndiv_int.width); -- ndiv = (u64)ndiv_int << ctrl->ndiv_int.shift; -+ ndiv = ndiv_int << 20; - - if (ctrl->flags & IPROC_CLK_PLL_HAS_NDIV_FRAC) { - val = readl(pll->pll_base + ctrl->ndiv_frac.offset); - ndiv_frac = (val >> ctrl->ndiv_frac.shift) & - bit_mask(ctrl->ndiv_frac.width); -- -- if (ndiv_frac != 0) -- ndiv = ((u64)ndiv_int << ctrl->ndiv_int.shift) | -- ndiv_frac; -+ ndiv += ndiv_frac; - } - - val = readl(pll->pll_base + ctrl->pdiv.offset); - pdiv = (val >> ctrl->pdiv.shift) & bit_mask(ctrl->pdiv.width); - -- clk->rate = (ndiv * parent_rate) >> ctrl->ndiv_int.shift; -+ clk->rate = (ndiv * parent_rate) >> 20; - - if (pdiv == 0) - clk->rate *= 2; diff --git a/target/linux/bcm53xx/patches-4.3/191-usb-xhci-add-Broadcom-specific-fake-doorbell.patch b/target/linux/bcm53xx/patches-4.3/191-usb-xhci-add-Broadcom-specific-fake-doorbell.patch index ae70f429e9..a0cc267422 100644 --- a/target/linux/bcm53xx/patches-4.3/191-usb-xhci-add-Broadcom-specific-fake-doorbell.patch +++ b/target/linux/bcm53xx/patches-4.3/191-usb-xhci-add-Broadcom-specific-fake-doorbell.patch @@ -74,7 +74,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> /* * Set the run bit and wait for the host to be running. */ -@@ -557,10 +590,25 @@ int xhci_init(struct usb_hcd *hcd) +@@ -567,10 +600,25 @@ int xhci_init(struct usb_hcd *hcd) static int xhci_run_finished(struct xhci_hcd *xhci) { @@ -103,7 +103,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> xhci->shared_hcd->state = HC_STATE_RUNNING; xhci->cmd_ring_state = CMD_RING_STATE_RUNNING; -@@ -570,6 +618,9 @@ static int xhci_run_finished(struct xhci +@@ -580,6 +628,9 @@ static int xhci_run_finished(struct xhci xhci_dbg_trace(xhci, trace_xhci_dbg_init, "Finished xhci_run for USB3 roothub"); return 0; diff --git a/target/linux/generic/patches-4.3/103-packet_allow_empty_payload.patch b/target/linux/generic/patches-4.3/103-packet_allow_empty_payload.patch index 3e38bdfee2..ce37d5b360 100644 --- a/target/linux/generic/patches-4.3/103-packet_allow_empty_payload.patch +++ b/target/linux/generic/patches-4.3/103-packet_allow_empty_payload.patch @@ -6,7 +6,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c -@@ -2323,7 +2323,7 @@ static void tpacket_destruct_skb(struct +@@ -2329,7 +2329,7 @@ static void tpacket_destruct_skb(struct static bool ll_header_truncated(const struct net_device *dev, int len) { /* net device doesn't like empty head */ diff --git a/target/linux/generic/patches-4.3/143-mtd-bcm47xxpart-limit-scanned-flash-area-on-BCM47XX-.patch b/target/linux/generic/patches-4.3/143-mtd-bcm47xxpart-limit-scanned-flash-area-on-BCM47XX-.patch index aa315143fe..761cff316d 100644 --- a/target/linux/generic/patches-4.3/143-mtd-bcm47xxpart-limit-scanned-flash-area-on-BCM47XX-.patch +++ b/target/linux/generic/patches-4.3/143-mtd-bcm47xxpart-limit-scanned-flash-area-on-BCM47XX-.patch @@ -20,7 +20,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com> --- a/drivers/mtd/bcm47xxpart.c +++ b/drivers/mtd/bcm47xxpart.c -@@ -118,8 +118,8 @@ static int bcm47xxpart_parse(struct mtd_info *master, +@@ -118,8 +118,8 @@ static int bcm47xxpart_parse(struct mtd_ /* Parse block by block looking for magics */ for (offset = 0; offset <= master->size - blocksize; offset += blocksize) { diff --git a/target/linux/generic/patches-4.3/144-mtd-bcm47xxpart-don-t-fail-because-of-bit-flips.patch b/target/linux/generic/patches-4.3/144-mtd-bcm47xxpart-don-t-fail-because-of-bit-flips.patch index f9e81f9395..9073f795e2 100644 --- a/target/linux/generic/patches-4.3/144-mtd-bcm47xxpart-don-t-fail-because-of-bit-flips.patch +++ b/target/linux/generic/patches-4.3/144-mtd-bcm47xxpart-don-t-fail-because-of-bit-flips.patch @@ -14,11 +14,9 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com> drivers/mtd/bcm47xxpart.c | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) -diff --git a/drivers/mtd/bcm47xxpart.c b/drivers/mtd/bcm47xxpart.c -index 4450e74..1ab3451 100644 --- a/drivers/mtd/bcm47xxpart.c +++ b/drivers/mtd/bcm47xxpart.c -@@ -66,11 +66,13 @@ static const char *bcm47xxpart_trx_data_part_name(struct mtd_info *master, +@@ -66,11 +66,13 @@ static const char *bcm47xxpart_trx_data_ { uint32_t buf; size_t bytes_read; @@ -36,7 +34,7 @@ index 4450e74..1ab3451 100644 goto out_default; } -@@ -95,6 +97,7 @@ static int bcm47xxpart_parse(struct mtd_info *master, +@@ -95,6 +97,7 @@ static int bcm47xxpart_parse(struct mtd_ int trx_part = -1; int last_trx_part = -1; int possible_nvram_sizes[] = { 0x8000, 0xF000, 0x10000, }; @@ -44,7 +42,7 @@ index 4450e74..1ab3451 100644 /* * Some really old flashes (like AT45DB*) had smaller erasesize-s, but -@@ -128,10 +131,11 @@ static int bcm47xxpart_parse(struct mtd_info *master, +@@ -128,10 +131,11 @@ static int bcm47xxpart_parse(struct mtd_ } /* Read beginning of the block */ @@ -60,7 +58,7 @@ index 4450e74..1ab3451 100644 continue; } -@@ -254,10 +258,11 @@ static int bcm47xxpart_parse(struct mtd_info *master, +@@ -254,10 +258,11 @@ static int bcm47xxpart_parse(struct mtd_ } /* Read middle of the block */ @@ -76,7 +74,7 @@ index 4450e74..1ab3451 100644 continue; } -@@ -277,10 +282,11 @@ static int bcm47xxpart_parse(struct mtd_info *master, +@@ -277,10 +282,11 @@ static int bcm47xxpart_parse(struct mtd_ } offset = master->size - possible_nvram_sizes[i]; @@ -92,6 +90,3 @@ index 4450e74..1ab3451 100644 continue; } --- -1.8.4.5 - diff --git a/target/linux/generic/patches-4.3/192-USB-qcserial-Add-support-for-Quectel-EC20-Mini-PCIe-.patch b/target/linux/generic/patches-4.3/192-USB-qcserial-Add-support-for-Quectel-EC20-Mini-PCIe-.patch deleted file mode 100644 index 1d0db6bdbd..0000000000 --- a/target/linux/generic/patches-4.3/192-USB-qcserial-Add-support-for-Quectel-EC20-Mini-PCIe-.patch +++ /dev/null @@ -1,114 +0,0 @@ -From 128524b9db3e4f4245226852bee771bd03db75be Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20=C5=A0tetiar?= <ynezz@true.cz> -Date: Tue, 3 Nov 2015 11:01:42 +0100 -Subject: [PATCH 1/2] USB: qcserial: Add support for Quectel EC20 Mini PCIe - module -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -It seems like this device has same vendor and product IDs as G2K -devices, but it has different number of interfaces(4 vs 5) and also -different interface layout which makes it currently unusable: - - usbcore: registered new interface driver qcserial - usbserial: USB Serial support registered for Qualcomm USB modem - usb 2-1.2: unknown number of interfaces: 5 - -lsusb output: - - Bus 002 Device 003: ID 05c6:9215 Qualcomm, Inc. Acer Gobi 2000 Wireless - Device Descriptor: - bLength 18 - bDescriptorType 1 - bcdUSB 2.00 - bDeviceClass 0 (Defined at Interface level) - bDeviceSubClass 0 - bDeviceProtocol 0 - bMaxPacketSize0 64 - idVendor 0x05c6 Qualcomm, Inc. - idProduct 0x9215 Acer Gobi 2000 Wireless Modem - bcdDevice 2.32 - iManufacturer 1 Quectel - iProduct 2 Quectel LTE Module - iSerial 0 - bNumConfigurations 1 - Configuration Descriptor: - bLength 9 - bDescriptorType 2 - wTotalLength 209 - bNumInterfaces 5 - bConfigurationValue 1 - iConfiguration 0 - bmAttributes 0xa0 - (Bus Powered) - Remote Wakeup - MaxPower 500mA - -Signed-off-by: Petr Štetiar <ynezz@true.cz> ---- - drivers/usb/serial/qcserial.c | 39 +++++++++++++++++++++++++++++++++++++++ - 1 file changed, 39 insertions(+) - ---- a/drivers/usb/serial/qcserial.c -+++ b/drivers/usb/serial/qcserial.c -@@ -22,6 +22,8 @@ - #define DRIVER_AUTHOR "Qualcomm Inc" - #define DRIVER_DESC "Qualcomm USB Serial driver" - -+#define QUECTEL_EC20_IDPRODUCT 0x9215 -+ - /* standard device layouts supported by this driver */ - enum qcserial_layouts { - QCSERIAL_G2K = 0, /* Gobi 2000 */ -@@ -167,6 +169,38 @@ static const struct usb_device_id id_tab - }; - MODULE_DEVICE_TABLE(usb, id_table); - -+static int handle_quectel_ec20(struct device *dev, int ifnum) -+{ -+ int altsetting = 0; -+ -+ /* -+ * Quectel EC20 Mini PCIe LTE module layout: -+ * 0: DM/DIAG (use libqcdm from ModemManager for communication) -+ * 1: NMEA -+ * 2: AT-capable modem port -+ * 3: Modem interface -+ * 4: NDIS -+ */ -+ switch (ifnum) { -+ case 0: -+ dev_dbg(dev, "Quectel EC20 DM/DIAG interface found\n"); -+ break; -+ case 1: -+ dev_dbg(dev, "Quectel EC20 NMEA GPS interface found\n"); -+ break; -+ case 2: -+ case 3: -+ dev_dbg(dev, "Quectel EC20 Modem port found\n"); -+ break; -+ case 4: -+ /* Don't claim the QMI/net interface */ -+ altsetting = -1; -+ break; -+ } -+ -+ return altsetting; -+} -+ - static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id) - { - struct usb_host_interface *intf = serial->interface->cur_altsetting; -@@ -235,6 +269,11 @@ static int qcprobe(struct usb_serial *se - altsetting = -1; - break; - case QCSERIAL_G2K: -+ if (nintf == 5 && id->idProduct == QUECTEL_EC20_IDPRODUCT) { -+ altsetting = handle_quectel_ec20(dev, ifnum); -+ goto done; -+ } -+ - /* - * Gobi 2K+ USB layout: - * 0: QMI/net diff --git a/target/linux/generic/patches-4.3/192-net-Fix-presrc-lookups.patch b/target/linux/generic/patches-4.3/192-net-Fix-presrc-lookups.patch deleted file mode 100644 index d47e80885c..0000000000 --- a/target/linux/generic/patches-4.3/192-net-Fix-presrc-lookups.patch +++ /dev/null @@ -1,58 +0,0 @@ -From patchwork Tue Nov 3 23:59:28 2015 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: net: Fix prefsrc lookups -From: David Ahern <dsa@cumulusnetworks.com> -X-Patchwork-Id: 539645 -Message-Id: <1446595168-27323-1-git-send-email-dsa@cumulusnetworks.com> -To: netdev@vger.kernel.org -Cc: vladi@aresgate.net, David Ahern <dsa@cumulusnetworks.com> -Date: Tue, 3 Nov 2015 15:59:28 -0800 - -A bug report (https://bugzilla.kernel.org/show_bug.cgi?id=107071) noted -that the follwoing ip command is failing with v4.3: - - $ ip route add 10.248.5.0/24 dev bond0.250 table vlan_250 src 10.248.5.154 - RTNETLINK answers: Invalid argument - -021dd3b8a142d changed the lookup of the given preferred source address to -use the table id passed in, but this assumes the local entries are in the -given table which is not necessarily true for non-VRF use cases. When -validating the preferred source fallback to the local table on failure. - -Fixes: 021dd3b8a142d ("net: Add routes to the table associated with the device") -Signed-off-by: David Ahern <dsa@cumulusnetworks.com> ---- -This is needed in v4.3. - - net/ipv4/fib_semantics.c | 13 ++++++++++--- - 1 file changed, 10 insertions(+), 3 deletions(-) - ---- a/net/ipv4/fib_semantics.c -+++ b/net/ipv4/fib_semantics.c -@@ -864,14 +864,21 @@ static bool fib_valid_prefsrc(struct fib - if (cfg->fc_type != RTN_LOCAL || !cfg->fc_dst || - fib_prefsrc != cfg->fc_dst) { - u32 tb_id = cfg->fc_table; -+ int rc; - - if (tb_id == RT_TABLE_MAIN) - tb_id = RT_TABLE_LOCAL; - -- if (inet_addr_type_table(cfg->fc_nlinfo.nl_net, -- fib_prefsrc, tb_id) != RTN_LOCAL) { -- return false; -+ rc = inet_addr_type_table(cfg->fc_nlinfo.nl_net, -+ fib_prefsrc, tb_id); -+ -+ if (rc != RTN_LOCAL && tb_id != RT_TABLE_LOCAL) { -+ rc = inet_addr_type_table(cfg->fc_nlinfo.nl_net, -+ fib_prefsrc, RT_TABLE_LOCAL); - } -+ -+ if (rc != RTN_LOCAL) -+ return false; - } - return true; - } diff --git a/target/linux/generic/patches-4.3/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch b/target/linux/generic/patches-4.3/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch index 1b1afd5d31..bdba30d415 100644 --- a/target/linux/generic/patches-4.3/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch +++ b/target/linux/generic/patches-4.3/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch @@ -48,7 +48,7 @@ Signed-off-by: Petr Štetiar <ynezz@true.cz> --- a/drivers/net/usb/qmi_wwan.c +++ b/drivers/net/usb/qmi_wwan.c -@@ -822,6 +822,7 @@ static const struct usb_device_id produc +@@ -823,6 +823,7 @@ static const struct usb_device_id produc {QMI_GOBI_DEVICE(0x05c6, 0x9245)}, /* Samsung Gobi 2000 Modem device (VL176) */ {QMI_GOBI_DEVICE(0x03f0, 0x251d)}, /* HP Gobi 2000 Modem device (VP412) */ {QMI_GOBI_DEVICE(0x05c6, 0x9215)}, /* Acer Gobi 2000 Modem device (VP413) */ @@ -56,7 +56,7 @@ Signed-off-by: Petr Štetiar <ynezz@true.cz> {QMI_GOBI_DEVICE(0x05c6, 0x9265)}, /* Asus Gobi 2000 Modem device (VR305) */ {QMI_GOBI_DEVICE(0x05c6, 0x9235)}, /* Top Global Gobi 2000 Modem device (VR306) */ {QMI_GOBI_DEVICE(0x05c6, 0x9275)}, /* iRex Technologies Gobi 2000 Modem device (VR307) */ -@@ -853,10 +854,24 @@ static const struct usb_device_id produc +@@ -854,10 +855,24 @@ static const struct usb_device_id produc }; MODULE_DEVICE_TABLE(usb, products); @@ -81,7 +81,7 @@ Signed-off-by: Petr Štetiar <ynezz@true.cz> /* Workaround to enable dynamic IDs. This disables usbnet * blacklisting functionality. Which, if required, can be -@@ -868,6 +883,12 @@ static int qmi_wwan_probe(struct usb_int +@@ -869,6 +884,12 @@ static int qmi_wwan_probe(struct usb_int id->driver_info = (unsigned long)&qmi_wwan_info; } diff --git a/target/linux/generic/patches-4.3/630-packet_socket_type.patch b/target/linux/generic/patches-4.3/630-packet_socket_type.patch index add00c7923..11c543636f 100644 --- a/target/linux/generic/patches-4.3/630-packet_socket_type.patch +++ b/target/linux/generic/patches-4.3/630-packet_socket_type.patch @@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> #define PACKET_FANOUT_LB 1 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c -@@ -1750,6 +1750,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1764,6 +1764,7 @@ static int packet_rcv_spkt(struct sk_buf { struct sock *sk; struct sockaddr_pkt *spkt; @@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> /* * When we registered the protocol we saved the socket in the data -@@ -1757,6 +1758,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1771,6 +1772,7 @@ static int packet_rcv_spkt(struct sk_buf */ sk = pt->af_packet_priv; @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> /* * Yank back the headers [hope the device set this -@@ -1769,7 +1771,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1783,7 +1785,7 @@ static int packet_rcv_spkt(struct sk_buf * so that this procedure is noop. */ @@ -51,7 +51,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> goto out; if (!net_eq(dev_net(dev), sock_net(sk))) -@@ -1976,12 +1978,12 @@ static int packet_rcv(struct sk_buff *sk +@@ -1982,12 +1984,12 @@ static int packet_rcv(struct sk_buff *sk int skb_len = skb->len; unsigned int snaplen, res; @@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -2101,12 +2103,12 @@ static int tpacket_rcv(struct sk_buff *s +@@ -2107,12 +2109,12 @@ static int tpacket_rcv(struct sk_buff *s BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32); BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48); @@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -3069,6 +3071,7 @@ static int packet_create(struct net *net +@@ -3089,6 +3091,7 @@ static int packet_create(struct net *net mutex_init(&po->pg_vec_lock); po->rollover = NULL; po->prot_hook.func = packet_rcv; @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> if (sock->type == SOCK_PACKET) po->prot_hook.func = packet_rcv_spkt; -@@ -3684,6 +3687,16 @@ packet_setsockopt(struct socket *sock, i +@@ -3704,6 +3707,16 @@ packet_setsockopt(struct socket *sock, i po->xmit = val ? packet_direct_xmit : dev_queue_xmit; return 0; } @@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> default: return -ENOPROTOOPT; } -@@ -3736,6 +3749,13 @@ static int packet_getsockopt(struct sock +@@ -3756,6 +3769,13 @@ static int packet_getsockopt(struct sock case PACKET_VNET_HDR: val = po->has_vnet_hdr; break; diff --git a/target/linux/generic/patches-4.3/662-use_fq_codel_by_default.patch b/target/linux/generic/patches-4.3/662-use_fq_codel_by_default.patch index fba373a3c0..4ba20be353 100644 --- a/target/linux/generic/patches-4.3/662-use_fq_codel_by_default.patch +++ b/target/linux/generic/patches-4.3/662-use_fq_codel_by_default.patch @@ -32,7 +32,7 @@ { --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h -@@ -341,6 +341,7 @@ extern struct Qdisc_ops noop_qdisc_ops; +@@ -344,6 +344,7 @@ extern struct Qdisc_ops noop_qdisc_ops; extern struct Qdisc_ops pfifo_fast_ops; extern struct Qdisc_ops mq_qdisc_ops; extern struct Qdisc_ops noqueue_qdisc_ops; diff --git a/target/linux/generic/patches-4.3/664-codel_fix_3_12.patch b/target/linux/generic/patches-4.3/664-codel_fix_3_12.patch index 838c9f6206..2682441b1c 100644 --- a/target/linux/generic/patches-4.3/664-codel_fix_3_12.patch +++ b/target/linux/generic/patches-4.3/664-codel_fix_3_12.patch @@ -1,6 +1,6 @@ --- a/net/sched/sch_api.c +++ b/net/sched/sch_api.c -@@ -1936,7 +1936,7 @@ static int __init pktsched_init(void) +@@ -1945,7 +1945,7 @@ static int __init pktsched_init(void) return err; } diff --git a/target/linux/generic/patches-4.3/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/patches-4.3/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch index 7ae6abf80d..e325e5d020 100644 --- a/target/linux/generic/patches-4.3/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch +++ b/target/linux/generic/patches-4.3/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch @@ -143,7 +143,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> static const struct rt6_info ip6_blk_hole_entry_template = { .dst = { .__refcnt = ATOMIC_INIT(1), -@@ -1886,6 +1903,11 @@ int ip6_route_info_create(struct fib6_co +@@ -1902,6 +1919,11 @@ int ip6_route_info_create(struct fib6_co rt->dst.output = ip6_pkt_prohibit_out; rt->dst.input = ip6_pkt_prohibit; break; @@ -155,7 +155,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> case RTN_THROW: case RTN_UNREACHABLE: default: -@@ -2488,6 +2510,17 @@ static int ip6_pkt_prohibit_out(struct s +@@ -2504,6 +2526,17 @@ static int ip6_pkt_prohibit_out(struct s return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES); } @@ -173,7 +173,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> /* * Allocate a dst for local (unicast / anycast) address. */ -@@ -2728,7 +2761,8 @@ static int rtm_to_fib6_config(struct sk_ +@@ -2744,7 +2777,8 @@ static int rtm_to_fib6_config(struct sk_ if (rtm->rtm_type == RTN_UNREACHABLE || rtm->rtm_type == RTN_BLACKHOLE || rtm->rtm_type == RTN_PROHIBIT || @@ -183,7 +183,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> cfg->fc_flags |= RTF_REJECT; if (rtm->rtm_type == RTN_LOCAL) -@@ -3084,6 +3118,9 @@ static int rt6_fill_node(struct net *net +@@ -3100,6 +3134,9 @@ static int rt6_fill_node(struct net *net case -EACCES: rtm->rtm_type = RTN_PROHIBIT; break; @@ -193,7 +193,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> case -EAGAIN: rtm->rtm_type = RTN_THROW; break; -@@ -3352,6 +3389,8 @@ static int ip6_route_dev_notify(struct n +@@ -3368,6 +3405,8 @@ static int ip6_route_dev_notify(struct n #ifdef CONFIG_IPV6_MULTIPLE_TABLES net->ipv6.ip6_prohibit_entry->dst.dev = dev; net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev); @@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); #endif -@@ -3568,6 +3607,17 @@ static int __net_init ip6_route_net_init +@@ -3584,6 +3623,17 @@ static int __net_init ip6_route_net_init net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops; dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst, ip6_template_metrics, true); @@ -220,7 +220,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> #endif net->ipv6.sysctl.flush_delay = 0; -@@ -3586,6 +3636,8 @@ out: +@@ -3602,6 +3652,8 @@ out: return ret; #ifdef CONFIG_IPV6_MULTIPLE_TABLES @@ -229,7 +229,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> out_ip6_prohibit_entry: kfree(net->ipv6.ip6_prohibit_entry); out_ip6_null_entry: -@@ -3603,6 +3655,7 @@ static void __net_exit ip6_route_net_exi +@@ -3619,6 +3671,7 @@ static void __net_exit ip6_route_net_exi #ifdef CONFIG_IPV6_MULTIPLE_TABLES kfree(net->ipv6.ip6_prohibit_entry); kfree(net->ipv6.ip6_blk_hole_entry); @@ -237,7 +237,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> #endif dst_entries_destroy(&net->ipv6.ip6_dst_ops); } -@@ -3700,6 +3753,9 @@ int __init ip6_route_init(void) +@@ -3716,6 +3769,9 @@ int __init ip6_route_init(void) init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev; init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); diff --git a/target/linux/imx6/patches-4.3/035-ARM-dts-imx-ventana-set-GW54xx-PMIC-swbst-regulator-.patch b/target/linux/imx6/patches-4.3/035-ARM-dts-imx-ventana-set-GW54xx-PMIC-swbst-regulator-.patch index a92e0f8960..db166ed6fa 100644 --- a/target/linux/imx6/patches-4.3/035-ARM-dts-imx-ventana-set-GW54xx-PMIC-swbst-regulator-.patch +++ b/target/linux/imx6/patches-4.3/035-ARM-dts-imx-ventana-set-GW54xx-PMIC-swbst-regulator-.patch @@ -13,10 +13,8 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com> arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | 2 ++ 1 file changed, 2 insertions(+) -Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi -=================================================================== ---- linux-4.3.orig/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi 2015-11-01 16:05:25.000000000 -0800 -+++ linux-4.3/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi 2015-12-18 10:43:37.000000000 -0800 +--- a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi @@ -260,6 +260,8 @@ swbst_reg: swbst { regulator-min-microvolt = <5000000>; diff --git a/target/linux/imx6/patches-4.3/036-ARM-dts-imx-ventana-fix-GW53xx-GW54xx-lvds-channel.patch b/target/linux/imx6/patches-4.3/036-ARM-dts-imx-ventana-fix-GW53xx-GW54xx-lvds-channel.patch index 2768b0906e..2101fdfcf3 100644 --- a/target/linux/imx6/patches-4.3/036-ARM-dts-imx-ventana-fix-GW53xx-GW54xx-lvds-channel.patch +++ b/target/linux/imx6/patches-4.3/036-ARM-dts-imx-ventana-fix-GW53xx-GW54xx-lvds-channel.patch @@ -9,10 +9,8 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com> arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) -Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi -=================================================================== ---- linux-4.3.orig/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi 2015-11-01 16:05:25.000000000 -0800 -+++ linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi 2015-12-18 10:43:32.000000000 -0800 +--- a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi @@ -247,7 +247,7 @@ &ldb { status = "okay"; @@ -22,10 +20,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi fsl,data-mapping = "spwg"; fsl,data-width = <18>; status = "okay"; -Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi -=================================================================== ---- linux-4.3.orig/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi 2015-12-18 10:39:44.855158318 -0800 -+++ linux-4.3/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi 2015-12-18 10:43:32.000000000 -0800 +--- a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi @@ -338,7 +338,7 @@ &ldb { status = "okay"; diff --git a/target/linux/imx6/patches-4.3/037-ARM-dts-imx-ventana-fix-GW53xx-GW54xx-lvds-channel.patch b/target/linux/imx6/patches-4.3/037-ARM-dts-imx-ventana-fix-GW53xx-GW54xx-lvds-channel.patch index 768648e5e4..c861e3848c 100644 --- a/target/linux/imx6/patches-4.3/037-ARM-dts-imx-ventana-fix-GW53xx-GW54xx-lvds-channel.patch +++ b/target/linux/imx6/patches-4.3/037-ARM-dts-imx-ventana-fix-GW53xx-GW54xx-lvds-channel.patch @@ -20,10 +20,8 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com> arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | 7 +++++++ 3 files changed, 21 insertions(+) -Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi -=================================================================== ---- linux-4.3.orig/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi 2015-11-01 16:05:25.000000000 -0800 -+++ linux-4.3/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi 2015-12-18 10:43:32.000000000 -0800 +--- a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi @@ -151,6 +151,13 @@ status = "okay"; }; @@ -38,10 +36,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi &fec { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet>; -Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi -=================================================================== ---- linux-4.3.orig/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi 2015-12-18 10:39:44.867158318 -0800 -+++ linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi 2015-12-18 10:43:32.000000000 -0800 +--- a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi @@ -152,6 +152,13 @@ status = "okay"; }; @@ -56,10 +52,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi &fec { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet>; -Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi -=================================================================== ---- linux-4.3.orig/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi 2015-12-18 10:39:44.871158318 -0800 -+++ linux-4.3/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi 2015-12-18 10:43:32.000000000 -0800 +--- a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi @@ -142,6 +142,13 @@ status = "okay"; }; diff --git a/target/linux/imx6/patches-4.3/040-ARM-dts-imx-ventana-add-pwm-nodes.patch b/target/linux/imx6/patches-4.3/040-ARM-dts-imx-ventana-add-pwm-nodes.patch index 221d950751..759f32e6f6 100644 --- a/target/linux/imx6/patches-4.3/040-ARM-dts-imx-ventana-add-pwm-nodes.patch +++ b/target/linux/imx6/patches-4.3/040-ARM-dts-imx-ventana-add-pwm-nodes.patch @@ -1,7 +1,5 @@ -Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi -=================================================================== ---- linux-4.3.orig/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi 2015-11-01 16:05:25.000000000 -0800 -+++ linux-4.3/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi 2015-12-18 10:43:27.000000000 -0800 +--- a/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi @@ -174,6 +174,24 @@ status = "okay"; }; @@ -52,10 +50,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi pinctrl_uart1: uart1grp { fsl,pins = < MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1 -Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi -=================================================================== ---- linux-4.3.orig/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi 2015-12-18 10:39:44.883158318 -0800 -+++ linux-4.3/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi 2015-12-18 10:43:31.000000000 -0800 +--- a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi @@ -282,6 +282,18 @@ status = "okay"; }; @@ -94,10 +90,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi pinctrl_pwm4: pwm4grp { fsl,pins = < MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1 -Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi -=================================================================== ---- linux-4.3.orig/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi 2015-12-18 10:39:44.883158318 -0800 -+++ linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi 2015-12-18 10:43:27.000000000 -0800 +--- a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi @@ -287,6 +287,18 @@ }; }; @@ -136,10 +130,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi pinctrl_pwm4: pwm4grp { fsl,pins = < MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1 -Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi -=================================================================== ---- linux-4.3.orig/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi 2015-12-18 10:39:44.883158318 -0800 -+++ linux-4.3/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi 2015-12-18 10:43:27.000000000 -0800 +--- a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi @@ -378,6 +378,24 @@ }; }; @@ -190,10 +182,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi pinctrl_pwm4: pwm4grp { fsl,pins = < MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1 -Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw551x.dtsi -=================================================================== ---- linux-4.3.orig/arch/arm/boot/dts/imx6qdl-gw551x.dtsi 2015-11-01 16:05:25.000000000 -0800 -+++ linux-4.3/arch/arm/boot/dts/imx6qdl-gw551x.dtsi 2015-12-18 10:43:21.000000000 -0800 +--- a/arch/arm/boot/dts/imx6qdl-gw551x.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-gw551x.dtsi @@ -198,6 +198,18 @@ status = "okay"; }; @@ -232,10 +222,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw551x.dtsi pinctrl_uart2: uart2grp { fsl,pins = < MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1 -Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw552x.dtsi -=================================================================== ---- linux-4.3.orig/arch/arm/boot/dts/imx6qdl-gw552x.dtsi 2015-11-01 16:05:25.000000000 -0800 -+++ linux-4.3/arch/arm/boot/dts/imx6qdl-gw552x.dtsi 2015-12-18 10:43:21.000000000 -0800 +--- a/arch/arm/boot/dts/imx6qdl-gw552x.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-gw552x.dtsi @@ -164,6 +164,18 @@ status = "okay"; }; diff --git a/target/linux/imx6/patches-4.3/041-ARM-dts-imx-ventana-add-spi-support-for-gw52xx.patch b/target/linux/imx6/patches-4.3/041-ARM-dts-imx-ventana-add-spi-support-for-gw52xx.patch index a0fb48ee8c..da3571559e 100644 --- a/target/linux/imx6/patches-4.3/041-ARM-dts-imx-ventana-add-spi-support-for-gw52xx.patch +++ b/target/linux/imx6/patches-4.3/041-ARM-dts-imx-ventana-add-spi-support-for-gw52xx.patch @@ -1,7 +1,5 @@ -Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi -=================================================================== ---- linux-4.3.orig/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi 2015-12-18 10:39:44.899158318 -0800 -+++ linux-4.3/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi 2015-12-18 10:43:27.000000000 -0800 +--- a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi @@ -158,6 +158,14 @@ <&clks IMX6QDL_CLK_PLL3_USB_OTG>; }; diff --git a/target/linux/imx6/patches-4.3/045-imx-thermal-use-cpu-temperature-grade-info-for-thresholds b/target/linux/imx6/patches-4.3/045-imx-thermal-use-cpu-temperature-grade-info-for-thresholds index 95524776c9..6baf7dd801 100644 --- a/target/linux/imx6/patches-4.3/045-imx-thermal-use-cpu-temperature-grade-info-for-thresholds +++ b/target/linux/imx6/patches-4.3/045-imx-thermal-use-cpu-temperature-grade-info-for-thresholds @@ -1,7 +1,5 @@ -Index: linux-4.3/drivers/thermal/imx_thermal.c -=================================================================== ---- linux-4.3.orig/drivers/thermal/imx_thermal.c 2015-11-01 16:05:25.000000000 -0800 -+++ linux-4.3/drivers/thermal/imx_thermal.c 2015-12-18 10:39:44.915158318 -0800 +--- a/drivers/thermal/imx_thermal.c ++++ b/drivers/thermal/imx_thermal.c @@ -55,6 +55,7 @@ #define TEMPSENSE2_PANIC_VALUE_SHIFT 16 #define TEMPSENSE2_PANIC_VALUE_MASK 0xfff0000 @@ -10,7 +8,7 @@ Index: linux-4.3/drivers/thermal/imx_thermal.c #define OCOTP_ANA1 0x04e0 /* The driver supports 1 passive trip point and 1 critical trip point */ -@@ -64,12 +65,6 @@ +@@ -64,12 +65,6 @@ enum imx_thermal_trip { IMX_TRIP_NUM, }; @@ -23,7 +21,7 @@ Index: linux-4.3/drivers/thermal/imx_thermal.c #define IMX_POLLING_DELAY 2000 /* millisecond */ #define IMX_PASSIVE_DELAY 1000 -@@ -100,12 +95,14 @@ +@@ -100,12 +95,14 @@ struct imx_thermal_data { u32 c1, c2; /* See formula in imx_get_sensor_data() */ int temp_passive; int temp_critical; @@ -38,7 +36,7 @@ Index: linux-4.3/drivers/thermal/imx_thermal.c }; static void imx_set_panic_temp(struct imx_thermal_data *data, -@@ -285,10 +282,12 @@ +@@ -285,10 +282,12 @@ static int imx_set_trip_temp(struct ther { struct imx_thermal_data *data = tz->devdata; @@ -52,7 +50,7 @@ Index: linux-4.3/drivers/thermal/imx_thermal.c return -EINVAL; data->temp_passive = temp; -@@ -404,17 +403,39 @@ +@@ -404,17 +403,39 @@ static int imx_get_sensor_data(struct pl data->c1 = temp64; data->c2 = n1 * data->c1 + 1000 * t1; @@ -100,7 +98,7 @@ Index: linux-4.3/drivers/thermal/imx_thermal.c return 0; } -@@ -559,6 +580,11 @@ +@@ -559,6 +580,11 @@ static int imx_thermal_probe(struct plat return ret; } diff --git a/target/linux/imx6/patches-4.3/100-bootargs.patch b/target/linux/imx6/patches-4.3/100-bootargs.patch index 3c22ec780e..0954391203 100644 --- a/target/linux/imx6/patches-4.3/100-bootargs.patch +++ b/target/linux/imx6/patches-4.3/100-bootargs.patch @@ -1,7 +1,5 @@ -Index: linux-4.3/arch/arm/boot/dts/imx6dl-wandboard.dts -=================================================================== ---- linux-4.3.orig/arch/arm/boot/dts/imx6dl-wandboard.dts 2015-11-01 16:05:25.000000000 -0800 -+++ linux-4.3/arch/arm/boot/dts/imx6dl-wandboard.dts 2015-12-18 10:39:44.923158318 -0800 +--- a/arch/arm/boot/dts/imx6dl-wandboard.dts ++++ b/arch/arm/boot/dts/imx6dl-wandboard.dts @@ -19,4 +19,8 @@ memory { reg = <0x10000000 0x40000000>; diff --git a/target/linux/imx6/patches-4.3/202-net-igb-add-i210-i211-support-for-phy-read-write.patch b/target/linux/imx6/patches-4.3/202-net-igb-add-i210-i211-support-for-phy-read-write.patch index 6a636a3e9d..6bc23c5206 100644 --- a/target/linux/imx6/patches-4.3/202-net-igb-add-i210-i211-support-for-phy-read-write.patch +++ b/target/linux/imx6/patches-4.3/202-net-igb-add-i210-i211-support-for-phy-read-write.patch @@ -8,11 +8,9 @@ Date: Thu May 15 00:12:26 2014 -0700 Signed-off-by: Tim Harvey <tharvey@gateworks.com> -Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c -=================================================================== ---- linux-4.3.orig/drivers/net/ethernet/intel/igb/e1000_phy.c 2015-11-01 16:05:25.000000000 -0800 -+++ linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c 2015-12-18 10:43:28.000000000 -0800 -@@ -129,7 +129,7 @@ +--- a/drivers/net/ethernet/intel/igb/e1000_phy.c ++++ b/drivers/net/ethernet/intel/igb/e1000_phy.c +@@ -129,7 +129,7 @@ out: s32 igb_read_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 *data) { struct e1000_phy_info *phy = &hw->phy; @@ -21,7 +19,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c s32 ret_val = 0; if (offset > MAX_PHY_REG_ADDRESS) { -@@ -142,11 +142,25 @@ +@@ -142,11 +142,25 @@ s32 igb_read_phy_reg_mdic(struct e1000_h * Control register. The MAC will take care of interfacing with the * PHY to retrieve the desired data. */ @@ -50,7 +48,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c /* Poll the ready bit to see if the MDI read completed * Increasing the time out as testing showed failures with -@@ -171,6 +185,18 @@ +@@ -171,6 +185,18 @@ s32 igb_read_phy_reg_mdic(struct e1000_h *data = (u16) mdic; out: @@ -69,7 +67,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c return ret_val; } -@@ -185,7 +211,7 @@ +@@ -185,7 +211,7 @@ out: s32 igb_write_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 data) { struct e1000_phy_info *phy = &hw->phy; @@ -78,7 +76,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c s32 ret_val = 0; if (offset > MAX_PHY_REG_ADDRESS) { -@@ -198,12 +224,27 @@ +@@ -198,12 +224,27 @@ s32 igb_write_phy_reg_mdic(struct e1000_ * Control register. The MAC will take care of interfacing with the * PHY to retrieve the desired data. */ @@ -110,7 +108,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c /* Poll the ready bit to see if the MDI read completed * Increasing the time out as testing showed failures with -@@ -227,6 +268,18 @@ +@@ -227,6 +268,18 @@ s32 igb_write_phy_reg_mdic(struct e1000_ } out: diff --git a/target/linux/imx6/patches-4.3/203-net-igb-add-phy-read-write-functions-that-accept-phy.patch b/target/linux/imx6/patches-4.3/203-net-igb-add-phy-read-write-functions-that-accept-phy.patch index 4bb691d36b..9d19af5cd7 100644 --- a/target/linux/imx6/patches-4.3/203-net-igb-add-phy-read-write-functions-that-accept-phy.patch +++ b/target/linux/imx6/patches-4.3/203-net-igb-add-phy-read-write-functions-that-accept-phy.patch @@ -14,11 +14,9 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com> drivers/net/ethernet/intel/igb/e1000_phy.h | 6 ++- 3 files changed, 58 insertions(+), 26 deletions(-) -Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_82575.c -=================================================================== ---- linux-4.3.orig/drivers/net/ethernet/intel/igb/e1000_82575.c 2015-11-01 16:05:25.000000000 -0800 -+++ linux-4.3/drivers/net/ethernet/intel/igb/e1000_82575.c 2015-12-18 10:43:28.000000000 -0800 -@@ -2153,7 +2153,7 @@ +--- a/drivers/net/ethernet/intel/igb/e1000_82575.c ++++ b/drivers/net/ethernet/intel/igb/e1000_82575.c +@@ -2153,7 +2153,7 @@ static s32 igb_read_phy_reg_82580(struct if (ret_val) goto out; @@ -27,7 +25,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_82575.c hw->phy.ops.release(hw); -@@ -2178,7 +2178,7 @@ +@@ -2178,7 +2178,7 @@ static s32 igb_write_phy_reg_82580(struc if (ret_val) goto out; @@ -36,11 +34,9 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_82575.c hw->phy.ops.release(hw); -Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c -=================================================================== ---- linux-4.3.orig/drivers/net/ethernet/intel/igb/e1000_phy.c 2015-12-18 10:39:44.931158318 -0800 -+++ linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c 2015-12-18 10:39:44.939158318 -0800 -@@ -126,9 +126,8 @@ +--- a/drivers/net/ethernet/intel/igb/e1000_phy.c ++++ b/drivers/net/ethernet/intel/igb/e1000_phy.c +@@ -126,9 +126,8 @@ out: * Reads the MDI control regsiter in the PHY at offset and stores the * information read to data. **/ @@ -51,7 +47,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c u32 i, mdicnfg, mdic = 0; s32 ret_val = 0; -@@ -147,14 +146,14 @@ +@@ -147,14 +146,14 @@ s32 igb_read_phy_reg_mdic(struct e1000_h case e1000_i211: mdicnfg = rd32(E1000_MDICNFG); mdicnfg &= ~(E1000_MDICNFG_PHY_MASK); @@ -68,7 +64,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c (E1000_MDIC_OP_READ)); break; } -@@ -208,9 +207,8 @@ +@@ -208,9 +207,8 @@ out: * * Writes data to MDI control register in the PHY at offset. **/ @@ -79,7 +75,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c u32 i, mdicnfg, mdic = 0; s32 ret_val = 0; -@@ -229,7 +227,7 @@ +@@ -229,7 +227,7 @@ s32 igb_write_phy_reg_mdic(struct e1000_ case e1000_i211: mdicnfg = rd32(E1000_MDICNFG); mdicnfg &= ~(E1000_MDICNFG_PHY_MASK); @@ -88,7 +84,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c wr32(E1000_MDICNFG, mdicnfg); mdic = (((u32)data) | (offset << E1000_MDIC_REG_SHIFT) | -@@ -238,7 +236,7 @@ +@@ -238,7 +236,7 @@ s32 igb_write_phy_reg_mdic(struct e1000_ default: mdic = (((u32)data) | (offset << E1000_MDIC_REG_SHIFT) | @@ -97,7 +93,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c (E1000_MDIC_OP_WRITE)); break; } -@@ -458,7 +456,7 @@ +@@ -458,7 +456,7 @@ s32 igb_read_phy_reg_igp(struct e1000_hw goto out; if (offset > MAX_PHY_MULTI_PAGE_REG) { @@ -106,7 +102,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c IGP01E1000_PHY_PAGE_SELECT, (u16)offset); if (ret_val) { -@@ -467,8 +465,8 @@ +@@ -467,8 +465,8 @@ s32 igb_read_phy_reg_igp(struct e1000_hw } } @@ -117,7 +113,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c hw->phy.ops.release(hw); -@@ -497,7 +495,7 @@ +@@ -497,7 +495,7 @@ s32 igb_write_phy_reg_igp(struct e1000_h goto out; if (offset > MAX_PHY_MULTI_PAGE_REG) { @@ -126,7 +122,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c IGP01E1000_PHY_PAGE_SELECT, (u16)offset); if (ret_val) { -@@ -506,8 +504,8 @@ +@@ -506,8 +504,8 @@ s32 igb_write_phy_reg_igp(struct e1000_h } } @@ -137,7 +133,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c hw->phy.ops.release(hw); -@@ -2547,8 +2545,9 @@ +@@ -2547,8 +2545,9 @@ out: } /** @@ -148,7 +144,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c * @offset: lower half is register offset to write to * upper half is page to use. * @data: data to write at register offset -@@ -2556,7 +2555,7 @@ +@@ -2556,7 +2555,7 @@ out: * Acquires semaphore, if necessary, then writes the data to PHY register * at the offset. Release any acquired semaphores before exiting. **/ @@ -157,7 +153,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c { s32 ret_val; u16 page = offset >> GS40G_PAGE_SHIFT; -@@ -2566,10 +2565,10 @@ +@@ -2566,10 +2565,10 @@ s32 igb_write_phy_reg_gs40g(struct e1000 if (ret_val) return ret_val; @@ -170,7 +166,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c release: hw->phy.ops.release(hw); -@@ -2577,8 +2576,24 @@ +@@ -2577,8 +2576,24 @@ release: } /** @@ -196,7 +192,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c * @offset: lower half is register offset to read to * upper half is page to use. * @data: data to read at register offset -@@ -2586,7 +2601,7 @@ +@@ -2586,7 +2601,7 @@ release: * Acquires semaphore, if necessary, then reads the data in the PHY register * at the offset. Release any acquired semaphores before exiting. **/ @@ -205,7 +201,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c { s32 ret_val; u16 page = offset >> GS40G_PAGE_SHIFT; -@@ -2596,10 +2611,10 @@ +@@ -2596,10 +2611,10 @@ s32 igb_read_phy_reg_gs40g(struct e1000_ if (ret_val) return ret_val; @@ -218,7 +214,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c release: hw->phy.ops.release(hw); -@@ -2607,6 +2622,21 @@ +@@ -2607,6 +2622,21 @@ release: } /** @@ -240,11 +236,9 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c * igb_set_master_slave_mode - Setup PHY for Master/slave mode * @hw: pointer to the HW structure * -Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.h -=================================================================== ---- linux-4.3.orig/drivers/net/ethernet/intel/igb/e1000_phy.h 2015-11-01 16:05:25.000000000 -0800 -+++ linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.h 2015-12-18 10:39:44.939158318 -0800 -@@ -62,8 +62,8 @@ +--- a/drivers/net/ethernet/intel/igb/e1000_phy.h ++++ b/drivers/net/ethernet/intel/igb/e1000_phy.h +@@ -62,8 +62,8 @@ void igb_power_up_phy_copper(struct e100 void igb_power_down_phy_copper(struct e1000_hw *hw); s32 igb_phy_init_script_igp3(struct e1000_hw *hw); s32 igb_initialize_M88E1512_phy(struct e1000_hw *hw); @@ -255,7 +249,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.h s32 igb_read_phy_reg_i2c(struct e1000_hw *hw, u32 offset, u16 *data); s32 igb_write_phy_reg_i2c(struct e1000_hw *hw, u32 offset, u16 data); s32 igb_read_sfp_data_byte(struct e1000_hw *hw, u16 offset, u8 *data); -@@ -73,6 +73,8 @@ +@@ -73,6 +73,8 @@ s32 igb_phy_force_speed_duplex_82580(st s32 igb_get_cable_length_82580(struct e1000_hw *hw); s32 igb_read_phy_reg_gs40g(struct e1000_hw *hw, u32 offset, u16 *data); s32 igb_write_phy_reg_gs40g(struct e1000_hw *hw, u32 offset, u16 data); diff --git a/target/linux/imx6/patches-4.3/204-net-igb-register-mii_bus-for-SerDes-w-external-phy.patch b/target/linux/imx6/patches-4.3/204-net-igb-register-mii_bus-for-SerDes-w-external-phy.patch index 4bee4ac686..b73895b7d4 100644 --- a/target/linux/imx6/patches-4.3/204-net-igb-register-mii_bus-for-SerDes-w-external-phy.patch +++ b/target/linux/imx6/patches-4.3/204-net-igb-register-mii_bus-for-SerDes-w-external-phy.patch @@ -21,11 +21,9 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com> drivers/net/ethernet/intel/igb/igb_main.c | 168 ++++++++++++++++++++++++++- 3 files changed, 185 insertions(+), 5 deletions(-) -Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_82575.c -=================================================================== ---- linux-4.3.orig/drivers/net/ethernet/intel/igb/e1000_82575.c 2015-12-18 10:39:44.935158318 -0800 -+++ linux-4.3/drivers/net/ethernet/intel/igb/e1000_82575.c 2015-12-18 10:39:44.943158318 -0800 -@@ -612,13 +612,25 @@ +--- a/drivers/net/ethernet/intel/igb/e1000_82575.c ++++ b/drivers/net/ethernet/intel/igb/e1000_82575.c +@@ -612,13 +612,25 @@ static s32 igb_get_invariants_82575(stru switch (link_mode) { case E1000_CTRL_EXT_LINK_MODE_1000BASE_KX: hw->phy.media_type = e1000_media_type_internal_serdes; @@ -51,7 +49,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_82575.c } /* fall through for I2C based SGMII */ case E1000_CTRL_EXT_LINK_MODE_PCIE_SERDES: -@@ -635,8 +647,11 @@ +@@ -635,8 +647,11 @@ static s32 igb_get_invariants_82575(stru hw->phy.media_type = e1000_media_type_copper; dev_spec->sgmii_active = true; } @@ -63,10 +61,8 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_82575.c } /* do not change link mode for 100BaseFX */ -Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_hw.h -=================================================================== ---- linux-4.3.orig/drivers/net/ethernet/intel/igb/e1000_hw.h 2015-11-01 16:05:25.000000000 -0800 -+++ linux-4.3/drivers/net/ethernet/intel/igb/e1000_hw.h 2015-12-18 10:39:44.943158318 -0800 +--- a/drivers/net/ethernet/intel/igb/e1000_hw.h ++++ b/drivers/net/ethernet/intel/igb/e1000_hw.h @@ -27,6 +27,7 @@ #include <linux/delay.h> #include <linux/io.h> @@ -75,7 +71,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_hw.h #include "e1000_regs.h" #include "e1000_defines.h" -@@ -543,6 +544,12 @@ +@@ -543,6 +544,12 @@ struct e1000_hw { struct e1000_mbx_info mbx; struct e1000_host_mng_dhcp_cookie mng_cookie; @@ -88,10 +84,8 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_hw.h union { struct e1000_dev_spec_82575 _82575; } dev_spec; -Index: linux-4.3/drivers/net/ethernet/intel/igb/igb_main.c -=================================================================== ---- linux-4.3.orig/drivers/net/ethernet/intel/igb/igb_main.c 2015-12-18 10:39:44.407158315 -0800 -+++ linux-4.3/drivers/net/ethernet/intel/igb/igb_main.c 2015-12-18 10:39:44.943158318 -0800 +--- a/drivers/net/ethernet/intel/igb/igb_main.c ++++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -41,6 +41,7 @@ #include <linux/if_vlan.h> #include <linux/pci.h> @@ -100,7 +94,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/igb_main.c #include <linux/delay.h> #include <linux/interrupt.h> #include <linux/ip.h> -@@ -2223,6 +2224,126 @@ +@@ -2223,6 +2224,126 @@ static s32 igb_init_i2c(struct igb_adapt return status; } @@ -227,7 +221,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/igb_main.c /** * igb_probe - Device Initialization Routine * @pdev: PCI device information struct -@@ -2645,6 +2766,13 @@ +@@ -2645,6 +2766,13 @@ static int igb_probe(struct pci_dev *pde } } pm_runtime_put_noidle(&pdev->dev); @@ -241,7 +235,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/igb_main.c return 0; err_register: -@@ -2792,6 +2920,10 @@ +@@ -2792,6 +2920,10 @@ static void igb_remove(struct pci_dev *p struct e1000_hw *hw = &adapter->hw; pm_runtime_get_noresume(&pdev->dev); @@ -252,7 +246,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/igb_main.c #ifdef CONFIG_IGB_HWMON igb_sysfs_exit(adapter); #endif -@@ -3105,6 +3237,12 @@ +@@ -3105,6 +3237,12 @@ static int __igb_open(struct net_device if (!resuming) pm_runtime_put(&pdev->dev); @@ -265,7 +259,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/igb_main.c /* start the watchdog. */ hw->mac.get_link_status = 1; schedule_work(&adapter->watchdog_task); -@@ -7090,21 +7228,41 @@ +@@ -7090,21 +7228,41 @@ void igb_alloc_rx_buffers(struct igb_rin static int igb_mii_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) { struct igb_adapter *adapter = netdev_priv(netdev); diff --git a/target/linux/imx6/patches-4.3/205-phy-add-driver-for-GW16083-Ethernet-Expansion-Mezzan.patch b/target/linux/imx6/patches-4.3/205-phy-add-driver-for-GW16083-Ethernet-Expansion-Mezzan.patch index a2ca3257a8..c91b519272 100644 --- a/target/linux/imx6/patches-4.3/205-phy-add-driver-for-GW16083-Ethernet-Expansion-Mezzan.patch +++ b/target/linux/imx6/patches-4.3/205-phy-add-driver-for-GW16083-Ethernet-Expansion-Mezzan.patch @@ -1,8 +1,6 @@ -Index: linux-4.3/drivers/net/phy/Kconfig -=================================================================== ---- linux-4.3.orig/drivers/net/phy/Kconfig 2015-12-18 10:39:44.371158315 -0800 -+++ linux-4.3/drivers/net/phy/Kconfig 2015-12-18 10:39:44.951158318 -0800 -@@ -309,6 +309,14 @@ +--- a/drivers/net/phy/Kconfig ++++ b/drivers/net/phy/Kconfig +@@ -309,6 +309,14 @@ endif # RTL8366_SMI source "drivers/net/phy/b53/Kconfig" @@ -17,11 +15,9 @@ Index: linux-4.3/drivers/net/phy/Kconfig endif # PHYLIB config MICREL_KS8995MA -Index: linux-4.3/drivers/net/phy/Makefile -=================================================================== ---- linux-4.3.orig/drivers/net/phy/Makefile 2015-12-18 10:39:44.371158315 -0800 -+++ linux-4.3/drivers/net/phy/Makefile 2015-12-18 10:39:44.951158318 -0800 -@@ -44,6 +44,7 @@ +--- a/drivers/net/phy/Makefile ++++ b/drivers/net/phy/Makefile +@@ -44,6 +44,7 @@ obj-$(CONFIG_DP83848_PHY) += dp83848.o obj-$(CONFIG_DP83867_PHY) += dp83867.o obj-$(CONFIG_STE10XP) += ste10Xp.o obj-$(CONFIG_MICREL_PHY) += micrel.o diff --git a/target/linux/imx6/patches-4.3/206-ARM-imx-ventana-added-GW16083-to-device-tree.patch b/target/linux/imx6/patches-4.3/206-ARM-imx-ventana-added-GW16083-to-device-tree.patch index 81fbe0ec64..a9214d598f 100644 --- a/target/linux/imx6/patches-4.3/206-ARM-imx-ventana-added-GW16083-to-device-tree.patch +++ b/target/linux/imx6/patches-4.3/206-ARM-imx-ventana-added-GW16083-to-device-tree.patch @@ -1,7 +1,5 @@ -Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi -=================================================================== ---- linux-4.3.orig/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi 2015-12-18 10:39:44.895158318 -0800 -+++ linux-4.3/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi 2015-12-18 10:43:21.000000000 -0800 +--- a/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi @@ -158,6 +158,11 @@ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c2>; @@ -14,10 +12,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi }; &i2c3 { -Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi -=================================================================== ---- linux-4.3.orig/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi 2015-12-18 10:39:44.907158318 -0800 -+++ linux-4.3/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi 2015-12-18 10:43:21.000000000 -0800 +--- a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi @@ -233,6 +233,11 @@ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c2>; @@ -30,10 +26,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi }; &i2c3 { -Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi -=================================================================== ---- linux-4.3.orig/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi 2015-12-18 10:39:44.899158318 -0800 -+++ linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi 2015-12-18 10:43:25.000000000 -0800 +--- a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi @@ -226,6 +226,11 @@ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c2>; @@ -46,10 +40,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi }; &i2c3 { -Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi -=================================================================== ---- linux-4.3.orig/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi 2015-12-18 10:39:44.899158318 -0800 -+++ linux-4.3/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi 2015-12-18 10:43:25.000000000 -0800 +--- a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi @@ -317,6 +317,11 @@ }; }; diff --git a/target/linux/imx6/patches-4.3/207-i2c-imx-add-retries-for-NAK-s-on-ventana-boards.patch b/target/linux/imx6/patches-4.3/207-i2c-imx-add-retries-for-NAK-s-on-ventana-boards.patch index bfb5707ff0..fa3bf138f6 100644 --- a/target/linux/imx6/patches-4.3/207-i2c-imx-add-retries-for-NAK-s-on-ventana-boards.patch +++ b/target/linux/imx6/patches-4.3/207-i2c-imx-add-retries-for-NAK-s-on-ventana-boards.patch @@ -1,8 +1,6 @@ -Index: linux-4.3/drivers/i2c/busses/i2c-imx.c -=================================================================== ---- linux-4.3.orig/drivers/i2c/busses/i2c-imx.c 2015-11-01 16:05:25.000000000 -0800 -+++ linux-4.3/drivers/i2c/busses/i2c-imx.c 2015-12-18 10:39:44.971158318 -0800 -@@ -461,6 +461,8 @@ +--- a/drivers/i2c/busses/i2c-imx.c ++++ b/drivers/i2c/busses/i2c-imx.c +@@ -461,6 +461,8 @@ static int i2c_imx_acked(struct imx_i2c_ { if (imx_i2c_read_reg(i2c_imx, IMX_I2C_I2SR) & I2SR_RXAK) { dev_dbg(&i2c_imx->adapter.dev, "<%s> No ACK\n", __func__); @@ -11,7 +9,7 @@ Index: linux-4.3/drivers/i2c/busses/i2c-imx.c return -EIO; /* No ACK */ } -@@ -1010,6 +1012,10 @@ +@@ -1010,6 +1012,10 @@ static int i2c_imx_probe(struct platform i2c_imx->adapter.nr = pdev->id; i2c_imx->adapter.dev.of_node = pdev->dev.of_node; i2c_imx->base = base; diff --git a/target/linux/imx6/patches-4.3/208-sky2-allow-mac-to-come-from-dt.patch b/target/linux/imx6/patches-4.3/208-sky2-allow-mac-to-come-from-dt.patch index 7a29846c25..9a94212235 100644 --- a/target/linux/imx6/patches-4.3/208-sky2-allow-mac-to-come-from-dt.patch +++ b/target/linux/imx6/patches-4.3/208-sky2-allow-mac-to-come-from-dt.patch @@ -1,8 +1,6 @@ -Index: linux-4.3/drivers/net/ethernet/marvell/sky2.c -=================================================================== ---- linux-4.3.orig/drivers/net/ethernet/marvell/sky2.c 2015-11-01 16:05:25.000000000 -0800 -+++ linux-4.3/drivers/net/ethernet/marvell/sky2.c 2015-12-18 10:39:44.983158318 -0800 -@@ -4812,7 +4812,24 @@ +--- a/drivers/net/ethernet/marvell/sky2.c ++++ b/drivers/net/ethernet/marvell/sky2.c +@@ -4812,7 +4812,24 @@ static struct net_device *sky2_init_netd * 1) from device tree data * 2) from internal registers set by bootloader */ diff --git a/target/linux/imx6/patches-4.3/209-ARM-imx-ventana-add-sky2-alias.patch b/target/linux/imx6/patches-4.3/209-ARM-imx-ventana-add-sky2-alias.patch index 7377ce3756..490e015eb0 100644 --- a/target/linux/imx6/patches-4.3/209-ARM-imx-ventana-add-sky2-alias.patch +++ b/target/linux/imx6/patches-4.3/209-ARM-imx-ventana-add-sky2-alias.patch @@ -1,7 +1,5 @@ -Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi -=================================================================== ---- linux-4.3.orig/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi 2015-12-18 10:39:44.959158318 -0800 -+++ linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi 2015-12-18 10:43:21.000000000 -0800 +--- a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi @@ -15,6 +15,7 @@ /* these are used by bootloader for disabling nodes */ aliases { @@ -10,10 +8,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi led0 = &led0; led1 = &led1; led2 = &led2; -Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi -=================================================================== ---- linux-4.3.orig/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi 2015-12-18 10:39:44.959158318 -0800 -+++ linux-4.3/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi 2015-12-18 10:43:21.000000000 -0800 +--- a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi @@ -15,6 +15,7 @@ /* these are used by bootloader for disabling nodes */ aliases { diff --git a/target/linux/octeon/patches-4.3/100-ubnt_edgerouter2_support.patch b/target/linux/octeon/patches-4.3/100-ubnt_edgerouter2_support.patch index 0689949cb8..662fbd27f1 100644 --- a/target/linux/octeon/patches-4.3/100-ubnt_edgerouter2_support.patch +++ b/target/linux/octeon/patches-4.3/100-ubnt_edgerouter2_support.patch @@ -1,31 +1,31 @@ --- a/arch/mips/include/asm/octeon/cvmx-bootinfo.h +++ b/arch/mips/include/asm/octeon/cvmx-bootinfo.h @@ -283,6 +283,8 @@ enum cvmx_board_types_enum { - */ - CVMX_BOARD_TYPE_CUST_PRIVATE_MIN = 20001, - CVMX_BOARD_TYPE_UBNT_E100 = 20002, + */ + CVMX_BOARD_TYPE_CUST_PRIVATE_MIN = 20001, + CVMX_BOARD_TYPE_UBNT_E100 = 20002, + CVMX_BOARD_TYPE_UBNT_E200 = 20003, + CVMX_BOARD_TYPE_UBNT_E220 = 20005, - CVMX_BOARD_TYPE_CUST_DSR1000N = 20006, - CVMX_BOARD_TYPE_KONTRON_S1901 = 21901, - CVMX_BOARD_TYPE_CUST_PRIVATE_MAX = 30000, + CVMX_BOARD_TYPE_CUST_DSR1000N = 20006, + CVMX_BOARD_TYPE_KONTRON_S1901 = 21901, + CVMX_BOARD_TYPE_CUST_PRIVATE_MAX = 30000, @@ -384,6 +386,8 @@ static inline const char *cvmx_board_typ - /* Customer private range */ - ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MIN) - ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E100) + /* Customer private range */ + ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MIN) + ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E100) + ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E200) + ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E220) - ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_DSR1000N) - ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_KONTRON_S1901) - ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MAX) + ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_DSR1000N) + ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_KONTRON_S1901) + ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MAX) --- a/arch/mips/cavium-octeon/executive/cvmx-helper-board.c +++ b/arch/mips/cavium-octeon/executive/cvmx-helper-board.c @@ -195,6 +195,8 @@ int cvmx_helper_board_get_mii_address(in - return 8; - else - return -1; + return 8; + else + return -1; + case CVMX_BOARD_TYPE_UBNT_E200: + return -1; - case CVMX_BOARD_TYPE_KONTRON_S1901: - if (ipd_port == CVMX_HELPER_BOARD_MGMT_IPD_PORT) - return 1; + case CVMX_BOARD_TYPE_KONTRON_S1901: + if (ipd_port == CVMX_HELPER_BOARD_MGMT_IPD_PORT) + return 1; diff --git a/target/linux/octeon/patches-4.3/110-er200-ethernet_probe_order.patch b/target/linux/octeon/patches-4.3/110-er200-ethernet_probe_order.patch index b4a039ecc3..0bd8968a09 100644 --- a/target/linux/octeon/patches-4.3/110-er200-ethernet_probe_order.patch +++ b/target/linux/octeon/patches-4.3/110-er200-ethernet_probe_order.patch @@ -1,17 +1,17 @@ --- a/drivers/staging/octeon/ethernet.c +++ b/drivers/staging/octeon/ethernet.c @@ -663,6 +663,7 @@ static int cvm_oct_probe(struct platform - int interface; - int fau = FAU_NUM_PACKET_BUFFERS_TO_FREE; - int qos; + int interface; + int fau = FAU_NUM_PACKET_BUFFERS_TO_FREE; + int qos; + int i; - struct device_node *pip; - - octeon_mdiobus_force_mod_depencency(); + struct device_node *pip; + + octeon_mdiobus_force_mod_depencency(); @@ -747,13 +748,19 @@ static int cvm_oct_probe(struct platform - } - - num_interfaces = cvmx_helper_get_number_of_interfaces(); + } + + num_interfaces = cvmx_helper_get_number_of_interfaces(); - for (interface = 0; interface < num_interfaces; interface++) { - cvmx_helper_interface_mode_t imode = - cvmx_helper_interface_get_mode(interface); @@ -20,15 +20,15 @@ + cvmx_helper_interface_mode_t imode; + int interface; + int num_ports; - int port; - int port_index; - + int port; + int port_index; + + interface = i; + if (cvmx_sysinfo_get()->board_type == CVMX_BOARD_TYPE_UBNT_E200) + interface = num_interfaces - (i + 1); + + num_ports = cvmx_helper_ports_on_interface(interface); + imode = cvmx_helper_interface_get_mode(interface); - for (port_index = 0, - port = cvmx_helper_get_ipd_port(interface, 0); - port < cvmx_helper_get_ipd_port(interface, num_ports); + for (port_index = 0, + port = cvmx_helper_get_ipd_port(interface, 0); + port < cvmx_helper_get_ipd_port(interface, num_ports); diff --git a/target/linux/octeon/patches-4.3/150-mmc-octeon-add-host-driver-for-octeon-mmc-controller.patch b/target/linux/octeon/patches-4.3/150-mmc-octeon-add-host-driver-for-octeon-mmc-controller.patch index 53e0321178..62e5ef858a 100644 --- a/target/linux/octeon/patches-4.3/150-mmc-octeon-add-host-driver-for-octeon-mmc-controller.patch +++ b/target/linux/octeon/patches-4.3/150-mmc-octeon-add-host-driver-for-octeon-mmc-controller.patch @@ -73,9 +73,9 @@ --- a/drivers/mmc/host/Kconfig +++ b/drivers/mmc/host/Kconfig @@ -436,6 +436,16 @@ config MMC_MXS - - If unsure, say N. - + + If unsure, say N. + +config MMC_OCTEON + tristate "Cavium OCTEON Multimedia Card Interface support" + depends on CAVIUM_OCTEON_SOC @@ -87,8 +87,8 @@ + If unsure, say N. + config MMC_TIFM_SD - tristate "TI Flash Media MMC/SD Interface support" - depends on PCI + tristate "TI Flash Media MMC/SD Interface support" + depends on PCI --- a/drivers/mmc/host/Makefile +++ b/drivers/mmc/host/Makefile @@ -20,6 +20,7 @@ obj-$(CONFIG_MMC_SDHCI_F_SDH30) += sdhci diff --git a/target/linux/octeon/patches-4.3/160-cmdline-hack.patch b/target/linux/octeon/patches-4.3/160-cmdline-hack.patch index fd17796829..6e042ef714 100644 --- a/target/linux/octeon/patches-4.3/160-cmdline-hack.patch +++ b/target/linux/octeon/patches-4.3/160-cmdline-hack.patch @@ -1,9 +1,9 @@ --- a/arch/mips/cavium-octeon/setup.c +++ b/arch/mips/cavium-octeon/setup.c @@ -611,6 +611,35 @@ void octeon_user_io_init(void) - write_c0_derraddr1(0); + write_c0_derraddr1(0); } - + +#ifdef CONFIG_IMAGE_CMDLINE_HACK +extern char __image_cmdline[]; + @@ -37,11 +37,11 @@ * Early entry point for arch setup */ @@ -842,6 +871,8 @@ void __init prom_init(void) - } - } - + } + } + + octeon_use_image_cmdline(); + - if (strstr(arcs_cmdline, "console=") == NULL) { + if (strstr(arcs_cmdline, "console=") == NULL) { #ifdef CONFIG_CAVIUM_OCTEON_2ND_KERNEL - strcat(arcs_cmdline, " console=ttyS0,115200"); + strcat(arcs_cmdline, " console=ttyS0,115200"); diff --git a/target/linux/ramips/patches-4.3/0002-MIPS-ralink-add-MT7621-defconfig.patch b/target/linux/ramips/patches-4.3/0002-MIPS-ralink-add-MT7621-defconfig.patch index 3bb7e2f2e4..d788f2f076 100644 --- a/target/linux/ramips/patches-4.3/0002-MIPS-ralink-add-MT7621-defconfig.patch +++ b/target/linux/ramips/patches-4.3/0002-MIPS-ralink-add-MT7621-defconfig.patch @@ -9,9 +9,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org> 1 file changed, 197 insertions(+) create mode 100644 arch/mips/configs/mt7621_defconfig -diff --git a/arch/mips/configs/mt7621_defconfig b/arch/mips/configs/mt7621_defconfig -new file mode 100644 -index 0000000..7719471 --- /dev/null +++ b/arch/mips/configs/mt7621_defconfig @@ -0,0 +1,197 @@ @@ -212,6 +209,3 @@ index 0000000..7719471 +CONFIG_CRC32_SARWATE=y +# CONFIG_XZ_DEC_X86 is not set +CONFIG_AVERAGE=y --- -1.7.10.4 - diff --git a/target/linux/ramips/patches-4.3/0003-MIPS-ralink-cleanup-early_printk.patch b/target/linux/ramips/patches-4.3/0003-MIPS-ralink-cleanup-early_printk.patch index e2b2ba5e00..a21f5c6180 100644 --- a/target/linux/ramips/patches-4.3/0003-MIPS-ralink-cleanup-early_printk.patch +++ b/target/linux/ramips/patches-4.3/0003-MIPS-ralink-cleanup-early_printk.patch @@ -11,8 +11,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org> arch/mips/ralink/early_printk.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) -diff --git a/arch/mips/ralink/early_printk.c b/arch/mips/ralink/early_printk.c -index 255d695..c04ee53 100644 --- a/arch/mips/ralink/early_printk.c +++ b/arch/mips/ralink/early_printk.c @@ -25,11 +25,13 @@ @@ -61,6 +59,3 @@ index 255d695..c04ee53 100644 if (IS_ENABLED(CONFIG_SOC_MT7621) || soc_is_mt7628()) { uart_w32(ch, UART_TX); while ((uart_r32(UART_REG_LSR) & UART_LSR_THRE) == 0) --- -1.7.10.4 - diff --git a/target/linux/ramips/patches-4.3/0029-phy-usb-add-ralink-phy.patch b/target/linux/ramips/patches-4.3/0029-phy-usb-add-ralink-phy.patch index f511b8838e..cc61c29ca5 100644 --- a/target/linux/ramips/patches-4.3/0029-phy-usb-add-ralink-phy.patch +++ b/target/linux/ramips/patches-4.3/0029-phy-usb-add-ralink-phy.patch @@ -38,7 +38,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> +}; --- a/drivers/phy/Kconfig +++ b/drivers/phy/Kconfig -@@ -331,6 +331,14 @@ +@@ -331,6 +331,14 @@ config PHY_XGENE help This option enables support for APM X-Gene SoC multi-purpose PHY. @@ -55,7 +55,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> depends on RESET_CONTROLLER --- a/drivers/phy/Makefile +++ b/drivers/phy/Makefile -@@ -46,3 +46,4 @@ +@@ -46,3 +46,4 @@ obj-$(CONFIG_PHY_QCOM_UFS) += phy-qcom- obj-$(CONFIG_PHY_TUSB1210) += phy-tusb1210.o obj-$(CONFIG_PHY_BRCMSTB_SATA) += phy-brcmstb-sata.o obj-$(CONFIG_PHY_PISTACHIO_USB) += phy-pistachio-usb.o diff --git a/target/linux/ramips/patches-4.3/0033-USB-add-xhci-hooks.patch b/target/linux/ramips/patches-4.3/0033-USB-add-xhci-hooks.patch index 07c2eac015..db29293584 100644 --- a/target/linux/ramips/patches-4.3/0033-USB-add-xhci-hooks.patch +++ b/target/linux/ramips/patches-4.3/0033-USB-add-xhci-hooks.patch @@ -5391,7 +5391,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> /* TODO: copied from ehci-hcd.c - can this be refactored? */ /* * xhci_handshake - spin reading hc until handshake completes or fails -@@ -198,7 +220,7 @@ int xhci_reset(struct xhci_hcd *xhci) +@@ -208,7 +230,7 @@ int xhci_reset(struct xhci_hcd *xhci) return ret; } @@ -5400,7 +5400,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> static int xhci_free_msi(struct xhci_hcd *xhci) { int i; -@@ -448,6 +470,11 @@ static void compliance_mode_recovery(uns +@@ -458,6 +480,11 @@ static void compliance_mode_recovery(uns "Attempting compliance mode recovery"); hcd = xhci->shared_hcd; @@ -5412,7 +5412,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> if (hcd->state == HC_STATE_SUSPENDED) usb_hcd_resume_root_hub(hcd); -@@ -495,6 +522,9 @@ static bool xhci_compliance_mode_recover +@@ -505,6 +532,9 @@ static bool xhci_compliance_mode_recover { const char *dmi_product_name, *dmi_sys_vendor; @@ -5422,7 +5422,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> dmi_product_name = dmi_get_system_info(DMI_PRODUCT_NAME); dmi_sys_vendor = dmi_get_system_info(DMI_SYS_VENDOR); if (!dmi_product_name || !dmi_sys_vendor) -@@ -540,6 +570,10 @@ int xhci_init(struct usb_hcd *hcd) +@@ -550,6 +580,10 @@ int xhci_init(struct usb_hcd *hcd) xhci_dbg_trace(xhci, trace_xhci_dbg_init, "xHCI doesn't need link TRB QUIRK"); } @@ -5433,7 +5433,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> retval = xhci_mem_init(xhci, GFP_KERNEL); xhci_dbg_trace(xhci, trace_xhci_dbg_init, "Finished xhci_init"); -@@ -624,7 +658,11 @@ int xhci_run(struct usb_hcd *hcd) +@@ -634,7 +668,11 @@ int xhci_run(struct usb_hcd *hcd) "// Set the interrupt modulation register"); temp = readl(&xhci->ir_set->irq_control); temp &= ~ER_IRQ_INTERVAL_MASK; @@ -5445,7 +5445,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> writel(temp, &xhci->ir_set->irq_control); /* Set the HCD state before we enable the irqs */ -@@ -649,6 +687,9 @@ int xhci_run(struct usb_hcd *hcd) +@@ -659,6 +697,9 @@ int xhci_run(struct usb_hcd *hcd) xhci_queue_vendor_command(xhci, command, 0, 0, 0, TRB_TYPE(TRB_NEC_GET_FW)); } @@ -5455,7 +5455,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> xhci_dbg_trace(xhci, trace_xhci_dbg_init, "Finished xhci_run for USB2 roothub"); return 0; -@@ -1639,6 +1680,14 @@ int xhci_drop_endpoint(struct usb_hcd *h +@@ -1649,6 +1690,14 @@ int xhci_drop_endpoint(struct usb_hcd *h u32 drop_flag; u32 new_add_flags, new_drop_flags; int ret; @@ -5470,7 +5470,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> ret = xhci_check_args(hcd, udev, ep, 1, true, __func__); if (ret <= 0) -@@ -1688,6 +1737,40 @@ int xhci_drop_endpoint(struct usb_hcd *h +@@ -1698,6 +1747,40 @@ int xhci_drop_endpoint(struct usb_hcd *h xhci_endpoint_zero(xhci, xhci->devs[udev->slot_id], ep); @@ -5511,7 +5511,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> xhci_dbg(xhci, "drop ep 0x%x, slot id %d, new drop flags = %#x, new add flags = %#x\n", (unsigned int) ep->desc.bEndpointAddress, udev->slot_id, -@@ -1720,6 +1803,19 @@ int xhci_add_endpoint(struct usb_hcd *hc +@@ -1730,6 +1813,19 @@ int xhci_add_endpoint(struct usb_hcd *hc u32 new_add_flags, new_drop_flags; struct xhci_virt_device *virt_dev; int ret = 0; @@ -5531,7 +5531,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> ret = xhci_check_args(hcd, udev, ep, 1, true, __func__); if (ret <= 0) { -@@ -1783,6 +1879,56 @@ int xhci_add_endpoint(struct usb_hcd *hc +@@ -1793,6 +1889,56 @@ int xhci_add_endpoint(struct usb_hcd *hc return -ENOMEM; } @@ -5588,7 +5588,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> ctrl_ctx->add_flags |= cpu_to_le32(added_ctxs); new_add_flags = le32_to_cpu(ctrl_ctx->add_flags); -@@ -4446,8 +4592,14 @@ static u16 xhci_call_host_update_timeout +@@ -4456,8 +4602,14 @@ static u16 xhci_call_host_update_timeout u16 *timeout) { if (state == USB3_LPM_U1) @@ -5603,7 +5603,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> return xhci_calculate_u2_timeout(xhci, udev, desc); return USB3_LPM_DISABLED; -@@ -4839,7 +4991,9 @@ int xhci_gen_setup(struct usb_hcd *hcd, +@@ -4849,7 +5001,9 @@ int xhci_gen_setup(struct usb_hcd *hcd, hcd->self.no_sg_constraint = 1; /* XHCI controllers don't stop the ep queue on short packets :| */ @@ -5613,7 +5613,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> if (usb_hcd_is_primary_hcd(hcd)) { xhci = hcd_to_xhci(hcd); -@@ -4900,6 +5054,10 @@ int xhci_gen_setup(struct usb_hcd *hcd, +@@ -4910,6 +5064,10 @@ int xhci_gen_setup(struct usb_hcd *hcd, return retval; xhci_dbg(xhci, "Reset complete\n"); @@ -5624,7 +5624,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> /* Set dma_mask and coherent_dma_mask to 64-bits, * if xHC supports 64-bit addressing */ if (HCC_64BIT_ADDR(xhci->hcc_params) && -@@ -5005,8 +5163,57 @@ MODULE_DESCRIPTION(DRIVER_DESC); +@@ -5015,8 +5173,57 @@ MODULE_DESCRIPTION(DRIVER_DESC); MODULE_AUTHOR(DRIVER_AUTHOR); MODULE_LICENSE("GPL"); diff --git a/target/linux/ramips/patches-4.3/0065-mt7688-fixes.patch b/target/linux/ramips/patches-4.3/0065-mt7688-fixes.patch index 37b149c069..99a8f932e3 100644 --- a/target/linux/ramips/patches-4.3/0065-mt7688-fixes.patch +++ b/target/linux/ramips/patches-4.3/0065-mt7688-fixes.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ralink/mt7620.c +++ b/arch/mips/ralink/mt7620.c -@@ -104,31 +104,31 @@ +@@ -104,31 +104,31 @@ static struct rt2880_pmx_group mt7620a_p }; static struct rt2880_pmx_func pwm1_grp_mt7628[] = { @@ -37,7 +37,7 @@ }; static struct rt2880_pmx_func i2c_grp_mt7628[] = { -@@ -140,21 +140,21 @@ +@@ -140,21 +140,21 @@ static struct rt2880_pmx_func i2c_grp_mt static struct rt2880_pmx_func refclk_grp_mt7628[] = { FUNC("reclk", 0, 36, 1) }; static struct rt2880_pmx_func perst_grp_mt7628[] = { FUNC("perst", 0, 37, 1) }; @@ -62,7 +62,7 @@ }; static struct rt2880_pmx_func i2s_grp_mt7628[] = { -@@ -449,6 +449,8 @@ +@@ -449,6 +449,8 @@ void __init ralink_clk_init(void) ralink_clk_add("10000b00.spi", sys_rate); ralink_clk_add("10000b40.spi", sys_rate); ralink_clk_add("10000c00.uartlite", periph_rate); @@ -71,7 +71,7 @@ ralink_clk_add("10180000.wmac", xtal_rate); if (IS_ENABLED(CONFIG_USB) && -@@ -571,13 +573,13 @@ +@@ -571,13 +573,13 @@ void prom_soc_init(struct ralink_soc_inf cfg0 = __raw_readl(sysc + SYSC_REG_SYSTEM_CONFIG0); |