KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif
-LINUX_VERSION-5.4 = .119
+LINUX_VERSION-5.4 = .120
LINUX_VERSION-5.10 = .39
-LINUX_KERNEL_HASH-5.4.119 = 71e7decf1e8149a8aed88d30df4f2a62a6c6b168111de6b261685ac7c0ecb2a0
+LINUX_KERNEL_HASH-5.4.120 = 38d0373c69d001a66c4b8c1b8df453d193eb38b46b6fa0d02560262ab0c10860
LINUX_KERNEL_HASH-5.10.39 = 5738a515ca97853481767360c568eae46c8d777d98a69e018a3299baa6b3f614
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
static const char hcd_name[] = "xhci_hcd";
static struct hc_driver __read_mostly xhci_pci_hc_driver;
-@@ -307,6 +347,873 @@ static void xhci_pme_acpi_rtd3_enable(st
+@@ -309,6 +349,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)
{
-@@ -348,6 +1255,27 @@ static int xhci_pci_probe(struct pci_dev
+@@ -350,6 +1257,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 */
-@@ -409,6 +1337,16 @@ static void xhci_pci_remove(struct pci_d
+@@ -411,6 +1339,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;
-@@ -548,6 +1486,11 @@ static int xhci_pci_resume(struct usb_hc
+@@ -550,6 +1488,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
-@@ -286,6 +286,7 @@ static void xhci_pci_quirks(struct devic
+@@ -288,6 +288,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
-@@ -255,6 +255,10 @@ static void xhci_pci_quirks(struct devic
+@@ -257,6 +257,10 @@ static void xhci_pci_quirks(struct devic
pdev->device == 0x3432)
xhci->quirks |= XHCI_BROKEN_STREAMS;
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
-@@ -256,8 +256,10 @@ static void xhci_pci_quirks(struct devic
+@@ -258,8 +258,10 @@ static void xhci_pci_quirks(struct devic
xhci->quirks |= XHCI_BROKEN_STREAMS;
if (pdev->vendor == PCI_VENDOR_ID_VIA &&
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
-@@ -1240,6 +1240,8 @@ static int c_show(struct seq_file *m, vo
+@@ -1249,6 +1249,8 @@ static int c_show(struct seq_file *m, vo
{
int i, j;
u32 cpuid;
for_each_online_cpu(i) {
/*
-@@ -1299,6 +1301,14 @@ static int c_show(struct seq_file *m, vo
+@@ -1308,6 +1310,14 @@ static int c_show(struct seq_file *m, vo
seq_printf(m, "Revision\t: %04x\n", system_rev);
seq_printf(m, "Serial\t\t: %s\n", system_serial);
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
-@@ -259,6 +259,7 @@ static void xhci_pci_quirks(struct devic
+@@ -261,6 +261,7 @@ static void xhci_pci_quirks(struct devic
pdev->device == 0x3483) {
xhci->quirks |= XHCI_LPM_SUPPORT;
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
#endif /* _KOBJECT_H_ */
--- a/lib/kobject_uevent.c
+++ b/lib/kobject_uevent.c
-@@ -690,6 +690,43 @@ int add_uevent_var(struct kobj_uevent_en
+@@ -691,6 +691,43 @@ int add_uevent_var(struct kobj_uevent_en
EXPORT_SYMBOL_GPL(add_uevent_var);
#if defined(CONFIG_NET)
+++ /dev/null
-From: Felix Fietkau <nbd@nbd.name>
-Date: Wed, 26 Aug 2020 16:52:12 +0200
-Subject: [PATCH] net: ethernet: mtk_eth_soc: fix rx vlan offload
-
-The VLAN ID in the rx descriptor is only valid if the RX_DMA_VID bit is set
-Fixes frames wrongly marked with VLAN tags
-
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
-
---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -1320,7 +1320,7 @@ static int mtk_poll_rx(struct napi_struc
- skb->protocol = eth_type_trans(skb, netdev);
-
- if (netdev->features & NETIF_F_HW_VLAN_CTAG_RX &&
-- RX_DMA_VID(trxd.rxd3))
-+ (trxd.rxd2 & RX_DMA_VTAG))
- __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q),
- RX_DMA_VID(trxd.rxd3));
- skb_record_rx_queue(skb, 0);
---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
-+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
-@@ -295,6 +295,7 @@
- #define RX_DMA_LSO BIT(30)
- #define RX_DMA_PLEN0(_x) (((_x) & 0x3fff) << 16)
- #define RX_DMA_GET_PLEN0(_x) (((_x) >> 16) & 0x3fff)
-+#define RX_DMA_VTAG BIT(15)
-
- /* QDMA descriptor rxd3 */
- #define RX_DMA_VID(_x) ((_x) & 0xfff)
mutex_unlock(&tzd->lock);
return tzd;
-@@ -762,7 +802,10 @@ static const char * const trip_types[] =
+@@ -765,7 +805,10 @@ static const char * const trip_types[] =
[THERMAL_TRIP_ACTIVE] = "active",
[THERMAL_TRIP_PASSIVE] = "passive",
[THERMAL_TRIP_HOT] = "hot",
* address space as memory. Needed when the kernel wants to execute
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
-@@ -312,6 +312,13 @@ static struct mem_type mem_types[] __ro_
+@@ -314,6 +314,13 @@ static struct mem_type mem_types[] __ro_
.prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
.domain = DOMAIN_KERNEL,
},
[MT_ROM] = {
.prot_sect = PMD_TYPE_SECT,
.domain = DOMAIN_KERNEL,
-@@ -648,6 +655,7 @@ static void __init build_mem_type_table(
+@@ -650,6 +657,7 @@ static void __init build_mem_type_table(
}
kern_pgprot |= PTE_EXT_AF;
vecs_pgprot |= PTE_EXT_AF;
/*
* Set PXN for user mappings
-@@ -676,6 +684,7 @@ static void __init build_mem_type_table(
+@@ -678,6 +686,7 @@ static void __init build_mem_type_table(
mem_types[MT_MEMORY_RWX].prot_pte |= kern_pgprot;
mem_types[MT_MEMORY_RW].prot_sect |= ecc_mask | cp->pmd;
mem_types[MT_MEMORY_RW].prot_pte |= kern_pgprot;
* All 3.1 IP version constants are greater than the 3.0 IP
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
-@@ -3568,6 +3568,10 @@ int dwc3_gadget_init(struct dwc3 *dwc)
+@@ -3570,6 +3570,10 @@ int dwc3_gadget_init(struct dwc3 *dwc)
dwc->gadget.sg_supported = true;
dwc->gadget.name = "dwc3-gadget";
dwc->gadget.lpm_capable = true;