• Arnd Bergmann's avatar
    xhci: split out rcar/rz support from xhci-plat.c · ec5499d3
    Arnd Bergmann authored
    The USB_XHCI_RZV2M and USB_RENESAS_USB3 select other drivers
    based on the enabled SoC types, which leads to build failures
    when the dependencies are not met:
    
    WARNING: unmet direct dependencies detected for USB_RZV2M_USB3DRD
      Depends on [n]: USB_SUPPORT [=y] && USB_GADGET [=n] && (ARCH_R9A09G011 [=n] || COMPILE_TEST [=y])
      Selected by [m]:
      - USB_XHCI_RZV2M [=m] && USB_SUPPORT [=y] && USB [=y] && USB_XHCI_HCD [=m] && USB_XHCI_PLATFORM [=m] && (ARCH_R9A09G011 [=n] || COMPILE_TEST [=y])
    ERROR: modpost: "rzv2m_usb3drd_reset" [drivers/usb/host/xhci-plat-hcd.ko] undefined!
    
    The xhci-rcar driver has a reverse dependency with the xhci core, and it
    depends on the UDC driver in turn. To untangle this, make the xhci-rcar.ko
    driver a standalone module that just calls into the xhci-plat.ko module
    like other drivers do.
    
    This allows handling the dependency on the USB_RZV2M_USB3DRD driver to
    only affect the xhci-rcar module and simplify the xhci-plat module.
    
    It also allows leaving out the hacks for broken dma mask and nested
    devices from the rcar side and keep that only in the generic xhci driver.
    
    As a future cleanup, the marvell and dwc3 specific bits of xhci-plat.c
    could be moved out as well, but that is not required for this bugfix.
    
    Fixes: c52c9acc ("xhci: host: Add Renesas RZ/V2M SoC support")
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Tested-by: default avatarBiju Das <biju.das.jz@bp.renesas.com>
    Link: https://lore.kernel.org/r/20230131150531.12347-1-arnd@kernel.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    ec5499d3
Kconfig 25.6 KB