Re: [PATCH] usb: hide usb_of_get_companion_dev for CONFIG_USB=n
On Mon, Aug 20, 2018 at 5:22 AM Yoshihiro Shimoda wrote: > > From: Arnd Bergmann, Sent: Tuesday, August 14, 2018 11:27 PM > > > > On Tue, Aug 14, 2018 at 3:58 PM Alan Stern > > wrote: > > > On Mon, 13 Aug 2018, Arnd Bergmann wrote: > > > > 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. > > > > Yes, and yes. > > > > A less common way to write it is > > > > depends on (USB != m) || m > > > > which some people prefer, but I find even weirder. > > Thank you for the patch! > > On other thread, John mentions gadget-side drivers should not depend on > host-side [1]. > So, I submitted a patch today [2]. What do you think about my submitted patch? > > [1] > https://marc.info/?l=linux-usb=153433776202861=2 I don't really think this is a big issue, as you can still build the driver with CONFIG_USB=n, so it's not a strict dependency. > [2] > https://patchwork.kernel.org/patch/10569847/ On the other hand, your patch looks nice and is somewhat less confusing, so you have my Ack on that. Arnd
Re: [PATCH] usb: hide usb_of_get_companion_dev for CONFIG_USB=n
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 > --- > 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