All updated automatically.
Compile-tested on: lantiq/xrx200, armvirt/64
Runtime-tested on: lantiq/xrx200, armvirt/64
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif
-LINUX_VERSION-5.4 = .163
+LINUX_VERSION-5.4 = .168
-LINUX_KERNEL_HASH-5.4.163 = 6246fe1776d83039d71f74eb839f38ebdec23e1b37a7bf76f3bce13cbf0290be
+LINUX_KERNEL_HASH-5.4.168 = ecb79ac4d465623560a6da31e3b0a0cf3fbb7c09e9ba88f06567436757191181
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
#include "xhci.h"
#include "xhci-trace.h"
-@@ -72,6 +74,44 @@
+@@ -74,6 +76,44 @@
#define PCI_DEVICE_ID_ASMEDIA_2142_XHCI 0x2142
#define PCI_DEVICE_ID_ASMEDIA_3242_XHCI 0x3242
static const char hcd_name[] = "xhci_hcd";
static struct hc_driver __read_mostly xhci_pci_hc_driver;
-@@ -327,6 +367,873 @@ static void xhci_pme_acpi_rtd3_enable(st
+@@ -331,6 +371,873 @@ static void xhci_pme_acpi_rtd3_enable(st
static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
#endif /* CONFIG_ACPI */
/* called during probe() after chip reset completes */
static int xhci_pci_setup(struct usb_hcd *hcd)
{
-@@ -368,6 +1275,27 @@ static int xhci_pci_probe(struct pci_dev
+@@ -372,6 +1279,27 @@ static int xhci_pci_probe(struct pci_dev
struct hc_driver *driver;
struct usb_hcd *hcd;
driver = (struct hc_driver *)id->driver_data;
/* Prevent runtime suspending between USB-2 and USB-3 initialization */
-@@ -429,6 +1357,16 @@ static void xhci_pci_remove(struct pci_d
+@@ -433,6 +1361,16 @@ static void xhci_pci_remove(struct pci_d
{
struct xhci_hcd *xhci;
xhci = hcd_to_xhci(pci_get_drvdata(dev));
xhci->xhc_state |= XHCI_STATE_REMOVING;
-@@ -568,6 +1506,11 @@ static int xhci_pci_resume(struct usb_hc
+@@ -572,6 +1510,11 @@ static int xhci_pci_resume(struct usb_hc
if (pdev->vendor == PCI_VENDOR_ID_INTEL)
usb_enable_intel_xhci_ports(pdev);
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
-@@ -297,6 +297,7 @@ static void xhci_pci_quirks(struct devic
+@@ -299,6 +299,7 @@ static void xhci_pci_quirks(struct devic
pdev->device == 0x0015) {
xhci->quirks |= XHCI_RESET_ON_RESUME;
xhci->quirks |= XHCI_ZERO_64B_REGS;
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
-@@ -266,6 +266,10 @@ static void xhci_pci_quirks(struct devic
+@@ -268,6 +268,10 @@ static void xhci_pci_quirks(struct devic
pdev->device == 0x3432)
xhci->quirks |= XHCI_BROKEN_STREAMS;
* non-error returns are a promise to giveback() the urb later
* we drop ownership so next owner (or urb unlink) can get it
*/
-@@ -5362,6 +5459,7 @@ static const struct hc_driver xhci_hc_dr
+@@ -5366,6 +5463,7 @@ static const struct hc_driver xhci_hc_dr
.endpoint_reset = xhci_endpoint_reset,
.check_bandwidth = xhci_check_bandwidth,
.reset_bandwidth = xhci_reset_bandwidth,
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
-@@ -267,8 +267,10 @@ static void xhci_pci_quirks(struct devic
+@@ -269,8 +269,10 @@ static void xhci_pci_quirks(struct devic
xhci->quirks |= XHCI_BROKEN_STREAMS;
if (pdev->vendor == PCI_VENDOR_ID_VIA &&
pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI)
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
-@@ -556,7 +556,10 @@ void xhci_find_new_dequeue_state(struct
+@@ -563,7 +563,10 @@ void xhci_find_new_dequeue_state(struct
struct xhci_virt_ep *ep = &dev->eps[ep_index];
struct xhci_ring *ep_ring;
struct xhci_segment *new_seg;
dma_addr_t addr;
u64 hw_dequeue;
bool cycle_found = false;
-@@ -594,7 +597,28 @@ void xhci_find_new_dequeue_state(struct
+@@ -601,7 +604,28 @@ void xhci_find_new_dequeue_state(struct
hw_dequeue = xhci_get_hw_deq(xhci, dev, ep_index, stream_id);
new_seg = ep_ring->deq_seg;
new_deq = ep_ring->dequeue;
#define USB_VENDOR_ID_BELKIN 0x050d
#define USB_DEVICE_ID_FLIP_KVM 0x3201
-@@ -1261,6 +1264,9 @@
+@@ -1263,6 +1266,9 @@
#define USB_VENDOR_ID_XAT 0x2505
#define USB_DEVICE_ID_XAT_CSR 0x0220
{ 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 },
-@@ -192,6 +193,7 @@ static const struct hid_device_id hid_qu
+@@ -193,6 +194,7 @@ static const struct hid_device_id hid_qu
{ 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 },
{ HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT },
}
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
-@@ -900,7 +900,7 @@ static int ahci_configure_dma_masks(stru
+@@ -901,7 +901,7 @@ static int ahci_configure_dma_masks(stru
* value, don't extend it here. This happens on STA2X11, for example.
*
* XXX: manipulating the DMA mask from platform code is completely
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
-@@ -270,6 +270,7 @@ static void xhci_pci_quirks(struct devic
+@@ -272,6 +272,7 @@ static void xhci_pci_quirks(struct devic
pdev->device == 0x3483) {
xhci->quirks |= XHCI_LPM_SUPPORT;
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
-@@ -653,6 +653,16 @@ void xhci_find_new_dequeue_state(struct
+@@ -660,6 +660,16 @@ void xhci_find_new_dequeue_state(struct
} while (!cycle_found || !td_last_trb_found);
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -6322,15 +6322,10 @@ void netif_napi_del(struct napi_struct *
+@@ -6325,15 +6325,10 @@ void netif_napi_del(struct napi_struct *
}
EXPORT_SYMBOL(netif_napi_del);
weight = n->weight;
/* This NAPI_STATE_SCHED test is for avoiding a race
-@@ -6348,7 +6343,7 @@ static int napi_poll(struct napi_struct
+@@ -6351,7 +6346,7 @@ static int napi_poll(struct napi_struct
WARN_ON_ONCE(work > weight);
if (likely(work < weight))
/* Drivers must not modify the NAPI state if they
* consume the entire weight. In such cases this code
-@@ -6357,7 +6352,7 @@ static int napi_poll(struct napi_struct
+@@ -6360,7 +6355,7 @@ static int napi_poll(struct napi_struct
*/
if (unlikely(napi_disable_pending(n))) {
napi_complete(n);
}
if (n->gro_bitmask) {
-@@ -6375,12 +6370,29 @@ static int napi_poll(struct napi_struct
+@@ -6378,12 +6373,29 @@ static int napi_poll(struct napi_struct
if (unlikely(!list_empty(&n->poll_list))) {
pr_warn_once("%s: Budget exhausted after napi rescheduled\n",
n->dev ? n->dev->name : "backlog");
static int __dev_open(struct net_device *dev, struct netlink_ext_ack *extack)
{
const struct net_device_ops *ops = dev->netdev_ops;
-@@ -3885,6 +3907,21 @@ int gro_normal_batch __read_mostly = 8;
+@@ -3888,6 +3910,21 @@ int gro_normal_batch __read_mostly = 8;
static inline void ____napi_schedule(struct softnet_data *sd,
struct napi_struct *napi)
{
list_add_tail(&napi->poll_list, &sd->poll_list);
__raise_softirq_irqoff(NET_RX_SOFTIRQ);
}
-@@ -6276,6 +6313,12 @@ void netif_napi_add(struct net_device *d
+@@ -6279,6 +6316,12 @@ void netif_napi_add(struct net_device *d
set_bit(NAPI_STATE_NPSVC, &napi->state);
list_add_rcu(&napi->dev_list, &dev->napi_list);
napi_hash_add(napi);
}
EXPORT_SYMBOL(netif_napi_add);
-@@ -6292,9 +6335,28 @@ void napi_disable(struct napi_struct *n)
+@@ -6295,9 +6338,28 @@ void napi_disable(struct napi_struct *n)
hrtimer_cancel(&n->timer);
clear_bit(NAPI_STATE_DISABLE, &n->state);
static void flush_gro_hash(struct napi_struct *napi)
{
int i;
-@@ -6319,6 +6381,11 @@ void netif_napi_del(struct napi_struct *
+@@ -6322,6 +6384,11 @@ void netif_napi_del(struct napi_struct *
flush_gro_hash(napi);
napi->gro_bitmask = 0;
}
EXPORT_SYMBOL(netif_napi_del);
-@@ -6398,6 +6465,51 @@ static int napi_poll(struct napi_struct
+@@ -6401,6 +6468,51 @@ static int napi_poll(struct napi_struct
return work;
}
* @n: NAPI context
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -3911,8 +3911,9 @@ static inline void ____napi_schedule(str
+@@ -3914,8 +3914,9 @@ static inline void ____napi_schedule(str
if (test_bit(NAPI_STATE_THREADED, &napi->state)) {
/* Paired with smp_mb__before_atomic() in
* wake_up_process() when it's not NULL.
*/
thread = READ_ONCE(napi->thread);
-@@ -6290,6 +6291,49 @@ static void init_gro_hash(struct napi_st
+@@ -6293,6 +6294,49 @@ static void init_gro_hash(struct napi_st
napi->gro_bitmask = 0;
}
enum gro_result {
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -3918,6 +3918,8 @@ static inline void ____napi_schedule(str
+@@ -3921,6 +3921,8 @@ static inline void ____napi_schedule(str
*/
thread = READ_ONCE(napi->thread);
if (thread) {
wake_up_process(thread);
return;
}
-@@ -6078,7 +6080,8 @@ bool napi_complete_done(struct napi_stru
+@@ -6081,7 +6083,8 @@ bool napi_complete_done(struct napi_stru
WARN_ON_ONCE(!(val & NAPIF_STATE_SCHED));
/* If STATE_MISSED was set, leave STATE_SCHED set,
* because we will call napi->poll() one more time.
-@@ -6511,16 +6514,25 @@ static int napi_poll(struct napi_struct
+@@ -6514,16 +6517,25 @@ static int napi_poll(struct napi_struct
static int napi_thread_wait(struct napi_struct *napi)
{
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -6518,7 +6518,7 @@ static int napi_thread_wait(struct napi_
+@@ -6521,7 +6521,7 @@ static int napi_thread_wait(struct napi_
set_current_state(TASK_INTERRUPTIBLE);
/* Testing SCHED_THREADED bit here to make sure the current
* kthread owns this napi and could poll on this napi.
* Testing SCHED bit is not enough because SCHED bit might be
-@@ -6536,6 +6536,7 @@ static int napi_thread_wait(struct napi_
+@@ -6539,6 +6539,7 @@ static int napi_thread_wait(struct napi_
set_current_state(TASK_INTERRUPTIBLE);
}
__set_current_state(TASK_RUNNING);
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -5472,8 +5472,7 @@ static inline void skb_gro_reset_offset(
+@@ -5475,8 +5475,7 @@ static inline void skb_gro_reset_offset(
NAPI_GRO_CB(skb)->frag0 = NULL;
NAPI_GRO_CB(skb)->frag0_len = 0;
__u16 tc_index; /* traffic control index */
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -5538,6 +5538,9 @@ static enum gro_result dev_gro_receive(s
+@@ -5541,6 +5541,9 @@ static enum gro_result dev_gro_receive(s
int same_flow;
int grow;
if (netif_elide_gro(skb->dev))
goto normal;
-@@ -7481,6 +7484,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -7484,6 +7487,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower);
}
static int __netdev_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev, bool master,
void *upper_priv, void *upper_info,
-@@ -7531,6 +7576,7 @@ static int __netdev_upper_dev_link(struc
+@@ -7534,6 +7579,7 @@ static int __netdev_upper_dev_link(struc
if (ret)
return ret;
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
ret = notifier_to_errno(ret);
-@@ -7624,6 +7670,7 @@ void netdev_upper_dev_unlink(struct net_
+@@ -7627,6 +7673,7 @@ void netdev_upper_dev_unlink(struct net_
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
-@@ -8354,6 +8401,7 @@ int dev_set_mac_address(struct net_devic
+@@ -8357,6 +8404,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;
#include "libata.h"
#include "libata-transport.h"
-@@ -4579,6 +4580,34 @@ int ata_scsi_add_hosts(struct ata_host *
+@@ -4590,6 +4591,34 @@ int ata_scsi_add_hosts(struct ata_host *
return rc;
}
void ata_scsi_scan_host(struct ata_port *ap, int sync)
{
int tries = 5;
-@@ -4604,6 +4633,7 @@ void ata_scsi_scan_host(struct ata_port
+@@ -4615,6 +4644,7 @@ void ata_scsi_scan_host(struct ata_port
NULL);
if (!IS_ERR(sdev)) {
dev->sdev = sdev;
/**
* ata_build_rw_tf - Build ATA taskfile for given read/write request
* @tf: Target ATA taskfile
-@@ -5149,6 +5162,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
+@@ -5151,6 +5164,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
if (tag < 0)
return NULL;
}
qc = __ata_qc_from_tag(ap, tag);
qc->tag = qc->hw_tag = tag;
-@@ -6085,6 +6101,9 @@ struct ata_port *ata_port_alloc(struct a
+@@ -6087,6 +6103,9 @@ struct ata_port *ata_port_alloc(struct a
ap->stats.unhandled_irq = 1;
ap->stats.idle_irq = 1;
#endif
ata_sff_port_init(ap);
return ap;
-@@ -6120,6 +6139,12 @@ static void ata_host_release(struct kref
+@@ -6122,6 +6141,12 @@ static void ata_host_release(struct kref
kfree(ap->pmp_link);
kfree(ap->slave_link);
kfree(ap);
host->ports[i] = NULL;
}
-@@ -6583,7 +6608,23 @@ int ata_host_register(struct ata_host *h
+@@ -6585,7 +6610,23 @@ int ata_host_register(struct ata_host *h
host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
host->ports[i]->local_port_no = i + 1;
}
MT_LOW_VECTORS,
--- a/arch/arm/mm/ioremap.c
+++ b/arch/arm/mm/ioremap.c
-@@ -399,6 +399,13 @@ void __iomem *ioremap_wc(resource_size_t
+@@ -401,6 +401,13 @@ void __iomem *ioremap_wc(resource_size_t
}
EXPORT_SYMBOL(ioremap_wc);
--- a/drivers/usb/host/xhci-hub.c
+++ b/drivers/usb/host/xhci-hub.c
-@@ -1421,6 +1421,15 @@ int xhci_hub_control(struct usb_hcd *hcd
+@@ -1422,6 +1422,15 @@ int xhci_hub_control(struct usb_hcd *hcd
/* 4.19.6 Port Test Modes (USB2 Test Mode) */
if (hcd->speed != HCD_USB2)
goto error;
retval = xhci_enter_test_mode(xhci, test_mode, wIndex,
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
-@@ -3630,6 +3630,129 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
+@@ -3636,6 +3636,129 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
return 0;
}
* bursts that are required to move all packets in this TD. Only SuperSpeed
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
-@@ -5389,6 +5389,7 @@ static const struct hc_driver xhci_hc_dr
+@@ -5393,6 +5393,7 @@ static const struct hc_driver xhci_hc_dr
.disable_usb3_lpm_timeout = xhci_disable_usb3_lpm_timeout,
.find_raw_port_number = xhci_find_raw_port_number,
.clear_tt_buffer_complete = xhci_clear_tt_buffer_complete,
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
-@@ -2097,12 +2097,9 @@ static int process_ctrl_td(struct xhci_h
+@@ -2103,12 +2103,9 @@ static int process_ctrl_td(struct xhci_h
switch (trb_comp_code) {
case COMP_SUCCESS:
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
-@@ -5410,6 +5410,8 @@ void xhci_init_driver(struct hc_driver *
+@@ -5414,6 +5414,8 @@ void xhci_init_driver(struct hc_driver *
drv->check_bandwidth = over->check_bandwidth;
if (over->reset_bandwidth)
drv->reset_bandwidth = over->reset_bandwidth;
--- a/drivers/usb/host/xhci-hub.c
+++ b/drivers/usb/host/xhci-hub.c
-@@ -1739,7 +1739,8 @@ static bool xhci_port_missing_cas_quirk(
+@@ -1740,7 +1740,8 @@ static bool xhci_port_missing_cas_quirk(
return false;
if (((portsc & PORT_PLS_MASK) != XDEV_POLLING) &&
#undef CP11X_PCIE1_BASE
--- a/arch/arm64/boot/dts/marvell/armada-8040-mcbin.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-8040-mcbin.dtsi
-@@ -179,8 +179,7 @@
+@@ -182,8 +182,7 @@
num-lanes = <4>;
num-viewport = <8>;
reset-gpios = <&cp0_gpio2 20 GPIO_ACTIVE_LOW>;
/* initialize internal qc */
qc = __ata_qc_from_tag(ap, ATA_TAG_INTERNAL);
-@@ -5156,6 +5164,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
+@@ -5158,6 +5166,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
if (unlikely(ap->pflags & ATA_PFLAG_FROZEN))
return NULL;
/* libsas case */
if (ap->flags & ATA_FLAG_SAS_HOST) {
tag = ata_sas_allocate_tag(ap);
-@@ -5201,6 +5212,8 @@ void ata_qc_free(struct ata_queued_cmd *
+@@ -5203,6 +5214,8 @@ void ata_qc_free(struct ata_queued_cmd *
qc->tag = ATA_TAG_POISON;
if (ap->flags & ATA_FLAG_SAS_HOST)
ata_sas_free_tag(tag, ap);