usb: fotg210: fix OTG-only build
authorArnd Bergmann <arnd@arndb.de>
Thu, 15 Dec 2022 16:57:20 +0000 (17:57 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 28 Dec 2022 10:23:53 +0000 (11:23 +0100)
The fotg210 module combines the HCD and OTG drivers, which then
fails to build when only the USB gadget support is enabled
in the kernel but host support is not:

aarch64-linux-ld: drivers/usb/fotg210/fotg210-core.o: in function `fotg210_init':
fotg210-core.c:(.init.text+0xc): undefined reference to `usb_disabled'

Move the check for usb_disabled() after the check for the HCD module,
and let the OTG driver still be probed in this configuration.

A nicer approach might be to have the common portion built as a
library module, with the two platform other files registering
their own platform_driver instances separately.

Fixes: ddacd6ef44ca ("usb: fotg210: Fix Kconfig for USB host modules")
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20221215165728.2062984-1-arnd@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/fotg210/fotg210-core.c

index 8a54edf..ee740a6 100644 (file)
@@ -144,10 +144,7 @@ static struct platform_driver fotg210_driver = {
 
 static int __init fotg210_init(void)
 {
-       if (usb_disabled())
-               return -ENODEV;
-
-       if (IS_ENABLED(CONFIG_USB_FOTG210_HCD))
+       if (IS_ENABLED(CONFIG_USB_FOTG210_HCD) && !usb_disabled())
                fotg210_hcd_init();
        return platform_driver_register(&fotg210_driver);
 }