[openwrt/openwrt] generic: make xhci-pci-renesas a proper modular driver

LEDE Commits lede-commits at lists.infradead.org
Sat May 17 11:17:36 PDT 2025


hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/fbd31da8402e20075a0b7bb2799155ac3a921bf5

commit fbd31da8402e20075a0b7bb2799155ac3a921bf5
Author: Shiji Yang <yangshiji66 at outlook.com>
AuthorDate: Sat May 10 10:59:17 2025 +0800

    generic: make xhci-pci-renesas a proper modular driver
    
    In the new 6.12 kernel, the dependencies of kmod-usb3 and
    kmod-usb-xhci-pci-renesas have been reversed. To address the
    issue of package recursive dependencies, we need to backport
    this patchset to make the dependencies consistent between the
    6.6 and 6.12 kernels.
    
    Links:
    https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.10.y&id=d6b2b694dd536d16566424c395d5642783ed6f34
    https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.11.y&id=9fdce69f674e49be669e97919d24b1ab5d2c9684
    https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=25f51b76f90f10f9bf2fbc05fc51cf685da7ccad
    Signed-off-by: Shiji Yang <yangshiji66 at outlook.com>
    Link: https://github.com/openwrt/openwrt/pull/18768
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 ...rt-xhci-add-quirk-for-host-controllers-th.patch |   2 +-
 ...-xhci-quirks-add-link-TRB-quirk-for-VL805.patch |   2 +-
 ...84-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch |   2 +-
 ...0-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch |   2 +-
 ...-v6.10-xhci-pci-Use-PCI_VENDOR_ID_RENESAS.patch |  30 +++
 ...ost-add-missing-MODULE_DESCRIPTION-macros.patch |  35 +++
 ...-xhci-pci-renesas-a-proper-modular-driver.patch | 282 +++++++++++++++++++++
 7 files changed, 351 insertions(+), 4 deletions(-)

diff --git a/target/linux/bcm27xx/patches-6.6/950-0061-Revert-Revert-xhci-add-quirk-for-host-controllers-th.patch b/target/linux/bcm27xx/patches-6.6/950-0061-Revert-Revert-xhci-add-quirk-for-host-controllers-th.patch
index e2c2b02f70..5b146761f3 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0061-Revert-Revert-xhci-add-quirk-for-host-controllers-th.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0061-Revert-Revert-xhci-add-quirk-for-host-controllers-th.patch
@@ -14,7 +14,7 @@ We don't agree with upstream revert so undo it.
 
 --- a/drivers/usb/host/xhci-pci.c
 +++ b/drivers/usb/host/xhci-pci.c
