mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-30 18:47:06 +00:00
kernel/4.3: update to version 4.3.3
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de SVN-Revision: 48224
This commit is contained in:
parent
93b50ade93
commit
cdb83aaf5f
@ -4,12 +4,12 @@ LINUX_RELEASE?=1
|
|||||||
|
|
||||||
LINUX_VERSION-3.18 = .23
|
LINUX_VERSION-3.18 = .23
|
||||||
LINUX_VERSION-4.1 = .15
|
LINUX_VERSION-4.1 = .15
|
||||||
LINUX_VERSION-4.3 =
|
LINUX_VERSION-4.3 = .3
|
||||||
LINUX_VERSION-4.4 =
|
LINUX_VERSION-4.4 =
|
||||||
|
|
||||||
LINUX_KERNEL_MD5SUM-3.18.23 = dc6d265ab38716be3676ac294b481ad8
|
LINUX_KERNEL_MD5SUM-3.18.23 = dc6d265ab38716be3676ac294b481ad8
|
||||||
LINUX_KERNEL_MD5SUM-4.1.15 = b227333912b161c96ff3e30f5041e1c0
|
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
|
LINUX_KERNEL_MD5SUM-4.4 = 9a78fa2eb6c68ca5a40ed5af08142599
|
||||||
|
|
||||||
ifdef KERNEL_PATCHVER
|
ifdef KERNEL_PATCHVER
|
||||||
|
@ -18,11 +18,9 @@ Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
|
|||||||
arch/arc/Kconfig | 2 --
|
arch/arc/Kconfig | 2 --
|
||||||
1 file changed, 2 deletions(-)
|
1 file changed, 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
|
|
||||||
index cf96ef2..f0c6d4c 100644
|
|
||||||
--- a/arch/arc/Kconfig
|
--- a/arch/arc/Kconfig
|
||||||
+++ b/arch/arc/Kconfig
|
+++ b/arch/arc/Kconfig
|
||||||
@@ -11,8 +11,6 @@ config ARC
|
@@ -12,8 +12,6 @@ config ARC
|
||||||
select BUILDTIME_EXTABLE_SORT
|
select BUILDTIME_EXTABLE_SORT
|
||||||
select COMMON_CLK
|
select COMMON_CLK
|
||||||
select CLONE_BACKWARDS
|
select CLONE_BACKWARDS
|
||||||
@ -31,6 +29,3 @@ index cf96ef2..f0c6d4c 100644
|
|||||||
select GENERIC_ATOMIC64
|
select GENERIC_ATOMIC64
|
||||||
select GENERIC_CLOCKEVENTS
|
select GENERIC_CLOCKEVENTS
|
||||||
select GENERIC_FIND_FIRST_BIT
|
select GENERIC_FIND_FIRST_BIT
|
||||||
--
|
|
||||||
2.4.3
|
|
||||||
|
|
||||||
|
@ -19,8 +19,6 @@ Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
|
|||||||
arch/arc/kernel/vmlinux.lds.S | 13 +++++++++++++
|
arch/arc/kernel/vmlinux.lds.S | 13 +++++++++++++
|
||||||
3 files changed, 26 insertions(+), 1 deletion(-)
|
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
|
--- a/arch/arc/kernel/head.S
|
||||||
+++ b/arch/arc/kernel/head.S
|
+++ b/arch/arc/kernel/head.S
|
||||||
@@ -49,6 +49,16 @@
|
@@ -49,6 +49,16 @@
|
||||||
@ -38,13 +36,11 @@ index 689dd86..51154ae 100644
|
|||||||
+END(__image_dtb)
|
+END(__image_dtb)
|
||||||
+
|
+
|
||||||
.section .init.text, "ax",@progbits
|
.section .init.text, "ax",@progbits
|
||||||
|
.type stext, @function
|
||||||
;----------------------------------------------------------------
|
.globl stext
|
||||||
diff --git a/arch/arc/kernel/setup.c b/arch/arc/kernel/setup.c
|
|
||||||
index c33e77c..96fbfd0 100644
|
|
||||||
--- a/arch/arc/kernel/setup.c
|
--- a/arch/arc/kernel/setup.c
|
||||||
+++ b/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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,7 +49,7 @@ index c33e77c..96fbfd0 100644
|
|||||||
void __init setup_arch(char **cmdline_p)
|
void __init setup_arch(char **cmdline_p)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_ARC_UBOOT_SUPPORT
|
#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
|
#endif
|
||||||
{
|
{
|
||||||
/* No, so try the embedded one */
|
/* No, so try the embedded one */
|
||||||
@ -62,8 +58,6 @@ index c33e77c..96fbfd0 100644
|
|||||||
if (!machine_desc)
|
if (!machine_desc)
|
||||||
panic("Embedded DT invalid\n");
|
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
|
--- a/arch/arc/kernel/vmlinux.lds.S
|
||||||
+++ b/arch/arc/kernel/vmlinux.lds.S
|
+++ b/arch/arc/kernel/vmlinux.lds.S
|
||||||
@@ -30,6 +30,19 @@ SECTIONS
|
@@ -30,6 +30,19 @@ SECTIONS
|
||||||
@ -86,6 +80,3 @@ index dd35bde..f309104 100644
|
|||||||
_int_vec_base_lds = .;
|
_int_vec_base_lds = .;
|
||||||
.vector : {
|
.vector : {
|
||||||
*(.vector)
|
*(.vector)
|
||||||
--
|
|
||||||
2.4.3
|
|
||||||
|
|
||||||
|
@ -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;
|
|
@ -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.
|
* 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)
|
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->shared_hcd->state = HC_STATE_RUNNING;
|
||||||
xhci->cmd_ring_state = CMD_RING_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,
|
xhci_dbg_trace(xhci, trace_xhci_dbg_init,
|
||||||
"Finished xhci_run for USB3 roothub");
|
"Finished xhci_run for USB3 roothub");
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -6,7 +6,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
|||||||
|
|
||||||
--- a/net/packet/af_packet.c
|
--- a/net/packet/af_packet.c
|
||||||
+++ b/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)
|
static bool ll_header_truncated(const struct net_device *dev, int len)
|
||||||
{
|
{
|
||||||
/* net device doesn't like empty head */
|
/* net device doesn't like empty head */
|
||||||
|
@ -20,7 +20,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
|
|||||||
|
|
||||||
--- a/drivers/mtd/bcm47xxpart.c
|
--- a/drivers/mtd/bcm47xxpart.c
|
||||||
+++ b/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 */
|
/* Parse block by block looking for magics */
|
||||||
for (offset = 0; offset <= master->size - blocksize;
|
for (offset = 0; offset <= master->size - blocksize;
|
||||||
offset += blocksize) {
|
offset += blocksize) {
|
||||||
|
@ -14,11 +14,9 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
|
|||||||
drivers/mtd/bcm47xxpart.c | 38 ++++++++++++++++++++++----------------
|
drivers/mtd/bcm47xxpart.c | 38 ++++++++++++++++++++++----------------
|
||||||
1 file changed, 22 insertions(+), 16 deletions(-)
|
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
|
--- a/drivers/mtd/bcm47xxpart.c
|
||||||
+++ b/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;
|
uint32_t buf;
|
||||||
size_t bytes_read;
|
size_t bytes_read;
|
||||||
@ -36,7 +34,7 @@ index 4450e74..1ab3451 100644
|
|||||||
goto out_default;
|
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 trx_part = -1;
|
||||||
int last_trx_part = -1;
|
int last_trx_part = -1;
|
||||||
int possible_nvram_sizes[] = { 0x8000, 0xF000, 0x10000, };
|
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
|
* 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 */
|
/* Read beginning of the block */
|
||||||
@ -60,7 +58,7 @@ index 4450e74..1ab3451 100644
|
|||||||
continue;
|
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 */
|
/* Read middle of the block */
|
||||||
@ -76,7 +74,7 @@ index 4450e74..1ab3451 100644
|
|||||||
continue;
|
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];
|
offset = master->size - possible_nvram_sizes[i];
|
||||||
@ -92,6 +90,3 @@ index 4450e74..1ab3451 100644
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
--
|
|
||||||
1.8.4.5
|
|
||||||
|
|
||||||
|
@ -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
|
|
@ -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;
|
|
||||||
}
|
|
@ -48,7 +48,7 @@ Signed-off-by: Petr Štetiar <ynezz@true.cz>
|
|||||||
|
|
||||||
--- a/drivers/net/usb/qmi_wwan.c
|
--- a/drivers/net/usb/qmi_wwan.c
|
||||||
+++ b/drivers/net/usb/qmi_wwan.c
|
+++ b/drivers/net/usb/qmi_wwan.c
|
||||||
@@ -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(0x05c6, 0x9245)}, /* Samsung Gobi 2000 Modem device (VL176) */
|
||||||
{QMI_GOBI_DEVICE(0x03f0, 0x251d)}, /* HP Gobi 2000 Modem device (VP412) */
|
{QMI_GOBI_DEVICE(0x03f0, 0x251d)}, /* HP Gobi 2000 Modem device (VP412) */
|
||||||
{QMI_GOBI_DEVICE(0x05c6, 0x9215)}, /* Acer Gobi 2000 Modem device (VP413) */
|
{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, 0x9265)}, /* Asus Gobi 2000 Modem device (VR305) */
|
||||||
{QMI_GOBI_DEVICE(0x05c6, 0x9235)}, /* Top Global Gobi 2000 Modem device (VR306) */
|
{QMI_GOBI_DEVICE(0x05c6, 0x9235)}, /* Top Global Gobi 2000 Modem device (VR306) */
|
||||||
{QMI_GOBI_DEVICE(0x05c6, 0x9275)}, /* iRex Technologies Gobi 2000 Modem device (VR307) */
|
{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);
|
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
|
/* Workaround to enable dynamic IDs. This disables usbnet
|
||||||
* blacklisting functionality. Which, if required, can be
|
* 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;
|
id->driver_info = (unsigned long)&qmi_wwan_info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
|||||||
#define PACKET_FANOUT_LB 1
|
#define PACKET_FANOUT_LB 1
|
||||||
--- a/net/packet/af_packet.c
|
--- a/net/packet/af_packet.c
|
||||||
+++ b/net/packet/af_packet.c
|
+++ b/net/packet/af_packet.c
|
||||||
@@ -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 sock *sk;
|
||||||
struct sockaddr_pkt *spkt;
|
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
|
* 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;
|
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
|
* 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.
|
* so that this procedure is noop.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
|||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
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;
|
int skb_len = skb->len;
|
||||||
unsigned int snaplen, res;
|
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)))
|
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||||
goto drop;
|
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.h2)) != 32);
|
||||||
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
|
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)))
|
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||||
goto drop;
|
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);
|
mutex_init(&po->pg_vec_lock);
|
||||||
po->rollover = NULL;
|
po->rollover = NULL;
|
||||||
po->prot_hook.func = packet_rcv;
|
po->prot_hook.func = packet_rcv;
|
||||||
@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
|||||||
|
|
||||||
if (sock->type == SOCK_PACKET)
|
if (sock->type == SOCK_PACKET)
|
||||||
po->prot_hook.func = packet_rcv_spkt;
|
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;
|
po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
|||||||
default:
|
default:
|
||||||
return -ENOPROTOOPT;
|
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:
|
case PACKET_VNET_HDR:
|
||||||
val = po->has_vnet_hdr;
|
val = po->has_vnet_hdr;
|
||||||
break;
|
break;
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
{
|
{
|
||||||
--- a/include/net/sch_generic.h
|
--- a/include/net/sch_generic.h
|
||||||
+++ b/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 pfifo_fast_ops;
|
||||||
extern struct Qdisc_ops mq_qdisc_ops;
|
extern struct Qdisc_ops mq_qdisc_ops;
|
||||||
extern struct Qdisc_ops noqueue_qdisc_ops;
|
extern struct Qdisc_ops noqueue_qdisc_ops;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/net/sched/sch_api.c
|
--- a/net/sched/sch_api.c
|
||||||
+++ b/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;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,7 +143,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
static const struct rt6_info ip6_blk_hole_entry_template = {
|
static const struct rt6_info ip6_blk_hole_entry_template = {
|
||||||
.dst = {
|
.dst = {
|
||||||
.__refcnt = ATOMIC_INIT(1),
|
.__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.output = ip6_pkt_prohibit_out;
|
||||||
rt->dst.input = ip6_pkt_prohibit;
|
rt->dst.input = ip6_pkt_prohibit;
|
||||||
break;
|
break;
|
||||||
@ -155,7 +155,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
case RTN_THROW:
|
case RTN_THROW:
|
||||||
case RTN_UNREACHABLE:
|
case RTN_UNREACHABLE:
|
||||||
default:
|
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);
|
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.
|
* 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 ||
|
if (rtm->rtm_type == RTN_UNREACHABLE ||
|
||||||
rtm->rtm_type == RTN_BLACKHOLE ||
|
rtm->rtm_type == RTN_BLACKHOLE ||
|
||||||
rtm->rtm_type == RTN_PROHIBIT ||
|
rtm->rtm_type == RTN_PROHIBIT ||
|
||||||
@ -183,7 +183,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
cfg->fc_flags |= RTF_REJECT;
|
cfg->fc_flags |= RTF_REJECT;
|
||||||
|
|
||||||
if (rtm->rtm_type == RTN_LOCAL)
|
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:
|
case -EACCES:
|
||||||
rtm->rtm_type = RTN_PROHIBIT;
|
rtm->rtm_type = RTN_PROHIBIT;
|
||||||
break;
|
break;
|
||||||
@ -193,7 +193,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
case -EAGAIN:
|
case -EAGAIN:
|
||||||
rtm->rtm_type = RTN_THROW;
|
rtm->rtm_type = RTN_THROW;
|
||||||
break;
|
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
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
|
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
|
||||||
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
|
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
|
||||||
@ -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->dst.dev = dev;
|
||||||
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
|
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
|
||||||
#endif
|
#endif
|
||||||
@@ -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;
|
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
||||||
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
||||||
ip6_template_metrics, true);
|
ip6_template_metrics, true);
|
||||||
@ -220,7 +220,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
net->ipv6.sysctl.flush_delay = 0;
|
net->ipv6.sysctl.flush_delay = 0;
|
||||||
@@ -3586,6 +3636,8 @@ out:
|
@@ -3602,6 +3652,8 @@ out:
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
@ -229,7 +229,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
out_ip6_prohibit_entry:
|
out_ip6_prohibit_entry:
|
||||||
kfree(net->ipv6.ip6_prohibit_entry);
|
kfree(net->ipv6.ip6_prohibit_entry);
|
||||||
out_ip6_null_entry:
|
out_ip6_null_entry:
|
||||||
@@ -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
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
kfree(net->ipv6.ip6_prohibit_entry);
|
kfree(net->ipv6.ip6_prohibit_entry);
|
||||||
kfree(net->ipv6.ip6_blk_hole_entry);
|
kfree(net->ipv6.ip6_blk_hole_entry);
|
||||||
@ -237,7 +237,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
#endif
|
#endif
|
||||||
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
|
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_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||||
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
|
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
|
||||||
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||||
|
@ -13,10 +13,8 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
|
|||||||
arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | 2 ++
|
arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | 2 ++
|
||||||
1 file changed, 2 insertions(+)
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
|
--- a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -260,6 +260,8 @@
|
@@ -260,6 +260,8 @@
|
||||||
swbst_reg: swbst {
|
swbst_reg: swbst {
|
||||||
regulator-min-microvolt = <5000000>;
|
regulator-min-microvolt = <5000000>;
|
||||||
|
@ -9,10 +9,8 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
|
|||||||
arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | 2 +-
|
arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | 2 +-
|
||||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
|
--- a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -247,7 +247,7 @@
|
@@ -247,7 +247,7 @@
|
||||||
&ldb {
|
&ldb {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
@ -22,10 +20,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
|
|||||||
fsl,data-mapping = "spwg";
|
fsl,data-mapping = "spwg";
|
||||||
fsl,data-width = <18>;
|
fsl,data-width = <18>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
|
--- a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -338,7 +338,7 @@
|
@@ -338,7 +338,7 @@
|
||||||
&ldb {
|
&ldb {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
@ -20,10 +20,8 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
|
|||||||
arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | 7 +++++++
|
arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | 7 +++++++
|
||||||
3 files changed, 21 insertions(+)
|
3 files changed, 21 insertions(+)
|
||||||
|
|
||||||
Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
|
--- a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -151,6 +151,13 @@
|
@@ -151,6 +151,13 @@
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -38,10 +36,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
|
|||||||
&fec {
|
&fec {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&pinctrl_enet>;
|
pinctrl-0 = <&pinctrl_enet>;
|
||||||
Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
|
--- a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -152,6 +152,13 @@
|
@@ -152,6 +152,13 @@
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -56,10 +52,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
|
|||||||
&fec {
|
&fec {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&pinctrl_enet>;
|
pinctrl-0 = <&pinctrl_enet>;
|
||||||
Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
|
--- a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -142,6 +142,13 @@
|
@@ -142,6 +142,13 @@
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
|
--- a/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -174,6 +174,24 @@
|
@@ -174,6 +174,24 @@
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -52,10 +50,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
|
|||||||
pinctrl_uart1: uart1grp {
|
pinctrl_uart1: uart1grp {
|
||||||
fsl,pins = <
|
fsl,pins = <
|
||||||
MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
|
MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
|
||||||
Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
|
--- a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -282,6 +282,18 @@
|
@@ -282,6 +282,18 @@
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -94,10 +90,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
|
|||||||
pinctrl_pwm4: pwm4grp {
|
pinctrl_pwm4: pwm4grp {
|
||||||
fsl,pins = <
|
fsl,pins = <
|
||||||
MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1
|
MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1
|
||||||
Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
|
--- a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -287,6 +287,18 @@
|
@@ -287,6 +287,18 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -136,10 +130,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
|
|||||||
pinctrl_pwm4: pwm4grp {
|
pinctrl_pwm4: pwm4grp {
|
||||||
fsl,pins = <
|
fsl,pins = <
|
||||||
MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1
|
MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1
|
||||||
Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
|
--- a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -378,6 +378,24 @@
|
@@ -378,6 +378,24 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -190,10 +182,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
|
|||||||
pinctrl_pwm4: pwm4grp {
|
pinctrl_pwm4: pwm4grp {
|
||||||
fsl,pins = <
|
fsl,pins = <
|
||||||
MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1
|
MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1
|
||||||
Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw551x.dtsi
|
--- a/arch/arm/boot/dts/imx6qdl-gw551x.dtsi
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -198,6 +198,18 @@
|
@@ -198,6 +198,18 @@
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -232,10 +222,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw551x.dtsi
|
|||||||
pinctrl_uart2: uart2grp {
|
pinctrl_uart2: uart2grp {
|
||||||
fsl,pins = <
|
fsl,pins = <
|
||||||
MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1
|
MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1
|
||||||
Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw552x.dtsi
|
--- a/arch/arm/boot/dts/imx6qdl-gw552x.dtsi
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -164,6 +164,18 @@
|
@@ -164,6 +164,18 @@
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
|
--- a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -158,6 +158,14 @@
|
@@ -158,6 +158,14 @@
|
||||||
<&clks IMX6QDL_CLK_PLL3_USB_OTG>;
|
<&clks IMX6QDL_CLK_PLL3_USB_OTG>;
|
||||||
};
|
};
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
Index: linux-4.3/drivers/thermal/imx_thermal.c
|
--- a/drivers/thermal/imx_thermal.c
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -55,6 +55,7 @@
|
@@ -55,6 +55,7 @@
|
||||||
#define TEMPSENSE2_PANIC_VALUE_SHIFT 16
|
#define TEMPSENSE2_PANIC_VALUE_SHIFT 16
|
||||||
#define TEMPSENSE2_PANIC_VALUE_MASK 0xfff0000
|
#define TEMPSENSE2_PANIC_VALUE_MASK 0xfff0000
|
||||||
@ -10,7 +8,7 @@ Index: linux-4.3/drivers/thermal/imx_thermal.c
|
|||||||
#define OCOTP_ANA1 0x04e0
|
#define OCOTP_ANA1 0x04e0
|
||||||
|
|
||||||
/* The driver supports 1 passive trip point and 1 critical trip point */
|
/* 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,
|
IMX_TRIP_NUM,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -23,7 +21,7 @@ Index: linux-4.3/drivers/thermal/imx_thermal.c
|
|||||||
#define IMX_POLLING_DELAY 2000 /* millisecond */
|
#define IMX_POLLING_DELAY 2000 /* millisecond */
|
||||||
#define IMX_PASSIVE_DELAY 1000
|
#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() */
|
u32 c1, c2; /* See formula in imx_get_sensor_data() */
|
||||||
int temp_passive;
|
int temp_passive;
|
||||||
int temp_critical;
|
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,
|
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;
|
struct imx_thermal_data *data = tz->devdata;
|
||||||
|
|
||||||
@ -52,7 +50,7 @@ Index: linux-4.3/drivers/thermal/imx_thermal.c
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
data->temp_passive = temp;
|
data->temp_passive = temp;
|
||||||
@@ -404,17 +403,39 @@
|
@@ -404,17 +403,39 @@ static int imx_get_sensor_data(struct pl
|
||||||
data->c1 = temp64;
|
data->c1 = temp64;
|
||||||
data->c2 = n1 * data->c1 + 1000 * t1;
|
data->c2 = n1 * data->c1 + 1000 * t1;
|
||||||
|
|
||||||
@ -100,7 +98,7 @@ Index: linux-4.3/drivers/thermal/imx_thermal.c
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -559,6 +580,11 @@
|
@@ -559,6 +580,11 @@ static int imx_thermal_probe(struct plat
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
Index: linux-4.3/arch/arm/boot/dts/imx6dl-wandboard.dts
|
--- a/arch/arm/boot/dts/imx6dl-wandboard.dts
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -19,4 +19,8 @@
|
@@ -19,4 +19,8 @@
|
||||||
memory {
|
memory {
|
||||||
reg = <0x10000000 0x40000000>;
|
reg = <0x10000000 0x40000000>;
|
||||||
|
@ -8,11 +8,9 @@ Date: Thu May 15 00:12:26 2014 -0700
|
|||||||
|
|
||||||
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
|
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
|
||||||
|
|
||||||
Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c
|
--- a/drivers/net/ethernet/intel/igb/e1000_phy.c
|
||||||
===================================================================
|
+++ b/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
|
@@ -129,7 +129,7 @@ out:
|
||||||
+++ linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c 2015-12-18 10:43:28.000000000 -0800
|
|
||||||
@@ -129,7 +129,7 @@
|
|
||||||
s32 igb_read_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 *data)
|
s32 igb_read_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 *data)
|
||||||
{
|
{
|
||||||
struct e1000_phy_info *phy = &hw->phy;
|
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;
|
s32 ret_val = 0;
|
||||||
|
|
||||||
if (offset > MAX_PHY_REG_ADDRESS) {
|
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
|
* Control register. The MAC will take care of interfacing with the
|
||||||
* PHY to retrieve the desired data.
|
* 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
|
/* Poll the ready bit to see if the MDI read completed
|
||||||
* Increasing the time out as testing showed failures with
|
* 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;
|
*data = (u16) mdic;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
@ -69,7 +67,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c
|
|||||||
return ret_val;
|
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)
|
s32 igb_write_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 data)
|
||||||
{
|
{
|
||||||
struct e1000_phy_info *phy = &hw->phy;
|
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;
|
s32 ret_val = 0;
|
||||||
|
|
||||||
if (offset > MAX_PHY_REG_ADDRESS) {
|
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
|
* Control register. The MAC will take care of interfacing with the
|
||||||
* PHY to retrieve the desired data.
|
* 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
|
/* Poll the ready bit to see if the MDI read completed
|
||||||
* Increasing the time out as testing showed failures with
|
* 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:
|
out:
|
||||||
|
@ -14,11 +14,9 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
|
|||||||
drivers/net/ethernet/intel/igb/e1000_phy.h | 6 ++-
|
drivers/net/ethernet/intel/igb/e1000_phy.h | 6 ++-
|
||||||
3 files changed, 58 insertions(+), 26 deletions(-)
|
3 files changed, 58 insertions(+), 26 deletions(-)
|
||||||
|
|
||||||
Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_82575.c
|
--- a/drivers/net/ethernet/intel/igb/e1000_82575.c
|
||||||
===================================================================
|
+++ b/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
|
@@ -2153,7 +2153,7 @@ static s32 igb_read_phy_reg_82580(struct
|
||||||
+++ linux-4.3/drivers/net/ethernet/intel/igb/e1000_82575.c 2015-12-18 10:43:28.000000000 -0800
|
|
||||||
@@ -2153,7 +2153,7 @@
|
|
||||||
if (ret_val)
|
if (ret_val)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
@ -27,7 +25,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_82575.c
|
|||||||
|
|
||||||
hw->phy.ops.release(hw);
|
hw->phy.ops.release(hw);
|
||||||
|
|
||||||
@@ -2178,7 +2178,7 @@
|
@@ -2178,7 +2178,7 @@ static s32 igb_write_phy_reg_82580(struc
|
||||||
if (ret_val)
|
if (ret_val)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
@ -36,11 +34,9 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_82575.c
|
|||||||
|
|
||||||
hw->phy.ops.release(hw);
|
hw->phy.ops.release(hw);
|
||||||
|
|
||||||
Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c
|
--- a/drivers/net/ethernet/intel/igb/e1000_phy.c
|
||||||
===================================================================
|
+++ b/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
|
@@ -126,9 +126,8 @@ out:
|
||||||
+++ linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c 2015-12-18 10:39:44.939158318 -0800
|
|
||||||
@@ -126,9 +126,8 @@
|
|
||||||
* Reads the MDI control regsiter in the PHY at offset and stores the
|
* Reads the MDI control regsiter in the PHY at offset and stores the
|
||||||
* information read to data.
|
* 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;
|
u32 i, mdicnfg, mdic = 0;
|
||||||
s32 ret_val = 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:
|
case e1000_i211:
|
||||||
mdicnfg = rd32(E1000_MDICNFG);
|
mdicnfg = rd32(E1000_MDICNFG);
|
||||||
mdicnfg &= ~(E1000_MDICNFG_PHY_MASK);
|
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));
|
(E1000_MDIC_OP_READ));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -208,9 +207,8 @@
|
@@ -208,9 +207,8 @@ out:
|
||||||
*
|
*
|
||||||
* Writes data to MDI control register in the PHY at offset.
|
* 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;
|
u32 i, mdicnfg, mdic = 0;
|
||||||
s32 ret_val = 0;
|
s32 ret_val = 0;
|
||||||
|
|
||||||
@@ -229,7 +227,7 @@
|
@@ -229,7 +227,7 @@ s32 igb_write_phy_reg_mdic(struct e1000_
|
||||||
case e1000_i211:
|
case e1000_i211:
|
||||||
mdicnfg = rd32(E1000_MDICNFG);
|
mdicnfg = rd32(E1000_MDICNFG);
|
||||||
mdicnfg &= ~(E1000_MDICNFG_PHY_MASK);
|
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);
|
wr32(E1000_MDICNFG, mdicnfg);
|
||||||
mdic = (((u32)data) |
|
mdic = (((u32)data) |
|
||||||
(offset << E1000_MDIC_REG_SHIFT) |
|
(offset << E1000_MDIC_REG_SHIFT) |
|
||||||
@@ -238,7 +236,7 @@
|
@@ -238,7 +236,7 @@ s32 igb_write_phy_reg_mdic(struct e1000_
|
||||||
default:
|
default:
|
||||||
mdic = (((u32)data) |
|
mdic = (((u32)data) |
|
||||||
(offset << E1000_MDIC_REG_SHIFT) |
|
(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));
|
(E1000_MDIC_OP_WRITE));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -458,7 +456,7 @@
|
@@ -458,7 +456,7 @@ s32 igb_read_phy_reg_igp(struct e1000_hw
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (offset > MAX_PHY_MULTI_PAGE_REG) {
|
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,
|
IGP01E1000_PHY_PAGE_SELECT,
|
||||||
(u16)offset);
|
(u16)offset);
|
||||||
if (ret_val) {
|
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);
|
hw->phy.ops.release(hw);
|
||||||
|
|
||||||
@@ -497,7 +495,7 @@
|
@@ -497,7 +495,7 @@ s32 igb_write_phy_reg_igp(struct e1000_h
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (offset > MAX_PHY_MULTI_PAGE_REG) {
|
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,
|
IGP01E1000_PHY_PAGE_SELECT,
|
||||||
(u16)offset);
|
(u16)offset);
|
||||||
if (ret_val) {
|
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);
|
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
|
* @offset: lower half is register offset to write to
|
||||||
* upper half is page to use.
|
* upper half is page to use.
|
||||||
* @data: data to write at register offset
|
* @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
|
* Acquires semaphore, if necessary, then writes the data to PHY register
|
||||||
* at the offset. Release any acquired semaphores before exiting.
|
* 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;
|
s32 ret_val;
|
||||||
u16 page = offset >> GS40G_PAGE_SHIFT;
|
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)
|
if (ret_val)
|
||||||
return ret_val;
|
return ret_val;
|
||||||
|
|
||||||
@ -170,7 +166,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c
|
|||||||
|
|
||||||
release:
|
release:
|
||||||
hw->phy.ops.release(hw);
|
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
|
* @offset: lower half is register offset to read to
|
||||||
* upper half is page to use.
|
* upper half is page to use.
|
||||||
* @data: data to read at register offset
|
* @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
|
* Acquires semaphore, if necessary, then reads the data in the PHY register
|
||||||
* at the offset. Release any acquired semaphores before exiting.
|
* 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;
|
s32 ret_val;
|
||||||
u16 page = offset >> GS40G_PAGE_SHIFT;
|
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)
|
if (ret_val)
|
||||||
return ret_val;
|
return ret_val;
|
||||||
|
|
||||||
@ -218,7 +214,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.c
|
|||||||
|
|
||||||
release:
|
release:
|
||||||
hw->phy.ops.release(hw);
|
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
|
* igb_set_master_slave_mode - Setup PHY for Master/slave mode
|
||||||
* @hw: pointer to the HW structure
|
* @hw: pointer to the HW structure
|
||||||
*
|
*
|
||||||
Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.h
|
--- a/drivers/net/ethernet/intel/igb/e1000_phy.h
|
||||||
===================================================================
|
+++ b/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
|
@@ -62,8 +62,8 @@ void igb_power_up_phy_copper(struct e100
|
||||||
+++ linux-4.3/drivers/net/ethernet/intel/igb/e1000_phy.h 2015-12-18 10:39:44.939158318 -0800
|
|
||||||
@@ -62,8 +62,8 @@
|
|
||||||
void igb_power_down_phy_copper(struct e1000_hw *hw);
|
void igb_power_down_phy_copper(struct e1000_hw *hw);
|
||||||
s32 igb_phy_init_script_igp3(struct e1000_hw *hw);
|
s32 igb_phy_init_script_igp3(struct e1000_hw *hw);
|
||||||
s32 igb_initialize_M88E1512_phy(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_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_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);
|
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_get_cable_length_82580(struct e1000_hw *hw);
|
||||||
s32 igb_read_phy_reg_gs40g(struct e1000_hw *hw, u32 offset, u16 *data);
|
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);
|
s32 igb_write_phy_reg_gs40g(struct e1000_hw *hw, u32 offset, u16 data);
|
||||||
|
@ -21,11 +21,9 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
|
|||||||
drivers/net/ethernet/intel/igb/igb_main.c | 168 ++++++++++++++++++++++++++-
|
drivers/net/ethernet/intel/igb/igb_main.c | 168 ++++++++++++++++++++++++++-
|
||||||
3 files changed, 185 insertions(+), 5 deletions(-)
|
3 files changed, 185 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_82575.c
|
--- a/drivers/net/ethernet/intel/igb/e1000_82575.c
|
||||||
===================================================================
|
+++ b/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
|
@@ -612,13 +612,25 @@ static s32 igb_get_invariants_82575(stru
|
||||||
+++ linux-4.3/drivers/net/ethernet/intel/igb/e1000_82575.c 2015-12-18 10:39:44.943158318 -0800
|
|
||||||
@@ -612,13 +612,25 @@
|
|
||||||
switch (link_mode) {
|
switch (link_mode) {
|
||||||
case E1000_CTRL_EXT_LINK_MODE_1000BASE_KX:
|
case E1000_CTRL_EXT_LINK_MODE_1000BASE_KX:
|
||||||
hw->phy.media_type = e1000_media_type_internal_serdes;
|
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 */
|
/* fall through for I2C based SGMII */
|
||||||
case E1000_CTRL_EXT_LINK_MODE_PCIE_SERDES:
|
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;
|
hw->phy.media_type = e1000_media_type_copper;
|
||||||
dev_spec->sgmii_active = true;
|
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 */
|
/* do not change link mode for 100BaseFX */
|
||||||
Index: linux-4.3/drivers/net/ethernet/intel/igb/e1000_hw.h
|
--- a/drivers/net/ethernet/intel/igb/e1000_hw.h
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -27,6 +27,7 @@
|
@@ -27,6 +27,7 @@
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/io.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_regs.h"
|
||||||
#include "e1000_defines.h"
|
#include "e1000_defines.h"
|
||||||
@@ -543,6 +544,12 @@
|
@@ -543,6 +544,12 @@ struct e1000_hw {
|
||||||
struct e1000_mbx_info mbx;
|
struct e1000_mbx_info mbx;
|
||||||
struct e1000_host_mng_dhcp_cookie mng_cookie;
|
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 {
|
union {
|
||||||
struct e1000_dev_spec_82575 _82575;
|
struct e1000_dev_spec_82575 _82575;
|
||||||
} dev_spec;
|
} dev_spec;
|
||||||
Index: linux-4.3/drivers/net/ethernet/intel/igb/igb_main.c
|
--- a/drivers/net/ethernet/intel/igb/igb_main.c
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -41,6 +41,7 @@
|
@@ -41,6 +41,7 @@
|
||||||
#include <linux/if_vlan.h>
|
#include <linux/if_vlan.h>
|
||||||
#include <linux/pci.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/delay.h>
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/ip.h>
|
#include <linux/ip.h>
|
||||||
@@ -2223,6 +2224,126 @@
|
@@ -2223,6 +2224,126 @@ static s32 igb_init_i2c(struct igb_adapt
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -227,7 +221,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/igb_main.c
|
|||||||
/**
|
/**
|
||||||
* igb_probe - Device Initialization Routine
|
* igb_probe - Device Initialization Routine
|
||||||
* @pdev: PCI device information struct
|
* @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);
|
pm_runtime_put_noidle(&pdev->dev);
|
||||||
@ -241,7 +235,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/igb_main.c
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err_register:
|
err_register:
|
||||||
@@ -2792,6 +2920,10 @@
|
@@ -2792,6 +2920,10 @@ static void igb_remove(struct pci_dev *p
|
||||||
struct e1000_hw *hw = &adapter->hw;
|
struct e1000_hw *hw = &adapter->hw;
|
||||||
|
|
||||||
pm_runtime_get_noresume(&pdev->dev);
|
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
|
#ifdef CONFIG_IGB_HWMON
|
||||||
igb_sysfs_exit(adapter);
|
igb_sysfs_exit(adapter);
|
||||||
#endif
|
#endif
|
||||||
@@ -3105,6 +3237,12 @@
|
@@ -3105,6 +3237,12 @@ static int __igb_open(struct net_device
|
||||||
if (!resuming)
|
if (!resuming)
|
||||||
pm_runtime_put(&pdev->dev);
|
pm_runtime_put(&pdev->dev);
|
||||||
|
|
||||||
@ -265,7 +259,7 @@ Index: linux-4.3/drivers/net/ethernet/intel/igb/igb_main.c
|
|||||||
/* start the watchdog. */
|
/* start the watchdog. */
|
||||||
hw->mac.get_link_status = 1;
|
hw->mac.get_link_status = 1;
|
||||||
schedule_work(&adapter->watchdog_task);
|
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)
|
static int igb_mii_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
|
||||||
{
|
{
|
||||||
struct igb_adapter *adapter = netdev_priv(netdev);
|
struct igb_adapter *adapter = netdev_priv(netdev);
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
Index: linux-4.3/drivers/net/phy/Kconfig
|
--- a/drivers/net/phy/Kconfig
|
||||||
===================================================================
|
+++ b/drivers/net/phy/Kconfig
|
||||||
--- linux-4.3.orig/drivers/net/phy/Kconfig 2015-12-18 10:39:44.371158315 -0800
|
@@ -309,6 +309,14 @@ endif # RTL8366_SMI
|
||||||
+++ linux-4.3/drivers/net/phy/Kconfig 2015-12-18 10:39:44.951158318 -0800
|
|
||||||
@@ -309,6 +309,14 @@
|
|
||||||
|
|
||||||
source "drivers/net/phy/b53/Kconfig"
|
source "drivers/net/phy/b53/Kconfig"
|
||||||
|
|
||||||
@ -17,11 +15,9 @@ Index: linux-4.3/drivers/net/phy/Kconfig
|
|||||||
endif # PHYLIB
|
endif # PHYLIB
|
||||||
|
|
||||||
config MICREL_KS8995MA
|
config MICREL_KS8995MA
|
||||||
Index: linux-4.3/drivers/net/phy/Makefile
|
--- a/drivers/net/phy/Makefile
|
||||||
===================================================================
|
+++ b/drivers/net/phy/Makefile
|
||||||
--- linux-4.3.orig/drivers/net/phy/Makefile 2015-12-18 10:39:44.371158315 -0800
|
@@ -44,6 +44,7 @@ obj-$(CONFIG_DP83848_PHY) += dp83848.o
|
||||||
+++ linux-4.3/drivers/net/phy/Makefile 2015-12-18 10:39:44.951158318 -0800
|
|
||||||
@@ -44,6 +44,7 @@
|
|
||||||
obj-$(CONFIG_DP83867_PHY) += dp83867.o
|
obj-$(CONFIG_DP83867_PHY) += dp83867.o
|
||||||
obj-$(CONFIG_STE10XP) += ste10Xp.o
|
obj-$(CONFIG_STE10XP) += ste10Xp.o
|
||||||
obj-$(CONFIG_MICREL_PHY) += micrel.o
|
obj-$(CONFIG_MICREL_PHY) += micrel.o
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
|
--- a/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -158,6 +158,11 @@
|
@@ -158,6 +158,11 @@
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&pinctrl_i2c2>;
|
pinctrl-0 = <&pinctrl_i2c2>;
|
||||||
@ -14,10 +12,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c3 {
|
&i2c3 {
|
||||||
Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
|
--- a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -233,6 +233,11 @@
|
@@ -233,6 +233,11 @@
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&pinctrl_i2c2>;
|
pinctrl-0 = <&pinctrl_i2c2>;
|
||||||
@ -30,10 +26,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c3 {
|
&i2c3 {
|
||||||
Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
|
--- a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -226,6 +226,11 @@
|
@@ -226,6 +226,11 @@
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&pinctrl_i2c2>;
|
pinctrl-0 = <&pinctrl_i2c2>;
|
||||||
@ -46,10 +40,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c3 {
|
&i2c3 {
|
||||||
Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
|
--- a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -317,6 +317,11 @@
|
@@ -317,6 +317,11 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
Index: linux-4.3/drivers/i2c/busses/i2c-imx.c
|
--- a/drivers/i2c/busses/i2c-imx.c
|
||||||
===================================================================
|
+++ b/drivers/i2c/busses/i2c-imx.c
|
||||||
--- linux-4.3.orig/drivers/i2c/busses/i2c-imx.c 2015-11-01 16:05:25.000000000 -0800
|
@@ -461,6 +461,8 @@ static int i2c_imx_acked(struct imx_i2c_
|
||||||
+++ linux-4.3/drivers/i2c/busses/i2c-imx.c 2015-12-18 10:39:44.971158318 -0800
|
|
||||||
@@ -461,6 +461,8 @@
|
|
||||||
{
|
{
|
||||||
if (imx_i2c_read_reg(i2c_imx, IMX_I2C_I2SR) & I2SR_RXAK) {
|
if (imx_i2c_read_reg(i2c_imx, IMX_I2C_I2SR) & I2SR_RXAK) {
|
||||||
dev_dbg(&i2c_imx->adapter.dev, "<%s> No ACK\n", __func__);
|
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 */
|
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.nr = pdev->id;
|
||||||
i2c_imx->adapter.dev.of_node = pdev->dev.of_node;
|
i2c_imx->adapter.dev.of_node = pdev->dev.of_node;
|
||||||
i2c_imx->base = base;
|
i2c_imx->base = base;
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
Index: linux-4.3/drivers/net/ethernet/marvell/sky2.c
|
--- a/drivers/net/ethernet/marvell/sky2.c
|
||||||
===================================================================
|
+++ b/drivers/net/ethernet/marvell/sky2.c
|
||||||
--- linux-4.3.orig/drivers/net/ethernet/marvell/sky2.c 2015-11-01 16:05:25.000000000 -0800
|
@@ -4812,7 +4812,24 @@ static struct net_device *sky2_init_netd
|
||||||
+++ linux-4.3/drivers/net/ethernet/marvell/sky2.c 2015-12-18 10:39:44.983158318 -0800
|
|
||||||
@@ -4812,7 +4812,24 @@
|
|
||||||
* 1) from device tree data
|
* 1) from device tree data
|
||||||
* 2) from internal registers set by bootloader
|
* 2) from internal registers set by bootloader
|
||||||
*/
|
*/
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
|
--- a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -15,6 +15,7 @@
|
@@ -15,6 +15,7 @@
|
||||||
/* these are used by bootloader for disabling nodes */
|
/* these are used by bootloader for disabling nodes */
|
||||||
aliases {
|
aliases {
|
||||||
@ -10,10 +8,8 @@ Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
|
|||||||
led0 = &led0;
|
led0 = &led0;
|
||||||
led1 = &led1;
|
led1 = &led1;
|
||||||
led2 = &led2;
|
led2 = &led2;
|
||||||
Index: linux-4.3/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
|
--- a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
|
||||||
===================================================================
|
+++ b/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
|
|
||||||
@@ -15,6 +15,7 @@
|
@@ -15,6 +15,7 @@
|
||||||
/* these are used by bootloader for disabling nodes */
|
/* these are used by bootloader for disabling nodes */
|
||||||
aliases {
|
aliases {
|
||||||
|
@ -9,9 +9,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||||||
1 file changed, 197 insertions(+)
|
1 file changed, 197 insertions(+)
|
||||||
create mode 100644 arch/mips/configs/mt7621_defconfig
|
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
|
--- /dev/null
|
||||||
+++ b/arch/mips/configs/mt7621_defconfig
|
+++ b/arch/mips/configs/mt7621_defconfig
|
||||||
@@ -0,0 +1,197 @@
|
@@ -0,0 +1,197 @@
|
||||||
@ -212,6 +209,3 @@ index 0000000..7719471
|
|||||||
+CONFIG_CRC32_SARWATE=y
|
+CONFIG_CRC32_SARWATE=y
|
||||||
+# CONFIG_XZ_DEC_X86 is not set
|
+# CONFIG_XZ_DEC_X86 is not set
|
||||||
+CONFIG_AVERAGE=y
|
+CONFIG_AVERAGE=y
|
||||||
--
|
|
||||||
1.7.10.4
|
|
||||||
|
|
||||||
|
@ -11,8 +11,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||||||
arch/mips/ralink/early_printk.c | 25 +++++++++++++++++++++++++
|
arch/mips/ralink/early_printk.c | 25 +++++++++++++++++++++++++
|
||||||
1 file changed, 25 insertions(+)
|
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
|
--- a/arch/mips/ralink/early_printk.c
|
||||||
+++ b/arch/mips/ralink/early_printk.c
|
+++ b/arch/mips/ralink/early_printk.c
|
||||||
@@ -25,11 +25,13 @@
|
@@ -25,11 +25,13 @@
|
||||||
@ -61,6 +59,3 @@ index 255d695..c04ee53 100644
|
|||||||
if (IS_ENABLED(CONFIG_SOC_MT7621) || soc_is_mt7628()) {
|
if (IS_ENABLED(CONFIG_SOC_MT7621) || soc_is_mt7628()) {
|
||||||
uart_w32(ch, UART_TX);
|
uart_w32(ch, UART_TX);
|
||||||
while ((uart_r32(UART_REG_LSR) & UART_LSR_THRE) == 0)
|
while ((uart_r32(UART_REG_LSR) & UART_LSR_THRE) == 0)
|
||||||
--
|
|
||||||
1.7.10.4
|
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||||||
+};
|
+};
|
||||||
--- a/drivers/phy/Kconfig
|
--- a/drivers/phy/Kconfig
|
||||||
+++ b/drivers/phy/Kconfig
|
+++ b/drivers/phy/Kconfig
|
||||||
@@ -331,6 +331,14 @@
|
@@ -331,6 +331,14 @@ config PHY_XGENE
|
||||||
help
|
help
|
||||||
This option enables support for APM X-Gene SoC multi-purpose PHY.
|
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
|
depends on RESET_CONTROLLER
|
||||||
--- a/drivers/phy/Makefile
|
--- a/drivers/phy/Makefile
|
||||||
+++ b/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_TUSB1210) += phy-tusb1210.o
|
||||||
obj-$(CONFIG_PHY_BRCMSTB_SATA) += phy-brcmstb-sata.o
|
obj-$(CONFIG_PHY_BRCMSTB_SATA) += phy-brcmstb-sata.o
|
||||||
obj-$(CONFIG_PHY_PISTACHIO_USB) += phy-pistachio-usb.o
|
obj-$(CONFIG_PHY_PISTACHIO_USB) += phy-pistachio-usb.o
|
||||||
|
@ -5391,7 +5391,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||||||
/* TODO: copied from ehci-hcd.c - can this be refactored? */
|
/* TODO: copied from ehci-hcd.c - can this be refactored? */
|
||||||
/*
|
/*
|
||||||
* xhci_handshake - spin reading hc until handshake completes or fails
|
* 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;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5400,7 +5400,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||||||
static int xhci_free_msi(struct xhci_hcd *xhci)
|
static int xhci_free_msi(struct xhci_hcd *xhci)
|
||||||
{
|
{
|
||||||
int i;
|
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");
|
"Attempting compliance mode recovery");
|
||||||
hcd = xhci->shared_hcd;
|
hcd = xhci->shared_hcd;
|
||||||
|
|
||||||
@ -5412,7 +5412,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||||||
if (hcd->state == HC_STATE_SUSPENDED)
|
if (hcd->state == HC_STATE_SUSPENDED)
|
||||||
usb_hcd_resume_root_hub(hcd);
|
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;
|
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_product_name = dmi_get_system_info(DMI_PRODUCT_NAME);
|
||||||
dmi_sys_vendor = dmi_get_system_info(DMI_SYS_VENDOR);
|
dmi_sys_vendor = dmi_get_system_info(DMI_SYS_VENDOR);
|
||||||
if (!dmi_product_name || !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_dbg_trace(xhci, trace_xhci_dbg_init,
|
||||||
"xHCI doesn't need link TRB QUIRK");
|
"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);
|
retval = xhci_mem_init(xhci, GFP_KERNEL);
|
||||||
xhci_dbg_trace(xhci, trace_xhci_dbg_init, "Finished xhci_init");
|
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");
|
"// Set the interrupt modulation register");
|
||||||
temp = readl(&xhci->ir_set->irq_control);
|
temp = readl(&xhci->ir_set->irq_control);
|
||||||
temp &= ~ER_IRQ_INTERVAL_MASK;
|
temp &= ~ER_IRQ_INTERVAL_MASK;
|
||||||
@ -5445,7 +5445,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||||||
writel(temp, &xhci->ir_set->irq_control);
|
writel(temp, &xhci->ir_set->irq_control);
|
||||||
|
|
||||||
/* Set the HCD state before we enable the irqs */
|
/* 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,
|
xhci_queue_vendor_command(xhci, command, 0, 0, 0,
|
||||||
TRB_TYPE(TRB_NEC_GET_FW));
|
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,
|
xhci_dbg_trace(xhci, trace_xhci_dbg_init,
|
||||||
"Finished xhci_run for USB2 roothub");
|
"Finished xhci_run for USB2 roothub");
|
||||||
return 0;
|
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 drop_flag;
|
||||||
u32 new_add_flags, new_drop_flags;
|
u32 new_add_flags, new_drop_flags;
|
||||||
int ret;
|
int ret;
|
||||||
@ -5470,7 +5470,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||||||
|
|
||||||
ret = xhci_check_args(hcd, udev, ep, 1, true, __func__);
|
ret = xhci_check_args(hcd, udev, ep, 1, true, __func__);
|
||||||
if (ret <= 0)
|
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);
|
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",
|
xhci_dbg(xhci, "drop ep 0x%x, slot id %d, new drop flags = %#x, new add flags = %#x\n",
|
||||||
(unsigned int) ep->desc.bEndpointAddress,
|
(unsigned int) ep->desc.bEndpointAddress,
|
||||||
udev->slot_id,
|
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;
|
u32 new_add_flags, new_drop_flags;
|
||||||
struct xhci_virt_device *virt_dev;
|
struct xhci_virt_device *virt_dev;
|
||||||
int ret = 0;
|
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__);
|
ret = xhci_check_args(hcd, udev, ep, 1, true, __func__);
|
||||||
if (ret <= 0) {
|
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;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5588,7 +5588,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||||||
ctrl_ctx->add_flags |= cpu_to_le32(added_ctxs);
|
ctrl_ctx->add_flags |= cpu_to_le32(added_ctxs);
|
||||||
new_add_flags = le32_to_cpu(ctrl_ctx->add_flags);
|
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)
|
u16 *timeout)
|
||||||
{
|
{
|
||||||
if (state == USB3_LPM_U1)
|
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 xhci_calculate_u2_timeout(xhci, udev, desc);
|
||||||
|
|
||||||
return USB3_LPM_DISABLED;
|
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;
|
hcd->self.no_sg_constraint = 1;
|
||||||
|
|
||||||
/* XHCI controllers don't stop the ep queue on short packets :| */
|
/* 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)) {
|
if (usb_hcd_is_primary_hcd(hcd)) {
|
||||||
xhci = hcd_to_xhci(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;
|
return retval;
|
||||||
xhci_dbg(xhci, "Reset complete\n");
|
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,
|
/* Set dma_mask and coherent_dma_mask to 64-bits,
|
||||||
* if xHC supports 64-bit addressing */
|
* if xHC supports 64-bit addressing */
|
||||||
if (HCC_64BIT_ADDR(xhci->hcc_params) &&
|
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_AUTHOR(DRIVER_AUTHOR);
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/arch/mips/ralink/mt7620.c
|
--- a/arch/mips/ralink/mt7620.c
|
||||||
+++ b/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[] = {
|
static struct rt2880_pmx_func pwm1_grp_mt7628[] = {
|
||||||
@ -37,7 +37,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
static struct rt2880_pmx_func i2c_grp_mt7628[] = {
|
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 refclk_grp_mt7628[] = { FUNC("reclk", 0, 36, 1) };
|
||||||
static struct rt2880_pmx_func perst_grp_mt7628[] = { FUNC("perst", 0, 37, 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[] = {
|
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("10000b00.spi", sys_rate);
|
||||||
ralink_clk_add("10000b40.spi", sys_rate);
|
ralink_clk_add("10000b40.spi", sys_rate);
|
||||||
ralink_clk_add("10000c00.uartlite", periph_rate);
|
ralink_clk_add("10000c00.uartlite", periph_rate);
|
||||||
@ -71,7 +71,7 @@
|
|||||||
ralink_clk_add("10180000.wmac", xtal_rate);
|
ralink_clk_add("10180000.wmac", xtal_rate);
|
||||||
|
|
||||||
if (IS_ENABLED(CONFIG_USB) &&
|
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);
|
cfg0 = __raw_readl(sysc + SYSC_REG_SYSTEM_CONFIG0);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user