RE: linux-next: Tree for Dec 9 (usb/cdns3)

From: Pawel Laszczak
Date: Thu Dec 10 2020 - 06:25:32 EST


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.

>
>>
>>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