-@@ -485,6 +485,7 @@ static void xhci_pci_quirks(struct devic
+@@ -476,6 +476,7 @@ static void xhci_pci_quirks(struct devic
  	if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == PCI_DEVICE_ID_VIA_VL805) {
  		xhci->quirks |= XHCI_LPM_SUPPORT;
  		xhci->quirks |= XHCI_TRB_OVERFETCH;
diff --git a/target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch b/target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
index 7ab01e4623..9d14a3c6fc 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
@@ -24,7 +24,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
 
 --- a/drivers/usb/host/xhci-pci.c
 +++ b/drivers/usb/host/xhci-pci.c
-@@ -486,6 +486,7 @@ static void xhci_pci_quirks(struct devic
+@@ -477,6 +477,7 @@ static void xhci_pci_quirks(struct devic
  		xhci->quirks |= XHCI_LPM_SUPPORT;
  		xhci->quirks |= XHCI_TRB_OVERFETCH;
  		xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
diff --git a/target/linux/bcm27xx/patches-6.6/950-0484-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch b/target/linux/bcm27xx/patches-6.6/950-0484-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch
index cad297ab73..25f5f5c134 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0484-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0484-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch
@@ -90,7 +90,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  	/* Allow 3 retries for everything but isoc, set CErr = 3 */
 --- a/drivers/usb/host/xhci-pci.c
 +++ b/drivers/usb/host/xhci-pci.c
-@@ -487,6 +487,7 @@ static void xhci_pci_quirks(struct devic
+@@ -478,6 +478,7 @@ static void xhci_pci_quirks(struct devic
  		xhci->quirks |= XHCI_TRB_OVERFETCH;
  		xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
  		xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
diff --git a/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch b/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
index e1c96d25bb..cd50f704a1 100644
--- a/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
+++ b/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
@@ -64,7 +64,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
  static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
  {
  	struct pci_dev                  *pdev = to_pci_dev(dev);
-@@ -488,6 +500,8 @@ static void xhci_pci_quirks(struct devic
+@@ -479,6 +491,8 @@ static void xhci_pci_quirks(struct devic
  		xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
  		xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
  		xhci->quirks |= XHCI_VLI_SS_BULK_OUT_BUG;
diff --git a/target/linux/generic/backport-6.6/806-01-v6.10-xhci-pci-Use-PCI_VENDOR_ID_RENESAS.patch b/target/linux/generic/backport-6.6/806-01-v6.10-xhci-pci-Use-PCI_VENDOR_ID_RENESAS.patch
new file mode 100644
index 0000000000..f8edb5f3ed
--- /dev/null
+++ b/target/linux/generic/backport-6.6/806-01-v6.10-xhci-pci-Use-PCI_VENDOR_ID_RENESAS.patch
@@ -0,0 +1,30 @@
+From d6b2b694dd536d16566424c395d5642783ed6f34 Mon Sep 17 00:00:00 2001
+From: Andy Shevchenko <andriy.shevchenko at linux.intel.com>
+Date: Mon, 29 Apr 2024 17:02:43 +0300
+Subject: [PATCH] xhci: pci: Use PCI_VENDOR_ID_RENESAS
+
+Instead of plain hexadecimal, use already defined PCI_VENDOR_ID_RENESAS.
+
+Signed-off-by: Andy Shevchenko <andriy.shevchenko at linux.intel.com>
+Signed-off-by: Mathias Nyman <mathias.nyman at linux.intel.com>
+Link: https://lore.kernel.org/r/20240429140245.3955523-17-mathias.nyman@linux.intel.com
+Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
+---
+ drivers/usb/host/xhci-pci.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/usb/host/xhci-pci.c
++++ b/drivers/usb/host/xhci-pci.c
+@@ -966,10 +966,10 @@ static const struct xhci_driver_data ren
+ 
+ /* PCI driver selection metadata; PCI hotplugging uses this */
+ static const struct pci_device_id pci_ids[] = {
+-	{ PCI_DEVICE(0x1912, 0x0014),
++	{ PCI_DEVICE(PCI_VENDOR_ID_RENESAS, 0x0014),
+ 		.driver_data =  (unsigned long)&reneses_data,
+ 	},
+-	{ PCI_DEVICE(0x1912, 0x0015),
++	{ PCI_DEVICE(PCI_VENDOR_ID_RENESAS, 0x0015),
+ 		.driver_data =  (unsigned long)&reneses_data,
+ 	},
+ 	/* handle any USB 3.0 xHCI controller */
diff --git a/target/linux/generic/backport-6.6/806-02-v6.11-usb-host-add-missing-MODULE_DESCRIPTION-macros.patch b/target/linux/generic/backport-6.6/806-02-v6.11-usb-host-add-missing-MODULE_DESCRIPTION-macros.patch
new file mode 100644
index 0000000000..f27b56a93b
--- /dev/null
+++ b/target/linux/generic/backport-6.6/806-02-v6.11-usb-host-add-missing-MODULE_DESCRIPTION-macros.patch
@@ -0,0 +1,35 @@
+From 9fdce69f674e49be669e97919d24b1ab5d2c9684 Mon Sep 17 00:00:00 2001
+From: Jeff Johnson <quic_jjohnson at quicinc.com>
+Date: Tue, 11 Jun 2024 17:53:37 -0700
+Subject: [PATCH] usb: host: add missing MODULE_DESCRIPTION() macros
+
+With ARCH=x86, make allmodconfig && make W=1 C=1 reports:
+WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/usb/host/ohci-exynos.o
+WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/usb/host/xhci-pci-renesas.o
+
+Add the missing invocations of the MODULE_DESCRIPTION() macro.
+
+Signed-off-by: Jeff Johnson <quic_jjohnson at quicinc.com>
+Link: https://lore.kernel.org/r/20240611-md-drivers-usb-host-v1-1-e2071a696ef8@quicinc.com
+Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
+---
+ drivers/usb/host/ohci-exynos.c      | 1 +
+ drivers/usb/host/xhci-pci-renesas.c | 1 +
+ 2 files changed, 2 insertions(+)
+
+--- a/drivers/usb/host/ohci-exynos.c
++++ b/drivers/usb/host/ohci-exynos.c
+@@ -308,4 +308,5 @@ module_exit(ohci_exynos_cleanup);
+ 
+ MODULE_ALIAS("platform:exynos-ohci");
+ MODULE_AUTHOR("Jingoo Han <jg1.han at samsung.com>");
++MODULE_DESCRIPTION("OHCI support for Samsung S5P/Exynos SoC Series");
+ MODULE_LICENSE("GPL v2");
+--- a/drivers/usb/host/xhci-pci-renesas.c
++++ b/drivers/usb/host/xhci-pci-renesas.c
+@@ -627,4 +627,5 @@ exit:
+ }
+ EXPORT_SYMBOL_GPL(renesas_xhci_check_request_fw);
+ 
++MODULE_DESCRIPTION("Support for Renesas xHCI controller with firmware");
+ MODULE_LICENSE("GPL v2");
diff --git a/target/linux/generic/backport-6.6/806-03-v6.12-xhci-pci-Make-xhci-pci-renesas-a-proper-modular-driver.patch b/target/linux/generic/backport-6.6/806-03-v6.12-xhci-pci-Make-xhci-pci-renesas-a-proper-modular-driver.patch
new file mode 100644
index 0000000000..e52e48a3f2
--- /dev/null
+++ b/target/linux/generic/backport-6.6/806-03-v6.12-xhci-pci-Make-xhci-pci-renesas-a-proper-modular-driver.patch
@@ -0,0 +1,282 @@
+From 25f51b76f90f10f9bf2fbc05fc51cf685da7ccad Mon Sep 17 00:00:00 2001
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Wed, 31 Jul 2024 22:32:29 +0200
+Subject: [PATCH] xhci-pci: Make xhci-pci-renesas a proper modular driver
+
+If CONFIG_USB_XHCI_PCI_RENESAS is enabled, xhci-pci conditionally
+calls into the xhci-pci-renesas module, which means both modules must
+be loaded to use any xHCI PCI controller.
+
+The MODULE_FIRMWARE declaration in the base xhci-pci module causes
+initramfs-tools to check for and warn about missing firmware for the
+Renesas xHCI controllers, when any xHCI PCI controller is present.
+And because of the previous oddity, simply moving this declaration to
+xhci-pci-renesas wouldn't help.
+
+To fix this, reverse the relationship between the modules:
+
+- Remove the quirk for the Renesas xHCIs, and the driver_data
+  structure used only for them
+- In xhci-pci:
+  - Rename xhci_pci_probe() to xhci_pci_common_probe()
+  - Export xhci_pci_common_probe() and xhci_pci_remove()
+  - Use a new probe function that rejects the Renesas xHCIs and then
+    calls the common probe function
+- In xhci-pci-renesas:
+  - Stop exporting renesas_xhci_check_request_fw()
+  - Add a probe function that calls renesas_xhci_check_request_fw()
+    followed by xhci_pci_common_probe()
+  - Add and register a new pci_driver matching only the Renesas xHCIs
+    and using its own probe function, but with other operations the
+    same as in xhci-pci
+- Make CONFIG_USB_XHCI_PCI_RENESAS depend on CONFIG_USB_XHCI_PCI,
+  not the other way around
+
+Finally, move the MODULE_FIRMWARE declaration to xhci-pci-renesas.
+
+Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
+Tested-by: Cyril Brulebois <cyril at debamax.com>
+Link: https://lore.kernel.org/r/ZqqfXYRJf7kGaqus@decadent.org.uk
+Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
+---
+ drivers/usb/host/Kconfig            |  2 +-
+ drivers/usb/host/xhci-pci-renesas.c | 48 ++++++++++++++++++++----
+ drivers/usb/host/xhci-pci.c         | 57 ++++++++++-------------------
+ drivers/usb/host/xhci-pci.h         | 19 +---------
+ drivers/usb/host/xhci.h             |  2 +-
+ 5 files changed, 64 insertions(+), 64 deletions(-)
+
+--- a/drivers/usb/host/Kconfig
++++ b/drivers/usb/host/Kconfig
+@@ -40,11 +40,11 @@ config USB_XHCI_DBGCAP
+ config USB_XHCI_PCI
+ 	tristate
+ 	depends on USB_PCI
+-	depends on USB_XHCI_PCI_RENESAS || !USB_XHCI_PCI_RENESAS
+ 	default y
+ 
+ config USB_XHCI_PCI_RENESAS
+ 	tristate "Support for additional Renesas xHCI controller with firmware"
++	depends on USB_XHCI_PCI
+ 	help
+ 	  Say 'Y' to enable the support for the Renesas xHCI controller with
+ 	  firmware. Make sure you have the firmware for the device and
+--- a/drivers/usb/host/xhci-pci-renesas.c
++++ b/drivers/usb/host/xhci-pci-renesas.c
+@@ -50,6 +50,8 @@
+ #define RENESAS_RETRY	10000
+ #define RENESAS_DELAY	10
+ 
++#define RENESAS_FW_NAME	"renesas_usb_fw.mem"
++
+ static int renesas_fw_download_image(struct pci_dev *dev,
+ 				     const u32 *fw, size_t step, bool rom)
+ {
+@@ -573,12 +575,10 @@ exit:
+ 	return err;
+ }
+ 
+-int renesas_xhci_check_request_fw(struct pci_dev *pdev,
+-				  const struct pci_device_id *id)
++static int renesas_xhci_check_request_fw(struct pci_dev *pdev,
++					 const struct pci_device_id *id)
+ {
+-	struct xhci_driver_data *driver_data =
+-			(struct xhci_driver_data *)id->driver_data;
+-	const char *fw_name = driver_data->firmware;
++	const char fw_name[] = RENESAS_FW_NAME;
+ 	const struct firmware *fw;
+ 	bool has_rom;
+ 	int err;
+@@ -625,7 +625,41 @@ exit:
+ 	release_firmware(fw);
+ 	return err;
+ }
+-EXPORT_SYMBOL_GPL(renesas_xhci_check_request_fw);
+ 
+-MODULE_DESCRIPTION("Support for Renesas xHCI controller with firmware");
++static int
++xhci_pci_renesas_probe(struct pci_dev *dev, const struct pci_device_id *id)
++{
++	int retval;
++
++	retval = renesas_xhci_check_request_fw(dev, id);
++	if (retval)
++		return retval;
++
++	return xhci_pci_common_probe(dev, id);
++}
++
++static const struct pci_device_id pci_ids[] = {
++	{ PCI_DEVICE(PCI_VENDOR_ID_RENESAS, 0x0014) },
++	{ PCI_DEVICE(PCI_VENDOR_ID_RENESAS, 0x0015) },
++	{ /* end: all zeroes */ }
++};
++MODULE_DEVICE_TABLE(pci, pci_ids);
++
++static struct pci_driver xhci_renesas_pci_driver = {
++	.name =		"xhci-pci-renesas",
++	.id_table =	pci_ids,
++
++	.probe =	xhci_pci_renesas_probe,
++	.remove =	xhci_pci_remove,
++
++	.shutdown = 	usb_hcd_pci_shutdown,
++	.driver = {
++		.pm = pm_ptr(&usb_hcd_pci_pm_ops),
++	},
++};
++module_pci_driver(xhci_renesas_pci_driver);
++
++MODULE_DESCRIPTION("Renesas xHCI PCI Host Controller Driver");
++MODULE_FIRMWARE(RENESAS_FW_NAME);
++MODULE_IMPORT_NS(xhci);
+ MODULE_LICENSE("GPL v2");
+--- a/drivers/usb/host/xhci-pci.c
++++ b/drivers/usb/host/xhci-pci.c
+@@ -300,15 +300,6 @@ static int xhci_pci_reinit(struct xhci_h
+ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
+ {
+ 	struct pci_dev                  *pdev = to_pci_dev(dev);
+-	struct xhci_driver_data         *driver_data;
+-	const struct pci_device_id      *id;
+-
+-	id = pci_match_id(to_pci_driver(pdev->dev.driver)->id_table, pdev);
+-
+-	if (id && id->driver_data) {
+-		driver_data = (struct xhci_driver_data *)id->driver_data;
+-		xhci->quirks |= driver_data->quirks;
+-	}
+ 
+ 	/* Look for vendor-specific quirks */
+ 	if (pdev->vendor == PCI_VENDOR_ID_FRESCO_LOGIC &&
+@@ -643,21 +634,13 @@ static int xhci_pci_update_hub_device(st
+  * We need to register our own PCI probe function (instead of the USB core's
+  * function) in order to create a second roothub under xHCI.
+  */
+-static int xhci_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
++int xhci_pci_common_probe(struct pci_dev *dev, const struct pci_device_id *id)
+ {
+ 	int retval;
+ 	struct xhci_hcd *xhci;
+ 	struct usb_hcd *hcd;
+-	struct xhci_driver_data *driver_data;
+ 	struct reset_control *reset;
+ 
+-	driver_data = (struct xhci_driver_data *)id->driver_data;
+-	if (driver_data && driver_data->quirks & XHCI_RENESAS_FW_QUIRK) {
+-		retval = renesas_xhci_check_request_fw(dev, id);
+-		if (retval)
+-			return retval;
+-	}
+-
+ 	reset = devm_reset_control_get_optional_exclusive(&dev->dev, NULL);
+ 	if (IS_ERR(reset))
+ 		return PTR_ERR(reset);
+@@ -722,8 +705,24 @@ put_runtime_pm:
+ 	pm_runtime_put_noidle(&dev->dev);
+ 	return retval;
+ }
++EXPORT_SYMBOL_NS_GPL(xhci_pci_common_probe, xhci);
++
++static const struct pci_device_id pci_ids_reject[] = {
++	/* handled by xhci-pci-renesas */
++	{ PCI_DEVICE(PCI_VENDOR_ID_RENESAS, 0x0014) },
++	{ PCI_DEVICE(PCI_VENDOR_ID_RENESAS, 0x0015) },
++	{ /* end: all zeroes */ }
++};
++
++static int xhci_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
++{
++	if (pci_match_id(pci_ids_reject, dev))
++		return -ENODEV;
++
++	return xhci_pci_common_probe(dev, id);
++}
+ 
+-static void xhci_pci_remove(struct pci_dev *dev)
++void xhci_pci_remove(struct pci_dev *dev)
+ {
+ 	struct xhci_hcd *xhci;
+ 	bool set_power_d3;
+@@ -750,6 +749,7 @@ static void xhci_pci_remove(struct pci_d
+ 	if (set_power_d3)
+ 		pci_set_power_state(dev, PCI_D3hot);
+ }
++EXPORT_SYMBOL_NS_GPL(xhci_pci_remove, xhci);
+ 
+ /*
+  * In some Intel xHCI controllers, in order to get D3 working,
+@@ -959,19 +959,8 @@ static void xhci_pci_shutdown(struct usb
+ 
+ /*-------------------------------------------------------------------------*/
+ 
+-static const struct xhci_driver_data reneses_data = {
+-	.quirks  = XHCI_RENESAS_FW_QUIRK,
+-	.firmware = "renesas_usb_fw.mem",
+-};
+-
+ /* PCI driver selection metadata; PCI hotplugging uses this */
+ static const struct pci_device_id pci_ids[] = {
+-	{ PCI_DEVICE(PCI_VENDOR_ID_RENESAS, 0x0014),
+-		.driver_data =  (unsigned long)&reneses_data,
+-	},
+-	{ PCI_DEVICE(PCI_VENDOR_ID_RENESAS, 0x0015),
+-		.driver_data =  (unsigned long)&reneses_data,
+-	},
+ 	/* handle any USB 3.0 xHCI controller */
+ 	{ PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_XHCI, ~0),
+ 	},
+@@ -979,14 +968,6 @@ static const struct pci_device_id pci_id
+ };
+ MODULE_DEVICE_TABLE(pci, pci_ids);
+ 
+-/*
+- * Without CONFIG_USB_XHCI_PCI_RENESAS renesas_xhci_check_request_fw() won't
+- * load firmware, so don't encumber the xhci-pci driver with it.
+- */
+-#if IS_ENABLED(CONFIG_USB_XHCI_PCI_RENESAS)
+-MODULE_FIRMWARE("renesas_usb_fw.mem");
+-#endif
+-
+ /* pci driver glue; this is a "new style" PCI driver module */
+ static struct pci_driver xhci_pci_driver = {
+ 	.name =		hcd_name,
+--- a/drivers/usb/host/xhci-pci.h
++++ b/drivers/usb/host/xhci-pci.h
+@@ -4,22 +4,7 @@
+ #ifndef XHCI_PCI_H
+ #define XHCI_PCI_H
+ 
+-#if IS_ENABLED(CONFIG_USB_XHCI_PCI_RENESAS)
+-int renesas_xhci_check_request_fw(struct pci_dev *dev,
+-				  const struct pci_device_id *id);
+-
+-#else
+-static int renesas_xhci_check_request_fw(struct pci_dev *dev,
+-					 const struct pci_device_id *id)
+-{
+-	return 0;
+-}
+-
+-#endif
+-
+-struct xhci_driver_data {
+-	u64 quirks;
+-	const char *firmware;
+-};
++int xhci_pci_common_probe(struct pci_dev *dev, const struct pci_device_id *id);
++void xhci_pci_remove(struct pci_dev *dev);
+ 
+ #endif
+--- a/drivers/usb/host/xhci.h
++++ b/drivers/usb/host/xhci.h
+@@ -1648,7 +1648,7 @@ struct xhci_hcd {
+ #define XHCI_DEFAULT_PM_RUNTIME_ALLOW	BIT_ULL(33)
+ #define XHCI_RESET_PLL_ON_DISCONNECT	BIT_ULL(34)
+ #define XHCI_SNPS_BROKEN_SUSPEND    BIT_ULL(35)
+-#define XHCI_RENESAS_FW_QUIRK	BIT_ULL(36)
++/* Reserved. It was XHCI_RENESAS_FW_QUIRK */
+ #define XHCI_SKIP_PHY_INIT	BIT_ULL(37)
+ #define XHCI_DISABLE_SPARSE	BIT_ULL(38)
+ #define XHCI_SG_TRB_CACHE_SIZE_QUIRK	BIT_ULL(39)




More information about the lede-commits mailing list