Ran update_kernel.sh in a fresh clone without any existing toolchains.
Manually rebased:
bcm27xx
950-0267-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch
bcm53xx
180-usb-xhci-add-support-for-performing-fake-doorbell.patch
layerscape
302-dts-0008-arm64-dts-ls1046a-accumulated-change-to-ls1046a-boar.patch
820-usb-0016-MLK-16735-usb-host-add-XHCI_CDNS_HOST-flag.patch
820-usb-0018-MLK-18794-1-usb-host-xhci-add-.bus_suspend-override.patch
Build system: x86_64
Build-tested: bcm27xx/bcm2711, ipq806x/R7800
Run-tested: ipq806x/R7800
No dmesg regressions/everything functional.
Signed-off-by: John Audia <graysky@archlinux.us>
[remove quilt comment, fix/adjust 820-usb-* layerscape patches]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif
-LINUX_VERSION-5.4 = .96
+LINUX_VERSION-5.4 = .97
-LINUX_KERNEL_HASH-5.4.96 = f728de695ec5eb17efa15acaecc48fcd7a6c4a912b51704ed137cccf93f9f5e0
+LINUX_KERNEL_HASH-5.4.97 = 71a866100a630fbc66d24770f932feb121dd764c0bb95a88c0a00e3cb629483f
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
hcd->msi_enabled = 1;
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1881,6 +1881,7 @@ struct xhci_hcd {
+@@ -1882,6 +1882,7 @@ struct xhci_hcd {
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
/* support xHCI 1.0 spec USB2 hardware LPM */
#define XHCI_RESET_PLL_ON_DISCONNECT BIT_ULL(34)
#define XHCI_SNPS_BROKEN_SUSPEND BIT_ULL(35)
+#define XHCI_EP_CTX_BROKEN_DCS BIT_ULL(36)
+ #define XHCI_SKIP_PHY_INIT BIT_ULL(37)
#define XHCI_DISABLE_SPARSE BIT_ULL(38)
- unsigned int num_active_eps;
--- a/Makefile
+++ b/Makefile
-@@ -1267,6 +1267,9 @@ ifneq ($(dtstree),)
+@@ -1261,6 +1261,9 @@ ifneq ($(dtstree),)
%.dtb: include/config/kernel.release scripts_dtc
$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
--- a/Makefile
+++ b/Makefile
-@@ -1267,7 +1267,7 @@ ifneq ($(dtstree),)
+@@ -1261,7 +1261,7 @@ ifneq ($(dtstree),)
%.dtb: include/config/kernel.release scripts_dtc
$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
--- a/drivers/usb/host/xhci-plat.c
+++ b/drivers/usb/host/xhci-plat.c
-@@ -67,6 +67,8 @@ static int xhci_priv_resume_quirk(struct
+@@ -77,6 +77,8 @@ static int xhci_priv_resume_quirk(struct
static void xhci_plat_quirks(struct device *dev, struct xhci_hcd *xhci)
{
struct xhci_plat_priv *priv = xhci_to_priv(xhci);
/*
* As of now platform drivers don't provide MSI support so we ensure
-@@ -74,6 +76,9 @@ static void xhci_plat_quirks(struct devi
+@@ -84,6 +86,9 @@ static void xhci_plat_quirks(struct devi
* dev struct in order to setup MSI
*/
xhci->quirks |= XHCI_PLAT | priv->quirks;
#define XHCI_RESET_PLL_ON_DISCONNECT BIT_ULL(34)
#define XHCI_SNPS_BROKEN_SUSPEND BIT_ULL(35)
+#define XHCI_FAKE_DOORBELL BIT_ULL(36)
+ #define XHCI_SKIP_PHY_INIT BIT_ULL(37)
#define XHCI_DISABLE_SPARSE BIT_ULL(38)
- unsigned int num_active_eps;
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
-@@ -2380,7 +2380,14 @@ static int mv88e6xxx_setup_upstream_port
+@@ -2384,7 +2384,14 @@ static int mv88e6xxx_setup_upstream_port
if (chip->info->ops->set_egress_port) {
err = chip->info->ops->set_egress_port(chip,
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
-@@ -4922,6 +4922,80 @@ static int mv88e6xxx_port_mdb_del(struct
+@@ -4926,6 +4926,80 @@ static int mv88e6xxx_port_mdb_del(struct
return err;
}
static int mv88e6xxx_port_egress_floods(struct dsa_switch *ds, int port,
bool unicast, bool multicast)
{
-@@ -4976,6 +5050,8 @@ static const struct dsa_switch_ops mv88e
+@@ -4980,6 +5054,8 @@ static const struct dsa_switch_ops mv88e
.port_mdb_prepare = mv88e6xxx_port_mdb_prepare,
.port_mdb_add = mv88e6xxx_port_mdb_add,
.port_mdb_del = mv88e6xxx_port_mdb_del,
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
-@@ -4989,7 +4989,7 @@ static void mv88e6xxx_port_mirror_del(st
+@@ -4993,7 +4993,7 @@ static void mv88e6xxx_port_mirror_del(st
if (chip->info->ops->set_egress_port(chip,
direction,
dsa_upstream_port(ds,
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
-@@ -2659,6 +2659,7 @@ static int mv88e6xxx_setup(struct dsa_sw
+@@ -2663,6 +2663,7 @@ static int mv88e6xxx_setup(struct dsa_sw
chip->ds = ds;
ds->slave_mii_bus = mv88e6xxx_default_mdio_bus(chip);
compatible = "spansion,m25p80";
--- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
-@@ -304,7 +304,7 @@
-
- dcfg: dcfg@1ee0000 {
- compatible = "fsl,ls1046a-dcfg", "syscon";
-- reg = <0x0 0x1ee0000 0x0 0x10000>;
-+ reg = <0x0 0x1ee0000 0x0 0x1000>;
- big-endian;
- };
-
@@ -376,7 +376,7 @@
};
retval = xhci_enter_test_mode(xhci, test_mode, wIndex,
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
-@@ -3582,6 +3582,129 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
+@@ -3591,6 +3591,129 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
return 0;
}
void xhci_init_driver(struct hc_driver *drv,
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -2144,6 +2144,16 @@ int xhci_find_raw_port_number(struct usb
+@@ -2149,6 +2149,16 @@ int xhci_find_raw_port_number(struct usb
struct xhci_hub *xhci_get_rhub(struct usb_hcd *hcd);
void xhci_hc_died(struct xhci_hcd *xhci);
#define XHCI_RESET_PLL_ON_DISCONNECT BIT_ULL(34)
#define XHCI_SNPS_BROKEN_SUSPEND BIT_ULL(35)
+#define XHCI_CDNS_HOST BIT_ULL(36)
+ #define XHCI_SKIP_PHY_INIT BIT_ULL(37)
#define XHCI_DISABLE_SPARSE BIT_ULL(38)
- unsigned int num_active_eps;
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
-@@ -2053,12 +2053,9 @@ static int process_ctrl_td(struct xhci_h
+@@ -2058,12 +2058,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
-@@ -5381,6 +5381,8 @@ void xhci_init_driver(struct hc_driver *
- drv->reset = over->reset;
- if (over->start)
- drv->start = over->start;
+@@ -5385,6 +5385,8 @@ void xhci_init_driver(struct hc_driver *
+ drv->check_bandwidth = over->check_bandwidth;
+ if (over->reset_bandwidth)
+ drv->reset_bandwidth = over->reset_bandwidth;
+ if (over->bus_suspend)
+ drv->bus_suspend = over->bus_suspend;
}
EXPORT_SYMBOL_GPL(xhci_init_driver);
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1912,6 +1912,7 @@ struct xhci_driver_overrides {
- size_t extra_priv_size;
- int (*reset)(struct usb_hcd *hcd);
+@@ -1915,6 +1915,7 @@ struct xhci_driver_overrides {
int (*start)(struct usb_hcd *hcd);
+ int (*check_bandwidth)(struct usb_hcd *, struct usb_device *);
+ void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *);
+ int (*bus_suspend)(struct usb_hcd *hcd);
};
--- a/drivers/usb/host/xhci-plat.c
+++ b/drivers/usb/host/xhci-plat.c
-@@ -291,6 +291,10 @@ static int xhci_plat_probe(struct platfo
+@@ -303,6 +303,10 @@ static int xhci_plat_probe(struct platfo
device_property_read_u32(tmpdev, "imod-interval-ns",
&xhci->imod_interval);