Re: [PATCH] usb: hide usb_of_get_companion_dev for CONFIG_USB=n

From: Alan Stern
Date: Tue Aug 14 2018 - 09:58:27 EST


On Mon, 13 Aug 2018, Arnd Bergmann wrote:

> The renesas UDC implementation now calls usb_of_get_companion_dev(),
> which is only defined when CONFIG_USB is enabled:
>
> drivers/usb/gadget/udc/renesas_usb3.o: In function `renesas_usb3_probe':
> renesas_usb3.c:(.text+0xa34): undefined reference to `usb_of_get_companion_dev'
>
> To avoid the build error, we need two changes:
>
> - usb_of_get_companion_dev must be stubbed out when CONFIG_USB is
> disabled, so it the udc driver can be built for a gadget-only
> mode kernel
> - With CONFIG_USB=m, we must not attempt to have USB_RENESAS_USB3
> built-in, so we need a soft dependency on USB.
>
> Fixes: 39facfa01c9f ("usb: gadget: udc: renesas_usb3: Add register of usb role switch")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> drivers/usb/gadget/udc/Kconfig | 1 +
> include/linux/usb/of.h | 6 +++++-
> 2 files changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/usb/gadget/udc/Kconfig b/drivers/usb/gadget/udc/Kconfig
> index 0a16cbd4e528..663a8bd67a7b 100644
> --- a/drivers/usb/gadget/udc/Kconfig
> +++ b/drivers/usb/gadget/udc/Kconfig
> @@ -193,6 +193,7 @@ config USB_RENESAS_USB3
> tristate 'Renesas USB3.0 Peripheral controller'
> depends on ARCH_RENESAS || COMPILE_TEST
> depends on EXTCON
> + depends on USB || !USB

Is this some weird standard idiom? It looks really strange.

Alan Stern