On Thu, Jul 25, 2024 at 02:38:18AM +0200, Ben Hutchings wrote: > 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@xxxxxxxxxxxxxxx> > --- > drivers/usb/host/Kconfig | 2 +- > drivers/usb/host/xhci-pci-renesas.c | 47 +++++++++++++++++++++--- > 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(+), 63 deletions(-) > I get the following error when building: drivers/usb/host/xhci-pci.c:646:5: error: no previous prototype for ‘xhci_pci_probe’ [-Werror=missing-prototypes] 646 | int xhci_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) | ^~~~~~~~~~~~~~ cc1: all warnings being treated as errors Can you rebase against 6.11-rc1 and fix up and resend? thanks, greg k-h