kernel: bump to 4.9.262, 4.14.227, 4.19.183
Resolve conflicted: - layerscape/patches-4.14/809-flexcan-support-layerscape.patch Refreshed all patches. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
parent
3364f9a63d
commit
4a24bd4db0
@ -6,13 +6,13 @@ ifdef CONFIG_TESTING_KERNEL
|
||||
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
||||
endif
|
||||
|
||||
LINUX_VERSION-4.9 = .258
|
||||
LINUX_VERSION-4.14 = .222
|
||||
LINUX_VERSION-4.19 = .177
|
||||
LINUX_VERSION-4.9 = .262
|
||||
LINUX_VERSION-4.14 = .227
|
||||
LINUX_VERSION-4.19 = .183
|
||||
|
||||
LINUX_KERNEL_HASH-4.9.258 = d478f8e069f6d8b86b0a69f99252ea9e7cd7070bf6bdd0e9b3773ee418e5c8cd
|
||||
LINUX_KERNEL_HASH-4.14.222 = 734082b03d9f8e43b123b0061f08045b70c34e3a4b09f8a8da6a287686dac744
|
||||
LINUX_KERNEL_HASH-4.19.177 = ac0eb3794e01eac66bea3ab39b8776dadf15c418ddc534ccfd95a0270302357d
|
||||
LINUX_KERNEL_HASH-4.9.262 = b22e764095362d9e63d76375db838d9372474ba5cbe6132c9a8b07f7533f07ff
|
||||
LINUX_KERNEL_HASH-4.14.227 = 0722d3c4bc056ccee24d3d08792ba81b228a457ee4ed9c6f40bb1f407612e0c7
|
||||
LINUX_KERNEL_HASH-4.19.183 = bacfd95ddf51df70b2962fc685b5217fc449e644f16996e49d87eb259b84a5f5
|
||||
|
||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(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-trace.h"
|
||||
@@ -276,6 +278,458 @@ static void xhci_pme_acpi_rtd3_enable(st
|
||||
@@ -280,6 +282,458 @@ static void xhci_pme_acpi_rtd3_enable(st
|
||||
static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
|
||||
#endif /* CONFIG_ACPI */
|
||||
|
||||
@ -503,7 +503,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
|
||||
/* called during probe() after chip reset completes */
|
||||
static int xhci_pci_setup(struct usb_hcd *hcd)
|
||||
{
|
||||
@@ -314,6 +768,22 @@ static int xhci_pci_probe(struct pci_dev
|
||||
@@ -318,6 +772,22 @@ static int xhci_pci_probe(struct pci_dev
|
||||
struct hc_driver *driver;
|
||||
struct usb_hcd *hcd;
|
||||
|
||||
@ -526,7 +526,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
|
||||
driver = (struct hc_driver *)id->driver_data;
|
||||
|
||||
/* For some HW implementation, a XHCI reset is just not enough... */
|
||||
@@ -375,6 +845,16 @@ static void xhci_pci_remove(struct pci_d
|
||||
@@ -379,6 +849,16 @@ static void xhci_pci_remove(struct pci_d
|
||||
{
|
||||
struct xhci_hcd *xhci;
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ produce a noisy warning.
|
||||
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -225,7 +225,7 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -226,7 +226,7 @@ static void xhci_pci_quirks(struct devic
|
||||
xhci->quirks |= XHCI_TRUST_TX_LENGTH;
|
||||
if (pdev->vendor == PCI_VENDOR_ID_RENESAS &&
|
||||
pdev->device == 0x0015)
|
||||
|
||||
@ -44,7 +44,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
|
||||
|
||||
#include "xhci.h"
|
||||
#include "xhci-trace.h"
|
||||
@@ -277,6 +279,458 @@ static void xhci_pme_acpi_rtd3_enable(st
|
||||
@@ -281,6 +283,458 @@ static void xhci_pme_acpi_rtd3_enable(st
|
||||
static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
|
||||
#endif /* CONFIG_ACPI */
|
||||
|
||||
@ -503,7 +503,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
|
||||
/* called during probe() after chip reset completes */
|
||||
static int xhci_pci_setup(struct usb_hcd *hcd)
|
||||
{
|
||||
@@ -318,6 +772,22 @@ static int xhci_pci_probe(struct pci_dev
|
||||
@@ -322,6 +776,22 @@ static int xhci_pci_probe(struct pci_dev
|
||||
struct hc_driver *driver;
|
||||
struct usb_hcd *hcd;
|
||||
|
||||
@ -526,7 +526,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
|
||||
driver = (struct hc_driver *)id->driver_data;
|
||||
|
||||
/* Prevent runtime suspending between USB-2 and USB-3 initialization */
|
||||
@@ -376,6 +846,16 @@ static void xhci_pci_remove(struct pci_d
|
||||
@@ -380,6 +850,16 @@ static void xhci_pci_remove(struct pci_d
|
||||
{
|
||||
struct xhci_hcd *xhci;
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ produce a noisy warning.
|
||||
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -226,6 +226,7 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -227,6 +227,7 @@ static void xhci_pci_quirks(struct devic
|
||||
pdev->device == 0x0015) {
|
||||
xhci->quirks |= XHCI_RESET_ON_RESUME;
|
||||
xhci->quirks |= XHCI_ZERO_64B_REGS;
|
||||
|
||||
@ -240,7 +240,7 @@
|
||||
#ifdef CONFIG_TCP_MD5SIG
|
||||
--- a/include/linux/ipv6.h
|
||||
+++ b/include/linux/ipv6.h
|
||||
@@ -6,6 +6,7 @@
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#define ipv6_optlen(p) (((p)->hdrlen+1) << 3)
|
||||
#define ipv6_authlen(p) (((p)->hdrlen+2) << 2)
|
||||
|
||||
@ -231,7 +231,7 @@
|
||||
#ifdef CONFIG_TCP_MD5SIG
|
||||
--- a/include/linux/ipv6.h
|
||||
+++ b/include/linux/ipv6.h
|
||||
@@ -5,6 +5,7 @@
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
#define ipv6_optlen(p) (((p)->hdrlen+1) << 3)
|
||||
#define ipv6_authlen(p) (((p)->hdrlen+2) << 2)
|
||||
@ -795,7 +795,7 @@
|
||||
|
||||
--- a/net/ipv4/tcp_input.c
|
||||
+++ b/net/ipv4/tcp_input.c
|
||||
@@ -3935,14 +3935,16 @@ static bool tcp_parse_aligned_timestamp(
|
||||
@@ -3955,14 +3955,16 @@ static bool tcp_parse_aligned_timestamp(
|
||||
{
|
||||
const __be32 *ptr = (const __be32 *)(th + 1);
|
||||
|
||||
|
||||
@ -231,7 +231,7 @@
|
||||
#ifdef CONFIG_TCP_MD5SIG
|
||||
--- a/include/linux/ipv6.h
|
||||
+++ b/include/linux/ipv6.h
|
||||
@@ -6,6 +6,7 @@
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#define ipv6_optlen(p) (((p)->hdrlen+1) << 3)
|
||||
#define ipv6_authlen(p) (((p)->hdrlen+2) << 2)
|
||||
|
||||
@ -214,7 +214,7 @@
|
||||
#include <linux/uaccess.h>
|
||||
#include <linux/ipv6.h>
|
||||
#include <linux/icmpv6.h>
|
||||
@@ -836,10 +837,10 @@ static void tcp_v6_send_response(const s
|
||||
@@ -837,10 +838,10 @@ static void tcp_v6_send_response(const s
|
||||
topt = (__be32 *)(t1 + 1);
|
||||
|
||||
if (tsecr) {
|
||||
@ -231,7 +231,7 @@
|
||||
#ifdef CONFIG_TCP_MD5SIG
|
||||
--- a/include/linux/ipv6.h
|
||||
+++ b/include/linux/ipv6.h
|
||||
@@ -6,6 +6,7 @@
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#define ipv6_optlen(p) (((p)->hdrlen+1) << 3)
|
||||
#define ipv6_authlen(p) (((p)->hdrlen+2) << 2)
|
||||
|
||||
@ -10,7 +10,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -233,6 +233,10 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -234,6 +234,10 @@ static void xhci_pci_quirks(struct devic
|
||||
pdev->device == 0x3432)
|
||||
xhci->quirks |= XHCI_BROKEN_STREAMS;
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
|
||||
--- a/drivers/usb/host/xhci.c
|
||||
+++ b/drivers/usb/host/xhci.c
|
||||
@@ -1431,6 +1431,103 @@ command_cleanup:
|
||||
@@ -1441,6 +1441,103 @@ command_cleanup:
|
||||
}
|
||||
|
||||
/*
|
||||
@ -119,7 +119,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
* non-error returns are a promise to giveback() the urb later
|
||||
* we drop ownership so next owner (or urb unlink) can get it
|
||||
*/
|
||||
@@ -5230,6 +5327,7 @@ static const struct hc_driver xhci_hc_dr
|
||||
@@ -5240,6 +5337,7 @@ static const struct hc_driver xhci_hc_dr
|
||||
.endpoint_reset = xhci_endpoint_reset,
|
||||
.check_bandwidth = xhci_check_bandwidth,
|
||||
.reset_bandwidth = xhci_reset_bandwidth,
|
||||
|
||||
@ -23,7 +23,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -234,8 +234,10 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -235,8 +235,10 @@ static void xhci_pci_quirks(struct devic
|
||||
xhci->quirks |= XHCI_BROKEN_STREAMS;
|
||||
|
||||
if (pdev->vendor == PCI_VENDOR_ID_VIA &&
|
||||
|
||||
@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
#define USB_VENDOR_ID_BELKIN 0x050d
|
||||
#define USB_DEVICE_ID_FLIP_KVM 0x3201
|
||||
|
||||
@@ -1220,6 +1223,9 @@
|
||||
@@ -1221,6 +1224,9 @@
|
||||
#define USB_VENDOR_ID_XAT 0x2505
|
||||
#define USB_DEVICE_ID_XAT_CSR 0x0220
|
||||
|
||||
@ -53,7 +53,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL },
|
||||
@@ -185,6 +186,7 @@ static const struct hid_device_id hid_qu
|
||||
@@ -186,6 +187,7 @@ static const struct hid_device_id hid_qu
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_WALTOP, USB_DEVICE_ID_WALTOP_SIRIUS_BATTERY_FREE_TABLET), HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP_LTD2, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
|
||||
|
||||
@ -30,7 +30,7 @@ Signed-off-by: Johan Hovold <johan@kernel.org>
|
||||
|
||||
--- a/drivers/usb/serial/option.c
|
||||
+++ b/drivers/usb/serial/option.c
|
||||
@@ -2023,7 +2023,8 @@ static const struct usb_device_id option
|
||||
@@ -2024,7 +2024,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, 0x7d02, 0xff) },
|
||||
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },
|
||||
|
||||
@ -63,7 +63,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||
/**
|
||||
* dwc2_enable_host_interrupts() - Enables the Host mode interrupts
|
||||
*
|
||||
@@ -3346,6 +3363,7 @@ static void dwc2_conn_id_status_change(s
|
||||
@@ -3347,6 +3364,7 @@ static void dwc2_conn_id_status_change(s
|
||||
|
||||
/* B-Device connector (Device Mode) */
|
||||
if (gotgctl & GOTGCTL_CONID_B) {
|
||||
@ -71,7 +71,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||
/* Wait for switch to device mode */
|
||||
dev_dbg(hsotg->dev, "connId B\n");
|
||||
if (hsotg->bus_suspended) {
|
||||
@@ -4455,6 +4473,9 @@ static int _dwc2_hcd_start(struct usb_hc
|
||||
@@ -4456,6 +4474,9 @@ static int _dwc2_hcd_start(struct usb_hc
|
||||
}
|
||||
|
||||
spin_unlock_irqrestore(&hsotg->lock, flags);
|
||||
@ -81,7 +81,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -4482,6 +4503,8 @@ static void _dwc2_hcd_stop(struct usb_hc
|
||||
@@ -4483,6 +4504,8 @@ static void _dwc2_hcd_stop(struct usb_hc
|
||||
clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
|
||||
spin_unlock_irqrestore(&hsotg->lock, flags);
|
||||
|
||||
@ -90,7 +90,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||
usleep_range(1000, 3000);
|
||||
}
|
||||
|
||||
@@ -4518,6 +4541,7 @@ static int _dwc2_hcd_suspend(struct usb_
|
||||
@@ -4519,6 +4542,7 @@ static int _dwc2_hcd_suspend(struct usb_
|
||||
hprt0 |= HPRT0_SUSP;
|
||||
hprt0 &= ~HPRT0_PWR;
|
||||
dwc2_writel(hprt0, hsotg->regs + HPRT0);
|
||||
@ -98,7 +98,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||
}
|
||||
|
||||
/* Enter hibernation */
|
||||
@@ -4598,6 +4622,8 @@ static int _dwc2_hcd_resume(struct usb_h
|
||||
@@ -4599,6 +4623,8 @@ static int _dwc2_hcd_resume(struct usb_h
|
||||
spin_unlock_irqrestore(&hsotg->lock, flags);
|
||||
dwc2_port_resume(hsotg);
|
||||
} else {
|
||||
|
||||
@ -42,7 +42,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||
|
||||
return regulator_enable(hsotg->vbus_supply);
|
||||
}
|
||||
@@ -4474,9 +4479,7 @@ static int _dwc2_hcd_start(struct usb_hc
|
||||
@@ -4475,9 +4480,7 @@ static int _dwc2_hcd_start(struct usb_hc
|
||||
|
||||
spin_unlock_irqrestore(&hsotg->lock, flags);
|
||||
|
||||
|
||||
@ -117,7 +117,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
int br_add_bridge(struct net *net, const char *name);
|
||||
--- a/net/bridge/br_sysfs_if.c
|
||||
+++ b/net/bridge/br_sysfs_if.c
|
||||
@@ -174,6 +174,7 @@ BRPORT_ATTR_FLAG(proxyarp, BR_PROXYARP);
|
||||
@@ -177,6 +177,7 @@ BRPORT_ATTR_FLAG(proxyarp, BR_PROXYARP);
|
||||
BRPORT_ATTR_FLAG(proxyarp_wifi, BR_PROXYARP_WIFI);
|
||||
BRPORT_ATTR_FLAG(multicast_flood, BR_MCAST_FLOOD);
|
||||
BRPORT_ATTR_FLAG(broadcast_flood, BR_BCAST_FLOOD);
|
||||
@ -125,7 +125,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
#ifdef CONFIG_BRIDGE_IGMP_SNOOPING
|
||||
static ssize_t show_multicast_router(struct net_bridge_port *p, char *buf)
|
||||
@@ -223,6 +224,7 @@ static const struct brport_attribute *br
|
||||
@@ -226,6 +227,7 @@ static const struct brport_attribute *br
|
||||
&brport_attr_proxyarp_wifi,
|
||||
&brport_attr_multicast_flood,
|
||||
&brport_attr_broadcast_flood,
|
||||
|
||||
@ -80,7 +80,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
static void nfnl_queue_net_exit_batch(struct list_head *net_exit_list)
|
||||
--- a/net/netfilter/x_tables.c
|
||||
+++ b/net/netfilter/x_tables.c
|
||||
@@ -1785,8 +1785,17 @@ static int __net_init xt_net_init(struct
|
||||
@@ -1787,8 +1787,17 @@ static int __net_init xt_net_init(struct
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
|
||||
--- a/drivers/net/phy/phy.c
|
||||
+++ b/drivers/net/phy/phy.c
|
||||
@@ -397,6 +397,7 @@ int phy_mii_ioctl(struct phy_device *phy
|
||||
@@ -398,6 +398,7 @@ int phy_mii_ioctl(struct phy_device *phy
|
||||
struct mii_ioctl_data *mii_data = if_mii(ifr);
|
||||
u16 val = mii_data->val_in;
|
||||
bool change_autoneg = false;
|
||||
@ -25,7 +25,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
|
||||
switch (cmd) {
|
||||
case SIOCGMIIPHY:
|
||||
@@ -404,14 +405,29 @@ int phy_mii_ioctl(struct phy_device *phy
|
||||
@@ -405,14 +406,29 @@ int phy_mii_ioctl(struct phy_device *phy
|
||||
/* fall through */
|
||||
|
||||
case SIOCGMIIREG:
|
||||
@ -60,7 +60,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
case MII_BMCR:
|
||||
if ((val & (BMCR_RESET | BMCR_ANENABLE)) == 0) {
|
||||
if (phydev->autoneg == AUTONEG_ENABLE)
|
||||
@@ -443,11 +459,10 @@ int phy_mii_ioctl(struct phy_device *phy
|
||||
@@ -444,11 +460,10 @@ int phy_mii_ioctl(struct phy_device *phy
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -24,7 +24,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
#include <linux/workqueue.h>
|
||||
#include <linux/mdio.h>
|
||||
#include <linux/io.h>
|
||||
@@ -871,6 +872,9 @@ void phy_stop(struct phy_device *phydev)
|
||||
@@ -872,6 +873,9 @@ void phy_stop(struct phy_device *phydev)
|
||||
if (phy_interrupt_is_valid(phydev))
|
||||
phy_disable_interrupts(phydev);
|
||||
|
||||
@ -34,7 +34,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
phydev->state = PHY_HALTED;
|
||||
|
||||
out_unlock:
|
||||
@@ -899,6 +903,9 @@ void phy_start(struct phy_device *phydev
|
||||
@@ -900,6 +904,9 @@ void phy_start(struct phy_device *phydev
|
||||
|
||||
mutex_lock(&phydev->lock);
|
||||
|
||||
|
||||
@ -114,7 +114,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
config MODULES_TREE_LOOKUP
|
||||
--- a/kernel/module.c
|
||||
+++ b/kernel/module.c
|
||||
@@ -3022,9 +3022,11 @@ static struct module *setup_load_info(st
|
||||
@@ -3039,9 +3039,11 @@ static struct module *setup_load_info(st
|
||||
|
||||
static int check_modinfo(struct module *mod, struct load_info *info, int flags)
|
||||
{
|
||||
@ -127,7 +127,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (flags & MODULE_INIT_IGNORE_VERMAGIC)
|
||||
modmagic = NULL;
|
||||
|
||||
@@ -3045,6 +3047,7 @@ static int check_modinfo(struct module *
|
||||
@@ -3062,6 +3064,7 @@ static int check_modinfo(struct module *
|
||||
mod->name);
|
||||
add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK);
|
||||
}
|
||||
|
||||
@ -190,7 +190,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
__stop___dbe_table = .;
|
||||
}
|
||||
|
||||
@@ -123,7 +123,7 @@ SECTIONS
|
||||
@@ -124,7 +124,7 @@ SECTIONS
|
||||
. = ALIGN(4);
|
||||
.mips.machines.init : AT(ADDR(.mips.machines.init) - LOAD_OFFSET) {
|
||||
__mips_machines_start = .;
|
||||
|
||||
@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
} \
|
||||
\
|
||||
/* __*init sections */ \
|
||||
@@ -799,6 +809,8 @@
|
||||
@@ -804,6 +814,8 @@
|
||||
EXIT_TEXT \
|
||||
EXIT_DATA \
|
||||
EXIT_CALL \
|
||||
|
||||
@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -1415,6 +1415,7 @@ enum netdev_priv_flags {
|
||||
@@ -1416,6 +1416,7 @@ enum netdev_priv_flags {
|
||||
IFF_PHONY_HEADROOM = 1<<26,
|
||||
IFF_MACSEC = 1<<27,
|
||||
IFF_L3MDEV_RX_HANDLER = 1<<28,
|
||||
@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
};
|
||||
|
||||
#define IFF_802_1Q_VLAN IFF_802_1Q_VLAN
|
||||
@@ -1445,6 +1446,7 @@ enum netdev_priv_flags {
|
||||
@@ -1446,6 +1447,7 @@ enum netdev_priv_flags {
|
||||
#define IFF_RXFH_CONFIGURED IFF_RXFH_CONFIGURED
|
||||
#define IFF_MACSEC IFF_MACSEC
|
||||
#define IFF_L3MDEV_RX_HANDLER IFF_L3MDEV_RX_HANDLER
|
||||
@ -31,7 +31,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
/**
|
||||
* struct net_device - The DEVICE structure.
|
||||
@@ -1731,6 +1733,11 @@ struct net_device {
|
||||
@@ -1732,6 +1734,11 @@ struct net_device {
|
||||
const struct xfrmdev_ops *xfrmdev_ops;
|
||||
#endif
|
||||
|
||||
@ -43,7 +43,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
const struct header_ops *header_ops;
|
||||
|
||||
unsigned int flags;
|
||||
@@ -1805,6 +1812,10 @@ struct net_device {
|
||||
@@ -1806,6 +1813,10 @@ struct net_device {
|
||||
struct mpls_dev __rcu *mpls_ptr;
|
||||
#endif
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/usb/qmi_wwan.c
|
||||
+++ b/drivers/net/usb/qmi_wwan.c
|
||||
@@ -1297,6 +1297,7 @@ static const struct usb_device_id produc
|
||||
@@ -1285,6 +1285,7 @@ static const struct usb_device_id produc
|
||||
{QMI_FIXED_INTF(0x03f0, 0x9d1d, 1)}, /* HP lt4120 Snapdragon X5 LTE */
|
||||
{QMI_FIXED_INTF(0x22de, 0x9061, 3)}, /* WeTelecom WPD-600N */
|
||||
{QMI_QUIRK_SET_DTR(0x1e0e, 0x9001, 5)}, /* SIMCom 7100E, 7230E, 7600E ++ */
|
||||
|
||||
@ -114,7 +114,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
config MODULES_TREE_LOOKUP
|
||||
--- a/kernel/module.c
|
||||
+++ b/kernel/module.c
|
||||
@@ -3044,9 +3044,11 @@ static int setup_load_info(struct load_i
|
||||
@@ -3061,9 +3061,11 @@ static int setup_load_info(struct load_i
|
||||
|
||||
static int check_modinfo(struct module *mod, struct load_info *info, int flags)
|
||||
{
|
||||
@ -127,7 +127,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (flags & MODULE_INIT_IGNORE_VERMAGIC)
|
||||
modmagic = NULL;
|
||||
|
||||
@@ -3067,6 +3069,7 @@ static int check_modinfo(struct module *
|
||||
@@ -3084,6 +3086,7 @@ static int check_modinfo(struct module *
|
||||
mod->name);
|
||||
add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK);
|
||||
}
|
||||
|
||||
@ -181,7 +181,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
__stop___dbe_table = .;
|
||||
}
|
||||
|
||||
@@ -123,7 +123,7 @@ SECTIONS
|
||||
@@ -124,7 +124,7 @@ SECTIONS
|
||||
. = ALIGN(4);
|
||||
.mips.machines.init : AT(ADDR(.mips.machines.init) - LOAD_OFFSET) {
|
||||
__mips_machines_start = .;
|
||||
|
||||
@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
} \
|
||||
\
|
||||
/* __*init sections */ \
|
||||
@@ -848,6 +858,8 @@
|
||||
@@ -863,6 +873,8 @@
|
||||
EXIT_TEXT \
|
||||
EXIT_DATA \
|
||||
EXIT_CALL \
|
||||
|
||||
@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -1517,6 +1517,7 @@ enum netdev_priv_flags {
|
||||
@@ -1518,6 +1518,7 @@ enum netdev_priv_flags {
|
||||
IFF_FAILOVER_SLAVE = 1<<28,
|
||||
IFF_L3MDEV_RX_HANDLER = 1<<29,
|
||||
IFF_LIVE_RENAME_OK = 1<<30,
|
||||
@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
};
|
||||
|
||||
#define IFF_802_1Q_VLAN IFF_802_1Q_VLAN
|
||||
@@ -1549,6 +1550,7 @@ enum netdev_priv_flags {
|
||||
@@ -1550,6 +1551,7 @@ enum netdev_priv_flags {
|
||||
#define IFF_FAILOVER_SLAVE IFF_FAILOVER_SLAVE
|
||||
#define IFF_L3MDEV_RX_HANDLER IFF_L3MDEV_RX_HANDLER
|
||||
#define IFF_LIVE_RENAME_OK IFF_LIVE_RENAME_OK
|
||||
@ -31,7 +31,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
/**
|
||||
* struct net_device - The DEVICE structure.
|
||||
@@ -1849,6 +1851,11 @@ struct net_device {
|
||||
@@ -1850,6 +1852,11 @@ struct net_device {
|
||||
const struct tlsdev_ops *tlsdev_ops;
|
||||
#endif
|
||||
|
||||
@ -43,7 +43,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
const struct header_ops *header_ops;
|
||||
|
||||
unsigned int flags;
|
||||
@@ -1931,6 +1938,10 @@ struct net_device {
|
||||
@@ -1932,6 +1939,10 @@ struct net_device {
|
||||
struct mpls_dev __rcu *mpls_ptr;
|
||||
#endif
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/usb/qmi_wwan.c
|
||||
+++ b/drivers/net/usb/qmi_wwan.c
|
||||
@@ -1308,6 +1308,7 @@ static const struct usb_device_id produc
|
||||
@@ -1296,6 +1296,7 @@ static const struct usb_device_id produc
|
||||
{QMI_FIXED_INTF(0x03f0, 0x9d1d, 1)}, /* HP lt4120 Snapdragon X5 LTE */
|
||||
{QMI_FIXED_INTF(0x22de, 0x9061, 3)}, /* WeTelecom WPD-600N */
|
||||
{QMI_QUIRK_SET_DTR(0x1e0e, 0x9001, 5)}, /* SIMCom 7100E, 7230E, 7600E ++ */
|
||||
|
||||
@ -114,7 +114,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
config MODULES_TREE_LOOKUP
|
||||
--- a/kernel/module.c
|
||||
+++ b/kernel/module.c
|
||||
@@ -2968,9 +2968,11 @@ static struct module *setup_load_info(st
|
||||
@@ -2985,9 +2985,11 @@ static struct module *setup_load_info(st
|
||||
|
||||
static int check_modinfo(struct module *mod, struct load_info *info, int flags)
|
||||
{
|
||||
@ -127,7 +127,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (flags & MODULE_INIT_IGNORE_VERMAGIC)
|
||||
modmagic = NULL;
|
||||
|
||||
@@ -2991,6 +2993,7 @@ static int check_modinfo(struct module *
|
||||
@@ -3008,6 +3010,7 @@ static int check_modinfo(struct module *
|
||||
mod->name);
|
||||
add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK);
|
||||
}
|
||||
|
||||
@ -190,7 +190,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
__stop___dbe_table = .;
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ SECTIONS
|
||||
@@ -122,7 +122,7 @@ SECTIONS
|
||||
. = ALIGN(4);
|
||||
.mips.machines.init : AT(ADDR(.mips.machines.init) - LOAD_OFFSET) {
|
||||
__mips_machines_start = .;
|
||||
|
||||
@ -41,7 +41,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
obj-$(CONFIG_PROC_FS) += net-procfs.o
|
||||
--- a/net/core/sock.c
|
||||
+++ b/net/core/sock.c
|
||||
@@ -1464,9 +1464,11 @@ void sk_destruct(struct sock *sk)
|
||||
@@ -1468,9 +1468,11 @@ void sk_destruct(struct sock *sk)
|
||||
|
||||
static void __sk_free(struct sock *sk)
|
||||
{
|
||||
|
||||
@ -328,7 +328,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/net/core/sock.c
|
||||
+++ b/net/core/sock.c
|
||||
@@ -3116,6 +3116,8 @@ static __net_initdata struct pernet_oper
|
||||
@@ -3120,6 +3120,8 @@ static __net_initdata struct pernet_oper
|
||||
|
||||
static int __init proto_init(void)
|
||||
{
|
||||
|
||||
@ -22,7 +22,7 @@ Signed-off-by: Antti Seppälä <a.seppala@gmail.com>
|
||||
|
||||
--- a/drivers/usb/dwc2/hcd.c
|
||||
+++ b/drivers/usb/dwc2/hcd.c
|
||||
@@ -2669,6 +2669,7 @@ static int dwc2_alloc_split_dma_aligned_
|
||||
@@ -2670,6 +2670,7 @@ static int dwc2_alloc_split_dma_aligned_
|
||||
static void dwc2_free_dma_aligned_buffer(struct urb *urb)
|
||||
{
|
||||
void *stored_xfer_buffer;
|
||||
@ -30,7 +30,7 @@ Signed-off-by: Antti Seppälä <a.seppala@gmail.com>
|
||||
|
||||
if (!(urb->transfer_flags & URB_ALIGNED_TEMP_BUFFER))
|
||||
return;
|
||||
@@ -2679,9 +2680,14 @@ static void dwc2_free_dma_aligned_buffer
|
||||
@@ -2680,9 +2681,14 @@ static void dwc2_free_dma_aligned_buffer
|
||||
dma_get_cache_alignment()),
|
||||
sizeof(urb->transfer_buffer));
|
||||
|
||||
|
||||
@ -1425,7 +1425,7 @@
|
||||
+
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -1779,6 +1779,11 @@ struct net_device {
|
||||
@@ -1780,6 +1780,11 @@ struct net_device {
|
||||
/*
|
||||
* Cache lines mostly used on receive path (including eth_type_trans())
|
||||
*/
|
||||
@ -1437,7 +1437,7 @@
|
||||
/* Interface address info used in eth_type_trans() */
|
||||
unsigned char *dev_addr;
|
||||
|
||||
@@ -3667,6 +3672,19 @@ static inline void netif_tx_unlock_bh(st
|
||||
@@ -3677,6 +3682,19 @@ static inline void netif_tx_unlock_bh(st
|
||||
} \
|
||||
}
|
||||
|
||||
@ -1801,7 +1801,7 @@
|
||||
|
||||
/* Note : this field could be in headers_start/headers_end section
|
||||
* It is not yet because we do not want to have a 16 bit hole
|
||||
@@ -3958,6 +4065,13 @@ void __init skb_init(void)
|
||||
@@ -3970,6 +4077,13 @@ void __init skb_init(void)
|
||||
0,
|
||||
SLAB_HWCACHE_ALIGN|SLAB_PANIC,
|
||||
NULL);
|
||||
|
||||
@ -23,7 +23,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -826,6 +826,13 @@ struct xfrmdev_ops {
|
||||
@@ -827,6 +827,13 @@ struct xfrmdev_ops {
|
||||
};
|
||||
#endif
|
||||
|
||||
@ -37,7 +37,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
/*
|
||||
* This structure defines the management hooks for network devices.
|
||||
* The following hooks can be defined; unless noted otherwise, they are
|
||||
@@ -1057,6 +1064,10 @@ struct xfrmdev_ops {
|
||||
@@ -1058,6 +1065,10 @@ struct xfrmdev_ops {
|
||||
* int (*ndo_bridge_dellink)(struct net_device *dev, struct nlmsghdr *nlh,
|
||||
* u16 flags);
|
||||
*
|
||||
@ -48,7 +48,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
* int (*ndo_change_carrier)(struct net_device *dev, bool new_carrier);
|
||||
* Called to change device carrier. Soft-devices (like dummy, team, etc)
|
||||
* which do not represent real hardware may define this to allow their
|
||||
@@ -1281,6 +1292,8 @@ struct net_device_ops {
|
||||
@@ -1282,6 +1293,8 @@ struct net_device_ops {
|
||||
int (*ndo_bridge_dellink)(struct net_device *dev,
|
||||
struct nlmsghdr *nlh,
|
||||
u16 flags);
|
||||
|
||||
@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -827,6 +827,7 @@ struct xfrmdev_ops {
|
||||
@@ -828,6 +828,7 @@ struct xfrmdev_ops {
|
||||
#endif
|
||||
|
||||
struct flow_offload;
|
||||
@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
enum flow_offload_type {
|
||||
FLOW_OFFLOAD_ADD = 0,
|
||||
@@ -1064,8 +1065,15 @@ enum flow_offload_type {
|
||||
@@ -1065,8 +1066,15 @@ enum flow_offload_type {
|
||||
* int (*ndo_bridge_dellink)(struct net_device *dev, struct nlmsghdr *nlh,
|
||||
* u16 flags);
|
||||
*
|
||||
@ -40,7 +40,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
* Adds/deletes flow entry to/from net device flowtable.
|
||||
*
|
||||
* int (*ndo_change_carrier)(struct net_device *dev, bool new_carrier);
|
||||
@@ -1292,8 +1300,11 @@ struct net_device_ops {
|
||||
@@ -1293,8 +1301,11 @@ struct net_device_ops {
|
||||
int (*ndo_bridge_dellink)(struct net_device *dev,
|
||||
struct nlmsghdr *nlh,
|
||||
u16 flags);
|
||||
|
||||
@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -1771,6 +1771,8 @@ struct net_device {
|
||||
@@ -1772,6 +1772,8 @@ struct net_device {
|
||||
struct netdev_hw_addr_list mc;
|
||||
struct netdev_hw_addr_list dev_addrs;
|
||||
|
||||
|
||||
@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -326,6 +326,7 @@ struct napi_struct {
|
||||
@@ -327,6 +327,7 @@ struct napi_struct {
|
||||
struct list_head dev_list;
|
||||
struct hlist_node napi_hash_node;
|
||||
unsigned int napi_id;
|
||||
@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -336,6 +337,7 @@ enum {
|
||||
@@ -337,6 +338,7 @@ enum {
|
||||
NAPI_STATE_HASHED, /* In NAPI hash (busy polling possible) */
|
||||
NAPI_STATE_NO_BUSY_POLL,/* Do not add in napi_hash, no busy polling */
|
||||
NAPI_STATE_IN_BUSY_POLL,/* sk_busy_loop() owns this NAPI */
|
||||
@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -346,6 +348,7 @@ enum {
|
||||
@@ -347,6 +349,7 @@ enum {
|
||||
NAPIF_STATE_HASHED = BIT(NAPI_STATE_HASHED),
|
||||
NAPIF_STATE_NO_BUSY_POLL = BIT(NAPI_STATE_NO_BUSY_POLL),
|
||||
NAPIF_STATE_IN_BUSY_POLL = BIT(NAPI_STATE_IN_BUSY_POLL),
|
||||
@ -50,7 +50,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
};
|
||||
|
||||
enum gro_result {
|
||||
@@ -2098,6 +2101,26 @@ void netif_napi_add(struct net_device *d
|
||||
@@ -2099,6 +2102,26 @@ void netif_napi_add(struct net_device *d
|
||||
int (*poll)(struct napi_struct *, int), int weight);
|
||||
|
||||
/**
|
||||
|
||||
@ -9,7 +9,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
||||
|
||||
--- a/drivers/net/phy/phy.c
|
||||
+++ b/drivers/net/phy/phy.c
|
||||
@@ -382,6 +382,73 @@ void phy_ethtool_ksettings_get(struct ph
|
||||
@@ -383,6 +383,73 @@ void phy_ethtool_ksettings_get(struct ph
|
||||
}
|
||||
EXPORT_SYMBOL(phy_ethtool_ksettings_get);
|
||||
|
||||
|
||||
@ -213,7 +213,7 @@
|
||||
|
||||
--- a/include/linux/compiler_types.h
|
||||
+++ b/include/linux/compiler_types.h
|
||||
@@ -268,8 +268,7 @@ struct ftrace_likely_data {
|
||||
@@ -274,8 +274,7 @@ struct ftrace_likely_data {
|
||||
* of extern inline functions at link time.
|
||||
* A lot of inline functions can cause havoc with function tracing.
|
||||
*/
|
||||
|
||||
@ -1120,7 +1120,7 @@
|
||||
+
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -1905,6 +1905,11 @@ struct net_device {
|
||||
@@ -1906,6 +1906,11 @@ struct net_device {
|
||||
/*
|
||||
* Cache lines mostly used on receive path (including eth_type_trans())
|
||||
*/
|
||||
@ -1132,7 +1132,7 @@
|
||||
/* Interface address info used in eth_type_trans() */
|
||||
unsigned char *dev_addr;
|
||||
|
||||
@@ -3959,6 +3964,19 @@ static inline void netif_tx_unlock_bh(st
|
||||
@@ -3969,6 +3974,19 @@ static inline void netif_tx_unlock_bh(st
|
||||
} \
|
||||
}
|
||||
|
||||
@ -1466,7 +1466,7 @@
|
||||
|
||||
/* Note : this field could be in headers_start/headers_end section
|
||||
* It is not yet because we do not want to have a 16 bit hole
|
||||
@@ -3984,6 +4061,13 @@ void __init skb_init(void)
|
||||
@@ -3996,6 +4073,13 @@ void __init skb_init(void)
|
||||
0,
|
||||
SLAB_HWCACHE_ALIGN|SLAB_PANIC,
|
||||
NULL);
|
||||
|
||||
@ -23,7 +23,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -918,6 +918,13 @@ struct dev_ifalias {
|
||||
@@ -919,6 +919,13 @@ struct dev_ifalias {
|
||||
char ifalias[];
|
||||
};
|
||||
|
||||
@ -37,7 +37,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
/*
|
||||
* This structure defines the management hooks for network devices.
|
||||
* The following hooks can be defined; unless noted otherwise, they are
|
||||
@@ -1150,6 +1157,10 @@ struct dev_ifalias {
|
||||
@@ -1151,6 +1158,10 @@ struct dev_ifalias {
|
||||
* int (*ndo_bridge_dellink)(struct net_device *dev, struct nlmsghdr *nlh,
|
||||
* u16 flags);
|
||||
*
|
||||
@ -48,7 +48,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
* int (*ndo_change_carrier)(struct net_device *dev, bool new_carrier);
|
||||
* Called to change device carrier. Soft-devices (like dummy, team, etc)
|
||||
* which do not represent real hardware may define this to allow their
|
||||
@@ -1377,6 +1388,8 @@ struct net_device_ops {
|
||||
@@ -1378,6 +1389,8 @@ struct net_device_ops {
|
||||
int (*ndo_bridge_dellink)(struct net_device *dev,
|
||||
struct nlmsghdr *nlh,
|
||||
u16 flags);
|
||||
|
||||
@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -919,6 +919,7 @@ struct dev_ifalias {
|
||||
@@ -920,6 +920,7 @@ struct dev_ifalias {
|
||||
};
|
||||
|
||||
struct flow_offload;
|
||||
@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
enum flow_offload_type {
|
||||
FLOW_OFFLOAD_ADD = 0,
|
||||
@@ -1157,8 +1158,15 @@ enum flow_offload_type {
|
||||
@@ -1158,8 +1159,15 @@ enum flow_offload_type {
|
||||
* int (*ndo_bridge_dellink)(struct net_device *dev, struct nlmsghdr *nlh,
|
||||
* u16 flags);
|
||||
*
|
||||
@ -40,7 +40,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
* Adds/deletes flow entry to/from net device flowtable.
|
||||
*
|
||||
* int (*ndo_change_carrier)(struct net_device *dev, bool new_carrier);
|
||||
@@ -1388,8 +1396,11 @@ struct net_device_ops {
|
||||
@@ -1389,8 +1397,11 @@ struct net_device_ops {
|
||||
int (*ndo_bridge_dellink)(struct net_device *dev,
|
||||
struct nlmsghdr *nlh,
|
||||
u16 flags);
|
||||
|
||||
@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -1891,6 +1891,8 @@ struct net_device {
|
||||
@@ -1892,6 +1892,8 @@ struct net_device {
|
||||
struct netdev_hw_addr_list mc;
|
||||
struct netdev_hw_addr_list dev_addrs;
|
||||
|
||||
|
||||
@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -339,6 +339,7 @@ struct napi_struct {
|
||||
@@ -340,6 +340,7 @@ struct napi_struct {
|
||||
struct list_head dev_list;
|
||||
struct hlist_node napi_hash_node;
|
||||
unsigned int napi_id;
|
||||
@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -349,6 +350,7 @@ enum {
|
||||
@@ -350,6 +351,7 @@ enum {
|
||||
NAPI_STATE_HASHED, /* In NAPI hash (busy polling possible) */
|
||||
NAPI_STATE_NO_BUSY_POLL,/* Do not add in napi_hash, no busy polling */
|
||||
NAPI_STATE_IN_BUSY_POLL,/* sk_busy_loop() owns this NAPI */
|
||||
@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -359,6 +361,7 @@ enum {
|
||||
@@ -360,6 +362,7 @@ enum {
|
||||
NAPIF_STATE_HASHED = BIT(NAPI_STATE_HASHED),
|
||||
NAPIF_STATE_NO_BUSY_POLL = BIT(NAPI_STATE_NO_BUSY_POLL),
|
||||
NAPIF_STATE_IN_BUSY_POLL = BIT(NAPI_STATE_IN_BUSY_POLL),
|
||||
@ -50,7 +50,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
};
|
||||
|
||||
enum gro_result {
|
||||
@@ -2235,6 +2238,26 @@ void netif_napi_add(struct net_device *d
|
||||
@@ -2236,6 +2239,26 @@ void netif_napi_add(struct net_device *d
|
||||
int (*poll)(struct napi_struct *, int), int weight);
|
||||
|
||||
/**
|
||||
|
||||
@ -1754,7 +1754,7 @@
|
||||
|
||||
/* Note : this field could be in headers_start/headers_end section
|
||||
* It is not yet because we do not want to have a 16 bit hole
|
||||
@@ -3536,6 +3643,13 @@ void __init skb_init(void)
|
||||
@@ -3548,6 +3655,13 @@ void __init skb_init(void)
|
||||
0,
|
||||
SLAB_HWCACHE_ALIGN|SLAB_PANIC,
|
||||
NULL);
|
||||
|
||||
@ -24,7 +24,7 @@ Reviewed-by: Grant Grundler <grundler@chromium.org>
|
||||
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -716,6 +716,16 @@ struct xps_map {
|
||||
@@ -717,6 +717,16 @@ struct xps_map {
|
||||
#define XPS_MIN_MAP_ALLOC ((L1_CACHE_ALIGN(offsetof(struct xps_map, queues[1])) \
|
||||
- sizeof(struct xps_map)) / sizeof(u16))
|
||||
|
||||
@ -41,7 +41,7 @@ Reviewed-by: Grant Grundler <grundler@chromium.org>
|
||||
/*
|
||||
* This structure holds all XPS maps for device. Maps are indexed by CPU.
|
||||
*/
|
||||
@@ -1261,6 +1271,9 @@ struct net_device_ops {
|
||||
@@ -1262,6 +1272,9 @@ struct net_device_ops {
|
||||
const struct sk_buff *skb,
|
||||
u16 rxq_index,
|
||||
u32 flow_id);
|
||||
|
||||
@ -1,8 +1,6 @@
|
||||
diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
|
||||
index 4f76ba5d78a9..eef0d931dd4e 100644
|
||||
--- a/drivers/net/wireless/ath/ath10k/core.c
|
||||
+++ b/drivers/net/wireless/ath/ath10k/core.c
|
||||
@@ -38,18 +38,21 @@
|
||||
@@ -38,18 +38,21 @@ static unsigned int ath10k_cryptmode_par
|
||||
static bool uart_print;
|
||||
static bool skip_otp;
|
||||
static bool rawmode;
|
||||
@ -24,7 +22,7 @@ index 4f76ba5d78a9..eef0d931dd4e 100644
|
||||
|
||||
static const struct ath10k_hw_params ath10k_hw_params_list[] = {
|
||||
{
|
||||
@@ -2390,6 +2393,15 @@
|
||||
@@ -2390,6 +2393,15 @@ static void ath10k_core_register_work(st
|
||||
|
||||
/* peer stats are enabled by default */
|
||||
set_bit(ATH10K_FLAG_PEER_STATS, &ar->dev_flags);
|
||||
@ -40,11 +38,9 @@ index 4f76ba5d78a9..eef0d931dd4e 100644
|
||||
|
||||
status = ath10k_core_probe_fw(ar);
|
||||
if (status) {
|
||||
diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h
|
||||
index af68eb5d0776..251fb57cbe8f 100644
|
||||
--- a/drivers/net/wireless/ath/ath10k/core.h
|
||||
+++ b/drivers/net/wireless/ath/ath10k/core.h
|
||||
@@ -117,6 +117,7 @@
|
||||
@@ -117,6 +117,7 @@ enum ath10k_skb_flags {
|
||||
ATH10K_SKB_F_DELIVER_CAB = BIT(2),
|
||||
ATH10K_SKB_F_MGMT = BIT(3),
|
||||
ATH10K_SKB_F_QOS = BIT(4),
|
||||
@ -52,7 +48,7 @@ index af68eb5d0776..251fb57cbe8f 100644
|
||||
};
|
||||
|
||||
struct ath10k_skb_cb {
|
||||
@@ -1000,6 +1001,8 @@
|
||||
@@ -1000,6 +1001,8 @@ struct ath10k {
|
||||
u32 ampdu_reference;
|
||||
|
||||
void *ce_priv;
|
||||
@ -61,11 +57,9 @@ index af68eb5d0776..251fb57cbe8f 100644
|
||||
|
||||
/* must be last */
|
||||
u8 drv_priv[0] __aligned(sizeof(void *));
|
||||
diff --git a/drivers/net/wireless/ath/ath10k/htt_tx.c b/drivers/net/wireless/ath/ath10k/htt_tx.c
|
||||
index a182c0944cc7..0ca0705fe69a 100644
|
||||
--- a/drivers/net/wireless/ath/ath10k/htt_tx.c
|
||||
+++ b/drivers/net/wireless/ath/ath10k/htt_tx.c
|
||||
@@ -812,6 +812,10 @@ static u8 ath10k_htt_tx_get_tid(struct sk_buff *skb, bool is_eth)
|
||||
@@ -812,6 +812,10 @@ static u8 ath10k_htt_tx_get_tid(struct s
|
||||
struct ieee80211_hdr *hdr = (void *)skb->data;
|
||||
struct ath10k_skb_cb *cb = ATH10K_SKB_CB(skb);
|
||||
|
||||
@ -76,7 +70,7 @@ index a182c0944cc7..0ca0705fe69a 100644
|
||||
if (!is_eth && ieee80211_is_mgmt(hdr->frame_control))
|
||||
return HTT_DATA_TX_EXT_TID_MGMT;
|
||||
else if (cb->flags & ATH10K_SKB_F_QOS)
|
||||
@@ -933,15 +937,17 @@ int ath10k_htt_tx(struct ath10k_htt *htt, enum ath10k_hw_txrx_mode txmode,
|
||||
@@ -933,15 +937,17 @@ int ath10k_htt_tx(struct ath10k_htt *htt
|
||||
txbuf_paddr = htt->txbuf.paddr +
|
||||
(sizeof(struct ath10k_htt_txbuf) * msdu_id);
|
||||
|
||||
@ -103,11 +97,9 @@ index a182c0944cc7..0ca0705fe69a 100644
|
||||
}
|
||||
|
||||
skb_cb->paddr = dma_map_single(dev, msdu->data, msdu->len,
|
||||
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
|
||||
index 83cc8778ca1e..0ea0d0be74a1 100644
|
||||
--- a/drivers/net/wireless/ath/ath10k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath10k/mac.c
|
||||
@@ -3363,10 +3363,14 @@
|
||||
@@ -3363,10 +3363,14 @@ ath10k_mac_tx_h_get_txmode(struct ath10k
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
const struct ieee80211_hdr *hdr = (void *)skb->data;
|
||||
@ -122,7 +114,7 @@ index 83cc8778ca1e..0ea0d0be74a1 100644
|
||||
|
||||
if (ieee80211_is_mgmt(fc))
|
||||
return ATH10K_HW_TXRX_MGMT;
|
||||
@@ -3516,6 +3520,15 @@
|
||||
@@ -3516,6 +3520,15 @@ static void ath10k_mac_tx_h_fill_cb(stru
|
||||
struct ath10k_skb_cb *cb = ATH10K_SKB_CB(skb);
|
||||
|
||||
cb->flags = 0;
|
||||
@ -138,7 +130,7 @@ index 83cc8778ca1e..0ea0d0be74a1 100644
|
||||
if (!ath10k_tx_h_use_hwcrypto(vif, skb))
|
||||
cb->flags |= ATH10K_SKB_F_NO_HWCRYPT;
|
||||
|
||||
@@ -3525,8 +3538,6 @@
|
||||
@@ -3525,8 +3538,6 @@ static void ath10k_mac_tx_h_fill_cb(stru
|
||||
if (ieee80211_is_data_qos(hdr->frame_control))
|
||||
cb->flags |= ATH10K_SKB_F_QOS;
|
||||
|
||||
@ -147,7 +139,7 @@ index 83cc8778ca1e..0ea0d0be74a1 100644
|
||||
}
|
||||
|
||||
bool ath10k_mac_tx_frm_has_freq(struct ath10k *ar)
|
||||
@@ -3631,7 +3642,10 @@
|
||||
@@ -3624,7 +3635,10 @@ static int ath10k_mac_tx(struct ath10k *
|
||||
{
|
||||
struct ieee80211_hw *hw = ar->hw;
|
||||
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
|
||||
@ -159,7 +151,7 @@ index 83cc8778ca1e..0ea0d0be74a1 100644
|
||||
|
||||
/* We should disable CCK RATE due to P2P */
|
||||
if (info->flags & IEEE80211_TX_CTL_NO_CCK_RATE)
|
||||
@@ -3655,6 +3669,7 @@
|
||||
@@ -3648,6 +3662,7 @@ static int ath10k_mac_tx(struct ath10k *
|
||||
}
|
||||
}
|
||||
|
||||
@ -167,7 +159,7 @@ index 83cc8778ca1e..0ea0d0be74a1 100644
|
||||
if (!noque_offchan && info->flags & IEEE80211_TX_CTL_TX_OFFCHAN) {
|
||||
if (!ath10k_mac_tx_frm_has_freq(ar)) {
|
||||
ath10k_dbg(ar, ATH10K_DBG_MAC, "mac queued offchannel skb %pK len %d\n",
|
||||
@@ -3704,6 +3719,7 @@
|
||||
@@ -3697,6 +3712,7 @@ void ath10k_offchan_tx_work(struct work_
|
||||
int ret;
|
||||
unsigned long time_left;
|
||||
bool tmp_peer_created = false;
|
||||
@ -175,7 +167,7 @@ index 83cc8778ca1e..0ea0d0be74a1 100644
|
||||
|
||||
/* FW requirement: We must create a peer before FW will send out
|
||||
* an offchannel frame. Otherwise the frame will be stuck and
|
||||
@@ -3723,8 +3739,15 @@
|
||||
@@ -3716,8 +3732,15 @@ void ath10k_offchan_tx_work(struct work_
|
||||
ath10k_dbg(ar, ATH10K_DBG_MAC, "mac offchannel skb %pK len %d\n",
|
||||
skb, skb->len);
|
||||
|
||||
@ -193,7 +185,7 @@ index 83cc8778ca1e..0ea0d0be74a1 100644
|
||||
|
||||
spin_lock_bh(&ar->data_lock);
|
||||
vdev_id = ar->scan.vdev_id;
|
||||
@@ -4198,7 +4221,7 @@
|
||||
@@ -4191,7 +4214,7 @@ static void ath10k_mac_op_tx(struct ieee
|
||||
struct ieee80211_vif *vif = info->control.vif;
|
||||
struct ieee80211_sta *sta = control->sta;
|
||||
struct ieee80211_txq *txq = NULL;
|
||||
@ -202,7 +194,7 @@ index 83cc8778ca1e..0ea0d0be74a1 100644
|
||||
enum ath10k_hw_txrx_mode txmode;
|
||||
enum ath10k_mac_tx_path txpath;
|
||||
bool is_htt;
|
||||
@@ -4227,14 +4250,20 @@
|
||||
@@ -4220,14 +4243,20 @@ static void ath10k_mac_op_tx(struct ieee
|
||||
return;
|
||||
}
|
||||
|
||||
@ -231,7 +223,7 @@ index 83cc8778ca1e..0ea0d0be74a1 100644
|
||||
}
|
||||
spin_unlock_bh(&ar->htt.tx_lock);
|
||||
}
|
||||
@@ -4929,10 +4958,12 @@
|
||||
@@ -4922,10 +4951,12 @@ static int ath10k_mac_set_txbf_conf(stru
|
||||
static int ath10k_add_interface(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif)
|
||||
{
|
||||
@ -244,7 +236,7 @@ index 83cc8778ca1e..0ea0d0be74a1 100644
|
||||
int ret = 0;
|
||||
u32 value;
|
||||
int bit;
|
||||
@@ -5023,6 +5054,21 @@
|
||||
@@ -5016,6 +5047,21 @@ static int ath10k_add_interface(struct i
|
||||
WARN_ON(1);
|
||||
break;
|
||||
}
|
||||
@ -266,7 +258,7 @@ index 83cc8778ca1e..0ea0d0be74a1 100644
|
||||
|
||||
/* Using vdev_id as queue number will make it very easy to do per-vif
|
||||
* tx queue locking. This shouldn't wrap due to interface combinations
|
||||
@@ -8208,6 +8254,8 @@
|
||||
@@ -8201,6 +8247,8 @@ int ath10k_mac_register(struct ath10k *a
|
||||
ieee80211_hw_set(ar->hw, QUEUE_CONTROL);
|
||||
ieee80211_hw_set(ar->hw, SUPPORTS_TX_FRAG);
|
||||
ieee80211_hw_set(ar->hw, REPORTS_LOW_ACK);
|
||||
@ -275,11 +267,9 @@ index 83cc8778ca1e..0ea0d0be74a1 100644
|
||||
|
||||
if (!test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags))
|
||||
ieee80211_hw_set(ar->hw, SW_CRYPTO_CONTROL);
|
||||
diff --git a/drivers/net/wireless/ath/ath10k/txrx.c b/drivers/net/wireless/ath/ath10k/txrx.c
|
||||
index 39abf8b12903..1d8a6c2571a1 100644
|
||||
--- a/drivers/net/wireless/ath/ath10k/txrx.c
|
||||
+++ b/drivers/net/wireless/ath/ath10k/txrx.c
|
||||
@@ -60,6 +60,8 @@ int ath10k_txrx_tx_unref(struct ath10k_htt *htt,
|
||||
@@ -60,6 +60,8 @@ int ath10k_txrx_tx_unref(struct ath10k_h
|
||||
struct ath10k_skb_cb *skb_cb;
|
||||
struct ath10k_txq *artxq;
|
||||
struct sk_buff *msdu;
|
||||
@ -288,7 +278,7 @@ index 39abf8b12903..1d8a6c2571a1 100644
|
||||
|
||||
ath10k_dbg(ar, ATH10K_DBG_HTT,
|
||||
"htt tx completion msdu_id %u status %d\n",
|
||||
@@ -88,6 +90,9 @@ int ath10k_txrx_tx_unref(struct ath10k_htt *htt,
|
||||
@@ -88,6 +90,9 @@ int ath10k_txrx_tx_unref(struct ath10k_h
|
||||
artxq->num_fw_queued--;
|
||||
}
|
||||
|
||||
@ -298,9 +288,9 @@ index 39abf8b12903..1d8a6c2571a1 100644
|
||||
ath10k_htt_tx_free_msdu_id(htt, tx_done->msdu_id);
|
||||
ath10k_htt_tx_dec_pending(htt);
|
||||
if (htt->num_pending_tx == 0)
|
||||
@@ -119,7 +124,11 @@ int ath10k_txrx_tx_unref(struct ath10k_htt *htt,
|
||||
(info->flags & IEEE80211_TX_CTL_NO_ACK))
|
||||
info->flags |= IEEE80211_TX_STAT_NOACK_TRANSMITTED;
|
||||
@@ -119,7 +124,11 @@ int ath10k_txrx_tx_unref(struct ath10k_h
|
||||
(info->flags & IEEE80211_TX_CTL_NO_ACK))
|
||||
info->flags |= IEEE80211_TX_STAT_NOACK_TRANSMITTED;
|
||||
|
||||
- ieee80211_tx_status(htt->ar->hw, msdu);
|
||||
+ if (flags & ATH10K_SKB_F_HW_80211_ENCAP)
|
||||
|
||||
@ -24,7 +24,7 @@ Reviewed-by: Grant Grundler <grundler@chromium.org>
|
||||
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -742,6 +742,16 @@ struct xps_map {
|
||||
@@ -743,6 +743,16 @@ struct xps_map {
|
||||
#define XPS_MIN_MAP_ALLOC ((L1_CACHE_ALIGN(offsetof(struct xps_map, queues[1])) \
|
||||
- sizeof(struct xps_map)) / sizeof(u16))
|
||||
|
||||
@ -41,7 +41,7 @@ Reviewed-by: Grant Grundler <grundler@chromium.org>
|
||||
/*
|
||||
* This structure holds all XPS maps for device. Maps are indexed by CPU.
|
||||
*/
|
||||
@@ -1356,6 +1366,9 @@ struct net_device_ops {
|
||||
@@ -1357,6 +1367,9 @@ struct net_device_ops {
|
||||
const struct sk_buff *skb,
|
||||
u16 rxq_index,
|
||||
u32 flow_id);
|
||||
|
||||
@ -74,7 +74,7 @@ Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
|
||||
}
|
||||
|
||||
ret = reset_control_deassert(res->ahb_reset);
|
||||
@@ -412,10 +436,14 @@ static int qcom_pcie_init_2_1_0(struct q
|
||||
@@ -414,10 +438,14 @@ static int qcom_pcie_init_2_1_0(struct q
|
||||
return 0;
|
||||
|
||||
err_deassert_ahb:
|
||||
|
||||
@ -100,7 +100,7 @@ Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
|
||||
static int qcom_pcie_get_resources_2_1_0(struct qcom_pcie *pcie)
|
||||
{
|
||||
struct qcom_pcie_resources_2_1_0 *res = &pcie->res.v2_1_0;
|
||||
@@ -433,6 +508,9 @@ static int qcom_pcie_init_2_1_0(struct q
|
||||
@@ -435,6 +510,9 @@ static int qcom_pcie_init_2_1_0(struct q
|
||||
writel(CFG_BRIDGE_SB_INIT,
|
||||
pci->dbi_base + PCIE20_AXI_MSTR_RESP_COMP_CTRL1);
|
||||
|
||||
|
||||
@ -26,7 +26,7 @@ Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
|
||||
};
|
||||
|
||||
#define to_qcom_pcie(x) dev_get_drvdata((x)->dev)
|
||||
@@ -500,6 +503,11 @@ static int qcom_pcie_init_2_1_0(struct q
|
||||
@@ -502,6 +505,11 @@ static int qcom_pcie_init_2_1_0(struct q
|
||||
|
||||
/* wait for clock acquisition */
|
||||
usleep_range(1000, 1500);
|
||||
@ -38,7 +38,7 @@ Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
|
||||
|
||||
|
||||
/* Set the Max TLP size to 2K, instead of using default of 4K */
|
||||
@@ -1363,6 +1371,8 @@ static int qcom_pcie_probe(struct platfo
|
||||
@@ -1365,6 +1373,8 @@ static int qcom_pcie_probe(struct platfo
|
||||
struct dw_pcie *pci;
|
||||
struct qcom_pcie *pcie;
|
||||
int ret;
|
||||
@ -47,7 +47,7 @@ Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
|
||||
|
||||
pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL);
|
||||
if (!pcie)
|
||||
@@ -1393,6 +1403,9 @@ static int qcom_pcie_probe(struct platfo
|
||||
@@ -1395,6 +1405,9 @@ static int qcom_pcie_probe(struct platfo
|
||||
goto err_pm_runtime_put;
|
||||
}
|
||||
|
||||
|
||||
@ -31,7 +31,7 @@ Signed-off-by: Gokul Sriram Palanisamy <gpalan@codeaurora.org>
|
||||
#define QCOM_PCIE_2_1_0_MAX_SUPPLY 3
|
||||
struct qcom_pcie_resources_2_1_0 {
|
||||
struct clk *iface_clk;
|
||||
@@ -1471,6 +1479,35 @@ err_pm_runtime_put:
|
||||
@@ -1473,6 +1481,35 @@ err_pm_runtime_put:
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@ -67,7 +67,7 @@ Signed-off-by: Abhishek Sahu <absahu@codeaurora.org>
|
||||
ret = clk_prepare_enable(res->aux_clk);
|
||||
if (ret) {
|
||||
dev_err(dev, "cannot prepare/enable aux clock\n");
|
||||
@@ -509,6 +503,12 @@ static int qcom_pcie_init_2_1_0(struct q
|
||||
@@ -511,6 +505,12 @@ static int qcom_pcie_init_2_1_0(struct q
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -80,7 +80,7 @@ Signed-off-by: Abhishek Sahu <absahu@codeaurora.org>
|
||||
/* wait for clock acquisition */
|
||||
usleep_range(1000, 1500);
|
||||
if (pcie->force_gen1) {
|
||||
@@ -534,8 +534,6 @@ err_deassert_ahb:
|
||||
@@ -536,8 +536,6 @@ err_deassert_ahb:
|
||||
err_clk_ref:
|
||||
clk_disable_unprepare(res->aux_clk);
|
||||
err_clk_aux:
|
||||
|
||||
@ -539,7 +539,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -2377,7 +2377,8 @@ int register_netdevice_notifier(struct n
|
||||
@@ -2378,7 +2378,8 @@ int register_netdevice_notifier(struct n
|
||||
int unregister_netdevice_notifier(struct notifier_block *nb);
|
||||
|
||||
struct netdev_notifier_info {
|
||||
@ -549,7 +549,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
};
|
||||
|
||||
struct netdev_notifier_info_ext {
|
||||
@@ -2409,6 +2410,7 @@ static inline void netdev_notifier_info_
|
||||
@@ -2410,6 +2411,7 @@ static inline void netdev_notifier_info_
|
||||
struct net_device *dev)
|
||||
{
|
||||
info->dev = dev;
|
||||
@ -557,7 +557,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
||||
}
|
||||
|
||||
static inline struct net_device *
|
||||
@@ -2417,6 +2419,12 @@ netdev_notifier_info_to_dev(const struct
|
||||
@@ -2418,6 +2420,12 @@ netdev_notifier_info_to_dev(const struct
|
||||
return info->dev;
|
||||
}
|
||||
|
||||
|
||||
@ -528,7 +528,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
|
||||
reg &= ~DWC3_DCTL_INITU2ENA;
|
||||
--- a/drivers/usb/dwc3/gadget.c
|
||||
+++ b/drivers/usb/dwc3/gadget.c
|
||||
@@ -3216,6 +3216,7 @@ int dwc3_gadget_init(struct dwc3 *dwc)
|
||||
@@ -3231,6 +3231,7 @@ int dwc3_gadget_init(struct dwc3 *dwc)
|
||||
{
|
||||
int ret;
|
||||
int irq;
|
||||
@ -536,7 +536,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
|
||||
|
||||
irq = dwc3_gadget_get_irq(dwc);
|
||||
if (irq < 0) {
|
||||
@@ -3294,6 +3295,12 @@ int dwc3_gadget_init(struct dwc3 *dwc)
|
||||
@@ -3309,6 +3310,12 @@ int dwc3_gadget_init(struct dwc3 *dwc)
|
||||
|
||||
dwc3_gadget_set_speed(&dwc->gadget, dwc->maximum_speed);
|
||||
|
||||
@ -1340,7 +1340,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
|
||||
while (ep_ring->dequeue != td->last_trb)
|
||||
--- a/drivers/usb/host/xhci.c
|
||||
+++ b/drivers/usb/host/xhci.c
|
||||
@@ -1605,13 +1605,38 @@ static int xhci_urb_dequeue(struct usb_h
|
||||
@@ -1615,13 +1615,38 @@ static int xhci_urb_dequeue(struct usb_h
|
||||
ret = -ENOMEM;
|
||||
goto done;
|
||||
}
|
||||
|
||||
@ -161,7 +161,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
|
||||
|
||||
- reg = flexcan_read(®s->mcr);
|
||||
+ reg = priv->read(®s->mcr);
|
||||
reg |= FLEXCAN_MCR_HALT;
|
||||
reg |= FLEXCAN_MCR_FRZ | FLEXCAN_MCR_HALT;
|
||||
- flexcan_write(reg, ®s->mcr);
|
||||
+ priv->write(reg, ®s->mcr);
|
||||
|
||||
@ -527,7 +527,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
|
||||
|
||||
flexcan_transceiver_disable(priv);
|
||||
priv->can.state = CAN_STATE_STOPPED;
|
||||
@@ -1209,26 +1226,26 @@ static int register_flexcandev(struct ne
|
||||
@@ -1209,9 +1226,9 @@ static int register_flexcandev(struct ne
|
||||
err = flexcan_chip_disable(priv);
|
||||
if (err)
|
||||
goto out_disable_per;
|
||||
@ -539,13 +539,13 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
|
||||
|
||||
err = flexcan_chip_enable(priv);
|
||||
if (err)
|
||||
@@ -1223,16 +1240,16 @@ static int register_flexcandev(struct ne
|
||||
goto out_chip_disable;
|
||||
|
||||
/* set freeze, halt and activate FIFO, restrict register access */
|
||||
/* activate FIFO, restrict register access */
|
||||
- reg = flexcan_read(®s->mcr);
|
||||
+ reg = priv->read(®s->mcr);
|
||||
reg |= FLEXCAN_MCR_FRZ | FLEXCAN_MCR_HALT |
|
||||
FLEXCAN_MCR_FEN | FLEXCAN_MCR_SUPV;
|
||||
reg |= FLEXCAN_MCR_FEN | FLEXCAN_MCR_SUPV;
|
||||
- flexcan_write(reg, ®s->mcr);
|
||||
+ priv->write(reg, ®s->mcr);
|
||||
|
||||
@ -559,7 +559,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
|
||||
if (!(reg & FLEXCAN_MCR_FEN)) {
|
||||
netdev_err(dev, "Could not enable RX FIFO, unsupported core\n");
|
||||
err = -ENODEV;
|
||||
@@ -1256,8 +1273,12 @@ static void unregister_flexcandev(struct
|
||||
@@ -1260,8 +1277,12 @@ static void unregister_flexcandev(struct
|
||||
static const struct of_device_id flexcan_of_match[] = {
|
||||
{ .compatible = "fsl,imx6q-flexcan", .data = &fsl_imx6q_devtype_data, },
|
||||
{ .compatible = "fsl,imx28-flexcan", .data = &fsl_imx28_devtype_data, },
|
||||
@ -572,7 +572,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
|
||||
{ /* sentinel */ },
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, flexcan_of_match);
|
||||
@@ -1337,6 +1358,21 @@ static int flexcan_probe(struct platform
|
||||
@@ -1341,6 +1362,21 @@ static int flexcan_probe(struct platform
|
||||
dev->flags |= IFF_ECHO;
|
||||
|
||||
priv = netdev_priv(dev);
|
||||
|
||||
@ -22,7 +22,7 @@ Signed-off-by: Yinbo Zhu <yinbo.zhu@nxp.com>
|
||||
|
||||
--- a/drivers/mmc/core/mmc.c
|
||||
+++ b/drivers/mmc/core/mmc.c
|
||||
@@ -1173,6 +1173,9 @@ static int mmc_select_hs400(struct mmc_c
|
||||
@@ -1180,6 +1180,9 @@ static int mmc_select_hs400(struct mmc_c
|
||||
goto out_err;
|
||||
|
||||
/* Switch card to DDR */
|
||||
|
||||
@ -17,7 +17,7 @@ Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
|
||||
|
||||
--- a/drivers/rtc/Kconfig
|
||||
+++ b/drivers/rtc/Kconfig
|
||||
@@ -1716,6 +1716,16 @@ config RTC_DRV_MT6397
|
||||
@@ -1717,6 +1717,16 @@ config RTC_DRV_MT6397
|
||||
|
||||
If you want to use Mediatek(R) RTC interface, select Y or M here.
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
|
||||
|
||||
--- a/drivers/rtc/Kconfig
|
||||
+++ b/drivers/rtc/Kconfig
|
||||
@@ -1707,14 +1707,14 @@ config RTC_DRV_MOXART
|
||||
@@ -1708,14 +1708,14 @@ config RTC_DRV_MOXART
|
||||
will be called rtc-moxart
|
||||
|
||||
config RTC_DRV_MT6397
|
||||
|
||||
@ -137,7 +137,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
sdr_set_bits(host->base + MSDC_CFG, MSDC_CFG_CKPDN);
|
||||
while (!(readl(host->base + MSDC_CFG) & MSDC_CFG_CKSTB))
|
||||
cpu_relax();
|
||||
@@ -1620,12 +1673,17 @@ static int msdc_drv_probe(struct platfor
|
||||
@@ -1622,12 +1675,17 @@ static int msdc_drv_probe(struct platfor
|
||||
struct mmc_host *mmc;
|
||||
struct msdc_host *host;
|
||||
struct resource *res;
|
||||
@ -155,7 +155,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
/* Allocate MMC host for this device */
|
||||
mmc = mmc_alloc_host(sizeof(struct msdc_host), &pdev->dev);
|
||||
if (!mmc)
|
||||
@@ -1689,11 +1747,15 @@ static int msdc_drv_probe(struct platfor
|
||||
@@ -1691,11 +1749,15 @@ static int msdc_drv_probe(struct platfor
|
||||
msdc_of_property_parse(pdev, host);
|
||||
|
||||
host->dev = &pdev->dev;
|
||||
@ -172,7 +172,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
|
||||
mmc->caps |= MMC_CAP_ERASE | MMC_CAP_CMD23;
|
||||
/* MMC core transfer sizes tunable parameters */
|
||||
@@ -1842,12 +1904,6 @@ static const struct dev_pm_ops msdc_dev_
|
||||
@@ -1844,12 +1906,6 @@ static const struct dev_pm_ops msdc_dev_
|
||||
SET_RUNTIME_PM_OPS(msdc_runtime_suspend, msdc_runtime_resume, NULL)
|
||||
};
|
||||
|
||||
|
||||
@ -58,7 +58,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
sdr_set_field(host->base + PAD_CMD_TUNE,
|
||||
MSDC_PAD_TUNE_CMDRRDLY,
|
||||
host->hs400_cmd_int_delay);
|
||||
@@ -1597,7 +1603,8 @@ static int msdc_execute_tuning(struct mm
|
||||
@@ -1599,7 +1605,8 @@ static int msdc_execute_tuning(struct mm
|
||||
struct msdc_host *host = mmc_priv(mmc);
|
||||
int ret;
|
||||
|
||||
|
||||
@ -78,7 +78,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
writel(host->saved_tune_para.pad_cmd_tune,
|
||||
host->base + PAD_CMD_TUNE);
|
||||
}
|
||||
@@ -1226,6 +1233,7 @@ static irqreturn_t msdc_irq(int irq, voi
|
||||
@@ -1228,6 +1235,7 @@ static irqreturn_t msdc_irq(int irq, voi
|
||||
static void msdc_init_hw(struct msdc_host *host)
|
||||
{
|
||||
u32 val;
|
||||
@ -86,7 +86,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
|
||||
/* Configure to MMC/SD mode, clock free running */
|
||||
sdr_set_bits(host->base + MSDC_CFG, MSDC_CFG_MODE | MSDC_CFG_CKPDN);
|
||||
@@ -1241,7 +1249,7 @@ static void msdc_init_hw(struct msdc_hos
|
||||
@@ -1243,7 +1251,7 @@ static void msdc_init_hw(struct msdc_hos
|
||||
val = readl(host->base + MSDC_INT);
|
||||
writel(val, host->base + MSDC_INT);
|
||||
|
||||
@ -95,7 +95,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
writel(0, host->base + MSDC_IOCON);
|
||||
sdr_set_field(host->base + MSDC_IOCON, MSDC_IOCON_DDLSEL, 0);
|
||||
writel(0x403c0046, host->base + MSDC_PATCH_BIT);
|
||||
@@ -1261,7 +1269,7 @@ static void msdc_init_hw(struct msdc_hos
|
||||
@@ -1263,7 +1271,7 @@ static void msdc_init_hw(struct msdc_hos
|
||||
sdr_set_field(host->base + SDC_CFG, SDC_CFG_DTOC, 3);
|
||||
|
||||
host->def_tune_para.iocon = readl(host->base + MSDC_IOCON);
|
||||
@ -104,7 +104,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
dev_dbg(host->dev, "init hardware done!");
|
||||
}
|
||||
|
||||
@@ -1404,18 +1412,19 @@ static int msdc_tune_response(struct mmc
|
||||
@@ -1406,18 +1414,19 @@ static int msdc_tune_response(struct mmc
|
||||
struct msdc_delay_phase internal_delay_phase;
|
||||
u8 final_delay, final_maxlen;
|
||||
u32 internal_delay = 0;
|
||||
@ -126,7 +126,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
MSDC_PAD_TUNE_CMDRDLY, i);
|
||||
/*
|
||||
* Using the same parameters, it may sometimes pass the test,
|
||||
@@ -1439,7 +1448,7 @@ static int msdc_tune_response(struct mmc
|
||||
@@ -1441,7 +1450,7 @@ static int msdc_tune_response(struct mmc
|
||||
|
||||
sdr_set_bits(host->base + MSDC_IOCON, MSDC_IOCON_RSPL);
|
||||
for (i = 0; i < PAD_DELAY_MAX; i++) {
|
||||
@ -135,7 +135,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
MSDC_PAD_TUNE_CMDRDLY, i);
|
||||
/*
|
||||
* Using the same parameters, it may sometimes pass the test,
|
||||
@@ -1464,12 +1473,12 @@ skip_fall:
|
||||
@@ -1466,12 +1475,12 @@ skip_fall:
|
||||
final_maxlen = final_fall_delay.maxlen;
|
||||
if (final_maxlen == final_rise_delay.maxlen) {
|
||||
sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_RSPL);
|
||||
@ -150,7 +150,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
final_fall_delay.final_phase);
|
||||
final_delay = final_fall_delay.final_phase;
|
||||
}
|
||||
@@ -1477,7 +1486,7 @@ skip_fall:
|
||||
@@ -1479,7 +1488,7 @@ skip_fall:
|
||||
goto skip_internal;
|
||||
|
||||
for (i = 0; i < PAD_DELAY_MAX; i++) {
|
||||
@ -159,7 +159,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
MSDC_PAD_TUNE_CMDRRDLY, i);
|
||||
mmc_send_tuning(mmc, opcode, &cmd_err);
|
||||
if (!cmd_err)
|
||||
@@ -1485,7 +1494,7 @@ skip_fall:
|
||||
@@ -1487,7 +1496,7 @@ skip_fall:
|
||||
}
|
||||
dev_dbg(host->dev, "Final internal delay: 0x%x\n", internal_delay);
|
||||
internal_delay_phase = get_best_delay(host, internal_delay);
|
||||
@ -168,7 +168,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
internal_delay_phase.final_phase);
|
||||
skip_internal:
|
||||
dev_dbg(host->dev, "Final cmd pad delay: %x\n", final_delay);
|
||||
@@ -1548,12 +1557,13 @@ static int msdc_tune_data(struct mmc_hos
|
||||
@@ -1550,12 +1559,13 @@ static int msdc_tune_data(struct mmc_hos
|
||||
u32 rise_delay = 0, fall_delay = 0;
|
||||
struct msdc_delay_phase final_rise_delay, final_fall_delay = { 0,};
|
||||
u8 final_delay, final_maxlen;
|
||||
@ -183,7 +183,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
MSDC_PAD_TUNE_DATRRDLY, i);
|
||||
ret = mmc_send_tuning(mmc, opcode, NULL);
|
||||
if (!ret)
|
||||
@@ -1568,7 +1578,7 @@ static int msdc_tune_data(struct mmc_hos
|
||||
@@ -1570,7 +1580,7 @@ static int msdc_tune_data(struct mmc_hos
|
||||
sdr_set_bits(host->base + MSDC_IOCON, MSDC_IOCON_DSPL);
|
||||
sdr_set_bits(host->base + MSDC_IOCON, MSDC_IOCON_W_DSPL);
|
||||
for (i = 0; i < PAD_DELAY_MAX; i++) {
|
||||
@ -192,7 +192,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
MSDC_PAD_TUNE_DATRRDLY, i);
|
||||
ret = mmc_send_tuning(mmc, opcode, NULL);
|
||||
if (!ret)
|
||||
@@ -1581,14 +1591,14 @@ skip_fall:
|
||||
@@ -1583,14 +1593,14 @@ skip_fall:
|
||||
if (final_maxlen == final_rise_delay.maxlen) {
|
||||
sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_DSPL);
|
||||
sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_W_DSPL);
|
||||
@ -209,7 +209,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
MSDC_PAD_TUNE_DATRRDLY,
|
||||
final_fall_delay.final_phase);
|
||||
final_delay = final_fall_delay.final_phase;
|
||||
@@ -1602,6 +1612,7 @@ static int msdc_execute_tuning(struct mm
|
||||
@@ -1604,6 +1614,7 @@ static int msdc_execute_tuning(struct mm
|
||||
{
|
||||
struct msdc_host *host = mmc_priv(mmc);
|
||||
int ret;
|
||||
@ -217,7 +217,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
|
||||
if (host->hs400_mode &&
|
||||
host->dev_comp->hs400_tune)
|
||||
@@ -1619,7 +1630,7 @@ static int msdc_execute_tuning(struct mm
|
||||
@@ -1621,7 +1632,7 @@ static int msdc_execute_tuning(struct mm
|
||||
}
|
||||
|
||||
host->saved_tune_para.iocon = readl(host->base + MSDC_IOCON);
|
||||
@ -226,7 +226,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
host->saved_tune_para.pad_cmd_tune = readl(host->base + PAD_CMD_TUNE);
|
||||
return ret;
|
||||
}
|
||||
@@ -1860,10 +1871,12 @@ static int msdc_drv_remove(struct platfo
|
||||
@@ -1862,10 +1873,12 @@ static int msdc_drv_remove(struct platfo
|
||||
#ifdef CONFIG_PM
|
||||
static void msdc_save_reg(struct msdc_host *host)
|
||||
{
|
||||
@ -240,7 +240,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
host->save_para.patch_bit0 = readl(host->base + MSDC_PATCH_BIT);
|
||||
host->save_para.patch_bit1 = readl(host->base + MSDC_PATCH_BIT1);
|
||||
host->save_para.pad_ds_tune = readl(host->base + PAD_DS_TUNE);
|
||||
@@ -1873,10 +1886,12 @@ static void msdc_save_reg(struct msdc_ho
|
||||
@@ -1875,10 +1888,12 @@ static void msdc_save_reg(struct msdc_ho
|
||||
|
||||
static void msdc_restore_reg(struct msdc_host *host)
|
||||
{
|
||||
|
||||
@ -94,7 +94,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
};
|
||||
|
||||
static const struct of_device_id msdc_of_ids[] = {
|
||||
@@ -1254,8 +1275,29 @@ static void msdc_init_hw(struct msdc_hos
|
||||
@@ -1256,8 +1277,29 @@ static void msdc_init_hw(struct msdc_hos
|
||||
sdr_set_field(host->base + MSDC_IOCON, MSDC_IOCON_DDLSEL, 0);
|
||||
writel(0x403c0046, host->base + MSDC_PATCH_BIT);
|
||||
sdr_set_field(host->base + MSDC_PATCH_BIT, MSDC_CKGEN_MSDC_DLY_SEL, 1);
|
||||
@ -125,7 +125,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
|
||||
/* Configure to enable SDIO mode.
|
||||
* it's must otherwise sdio cmd5 failed
|
||||
@@ -1270,6 +1312,8 @@ static void msdc_init_hw(struct msdc_hos
|
||||
@@ -1272,6 +1314,8 @@ static void msdc_init_hw(struct msdc_hos
|
||||
|
||||
host->def_tune_para.iocon = readl(host->base + MSDC_IOCON);
|
||||
host->def_tune_para.pad_tune = readl(host->base + tune_reg);
|
||||
@ -134,7 +134,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
dev_dbg(host->dev, "init hardware done!");
|
||||
}
|
||||
|
||||
@@ -1482,7 +1526,7 @@ skip_fall:
|
||||
@@ -1484,7 +1528,7 @@ skip_fall:
|
||||
final_fall_delay.final_phase);
|
||||
final_delay = final_fall_delay.final_phase;
|
||||
}
|
||||
@ -143,7 +143,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
goto skip_internal;
|
||||
|
||||
for (i = 0; i < PAD_DELAY_MAX; i++) {
|
||||
@@ -1641,6 +1685,8 @@ static int msdc_prepare_hs400_tuning(str
|
||||
@@ -1643,6 +1687,8 @@ static int msdc_prepare_hs400_tuning(str
|
||||
host->hs400_mode = true;
|
||||
|
||||
writel(host->hs400_ds_delay, host->base + PAD_DS_TUNE);
|
||||
@ -152,7 +152,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1879,6 +1925,7 @@ static void msdc_save_reg(struct msdc_ho
|
||||
@@ -1881,6 +1927,7 @@ static void msdc_save_reg(struct msdc_ho
|
||||
host->save_para.pad_tune = readl(host->base + tune_reg);
|
||||
host->save_para.patch_bit0 = readl(host->base + MSDC_PATCH_BIT);
|
||||
host->save_para.patch_bit1 = readl(host->base + MSDC_PATCH_BIT1);
|
||||
@ -160,7 +160,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
host->save_para.pad_ds_tune = readl(host->base + PAD_DS_TUNE);
|
||||
host->save_para.pad_cmd_tune = readl(host->base + PAD_CMD_TUNE);
|
||||
host->save_para.emmc50_cfg0 = readl(host->base + EMMC50_CFG0);
|
||||
@@ -1894,6 +1941,7 @@ static void msdc_restore_reg(struct msdc
|
||||
@@ -1896,6 +1943,7 @@ static void msdc_restore_reg(struct msdc
|
||||
writel(host->save_para.pad_tune, host->base + tune_reg);
|
||||
writel(host->save_para.patch_bit0, host->base + MSDC_PATCH_BIT);
|
||||
writel(host->save_para.patch_bit1, host->base + MSDC_PATCH_BIT1);
|
||||
|
||||
@ -56,7 +56,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
};
|
||||
|
||||
static const struct of_device_id msdc_of_ids[] = {
|
||||
@@ -1277,6 +1282,8 @@ static void msdc_init_hw(struct msdc_hos
|
||||
@@ -1279,6 +1284,8 @@ static void msdc_init_hw(struct msdc_hos
|
||||
sdr_set_field(host->base + MSDC_PATCH_BIT, MSDC_CKGEN_MSDC_DLY_SEL, 1);
|
||||
writel(0xffff4089, host->base + MSDC_PATCH_BIT1);
|
||||
sdr_set_bits(host->base + EMMC50_CFG0, EMMC50_CFG_CFCSTS_SEL);
|
||||
|
||||
@ -114,7 +114,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
};
|
||||
|
||||
static const struct of_device_id msdc_of_ids[] = {
|
||||
@@ -1282,15 +1303,31 @@ static void msdc_init_hw(struct msdc_hos
|
||||
@@ -1284,15 +1305,31 @@ static void msdc_init_hw(struct msdc_hos
|
||||
sdr_set_field(host->base + MSDC_PATCH_BIT, MSDC_CKGEN_MSDC_DLY_SEL, 1);
|
||||
writel(0xffff4089, host->base + MSDC_PATCH_BIT1);
|
||||
sdr_set_bits(host->base + EMMC50_CFG0, EMMC50_CFG_CFCSTS_SEL);
|
||||
@ -150,7 +150,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
/* use async fifo, then no need tune internal delay */
|
||||
sdr_clr_bits(host->base + MSDC_PATCH_BIT2,
|
||||
MSDC_PATCH_BIT2_CFGRESP);
|
||||
@@ -1936,6 +1973,7 @@ static void msdc_save_reg(struct msdc_ho
|
||||
@@ -1938,6 +1975,7 @@ static void msdc_save_reg(struct msdc_ho
|
||||
host->save_para.pad_ds_tune = readl(host->base + PAD_DS_TUNE);
|
||||
host->save_para.pad_cmd_tune = readl(host->base + PAD_CMD_TUNE);
|
||||
host->save_para.emmc50_cfg0 = readl(host->base + EMMC50_CFG0);
|
||||
@ -158,7 +158,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
}
|
||||
|
||||
static void msdc_restore_reg(struct msdc_host *host)
|
||||
@@ -1952,6 +1990,7 @@ static void msdc_restore_reg(struct msdc
|
||||
@@ -1954,6 +1992,7 @@ static void msdc_restore_reg(struct msdc
|
||||
writel(host->save_para.pad_ds_tune, host->base + PAD_DS_TUNE);
|
||||
writel(host->save_para.pad_cmd_tune, host->base + PAD_CMD_TUNE);
|
||||
writel(host->save_para.emmc50_cfg0, host->base + EMMC50_CFG0);
|
||||
|
||||
@ -71,7 +71,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
host->sclk = sclk;
|
||||
host->mclk = hz;
|
||||
host->timing = timing;
|
||||
@@ -1825,6 +1841,11 @@ static int msdc_drv_probe(struct platfor
|
||||
@@ -1827,6 +1843,11 @@ static int msdc_drv_probe(struct platfor
|
||||
goto host_free;
|
||||
}
|
||||
|
||||
|
||||
@ -24,7 +24,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
u32 hs400_ds_delay;
|
||||
u32 hs200_cmd_int_delay; /* cmd internal delay for HS200/SDR104 */
|
||||
u32 hs400_cmd_int_delay; /* cmd internal delay for HS400 */
|
||||
@@ -1664,6 +1665,8 @@ static int msdc_tune_data(struct mmc_hos
|
||||
@@ -1666,6 +1667,8 @@ static int msdc_tune_data(struct mmc_hos
|
||||
u32 tune_reg = host->dev_comp->pad_tune_reg;
|
||||
int i, ret;
|
||||
|
||||
@ -33,7 +33,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_DSPL);
|
||||
sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_W_DSPL);
|
||||
for (i = 0 ; i < PAD_DELAY_MAX; i++) {
|
||||
@@ -1776,6 +1779,9 @@ static const struct mmc_host_ops mt_msdc
|
||||
@@ -1778,6 +1781,9 @@ static const struct mmc_host_ops mt_msdc
|
||||
static void msdc_of_property_parse(struct platform_device *pdev,
|
||||
struct msdc_host *host)
|
||||
{
|
||||
|
||||
@ -40,7 +40,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
u32 sdc_fifo_cfg;
|
||||
};
|
||||
|
||||
@@ -1750,6 +1754,9 @@ static int msdc_prepare_hs400_tuning(str
|
||||
@@ -1752,6 +1756,9 @@ static int msdc_prepare_hs400_tuning(str
|
||||
writel(host->hs400_ds_delay, host->base + PAD_DS_TUNE);
|
||||
/* hs400 mode must set it to 0 */
|
||||
sdr_clr_bits(host->base + MSDC_PATCH_BIT2, MSDC_PATCH_BIT2_CFGCRCSTS);
|
||||
@ -50,7 +50,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2000,6 +2007,7 @@ static void msdc_save_reg(struct msdc_ho
|
||||
@@ -2002,6 +2009,7 @@ static void msdc_save_reg(struct msdc_ho
|
||||
host->save_para.pad_ds_tune = readl(host->base + PAD_DS_TUNE);
|
||||
host->save_para.pad_cmd_tune = readl(host->base + PAD_CMD_TUNE);
|
||||
host->save_para.emmc50_cfg0 = readl(host->base + EMMC50_CFG0);
|
||||
@ -58,7 +58,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
host->save_para.sdc_fifo_cfg = readl(host->base + SDC_FIFO_CFG);
|
||||
}
|
||||
|
||||
@@ -2017,6 +2025,7 @@ static void msdc_restore_reg(struct msdc
|
||||
@@ -2019,6 +2027,7 @@ static void msdc_restore_reg(struct msdc
|
||||
writel(host->save_para.pad_ds_tune, host->base + PAD_DS_TUNE);
|
||||
writel(host->save_para.pad_cmd_tune, host->base + PAD_CMD_TUNE);
|
||||
writel(host->save_para.emmc50_cfg0, host->base + EMMC50_CFG0);
|
||||
|
||||
@ -16,7 +16,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||
|
||||
--- a/drivers/mmc/host/mtk-sd.c
|
||||
+++ b/drivers/mmc/host/mtk-sd.c
|
||||
@@ -1552,7 +1552,8 @@ static int msdc_tune_response(struct mmc
|
||||
@@ -1554,7 +1554,8 @@ static int msdc_tune_response(struct mmc
|
||||
}
|
||||
final_rise_delay = get_best_delay(host, rise_delay);
|
||||
/* if rising edge has enough margin, then do not scan falling edge */
|
||||
|
||||
@ -86,7 +86,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
if (!xhci->shared_hcd) {
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -287,6 +287,9 @@ static int xhci_pci_setup(struct usb_hcd
|
||||
@@ -291,6 +291,9 @@ static int xhci_pci_setup(struct usb_hcd
|
||||
if (!xhci->sbrn)
|
||||
pci_read_config_byte(pdev, XHCI_SBRN_OFFSET, &xhci->sbrn);
|
||||
|
||||
|
||||
@ -205,7 +205,7 @@
|
||||
|
||||
return err;
|
||||
}
|
||||
@@ -1130,36 +1130,6 @@ static int mtk_pcie_request_resources(st
|
||||
@@ -1133,36 +1133,6 @@ static int mtk_pcie_request_resources(st
|
||||
return err;
|
||||
|
||||
err = devm_pci_remap_iospace(dev, &pcie->pio, pcie->io.start);
|
||||
@ -242,7 +242,7 @@
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1190,7 +1160,14 @@ static int mtk_pcie_probe(struct platfor
|
||||
@@ -1193,7 +1163,14 @@ static int mtk_pcie_probe(struct platfor
|
||||
if (err)
|
||||
goto put_resources;
|
||||
|
||||
@ -258,7 +258,7 @@
|
||||
if (err)
|
||||
goto put_resources;
|
||||
|
||||
@@ -1203,6 +1180,80 @@ put_resources:
|
||||
@@ -1206,6 +1183,80 @@ put_resources:
|
||||
return err;
|
||||
}
|
||||
|
||||
@ -339,7 +339,7 @@
|
||||
static const struct mtk_pcie_soc mtk_pcie_soc_v1 = {
|
||||
.ops = &mtk_pcie_ops,
|
||||
.startup = mtk_pcie_startup_port,
|
||||
@@ -1241,10 +1292,13 @@ static const struct of_device_id mtk_pci
|
||||
@@ -1244,10 +1295,13 @@ static const struct of_device_id mtk_pci
|
||||
|
||||
static struct platform_driver mtk_pcie_driver = {
|
||||
.probe = mtk_pcie_probe,
|
||||
|
||||
@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
--- a/drivers/net/ethernet/marvell/mvneta.c
|
||||
+++ b/drivers/net/ethernet/marvell/mvneta.c
|
||||
@@ -3960,6 +3960,15 @@ static int mvneta_ethtool_set_wol(struct
|
||||
@@ -3967,6 +3967,15 @@ static int mvneta_ethtool_set_wol(struct
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static const struct net_device_ops mvneta_netdev_ops = {
|
||||
.ndo_open = mvneta_open,
|
||||
.ndo_stop = mvneta_stop,
|
||||
@@ -3970,6 +3979,7 @@ static const struct net_device_ops mvnet
|
||||
@@ -3977,6 +3986,7 @@ static const struct net_device_ops mvnet
|
||||
.ndo_fix_features = mvneta_fix_features,
|
||||
.ndo_get_stats64 = mvneta_get_stats64,
|
||||
.ndo_do_ioctl = mvneta_ioctl,
|
||||
|
||||
@ -251,7 +251,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
}
|
||||
|
||||
/* Release Tx descriptors */
|
||||
@@ -3060,7 +3019,6 @@ static int mvneta_setup_txqs(struct mvne
|
||||
@@ -3062,7 +3021,6 @@ static int mvneta_setup_txqs(struct mvne
|
||||
static void mvneta_start_dev(struct mvneta_port *pp)
|
||||
{
|
||||
int cpu;
|
||||
@ -259,7 +259,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
|
||||
mvneta_max_rx_size_set(pp, pp->pkt_size);
|
||||
mvneta_txq_max_tx_size_set(pp, pp->pkt_size);
|
||||
@@ -3088,16 +3046,15 @@ static void mvneta_start_dev(struct mvne
|
||||
@@ -3090,16 +3048,15 @@ static void mvneta_start_dev(struct mvne
|
||||
MVNETA_CAUSE_LINK_CHANGE |
|
||||
MVNETA_CAUSE_PSC_SYNC_CHANGE);
|
||||
|
||||
@ -278,7 +278,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
|
||||
if (!pp->neta_armada3700) {
|
||||
for_each_online_cpu(cpu) {
|
||||
@@ -3250,103 +3207,232 @@ static int mvneta_set_mac_addr(struct ne
|
||||
@@ -3252,103 +3209,232 @@ static int mvneta_set_mac_addr(struct ne
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -585,7 +585,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
}
|
||||
|
||||
/* Electing a CPU must be done in an atomic way: it should be done
|
||||
@@ -3625,10 +3711,9 @@ static int mvneta_stop(struct net_device
|
||||
@@ -3632,10 +3718,9 @@ static int mvneta_stop(struct net_device
|
||||
|
||||
static int mvneta_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
|
||||
{
|
||||
@ -598,7 +598,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
}
|
||||
|
||||
/* Ethtool methods */
|
||||
@@ -3639,44 +3724,25 @@ mvneta_ethtool_set_link_ksettings(struct
|
||||
@@ -3646,44 +3731,25 @@ mvneta_ethtool_set_link_ksettings(struct
|
||||
const struct ethtool_link_ksettings *cmd)
|
||||
{
|
||||
struct mvneta_port *pp = netdev_priv(ndev);
|
||||
@ -657,7 +657,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
}
|
||||
|
||||
/* Set interrupt coalescing for ethtools */
|
||||
@@ -3768,6 +3834,22 @@ static int mvneta_ethtool_set_ringparam(
|
||||
@@ -3775,6 +3841,22 @@ static int mvneta_ethtool_set_ringparam(
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -680,7 +680,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
static void mvneta_ethtool_get_strings(struct net_device *netdev, u32 sset,
|
||||
u8 *data)
|
||||
{
|
||||
@@ -3784,26 +3866,35 @@ static void mvneta_ethtool_update_stats(
|
||||
@@ -3791,26 +3873,35 @@ static void mvneta_ethtool_update_stats(
|
||||
{
|
||||
const struct mvneta_statistic *s;
|
||||
void __iomem *base = pp->base;
|
||||
@ -721,7 +721,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3938,28 +4029,65 @@ static int mvneta_ethtool_get_rxfh(struc
|
||||
@@ -3945,28 +4036,65 @@ static int mvneta_ethtool_get_rxfh(struc
|
||||
static void mvneta_ethtool_get_wol(struct net_device *dev,
|
||||
struct ethtool_wolinfo *wol)
|
||||
{
|
||||
@ -795,7 +795,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
static u16 mvneta_select_queue(struct net_device *dev, struct sk_buff *skb,
|
||||
void *accel_priv,
|
||||
select_queue_fallback_t fallback)
|
||||
@@ -3983,13 +4111,15 @@ static const struct net_device_ops mvnet
|
||||
@@ -3990,13 +4118,15 @@ static const struct net_device_ops mvnet
|
||||
};
|
||||
|
||||
static const struct ethtool_ops mvneta_eth_tool_ops = {
|
||||
@ -812,7 +812,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
.get_strings = mvneta_ethtool_get_strings,
|
||||
.get_ethtool_stats = mvneta_ethtool_get_stats,
|
||||
.get_sset_count = mvneta_ethtool_get_sset_count,
|
||||
@@ -3997,10 +4127,12 @@ static const struct ethtool_ops mvneta_e
|
||||
@@ -4004,10 +4134,12 @@ static const struct ethtool_ops mvneta_e
|
||||
.get_rxnfc = mvneta_ethtool_get_rxnfc,
|
||||
.get_rxfh = mvneta_ethtool_get_rxfh,
|
||||
.set_rxfh = mvneta_ethtool_set_rxfh,
|
||||
@ -826,7 +826,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
};
|
||||
|
||||
/* Initialize hw */
|
||||
@@ -4145,14 +4277,13 @@ static int mvneta_probe(struct platform_
|
||||
@@ -4152,14 +4284,13 @@ static int mvneta_probe(struct platform_
|
||||
{
|
||||
struct resource *res;
|
||||
struct device_node *dn = pdev->dev.of_node;
|
||||
@ -842,7 +842,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
int tx_csum_limit;
|
||||
int phy_mode;
|
||||
int err;
|
||||
@@ -4168,31 +4299,11 @@ static int mvneta_probe(struct platform_
|
||||
@@ -4175,31 +4306,11 @@ static int mvneta_probe(struct platform_
|
||||
goto err_free_netdev;
|
||||
}
|
||||
|
||||
@ -875,7 +875,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
}
|
||||
|
||||
dev->tx_queue_len = MVNETA_MAX_TXD;
|
||||
@@ -4203,12 +4314,7 @@ static int mvneta_probe(struct platform_
|
||||
@@ -4210,12 +4321,7 @@ static int mvneta_probe(struct platform_
|
||||
|
||||
pp = netdev_priv(dev);
|
||||
spin_lock_init(&pp->lock);
|
||||
@ -889,7 +889,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
|
||||
pp->rxq_def = rxq_def;
|
||||
|
||||
@@ -4230,7 +4336,7 @@ static int mvneta_probe(struct platform_
|
||||
@@ -4237,7 +4343,7 @@ static int mvneta_probe(struct platform_
|
||||
pp->clk = devm_clk_get(&pdev->dev, NULL);
|
||||
if (IS_ERR(pp->clk)) {
|
||||
err = PTR_ERR(pp->clk);
|
||||
@ -898,7 +898,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
}
|
||||
|
||||
clk_prepare_enable(pp->clk);
|
||||
@@ -4356,6 +4462,14 @@ static int mvneta_probe(struct platform_
|
||||
@@ -4363,6 +4469,14 @@ static int mvneta_probe(struct platform_
|
||||
/* 9676 == 9700 - 20 and rounding to 8 */
|
||||
dev->max_mtu = 9676;
|
||||
|
||||
@ -913,7 +913,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
err = register_netdev(dev);
|
||||
if (err < 0) {
|
||||
dev_err(&pdev->dev, "failed to register\n");
|
||||
@@ -4367,14 +4481,6 @@ static int mvneta_probe(struct platform_
|
||||
@@ -4374,14 +4488,6 @@ static int mvneta_probe(struct platform_
|
||||
|
||||
platform_set_drvdata(pdev, pp->dev);
|
||||
|
||||
@ -928,7 +928,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
return 0;
|
||||
|
||||
err_netdev:
|
||||
@@ -4383,16 +4489,14 @@ err_netdev:
|
||||
@@ -4390,16 +4496,14 @@ err_netdev:
|
||||
mvneta_bm_pool_destroy(pp->bm_priv, pp->pool_short,
|
||||
1 << pp->id);
|
||||
}
|
||||
@ -947,7 +947,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
err_free_irq:
|
||||
irq_dispose_mapping(dev->irq);
|
||||
err_free_netdev:
|
||||
@@ -4404,7 +4508,6 @@ err_free_netdev:
|
||||
@@ -4411,7 +4515,6 @@ err_free_netdev:
|
||||
static int mvneta_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct net_device *dev = platform_get_drvdata(pdev);
|
||||
@ -955,7 +955,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
struct mvneta_port *pp = netdev_priv(dev);
|
||||
|
||||
unregister_netdev(dev);
|
||||
@@ -4412,10 +4515,8 @@ static int mvneta_remove(struct platform
|
||||
@@ -4419,10 +4522,8 @@ static int mvneta_remove(struct platform
|
||||
clk_disable_unprepare(pp->clk);
|
||||
free_percpu(pp->ports);
|
||||
free_percpu(pp->stats);
|
||||
@ -967,7 +967,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
free_netdev(dev);
|
||||
|
||||
if (pp->bm_priv) {
|
||||
@@ -4467,9 +4568,6 @@ static int mvneta_resume(struct device *
|
||||
@@ -4474,9 +4575,6 @@ static int mvneta_resume(struct device *
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
struct device_node *dn;
|
||||
unsigned int tx_csum_limit;
|
||||
struct phylink *phylink;
|
||||
@@ -4314,6 +4315,7 @@ static int mvneta_probe(struct platform_
|
||||
@@ -4321,6 +4322,7 @@ static int mvneta_probe(struct platform_
|
||||
|
||||
pp = netdev_priv(dev);
|
||||
spin_lock_init(&pp->lock);
|
||||
|
||||
@ -24,7 +24,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
mvneta_link_change(pp);
|
||||
}
|
||||
|
||||
@@ -3044,8 +3043,7 @@ static void mvneta_start_dev(struct mvne
|
||||
@@ -3046,8 +3045,7 @@ static void mvneta_start_dev(struct mvne
|
||||
|
||||
mvreg_write(pp, MVNETA_INTR_MISC_MASK,
|
||||
MVNETA_CAUSE_PHY_STATUS_CHANGE |
|
||||
@ -34,7 +34,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
|
||||
phylink_start(pp->phylink);
|
||||
netif_tx_start_all_queues(pp->dev);
|
||||
@@ -3541,8 +3539,7 @@ static int mvneta_cpu_online(unsigned in
|
||||
@@ -3548,8 +3546,7 @@ static int mvneta_cpu_online(unsigned in
|
||||
on_each_cpu(mvneta_percpu_unmask_interrupt, pp, true);
|
||||
mvreg_write(pp, MVNETA_INTR_MISC_MASK,
|
||||
MVNETA_CAUSE_PHY_STATUS_CHANGE |
|
||||
@ -44,7 +44,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
netif_tx_start_all_queues(pp->dev);
|
||||
spin_unlock(&pp->lock);
|
||||
return 0;
|
||||
@@ -3583,8 +3580,7 @@ static int mvneta_cpu_dead(unsigned int
|
||||
@@ -3590,8 +3587,7 @@ static int mvneta_cpu_dead(unsigned int
|
||||
on_each_cpu(mvneta_percpu_unmask_interrupt, pp, true);
|
||||
mvreg_write(pp, MVNETA_INTR_MISC_MASK,
|
||||
MVNETA_CAUSE_PHY_STATUS_CHANGE |
|
||||
|
||||
@ -10,7 +10,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
|
||||
--- a/drivers/net/ethernet/marvell/mvneta.c
|
||||
+++ b/drivers/net/ethernet/marvell/mvneta.c
|
||||
@@ -4044,6 +4044,22 @@ static int mvneta_ethtool_set_wol(struct
|
||||
@@ -4051,6 +4051,22 @@ static int mvneta_ethtool_set_wol(struct
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -33,7 +33,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
static int mvneta_ethtool_get_eee(struct net_device *dev,
|
||||
struct ethtool_eee *eee)
|
||||
{
|
||||
@@ -4128,6 +4144,8 @@ static const struct ethtool_ops mvneta_e
|
||||
@@ -4135,6 +4151,8 @@ static const struct ethtool_ops mvneta_e
|
||||
.set_link_ksettings = mvneta_ethtool_set_link_ksettings,
|
||||
.get_wol = mvneta_ethtool_get_wol,
|
||||
.set_wol = mvneta_ethtool_set_wol,
|
||||
|
||||
@ -15,7 +15,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
|
||||
--- a/drivers/net/ethernet/marvell/mvneta.c
|
||||
+++ b/drivers/net/ethernet/marvell/mvneta.c
|
||||
@@ -4044,22 +4044,6 @@ static int mvneta_ethtool_set_wol(struct
|
||||
@@ -4051,22 +4051,6 @@ static int mvneta_ethtool_set_wol(struct
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -38,7 +38,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
static int mvneta_ethtool_get_eee(struct net_device *dev,
|
||||
struct ethtool_eee *eee)
|
||||
{
|
||||
@@ -4144,8 +4128,6 @@ static const struct ethtool_ops mvneta_e
|
||||
@@ -4151,8 +4135,6 @@ static const struct ethtool_ops mvneta_e
|
||||
.set_link_ksettings = mvneta_ethtool_set_link_ksettings,
|
||||
.get_wol = mvneta_ethtool_get_wol,
|
||||
.set_wol = mvneta_ethtool_set_wol,
|
||||
@ -129,7 +129,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
/* 802.11 specific */
|
||||
struct wireless_dev;
|
||||
/* 802.15.4 specific */
|
||||
@@ -1948,6 +1949,7 @@ struct net_device {
|
||||
@@ -1949,6 +1950,7 @@ struct net_device {
|
||||
struct netprio_map __rcu *priomap;
|
||||
#endif
|
||||
struct phy_device *phydev;
|
||||
|
||||
@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
--- a/drivers/net/ethernet/marvell/mvneta.c
|
||||
+++ b/drivers/net/ethernet/marvell/mvneta.c
|
||||
@@ -4271,6 +4271,15 @@ static int mvneta_ethtool_set_eee(struct
|
||||
@@ -4278,6 +4278,15 @@ static int mvneta_ethtool_set_eee(struct
|
||||
return phylink_ethtool_set_eee(pp->phylink, eee);
|
||||
}
|
||||
|
||||
@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static const struct net_device_ops mvneta_netdev_ops = {
|
||||
.ndo_open = mvneta_open,
|
||||
.ndo_stop = mvneta_stop,
|
||||
@@ -4281,6 +4290,7 @@ static const struct net_device_ops mvnet
|
||||
@@ -4288,6 +4297,7 @@ static const struct net_device_ops mvnet
|
||||
.ndo_fix_features = mvneta_fix_features,
|
||||
.ndo_get_stats64 = mvneta_get_stats64,
|
||||
.ndo_do_ioctl = mvneta_ioctl,
|
||||
|
||||
@ -32,7 +32,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
#define MVNETA_MIB_COUNTERS_BASE 0x3000
|
||||
#define MVNETA_MIB_LATE_COLLISION 0x7c
|
||||
#define MVNETA_DA_FILT_SPEC_MCAST 0x3400
|
||||
@@ -3358,6 +3360,7 @@ static void mvneta_validate(struct net_d
|
||||
@@ -3360,6 +3362,7 @@ static void mvneta_validate(struct net_d
|
||||
if (state->interface != PHY_INTERFACE_MODE_NA &&
|
||||
state->interface != PHY_INTERFACE_MODE_QSGMII &&
|
||||
state->interface != PHY_INTERFACE_MODE_SGMII &&
|
||||
@ -40,7 +40,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
!phy_interface_mode_is_8023z(state->interface) &&
|
||||
!phy_interface_mode_is_rgmii(state->interface)) {
|
||||
bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
|
||||
@@ -3370,9 +3373,15 @@ static void mvneta_validate(struct net_d
|
||||
@@ -3372,9 +3375,15 @@ static void mvneta_validate(struct net_d
|
||||
|
||||
/* Asymmetric pause is unsupported */
|
||||
phylink_set(mask, Pause);
|
||||
@ -59,7 +59,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
if (!phy_interface_mode_is_8023z(state->interface)) {
|
||||
/* 10M and 100M are only supported in non-802.3z mode */
|
||||
@@ -3433,12 +3442,14 @@ static void mvneta_mac_config(struct net
|
||||
@@ -3435,12 +3444,14 @@ static void mvneta_mac_config(struct net
|
||||
struct mvneta_port *pp = netdev_priv(ndev);
|
||||
u32 new_ctrl0, gmac_ctrl0 = mvreg_read(pp, MVNETA_GMAC_CTRL_0);
|
||||
u32 new_ctrl2, gmac_ctrl2 = mvreg_read(pp, MVNETA_GMAC_CTRL_2);
|
||||
@ -74,7 +74,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
new_clk = gmac_clk & ~MVNETA_GMAC_1MS_CLOCK_ENABLE;
|
||||
new_an = gmac_an & ~(MVNETA_GMAC_INBAND_AN_ENABLE |
|
||||
MVNETA_GMAC_INBAND_RESTART_AN |
|
||||
@@ -3471,7 +3482,7 @@ static void mvneta_mac_config(struct net
|
||||
@@ -3473,7 +3484,7 @@ static void mvneta_mac_config(struct net
|
||||
if (state->duplex)
|
||||
new_an |= MVNETA_GMAC_CONFIG_FULL_DUPLEX;
|
||||
|
||||
@ -83,7 +83,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
new_an |= MVNETA_GMAC_CONFIG_GMII_SPEED;
|
||||
else if (state->speed == SPEED_100)
|
||||
new_an |= MVNETA_GMAC_CONFIG_MII_SPEED;
|
||||
@@ -3510,10 +3521,18 @@ static void mvneta_mac_config(struct net
|
||||
@@ -3512,10 +3523,18 @@ static void mvneta_mac_config(struct net
|
||||
MVNETA_GMAC_FORCE_LINK_DOWN);
|
||||
}
|
||||
|
||||
|
||||
@ -27,7 +27,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/ethernet/marvell/mvneta.c
|
||||
+++ b/drivers/net/ethernet/marvell/mvneta.c
|
||||
@@ -3360,7 +3360,6 @@ static void mvneta_validate(struct net_d
|
||||
@@ -3362,7 +3362,6 @@ static void mvneta_validate(struct net_d
|
||||
if (state->interface != PHY_INTERFACE_MODE_NA &&
|
||||
state->interface != PHY_INTERFACE_MODE_QSGMII &&
|
||||
state->interface != PHY_INTERFACE_MODE_SGMII &&
|
||||
@ -35,7 +35,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
!phy_interface_mode_is_8023z(state->interface) &&
|
||||
!phy_interface_mode_is_rgmii(state->interface)) {
|
||||
bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
|
||||
@@ -3374,14 +3373,9 @@ static void mvneta_validate(struct net_d
|
||||
@@ -3376,14 +3375,9 @@ static void mvneta_validate(struct net_d
|
||||
/* Asymmetric pause is unsupported */
|
||||
phylink_set(mask, Pause);
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/ethernet/marvell/mvneta.c
|
||||
+++ b/drivers/net/ethernet/marvell/mvneta.c
|
||||
@@ -4267,8 +4267,7 @@ static int mvneta_ethtool_set_eee(struct
|
||||
@@ -4274,8 +4274,7 @@ static int mvneta_ethtool_set_eee(struct
|
||||
|
||||
/* The Armada 37x documents do not give limits for this other than
|
||||
* it being an 8-bit register. */
|
||||
|
||||
@ -31,7 +31,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
struct mvneta_bm *bm_priv;
|
||||
struct mvneta_bm_pool *pool_long;
|
||||
@@ -3167,6 +3169,8 @@ static void mvneta_start_dev(struct mvne
|
||||
@@ -3169,6 +3171,8 @@ static void mvneta_start_dev(struct mvne
|
||||
{
|
||||
int cpu;
|
||||
|
||||
@ -40,7 +40,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
mvneta_max_rx_size_set(pp, pp->pkt_size);
|
||||
mvneta_txq_max_tx_size_set(pp, pp->pkt_size);
|
||||
|
||||
@@ -3229,6 +3233,8 @@ static void mvneta_stop_dev(struct mvnet
|
||||
@@ -3231,6 +3235,8 @@ static void mvneta_stop_dev(struct mvnet
|
||||
|
||||
mvneta_tx_reset(pp);
|
||||
mvneta_rx_reset(pp);
|
||||
@ -49,7 +49,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
}
|
||||
|
||||
static void mvneta_percpu_enable(void *arg)
|
||||
@@ -3354,6 +3360,7 @@ static int mvneta_set_mac_addr(struct ne
|
||||
@@ -3356,6 +3362,7 @@ static int mvneta_set_mac_addr(struct ne
|
||||
static void mvneta_validate(struct net_device *ndev, unsigned long *supported,
|
||||
struct phylink_link_state *state)
|
||||
{
|
||||
@ -57,7 +57,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
__ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, };
|
||||
|
||||
/* We only support QSGMII, SGMII, 802.3z and RGMII modes */
|
||||
@@ -3374,8 +3381,13 @@ static void mvneta_validate(struct net_d
|
||||
@@ -3376,8 +3383,13 @@ static void mvneta_validate(struct net_d
|
||||
phylink_set(mask, Pause);
|
||||
|
||||
/* Half-duplex at speeds higher than 100Mbit is unsupported */
|
||||
@ -73,7 +73,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
if (!phy_interface_mode_is_8023z(state->interface)) {
|
||||
/* 10M and 100M are only supported in non-802.3z mode */
|
||||
@@ -3389,6 +3401,11 @@ static void mvneta_validate(struct net_d
|
||||
@@ -3391,6 +3403,11 @@ static void mvneta_validate(struct net_d
|
||||
__ETHTOOL_LINK_MODE_MASK_NBITS);
|
||||
bitmap_and(state->advertising, state->advertising, mask,
|
||||
__ETHTOOL_LINK_MODE_MASK_NBITS);
|
||||
@ -85,7 +85,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
}
|
||||
|
||||
static int mvneta_mac_link_state(struct net_device *ndev,
|
||||
@@ -3400,7 +3417,9 @@ static int mvneta_mac_link_state(struct
|
||||
@@ -3402,7 +3419,9 @@ static int mvneta_mac_link_state(struct
|
||||
gmac_stat = mvreg_read(pp, MVNETA_GMAC_STATUS);
|
||||
|
||||
if (gmac_stat & MVNETA_GMAC_SPEED_1000)
|
||||
@ -96,7 +96,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
else if (gmac_stat & MVNETA_GMAC_SPEED_100)
|
||||
state->speed = SPEED_100;
|
||||
else
|
||||
@@ -3515,12 +3534,20 @@ static void mvneta_mac_config(struct net
|
||||
@@ -3517,12 +3536,20 @@ static void mvneta_mac_config(struct net
|
||||
MVNETA_GMAC_FORCE_LINK_DOWN);
|
||||
}
|
||||
|
||||
@ -117,7 +117,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
if (new_ctrl0 != gmac_ctrl0)
|
||||
mvreg_write(pp, MVNETA_GMAC_CTRL_0, new_ctrl0);
|
||||
if (new_ctrl2 != gmac_ctrl2)
|
||||
@@ -4433,7 +4460,7 @@ static int mvneta_port_power_up(struct m
|
||||
@@ -4440,7 +4467,7 @@ static int mvneta_port_power_up(struct m
|
||||
if (phy_mode == PHY_INTERFACE_MODE_QSGMII)
|
||||
mvreg_write(pp, MVNETA_SERDES_CFG, MVNETA_QSGMII_SERDES_PROTO);
|
||||
else if (phy_mode == PHY_INTERFACE_MODE_SGMII ||
|
||||
@ -126,7 +126,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
mvreg_write(pp, MVNETA_SERDES_CFG, MVNETA_SGMII_SERDES_PROTO);
|
||||
else if (!phy_interface_mode_is_rgmii(phy_mode))
|
||||
return -EINVAL;
|
||||
@@ -4450,6 +4477,7 @@ static int mvneta_probe(struct platform_
|
||||
@@ -4457,6 +4484,7 @@ static int mvneta_probe(struct platform_
|
||||
struct mvneta_port *pp;
|
||||
struct net_device *dev;
|
||||
struct phylink *phylink;
|
||||
@ -134,7 +134,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
const char *dt_mac_addr;
|
||||
char hw_mac_addr[ETH_ALEN];
|
||||
const char *mac_from;
|
||||
@@ -4475,6 +4503,14 @@ static int mvneta_probe(struct platform_
|
||||
@@ -4482,6 +4510,14 @@ static int mvneta_probe(struct platform_
|
||||
goto err_free_irq;
|
||||
}
|
||||
|
||||
@ -149,7 +149,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
phylink = phylink_create(dev, pdev->dev.fwnode, phy_mode,
|
||||
&mvneta_phylink_ops);
|
||||
if (IS_ERR(phylink)) {
|
||||
@@ -4491,6 +4527,7 @@ static int mvneta_probe(struct platform_
|
||||
@@ -4498,6 +4534,7 @@ static int mvneta_probe(struct platform_
|
||||
pp = netdev_priv(dev);
|
||||
spin_lock_init(&pp->lock);
|
||||
pp->phylink = phylink;
|
||||
|
||||
@ -28,7 +28,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/ethernet/marvell/mvneta.c
|
||||
+++ b/drivers/net/ethernet/marvell/mvneta.c
|
||||
@@ -3165,11 +3165,26 @@ static int mvneta_setup_txqs(struct mvne
|
||||
@@ -3167,11 +3167,26 @@ static int mvneta_setup_txqs(struct mvne
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -56,7 +56,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
mvneta_max_rx_size_set(pp, pp->pkt_size);
|
||||
mvneta_txq_max_tx_size_set(pp, pp->pkt_size);
|
||||
@@ -3541,12 +3556,15 @@ static void mvneta_mac_config(struct net
|
||||
@@ -3543,12 +3558,15 @@ static void mvneta_mac_config(struct net
|
||||
if (state->speed == SPEED_2500)
|
||||
new_ctrl4 |= MVNETA_GMAC4_SHORT_PREAMBLE_ENABLE;
|
||||
|
||||
|
||||
@ -24,7 +24,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/ethernet/marvell/mvneta.c
|
||||
+++ b/drivers/net/ethernet/marvell/mvneta.c
|
||||
@@ -3401,6 +3401,7 @@ static void mvneta_validate(struct net_d
|
||||
@@ -3403,6 +3403,7 @@ static void mvneta_validate(struct net_d
|
||||
phylink_set(mask, 1000baseX_Full);
|
||||
}
|
||||
if (pp->comphy || state->interface == PHY_INTERFACE_MODE_2500BASEX) {
|
||||
|
||||
@ -13,7 +13,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
|
||||
--- a/drivers/media/usb/uvc/uvc_driver.c
|
||||
+++ b/drivers/media/usb/uvc/uvc_driver.c
|
||||
@@ -2749,6 +2749,18 @@ static const struct usb_device_id uvc_id
|
||||
@@ -2752,6 +2752,18 @@ static const struct usb_device_id uvc_id
|
||||
.bInterfaceSubClass = 1,
|
||||
.bInterfaceProtocol = 0,
|
||||
.driver_info = UVC_QUIRK_FORCE_Y8 },
|
||||
|
||||
@ -11,7 +11,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
|
||||
--- a/drivers/net/phy/phy.c
|
||||
+++ b/drivers/net/phy/phy.c
|
||||
@@ -980,7 +980,10 @@ void phy_state_machine(struct work_struc
|
||||
@@ -981,7 +981,10 @@ void phy_state_machine(struct work_struc
|
||||
/* If the link is down, give up on negotiation for now */
|
||||
if (!phydev->link) {
|
||||
phydev->state = PHY_NOLINK;
|
||||
@ -23,7 +23,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1067,7 +1070,10 @@ void phy_state_machine(struct work_struc
|
||||
@@ -1068,7 +1071,10 @@ void phy_state_machine(struct work_struc
|
||||
phy_link_up(phydev);
|
||||
} else {
|
||||
phydev->state = PHY_NOLINK;
|
||||
@ -35,7 +35,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
}
|
||||
|
||||
if (phy_interrupt_is_valid(phydev))
|
||||
@@ -1077,7 +1083,10 @@ void phy_state_machine(struct work_struc
|
||||
@@ -1078,7 +1084,10 @@ void phy_state_machine(struct work_struc
|
||||
case PHY_HALTED:
|
||||
if (phydev->link) {
|
||||
phydev->link = 0;
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
|
||||
#include <asm/delay.h>
|
||||
#include <asm/irq.h>
|
||||
@@ -1436,6 +1437,7 @@ dm9000_probe(struct platform_device *pde
|
||||
@@ -1438,6 +1439,7 @@ dm9000_probe(struct platform_device *pde
|
||||
enum of_gpio_flags flags;
|
||||
struct regulator *power;
|
||||
bool inv_mac_addr = false;
|
||||
@ -16,7 +16,7 @@
|
||||
|
||||
power = devm_regulator_get(dev, "vcc");
|
||||
if (IS_ERR(power)) {
|
||||
@@ -1573,6 +1575,18 @@ dm9000_probe(struct platform_device *pde
|
||||
@@ -1579,6 +1581,18 @@ dm9000_probe(struct platform_device *pde
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
|
||||
|
||||
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi
|
||||
@@ -78,6 +78,28 @@
|
||||
@@ -77,6 +77,28 @@
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <40000000>;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/arch/x86/kernel/reboot.c
|
||||
+++ b/arch/x86/kernel/reboot.c
|
||||
@@ -477,6 +477,16 @@ static const struct dmi_system_id reboot
|
||||
@@ -486,6 +486,16 @@ static const struct dmi_system_id reboot
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/arch/x86/kernel/reboot.c
|
||||
+++ b/arch/x86/kernel/reboot.c
|
||||
@@ -477,6 +477,16 @@ static const struct dmi_system_id reboot
|
||||
@@ -486,6 +486,16 @@ static const struct dmi_system_id reboot
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/arch/x86/kernel/reboot.c
|
||||
+++ b/arch/x86/kernel/reboot.c
|
||||
@@ -478,6 +478,16 @@ static struct dmi_system_id __initdata r
|
||||
@@ -487,6 +487,16 @@ static struct dmi_system_id __initdata r
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user