usb: fotg210: Fix Kconfig for USB host modules

The kernel robot reports a link failure when activating the
FOTG210 host subdriver with =y on a system where the USB host
core is a module (CONFIG_USB=m).

This is a bit of special case, so mimic the Kconfig incantations
from DWC3: let the subdrivers for host or peripheral depend
on the host or gadget support being =y or the same as the
FOTG210 core itself.

This should ensure that either:

- The host (CONFIG_USB) or gadget (CONFIG_GADGET) is compiled
  in and then the FOTG210 can be either module or compiled
  in.

- The host or gadget is modular, and then the FOTG210 module
  must be a module too, or we cannot resolve the symbols
  at link time.

Reported-by: kernel test robot <lkp@intel.com>
Link: https://lore.kernel.org/linux-usb/202211112132.0BUPGKCd-lkp@intel.com/
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20221111144821.113665-1-linus.walleij@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Linus Walleij 2022-11-11 15:48:21 +01:00 committed by Greg Kroah-Hartman
parent d9c3b34d3b
commit ddacd6ef44

View file

@ -14,7 +14,7 @@ if USB_FOTG210
config USB_FOTG210_HCD config USB_FOTG210_HCD
bool "Faraday FOTG210 USB Host Controller support" bool "Faraday FOTG210 USB Host Controller support"
depends on USB depends on USB=y || USB=USB_FOTG210
help help
Faraday FOTG210 is an OTG controller which can be configured as Faraday FOTG210 is an OTG controller which can be configured as
an USB2.0 host. It is designed to meet USB2.0 EHCI specification an USB2.0 host. It is designed to meet USB2.0 EHCI specification
@ -24,7 +24,7 @@ config USB_FOTG210_HCD
module will be called fotg210-hcd. module will be called fotg210-hcd.
config USB_FOTG210_UDC config USB_FOTG210_UDC
depends on USB_GADGET depends on USB_GADGET=y || USB_GADGET=USB_FOTG210
bool "Faraday FOTG210 USB Peripheral Controller support" bool "Faraday FOTG210 USB Peripheral Controller support"
help help
Faraday USB2.0 OTG controller which can be configured as Faraday USB2.0 OTG controller which can be configured as