usb: cdnsp: Fix for undefined reference to `usb_hcd_is_primary_hcd'
authorPawel Laszczak <pawell@cadence.com>
Thu, 10 Dec 2020 16:22:58 +0000 (17:22 +0100)
committerPeter Chen <peter.chen@nxp.com>
Tue, 29 Dec 2020 04:36:13 +0000 (12:36 +0800)
Patch fixes the following compilation error:

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

Issue occurrd for following kernel configuration:
CONFIG_USB_GADGET=y
CONFIG_USB_SUPPORT=y
CONFIG_USB_COMMON=y
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

Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested
Signed-off-by: Peter Chen <peter.chen@nxp.com>
drivers/usb/cdns3/Makefile

index 01a9a96..3f9b7fa 100644 (file)
@@ -6,8 +6,13 @@ CFLAGS_cdnsp-trace.o                           := -I$(src)
 cdns-usb-common-y                              := core.o drd.o
 cdns3-y                                                := cdns3-plat.o
 
-obj-$(CONFIG_USB_CDNS3)                                += cdns3.o
+ifeq ($(CONFIG_USB),m)
+obj-m                                          += cdns-usb-common.o
+obj-m                                          += cdns3.o
+else
 obj-$(CONFIG_USB_CDNS_SUPPORT)                 += cdns-usb-common.o
+obj-$(CONFIG_USB_CDNS3)                                += cdns3.o
+endif
 
 cdns-usb-common-$(CONFIG_USB_CDNS_HOST)        += host.o
 cdns3-$(CONFIG_USB_CDNS3_GADGET)               += cdns3-gadget.o cdns3-ep0.o