Re: [PATCH v3 2/2] usb: cdns3: Add USBSSP platform driver support

From: Arnd Bergmann

Date: Tue Apr 21 2026 - 01:58:13 EST


On Tue, Apr 21, 2026, at 04:34, Peter Chen wrote:
> Expose Cadence USBSSP through the same platform path as USBSS, trim
> Kconfig and Makefile: one core loadable object plus separate glue .ko
> files.
>
> Single cdns.ko bundles core, DRD, the generic "cdns,usb3" platform
> driver in cdns3-plat.c, optional host.o, and optional gadget objects.
> Use CONFIG_USB_CDNS3_GADGET as a bool to compile gadget support into
> that module. Remove duplicate MODULE_* declarations from cdns3-plat.c
> now that it links into the same module.
>
> Kconfig: the generic platform driver is selected via CONFIG_USB_CDNS3.
> Move CONFIG_USB_CDNSP_PCI beside CONFIG_USB_CDNS3_PCI_WRAP under
> "Platform glue driver support". SoC glue entries (TI, i.MX, StarFive)
> depend only on CONFIG_USB_CDNS3.
>
> Tighten CONFIG_USB_CDNS_SUPPORT dependencies so the umbrella follows
> host or gadget when either is built as a module. Match host and gadget
> bools to the cdns.ko tristate with USB=USB_CDNS3 and USB_GADGET=USB_CDNS3
> instead of comparing against USB_CDNS_SUPPORT.
>
> Link host.o when CONFIG_USB_CDNS3_HOST is enabled and use that symbol in
> host-export.h, removing the redundant CONFIG_USB_CDNS_HOST indirection.
>
> Export cdns_core_init_role and reorganize the function cdns_init, and
> controller version could be gotten before the gadget init function is
> decided per controller.
>
> Keep host_init / gadget_init callbacks in struct cdns, so core.c does
> not need direct linkage to host or gadget objects. Refactor cdnsp-pci.c
> into a thin PCI-to-platform wrapper.
>
> drivers/usb/Makefile: descend into drivers/usb/cdns3/ only when
> CONFIG_USB_CDNS_SUPPORT is enabled.
>
> Assisted-by: Cursor:claude-4.6-opus
> Suggested-by: Arnd Bergmann <arnd@xxxxxxxx>
> Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxx>

This looks fine to me,

Reviewed-by: Arnd Bergmann <arnd@xxxxxxxx>

I've added the patch to my randconfig build setup now, to see if there
are any corner cases left that I have missed where it may still
get into a build time failure and will let you know if I find any.

Arnd