Peter, > >> >>> >>>On 20-12-09 16:58:16, Randy Dunlap wrote: >>>> On 12/9/20 2:44 AM, Stephen Rothwell wrote: >>>> > Hi all, >>>> > >>>> > Changes since 20201208: >>>> > >>>> >>>> (I don't know what to do about this one -- seeking help.) >>> >>>Add Pawel. >>> >>>Hi Pawel, >>> >>>Add old cdns3 logic, when the CONFIG_USB=m >>>If CONFIG_USB_CDNS3 is M, the host will be built as module >>>If CONFIG_USB_CDNS3 is build-in, the host will not built due to >>>USB=m, so USB!= USB_CDNS3 at below dependency. >>> >>>config USB_CDNS3_HOST >>> bool "Cadence USB3 host controller" >>> depends on USB=y || USB=USB_CDNS3 >>> >>>So, it has no such issue. >>> >>>But after adding CDNSSP support, the configuration relationship is >>>much complicated, both CDNS3 and CDNSSP could choose host file, >>>would you have a check for this issue? >> >>I can recreate this issue. I will try to resolve it. > >config USB_CDNS3_HOST > bool "Cadence USB3 host controller" >- depends on USB=y || USB=USB_CDNS3 >+ depends on USB=USB_CDNS3 > select USB_CDNS_HOST > help > Say Y here to enable host controller functionality of the >@@ -110,7 +110,7 @@ config USB_CDNSP_GADGET > > config USB_CDNSP_HOST > bool "Cadence CDNSP host controller" >- depends on USB=y || USB=USB_CDNSP_PCI >+ depends on USB=USB_CDNSP_PCI > select USB_CDNS_HOST > help > Say Y here to enable host controller functionality of the > >Peter, what about such change. It fix this issue but I need to check >It with some other kernel configurations. >At this moment it's the only solution which I've found but >it's introduces some limitation in CDNS3/CDNSP configuration. It doesn't work correct. I posted the patch with other solution. > >> >>> >>>Peter >>> >>>> >>>> >>>> on x86_64: >>>> >>>> ld: drivers/usb/cdns3/host.o: in function `xhci_cdns3_suspend_quirk': >>>> host.c:(.text+0x9): undefined reference to `usb_hcd_is_primary_hcd' >>>> >>>> This reference to 'usb_hdc_is_primary_hcd' is from hcd_to_xhci(), >>>> which is being built as a loadable module: >>>> >>>> int xhci_cdns3_suspend_quirk(struct usb_hcd *hcd) >>>> { >>>> struct xhci_hcd *xhci = hcd_to_xhci(hcd); >>>> >>>> >>>> >>>> >>>> CONFIG_USB_GADGET=y >>>> CONFIG_USB_SUPPORT=y >>>> CONFIG_USB_COMMON=y >>>> # CONFIG_USB_CONN_GPIO is not set >>>> CONFIG_USB_ARCH_HAS_HCD=y >>>> CONFIG_USB=m >>>> >>>> CONFIG_USB_CDNS_SUPPORT=y >>>> CONFIG_USB_CDNS_HOST=y >>>> CONFIG_USB_CDNS3=m >>>> CONFIG_USB_CDNS3_GADGET=y >>>> CONFIG_USB_CDNS3_HOST=y >>>> >>>> Problem is mostly that CONFIG_USB=m and CONFIG_USB_GADGET=y. >>>> >>>> >>>> Full randconfig file is attached. >>>> >>>> >>>> thanks. >>>> -- >>>> ~Randy >>>> Reported-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> >>> >>> >>> -- Thanks Pawel Laszczak