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