mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2026-03-14 23:09:45 +01:00
kernel: update kernel 4.14 to version 4.14.193
Compile and runtime tested on lantiq/xrx200 and ipq40xx. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
parent
7db09853a8
commit
148d59c67e
22 changed files with 61 additions and 139 deletions
|
|
@ -6,9 +6,9 @@ ifdef CONFIG_TESTING_KERNEL
|
||||||
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LINUX_VERSION-4.14 = .187
|
LINUX_VERSION-4.14 = .193
|
||||||
|
|
||||||
LINUX_KERNEL_HASH-4.14.187 = 5b223475eaeea196aa7e127d3f253bca5c35d8afdc72ca75230ce1ecdd1454bd
|
LINUX_KERNEL_HASH-4.14.193 = 0b0fb41d4430e1a42738b341cbfd2f41951aa5cd02acabbd53f076119c8b9f03
|
||||||
|
|
||||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
|
||||||
|
|
||||||
#include "xhci.h"
|
#include "xhci.h"
|
||||||
#include "xhci-trace.h"
|
#include "xhci-trace.h"
|
||||||
@@ -269,6 +271,458 @@ static void xhci_pme_acpi_rtd3_enable(st
|
@@ -272,6 +274,458 @@ static void xhci_pme_acpi_rtd3_enable(st
|
||||||
static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
|
static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
|
||||||
#endif /* CONFIG_ACPI */
|
#endif /* CONFIG_ACPI */
|
||||||
|
|
||||||
|
|
@ -503,7 +503,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
|
||||||
/* called during probe() after chip reset completes */
|
/* called during probe() after chip reset completes */
|
||||||
static int xhci_pci_setup(struct usb_hcd *hcd)
|
static int xhci_pci_setup(struct usb_hcd *hcd)
|
||||||
{
|
{
|
||||||
@@ -307,6 +761,22 @@ static int xhci_pci_probe(struct pci_dev
|
@@ -310,6 +764,22 @@ static int xhci_pci_probe(struct pci_dev
|
||||||
struct hc_driver *driver;
|
struct hc_driver *driver;
|
||||||
struct usb_hcd *hcd;
|
struct usb_hcd *hcd;
|
||||||
|
|
||||||
|
|
@ -526,7 +526,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
|
||||||
driver = (struct hc_driver *)id->driver_data;
|
driver = (struct hc_driver *)id->driver_data;
|
||||||
|
|
||||||
/* For some HW implementation, a XHCI reset is just not enough... */
|
/* For some HW implementation, a XHCI reset is just not enough... */
|
||||||
@@ -368,6 +838,16 @@ static void xhci_pci_remove(struct pci_d
|
@@ -371,6 +841,16 @@ static void xhci_pci_remove(struct pci_d
|
||||||
{
|
{
|
||||||
struct xhci_hcd *xhci;
|
struct xhci_hcd *xhci;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -757,7 +757,7 @@
|
||||||
EXPORT_SYMBOL(xfrm_parse_spi);
|
EXPORT_SYMBOL(xfrm_parse_spi);
|
||||||
--- a/net/ipv4/tcp_input.c
|
--- a/net/ipv4/tcp_input.c
|
||||||
+++ b/net/ipv4/tcp_input.c
|
+++ b/net/ipv4/tcp_input.c
|
||||||
@@ -3878,14 +3878,16 @@ static bool tcp_parse_aligned_timestamp(
|
@@ -3879,14 +3879,16 @@ static bool tcp_parse_aligned_timestamp(
|
||||||
{
|
{
|
||||||
const __be32 *ptr = (const __be32 *)(th + 1);
|
const __be32 *ptr = (const __be32 *)(th + 1);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -737,7 +737,7 @@
|
||||||
EXPORT_SYMBOL(xfrm_parse_spi);
|
EXPORT_SYMBOL(xfrm_parse_spi);
|
||||||
--- a/net/ipv4/tcp_input.c
|
--- a/net/ipv4/tcp_input.c
|
||||||
+++ b/net/ipv4/tcp_input.c
|
+++ b/net/ipv4/tcp_input.c
|
||||||
@@ -3878,14 +3878,16 @@ static bool tcp_parse_aligned_timestamp(
|
@@ -3879,14 +3879,16 @@ static bool tcp_parse_aligned_timestamp(
|
||||||
{
|
{
|
||||||
const __be32 *ptr = (const __be32 *)(th + 1);
|
const __be32 *ptr = (const __be32 *)(th + 1);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
|
||||||
static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
|
static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
|
||||||
u32 *data, int in_pm)
|
u32 *data, int in_pm)
|
||||||
{
|
{
|
||||||
@@ -1972,7 +1976,8 @@ static int smsc95xx_rx_fixup(struct usbn
|
@@ -1979,7 +1983,8 @@ static int smsc95xx_rx_fixup(struct usbn
|
||||||
if (dev->net->features & NETIF_F_RXCSUM)
|
if (dev->net->features & NETIF_F_RXCSUM)
|
||||||
smsc95xx_rx_csum_offload(skb);
|
smsc95xx_rx_csum_offload(skb);
|
||||||
skb_trim(skb, skb->len - 4); /* remove fcs */
|
skb_trim(skb, skb->len - 4); /* remove fcs */
|
||||||
|
|
@ -35,7 +35,7 @@ Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -1990,7 +1995,8 @@ static int smsc95xx_rx_fixup(struct usbn
|
@@ -1997,7 +2002,8 @@ static int smsc95xx_rx_fixup(struct usbn
|
||||||
if (dev->net->features & NETIF_F_RXCSUM)
|
if (dev->net->features & NETIF_F_RXCSUM)
|
||||||
smsc95xx_rx_csum_offload(ax_skb);
|
smsc95xx_rx_csum_offload(ax_skb);
|
||||||
skb_trim(ax_skb, ax_skb->len - 4); /* remove fcs */
|
skb_trim(ax_skb, ax_skb->len - 4); /* remove fcs */
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ See: https://github.com/raspberrypi/linux/issues/2447
|
||||||
static int lan78xx_read_reg(struct lan78xx_net *dev, u32 index, u32 *data)
|
static int lan78xx_read_reg(struct lan78xx_net *dev, u32 index, u32 *data)
|
||||||
{
|
{
|
||||||
u32 *buf = kmalloc(sizeof(u32), GFP_KERNEL);
|
u32 *buf = kmalloc(sizeof(u32), GFP_KERNEL);
|
||||||
@@ -3730,7 +3735,12 @@ static int lan78xx_probe(struct usb_inte
|
@@ -3735,7 +3740,12 @@ static int lan78xx_probe(struct usb_inte
|
||||||
dev->pipe_intr = usb_rcvintpipe(dev->udev,
|
dev->pipe_intr = usb_rcvintpipe(dev->udev,
|
||||||
dev->ep_intr->desc.bEndpointAddress &
|
dev->ep_intr->desc.bEndpointAddress &
|
||||||
USB_ENDPOINT_NUMBER_MASK);
|
USB_ENDPOINT_NUMBER_MASK);
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ Cc: Kir Kolyshkin <kir@openvz.org>
|
||||||
* Before updating sk_refcnt, we must commit prior changes to memory
|
* Before updating sk_refcnt, we must commit prior changes to memory
|
||||||
--- a/net/ipv4/tcp_output.c
|
--- a/net/ipv4/tcp_output.c
|
||||||
+++ b/net/ipv4/tcp_output.c
|
+++ b/net/ipv4/tcp_output.c
|
||||||
@@ -1697,7 +1697,7 @@ u32 tcp_tso_autosize(const struct sock *
|
@@ -1699,7 +1699,7 @@ u32 tcp_tso_autosize(const struct sock *
|
||||||
{
|
{
|
||||||
u32 bytes, segs;
|
u32 bytes, segs;
|
||||||
|
|
||||||
|
|
@ -74,7 +74,7 @@ Cc: Kir Kolyshkin <kir@openvz.org>
|
||||||
sk->sk_gso_max_size - 1 - MAX_TCP_HEADER);
|
sk->sk_gso_max_size - 1 - MAX_TCP_HEADER);
|
||||||
|
|
||||||
/* Goal is to send at least one packet per ms,
|
/* Goal is to send at least one packet per ms,
|
||||||
@@ -2215,7 +2215,7 @@ static bool tcp_small_queue_check(struct
|
@@ -2217,7 +2217,7 @@ static bool tcp_small_queue_check(struct
|
||||||
{
|
{
|
||||||
unsigned int limit;
|
unsigned int limit;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ Signed-off-by: Johan Hovold <johan@kernel.org>
|
||||||
|
|
||||||
--- a/drivers/usb/serial/option.c
|
--- a/drivers/usb/serial/option.c
|
||||||
+++ b/drivers/usb/serial/option.c
|
+++ b/drivers/usb/serial/option.c
|
||||||
@@ -1987,7 +1987,8 @@ static const struct usb_device_id option
|
@@ -1990,7 +1990,8 @@ static const struct usb_device_id option
|
||||||
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d01, 0xff) }, /* D-Link DWM-156 (variant) */
|
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d01, 0xff) }, /* D-Link DWM-156 (variant) */
|
||||||
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) },
|
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) },
|
||||||
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },
|
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||||
|
|
||||||
--- a/drivers/tty/serial/8250/8250_exar.c
|
--- a/drivers/tty/serial/8250/8250_exar.c
|
||||||
+++ b/drivers/tty/serial/8250/8250_exar.c
|
+++ b/drivers/tty/serial/8250/8250_exar.c
|
||||||
@@ -283,8 +283,32 @@ static int xr17v35x_register_gpio(struct
|
@@ -293,8 +293,32 @@ static int xr17v35x_register_gpio(struct
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -52,7 +52,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||||
};
|
};
|
||||||
|
|
||||||
static int iot2040_rs485_config(struct uart_port *port,
|
static int iot2040_rs485_config(struct uart_port *port,
|
||||||
@@ -317,19 +341,7 @@ static int iot2040_rs485_config(struct u
|
@@ -327,19 +351,7 @@ static int iot2040_rs485_config(struct u
|
||||||
value |= mode;
|
value |= mode;
|
||||||
writeb(value, p + UART_EXAR_MPIOLVL_7_0);
|
writeb(value, p + UART_EXAR_MPIOLVL_7_0);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -238,7 +238,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Data section helpers
|
* Data section helpers
|
||||||
@@ -496,7 +497,7 @@
|
@@ -497,7 +498,7 @@
|
||||||
#define ENTRY_TEXT \
|
#define ENTRY_TEXT \
|
||||||
ALIGN_FUNCTION(); \
|
ALIGN_FUNCTION(); \
|
||||||
VMLINUX_SYMBOL(__entry_text_start) = .; \
|
VMLINUX_SYMBOL(__entry_text_start) = .; \
|
||||||
|
|
@ -247,7 +247,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||||
VMLINUX_SYMBOL(__entry_text_end) = .;
|
VMLINUX_SYMBOL(__entry_text_end) = .;
|
||||||
|
|
||||||
#define IRQENTRY_TEXT \
|
#define IRQENTRY_TEXT \
|
||||||
@@ -603,7 +604,7 @@
|
@@ -604,7 +605,7 @@
|
||||||
. = ALIGN(sbss_align); \
|
. = ALIGN(sbss_align); \
|
||||||
.sbss : AT(ADDR(.sbss) - LOAD_OFFSET) { \
|
.sbss : AT(ADDR(.sbss) - LOAD_OFFSET) { \
|
||||||
*(.dynsbss) \
|
*(.dynsbss) \
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
#include <linux/export.h>
|
#include <linux/export.h>
|
||||||
|
|
||||||
/* Align . to a 8 byte boundary equals to maximum function alignment. */
|
/* Align . to a 8 byte boundary equals to maximum function alignment. */
|
||||||
@@ -341,14 +351,14 @@
|
@@ -342,14 +352,14 @@
|
||||||
/* Kernel symbol table: Normal symbols */ \
|
/* Kernel symbol table: Normal symbols */ \
|
||||||
__ksymtab : AT(ADDR(__ksymtab) - LOAD_OFFSET) { \
|
__ksymtab : AT(ADDR(__ksymtab) - LOAD_OFFSET) { \
|
||||||
VMLINUX_SYMBOL(__start___ksymtab) = .; \
|
VMLINUX_SYMBOL(__start___ksymtab) = .; \
|
||||||
|
|
@ -47,7 +47,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
VMLINUX_SYMBOL(__stop___ksymtab_gpl) = .; \
|
VMLINUX_SYMBOL(__stop___ksymtab_gpl) = .; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
@@ -410,7 +420,7 @@
|
@@ -411,7 +421,7 @@
|
||||||
\
|
\
|
||||||
/* Kernel symbol table: strings */ \
|
/* Kernel symbol table: strings */ \
|
||||||
__ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) { \
|
__ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) { \
|
||||||
|
|
@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
/* __*init sections */ \
|
/* __*init sections */ \
|
||||||
@@ -793,6 +803,8 @@
|
@@ -796,6 +806,8 @@
|
||||||
EXIT_TEXT \
|
EXIT_TEXT \
|
||||||
EXIT_DATA \
|
EXIT_DATA \
|
||||||
EXIT_CALL \
|
EXIT_CALL \
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||||
/* The Mellanox Tavor device gives false positive parity errors
|
/* The Mellanox Tavor device gives false positive parity errors
|
||||||
* Mark this device with a broken_parity_status, to allow
|
* Mark this device with a broken_parity_status, to allow
|
||||||
* PCI scanning code to "skip" this now blacklisted device.
|
* PCI scanning code to "skip" this now blacklisted device.
|
||||||
@@ -3095,6 +3096,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
|
@@ -3108,6 +3109,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
|
||||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata);
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata);
|
||||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata);
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata);
|
||||||
|
|
||||||
|
|
@ -40,7 +40,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Ivytown NTB BAR sizes are misreported by the hardware due to an erratum. To
|
* Ivytown NTB BAR sizes are misreported by the hardware due to an erratum. To
|
||||||
@@ -3151,6 +3153,8 @@ static void fixup_debug_report(struct pc
|
@@ -3164,6 +3166,8 @@ static void fixup_debug_report(struct pc
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -49,7 +49,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||||
/*
|
/*
|
||||||
* Some BIOS implementations leave the Intel GPU interrupts enabled,
|
* Some BIOS implementations leave the Intel GPU interrupts enabled,
|
||||||
* even though no one is handling them (f.e. i915 driver is never loaded).
|
* even though no one is handling them (f.e. i915 driver is never loaded).
|
||||||
@@ -3189,6 +3193,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
|
@@ -3202,6 +3206,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
|
||||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
|
||||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,11 +21,9 @@ Forwarded: no
|
||||||
drivers/net/phy/ar40xx.c | 6 +++++-
|
drivers/net/phy/ar40xx.c | 6 +++++-
|
||||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/drivers/net/phy/ar40xx.c b/drivers/net/phy/ar40xx.c
|
|
||||||
index e408e8f7312f749aeb29c73a589047856e9479c7..421399b9b33e6f42d4e38db3f90b0c1d514a0b79 100644
|
|
||||||
--- a/drivers/net/phy/ar40xx.c
|
--- a/drivers/net/phy/ar40xx.c
|
||||||
+++ b/drivers/net/phy/ar40xx.c
|
+++ b/drivers/net/phy/ar40xx.c
|
||||||
@@ -1200,7 +1200,11 @@ ar40xx_init_port(struct ar40xx_priv *priv, int port)
|
@@ -1200,7 +1200,11 @@ ar40xx_init_port(struct ar40xx_priv *pri
|
||||||
ar40xx_rmw(priv, AR40XX_REG_PORT_STATUS(port),
|
ar40xx_rmw(priv, AR40XX_REG_PORT_STATUS(port),
|
||||||
AR40XX_PORT_AUTO_LINK_EN, 0);
|
AR40XX_PORT_AUTO_LINK_EN, 0);
|
||||||
|
|
||||||
|
|
@ -38,57 +36,7 @@ index e408e8f7312f749aeb29c73a589047856e9479c7..421399b9b33e6f42d4e38db3f90b0c1d
|
||||||
|
|
||||||
ar40xx_write(priv, AR40XX_REG_PORT_VLAN0(port), 0);
|
ar40xx_write(priv, AR40XX_REG_PORT_VLAN0(port), 0);
|
||||||
|
|
||||||
From: Sven Eckelmann <sven@narfation.org>
|
@@ -1243,6 +1247,10 @@ ar40xx_init_globals(struct ar40xx_priv *
|
||||||
Date: Fri, 17 Mar 2017 11:00:40 +0100
|
|
||||||
Subject: [PATCH] ipq40xx: Disable CTAG TX VLAN offloading
|
|
||||||
|
|
||||||
The driver requires the offloading to set the VLAN specific header for the
|
|
||||||
port selection. It can therefore not be used at the same time to offload
|
|
||||||
the setting of the VLAN header on top of essedma interface.
|
|
||||||
|
|
||||||
Forwarded: no
|
|
||||||
---
|
|
||||||
drivers/net/ethernet/qualcomm/essedma/edma_axi.c | 1 -
|
|
||||||
1 file changed, 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/net/ethernet/qualcomm/essedma/edma_axi.c b/drivers/net/ethernet/qualcomm/essedma/edma_axi.c
|
|
||||||
index 81fc1e1b64daa41b15f21634ac1f08de0f5822a7..db184b82769f53e1554a1c51c53414ef7cadd7f6 100644
|
|
||||||
--- a/drivers/net/ethernet/qualcomm/essedma/edma_axi.c
|
|
||||||
+++ b/drivers/net/ethernet/qualcomm/essedma/edma_axi.c
|
|
||||||
@@ -970,7 +970,6 @@ static int edma_axi_probe(struct platform_device *pdev)
|
|
||||||
edma_netdev[i]->netdev_ops = &edma_axi_netdev_ops;
|
|
||||||
edma_netdev[i]->max_mtu = 9000;
|
|
||||||
edma_netdev[i]->features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM
|
|
||||||
- | NETIF_F_HW_VLAN_CTAG_TX
|
|
||||||
| NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_SG |
|
|
||||||
NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_GRO;
|
|
||||||
edma_netdev[i]->hw_features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM |
|
|
||||||
From: Sven Eckelmann <sven@narfation.org>
|
|
||||||
Date: Fri, 17 Mar 2017 11:04:50 +0100
|
|
||||||
Subject: [PATCH] ar40xx: Enable QinQ on the switch
|
|
||||||
|
|
||||||
The switch used in by IPQ40xx is using VLANs by default to select the
|
|
||||||
outgoing port. It was therefore not possible to sent or receive 802.1q
|
|
||||||
tagged frames over the CPU port. This can be allowed by changing the port
|
|
||||||
configuration and lookup configuration.
|
|
||||||
|
|
||||||
The resulting VLAN-tagged frames send or received by the CPU will therefore
|
|
||||||
look like QinQ frames. The outer VLAN tag is the port-VLAN of the port from
|
|
||||||
which the data was received or towards which the data has to be sent. The
|
|
||||||
inner VLAN tag (when it exists) is the VLAN which was configrued on top of
|
|
||||||
the ethernet device.
|
|
||||||
|
|
||||||
Forwarded: no
|
|
||||||
---
|
|
||||||
drivers/net/phy/ar40xx.c | 23 ++++++++++++++++++++---
|
|
||||||
drivers/net/phy/ar40xx.h | 5 +++++
|
|
||||||
2 files changed, 25 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/net/phy/ar40xx.c b/drivers/net/phy/ar40xx.c
|
|
||||||
index 421399b9b33e6f42d4e38db3f90b0c1d514a0b79..4af26638d542a9ab5ca27454ce557233bcb64575 100644
|
|
||||||
--- a/drivers/net/phy/ar40xx.c
|
|
||||||
+++ b/drivers/net/phy/ar40xx.c
|
|
||||||
@@ -1247,6 +1247,10 @@ ar40xx_init_globals(struct ar40xx_priv *priv)
|
|
||||||
t = (AR40XX_PORT0_FC_THRESH_ON_DFLT << 16) |
|
t = (AR40XX_PORT0_FC_THRESH_ON_DFLT << 16) |
|
||||||
AR40XX_PORT0_FC_THRESH_OFF_DFLT;
|
AR40XX_PORT0_FC_THRESH_OFF_DFLT;
|
||||||
ar40xx_write(priv, AR40XX_REG_PORT_FLOWCTRL_THRESH(0), t);
|
ar40xx_write(priv, AR40XX_REG_PORT_FLOWCTRL_THRESH(0), t);
|
||||||
|
|
@ -99,7 +47,7 @@ index 421399b9b33e6f42d4e38db3f90b0c1d514a0b79..4af26638d542a9ab5ca27454ce557233
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -1572,7 +1576,11 @@ ar40xx_setup_port(struct ar40xx_priv *priv, int port, u32 members)
|
@@ -1568,7 +1576,11 @@ ar40xx_setup_port(struct ar40xx_priv *pr
|
||||||
u32 pvid = priv->vlan_id[priv->pvid[port]];
|
u32 pvid = priv->vlan_id[priv->pvid[port]];
|
||||||
|
|
||||||
if (priv->vlan) {
|
if (priv->vlan) {
|
||||||
|
|
@ -112,7 +60,7 @@ index 421399b9b33e6f42d4e38db3f90b0c1d514a0b79..4af26638d542a9ab5ca27454ce557233
|
||||||
ingress = AR40XX_IN_SECURE;
|
ingress = AR40XX_IN_SECURE;
|
||||||
} else {
|
} else {
|
||||||
egress = AR40XX_PORT_VLAN1_OUT_MODE_UNTOUCH;
|
egress = AR40XX_PORT_VLAN1_OUT_MODE_UNTOUCH;
|
||||||
@@ -1583,8 +1591,17 @@ ar40xx_setup_port(struct ar40xx_priv *priv, int port, u32 members)
|
@@ -1579,8 +1591,17 @@ ar40xx_setup_port(struct ar40xx_priv *pr
|
||||||
t |= pvid << AR40XX_PORT_VLAN0_DEF_CVID_S;
|
t |= pvid << AR40XX_PORT_VLAN0_DEF_CVID_S;
|
||||||
ar40xx_write(priv, AR40XX_REG_PORT_VLAN0(port), t);
|
ar40xx_write(priv, AR40XX_REG_PORT_VLAN0(port), t);
|
||||||
|
|
||||||
|
|
@ -132,8 +80,31 @@ index 421399b9b33e6f42d4e38db3f90b0c1d514a0b79..4af26638d542a9ab5ca27454ce557233
|
||||||
ar40xx_write(priv, AR40XX_REG_PORT_VLAN1(port), t);
|
ar40xx_write(priv, AR40XX_REG_PORT_VLAN1(port), t);
|
||||||
|
|
||||||
t = members;
|
t = members;
|
||||||
diff --git a/drivers/net/phy/ar40xx.h b/drivers/net/phy/ar40xx.h
|
--- a/drivers/net/ethernet/qualcomm/essedma/edma_axi.c
|
||||||
index 722bf6ae4b32fcefa33e007ae34a3202315a3fe1..7ba40ccf753fe833e6a01b32cfe1407a317d92ee 100644
|
+++ b/drivers/net/ethernet/qualcomm/essedma/edma_axi.c
|
||||||
|
@@ -970,7 +970,6 @@ static int edma_axi_probe(struct platfor
|
||||||
|
edma_netdev[i]->netdev_ops = &edma_axi_netdev_ops;
|
||||||
|
edma_netdev[i]->max_mtu = 9000;
|
||||||
|
edma_netdev[i]->features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM
|
||||||
|
- | NETIF_F_HW_VLAN_CTAG_TX
|
||||||
|
| NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_SG |
|
||||||
|
NETIF_F_TSO | NETIF_F_GRO;
|
||||||
|
edma_netdev[i]->hw_features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM |
|
||||||
|
@@ -982,10 +981,10 @@ static int edma_axi_probe(struct platfor
|
||||||
|
NETIF_F_TSO | NETIF_F_GRO;
|
||||||
|
|
||||||
|
#ifdef CONFIG_RFS_ACCEL
|
||||||
|
- edma_netdev[i]->features |= NETIF_F_RXHASH | NETIF_F_NTUPLE;
|
||||||
|
- edma_netdev[i]->hw_features |= NETIF_F_RXHASH | NETIF_F_NTUPLE;
|
||||||
|
- edma_netdev[i]->vlan_features |= NETIF_F_RXHASH | NETIF_F_NTUPLE;
|
||||||
|
- edma_netdev[i]->wanted_features |= NETIF_F_RXHASH | NETIF_F_NTUPLE;
|
||||||
|
+ edma_netdev[i]->features |= NETIF_F_NTUPLE;
|
||||||
|
+ edma_netdev[i]->hw_features |= NETIF_F_NTUPLE;
|
||||||
|
+ edma_netdev[i]->vlan_features |= NETIF_F_NTUPLE;
|
||||||
|
+ edma_netdev[i]->wanted_features |= NETIF_F_NTUPLE;
|
||||||
|
#endif
|
||||||
|
edma_set_ethtool_ops(edma_netdev[i]);
|
||||||
|
|
||||||
--- a/drivers/net/phy/ar40xx.h
|
--- a/drivers/net/phy/ar40xx.h
|
||||||
+++ b/drivers/net/phy/ar40xx.h
|
+++ b/drivers/net/phy/ar40xx.h
|
||||||
@@ -151,6 +151,9 @@ struct ar40xx_mib_desc {
|
@@ -151,6 +151,9 @@ struct ar40xx_mib_desc {
|
||||||
|
|
@ -155,39 +126,3 @@ index 722bf6ae4b32fcefa33e007ae34a3202315a3fe1..7ba40ccf753fe833e6a01b32cfe1407a
|
||||||
#define AR40XX_PORT_VLAN1_PORT_VLAN_PROP BIT(6)
|
#define AR40XX_PORT_VLAN1_PORT_VLAN_PROP BIT(6)
|
||||||
#define AR40XX_PORT_VLAN1_OUT_MODE BITS(12, 2)
|
#define AR40XX_PORT_VLAN1_OUT_MODE BITS(12, 2)
|
||||||
#define AR40XX_PORT_VLAN1_OUT_MODE_S 12
|
#define AR40XX_PORT_VLAN1_OUT_MODE_S 12
|
||||||
From: Sven Eckelmann <sven@narfation.org>
|
|
||||||
Date: Wed, 29 Mar 2017 16:05:26 +0200
|
|
||||||
Subject: [PATCH] ipq40xx: Disable NETIF_F_RXHASH support in essedma
|
|
||||||
|
|
||||||
The NETIF_F_RXHASH requires that each skb set the hash correctly with
|
|
||||||
skb_set_hash. essedma tries to do that but the set hash always results in
|
|
||||||
only used CPU when RPS is allowed for all CPUs.
|
|
||||||
|
|
||||||
Disabling RXHASH works around this problem for now.
|
|
||||||
|
|
||||||
IssueID: #5477
|
|
||||||
Forwarded: no
|
|
||||||
Upstream author was informed via e-mail about the problem
|
|
||||||
---
|
|
||||||
drivers/net/ethernet/qualcomm/essedma/edma_axi.c | 8 ++++----
|
|
||||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/net/ethernet/qualcomm/essedma/edma_axi.c b/drivers/net/ethernet/qualcomm/essedma/edma_axi.c
|
|
||||||
index db184b82769f53e1554a1c51c53414ef7cadd7f6..975e119cfe6f1a8cfe54ac0eb8f8752aa4bf22af 100644
|
|
||||||
--- a/drivers/net/ethernet/qualcomm/essedma/edma_axi.c
|
|
||||||
+++ b/drivers/net/ethernet/qualcomm/essedma/edma_axi.c
|
|
||||||
@@ -984,10 +984,10 @@ static int edma_axi_probe(struct platform_device *pdev)
|
|
||||||
NETIF_F_GRO;
|
|
||||||
|
|
||||||
#ifdef CONFIG_RFS_ACCEL
|
|
||||||
- edma_netdev[i]->features |= NETIF_F_RXHASH | NETIF_F_NTUPLE;
|
|
||||||
- edma_netdev[i]->hw_features |= NETIF_F_RXHASH | NETIF_F_NTUPLE;
|
|
||||||
- edma_netdev[i]->vlan_features |= NETIF_F_RXHASH | NETIF_F_NTUPLE;
|
|
||||||
- edma_netdev[i]->wanted_features |= NETIF_F_RXHASH | NETIF_F_NTUPLE;
|
|
||||||
+ edma_netdev[i]->features |= NETIF_F_NTUPLE;
|
|
||||||
+ edma_netdev[i]->hw_features |= NETIF_F_NTUPLE;
|
|
||||||
+ edma_netdev[i]->vlan_features |= NETIF_F_NTUPLE;
|
|
||||||
+ edma_netdev[i]->wanted_features |= NETIF_F_NTUPLE;
|
|
||||||
#endif
|
|
||||||
edma_set_ethtool_ops(edma_netdev[i]);
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -276,7 +276,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
|
||||||
#define PROT_SECT_DEVICE_nGnRE (PROT_SECT_DEFAULT | PMD_SECT_PXN | PMD_SECT_UXN | PMD_ATTRINDX(MT_DEVICE_nGnRE))
|
#define PROT_SECT_DEVICE_nGnRE (PROT_SECT_DEFAULT | PMD_SECT_PXN | PMD_SECT_UXN | PMD_ATTRINDX(MT_DEVICE_nGnRE))
|
||||||
#define PROT_SECT_NORMAL (PROT_SECT_DEFAULT | PMD_SECT_PXN | PMD_SECT_UXN | PMD_ATTRINDX(MT_NORMAL))
|
#define PROT_SECT_NORMAL (PROT_SECT_DEFAULT | PMD_SECT_PXN | PMD_SECT_UXN | PMD_ATTRINDX(MT_NORMAL))
|
||||||
@@ -68,6 +69,7 @@
|
@@ -68,6 +69,7 @@
|
||||||
#define PAGE_HYP_DEVICE __pgprot(PROT_DEVICE_nGnRE | PTE_HYP)
|
#define PAGE_HYP_DEVICE __pgprot(_PROT_DEFAULT | PTE_ATTRINDX(MT_DEVICE_nGnRE) | PTE_HYP | PTE_HYP_XN)
|
||||||
|
|
||||||
#define PAGE_S2 __pgprot(_PROT_DEFAULT | PTE_S2_MEMATTR(MT_S2_NORMAL) | PTE_S2_RDONLY)
|
#define PAGE_S2 __pgprot(_PROT_DEFAULT | PTE_S2_MEMATTR(MT_S2_NORMAL) | PTE_S2_RDONLY)
|
||||||
+#define PAGE_S2_NS __pgprot(PTE_S2_MEMATTR(MT_S2_NORMAL) | PTE_S2_RDWR | PTE_TYPE_PAGE | PTE_AF)
|
+#define PAGE_S2_NS __pgprot(PTE_S2_MEMATTR(MT_S2_NORMAL) | PTE_S2_RDWR | PTE_TYPE_PAGE | PTE_AF)
|
||||||
|
|
|
||||||
|
|
@ -2964,7 +2964,7 @@ Signed-off-by: Yuan Yao <yao.yuan@nxp.com>
|
||||||
dst_addr = sg_dma_address(sg);
|
dst_addr = sg_dma_address(sg);
|
||||||
soff = 0;
|
soff = 0;
|
||||||
doff = fsl_chan->fsc.addr_width;
|
doff = fsl_chan->fsc.addr_width;
|
||||||
@@ -802,6 +858,7 @@ static void fsl_edma_free_chan_resources
|
@@ -809,6 +865,7 @@ static void fsl_edma_free_chan_resources
|
||||||
fsl_edma_chan_mux(fsl_chan, 0, false);
|
fsl_edma_chan_mux(fsl_chan, 0, false);
|
||||||
fsl_chan->edesc = NULL;
|
fsl_chan->edesc = NULL;
|
||||||
vchan_get_all_descriptors(&fsl_chan->vchan, &head);
|
vchan_get_all_descriptors(&fsl_chan->vchan, &head);
|
||||||
|
|
@ -2972,7 +2972,7 @@ Signed-off-by: Yuan Yao <yao.yuan@nxp.com>
|
||||||
spin_unlock_irqrestore(&fsl_chan->vchan.lock, flags);
|
spin_unlock_irqrestore(&fsl_chan->vchan.lock, flags);
|
||||||
|
|
||||||
vchan_dma_desc_free_list(&fsl_chan->vchan, &head);
|
vchan_dma_desc_free_list(&fsl_chan->vchan, &head);
|
||||||
@@ -937,6 +994,7 @@ static int fsl_edma_probe(struct platfor
|
@@ -944,6 +1001,7 @@ static int fsl_edma_probe(struct platfor
|
||||||
fsl_chan->slave_id = 0;
|
fsl_chan->slave_id = 0;
|
||||||
fsl_chan->idle = true;
|
fsl_chan->idle = true;
|
||||||
fsl_chan->vchan.desc_free = fsl_edma_free_desc;
|
fsl_chan->vchan.desc_free = fsl_edma_free_desc;
|
||||||
|
|
|
||||||
|
|
@ -5604,7 +5604,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||||
* them, we have to fall back to INTx or other interrupts, e.g., a
|
* them, we have to fall back to INTx or other interrupts, e.g., a
|
||||||
--- a/drivers/pci/quirks.c
|
--- a/drivers/pci/quirks.c
|
||||||
+++ b/drivers/pci/quirks.c
|
+++ b/drivers/pci/quirks.c
|
||||||
@@ -3395,6 +3395,13 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_A
|
@@ -3408,6 +3408,13 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_A
|
||||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATHEROS, 0x0033, quirk_no_bus_reset);
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATHEROS, 0x0033, quirk_no_bus_reset);
|
||||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATHEROS, 0x0034, quirk_no_bus_reset);
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATHEROS, 0x0034, quirk_no_bus_reset);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -730,16 +730,3 @@ Signed-off-by: Yogesh Gaur <yogeshnarayan.gaur@nxp.com>
|
||||||
{ "w25x32", INFO(0xef3016, 0, 64 * 1024, 64, SECT_4K) },
|
{ "w25x32", INFO(0xef3016, 0, 64 * 1024, 64, SECT_4K) },
|
||||||
{ "w25q20cl", INFO(0xef4012, 0, 64 * 1024, 4, SECT_4K) },
|
{ "w25q20cl", INFO(0xef4012, 0, 64 * 1024, 4, SECT_4K) },
|
||||||
{ "w25q20bw", INFO(0xef5012, 0, 64 * 1024, 4, SECT_4K) },
|
{ "w25q20bw", INFO(0xef5012, 0, 64 * 1024, 4, SECT_4K) },
|
||||||
--- a/drivers/spi/spi-fsl-dspi.c
|
|
||||||
+++ b/drivers/spi/spi-fsl-dspi.c
|
|
||||||
@@ -1024,8 +1024,8 @@ static int dspi_probe(struct platform_de
|
|
||||||
goto out_clk_put;
|
|
||||||
}
|
|
||||||
|
|
||||||
- ret = devm_request_irq(&pdev->dev, dspi->irq, dspi_interrupt, 0,
|
|
||||||
- pdev->name, dspi);
|
|
||||||
+ ret = devm_request_irq(&pdev->dev, dspi->irq, dspi_interrupt,
|
|
||||||
+ IRQF_SHARED, pdev->name, dspi);
|
|
||||||
if (ret < 0) {
|
|
||||||
dev_err(&pdev->dev, "Unable to attach DSPI interrupt\n");
|
|
||||||
goto out_clk_put;
|
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||||
|
|
||||||
--- a/drivers/usb/host/xhci-mtk-sch.c
|
--- a/drivers/usb/host/xhci-mtk-sch.c
|
||||||
+++ b/drivers/usb/host/xhci-mtk-sch.c
|
+++ b/drivers/usb/host/xhci-mtk-sch.c
|
||||||
@@ -289,12 +289,13 @@ static bool need_bw_sch(struct usb_host_
|
@@ -293,12 +293,13 @@ static bool need_bw_sch(struct usb_host_
|
||||||
|
|
||||||
int xhci_mtk_sch_init(struct xhci_hcd_mtk *mtk)
|
int xhci_mtk_sch_init(struct xhci_hcd_mtk *mtk)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||||
if (!xhci->shared_hcd) {
|
if (!xhci->shared_hcd) {
|
||||||
--- a/drivers/usb/host/xhci-pci.c
|
--- a/drivers/usb/host/xhci-pci.c
|
||||||
+++ b/drivers/usb/host/xhci-pci.c
|
+++ b/drivers/usb/host/xhci-pci.c
|
||||||
@@ -280,6 +280,9 @@ static int xhci_pci_setup(struct usb_hcd
|
@@ -283,6 +283,9 @@ static int xhci_pci_setup(struct usb_hcd
|
||||||
if (!xhci->sbrn)
|
if (!xhci->sbrn)
|
||||||
pci_read_config_byte(pdev, XHCI_SBRN_OFFSET, &xhci->sbrn);
|
pci_read_config_byte(pdev, XHCI_SBRN_OFFSET, &xhci->sbrn);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
|
||||||
struct mtk_thermal;
|
struct mtk_thermal;
|
||||||
|
|
||||||
struct thermal_bank_cfg {
|
struct thermal_bank_cfg {
|
||||||
@@ -767,7 +760,7 @@ static struct platform_driver mtk_therma
|
@@ -765,7 +758,7 @@ static struct platform_driver mtk_therma
|
||||||
.probe = mtk_thermal_probe,
|
.probe = mtk_thermal_probe,
|
||||||
.remove = mtk_thermal_remove,
|
.remove = mtk_thermal_remove,
|
||||||
.driver = {
|
.driver = {
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ Signed-off-by: Shunli Wang <shunli.wang@mediatek.com>
|
||||||
/**
|
/**
|
||||||
* raw_to_mcelsius - convert a raw ADC value to mcelsius
|
* raw_to_mcelsius - convert a raw ADC value to mcelsius
|
||||||
* @mt: The thermal controller
|
* @mt: The thermal controller
|
||||||
@@ -633,6 +664,10 @@ static const struct of_device_id mtk_the
|
@@ -631,6 +662,10 @@ static const struct of_device_id mtk_the
|
||||||
{
|
{
|
||||||
.compatible = "mediatek,mt2712-thermal",
|
.compatible = "mediatek,mt2712-thermal",
|
||||||
.data = (void *)&mt2712_thermal_data,
|
.data = (void *)&mt2712_thermal_data,
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/drivers/usb/dwc2/platform.c
|
--- a/drivers/usb/dwc2/platform.c
|
||||||
+++ b/drivers/usb/dwc2/platform.c
|
+++ b/drivers/usb/dwc2/platform.c
|
||||||
@@ -406,6 +406,12 @@ static int dwc2_driver_probe(struct plat
|
@@ -407,6 +407,12 @@ static int dwc2_driver_probe(struct plat
|
||||||
if (retval)
|
if (retval)
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue