On 07/16/2012 03:19 PM, Felipe Balbi wrote: > Hi, > > On Mon, Jul 16, 2012 at 03:10:48PM +0200, Marc Kleine-Budde wrote: >> Since commit 5e0aa49 usb: chipidea: use generic map/unmap routines, >> the udc part of the chipidea driver needs the generic usb gadget helper >> functions. If the chipidea driver with udc support is build into the >> kernel and usb gadget is build a module, the linking of the kernel >> fails with: >> >> drivers/built-in.o: In function `_hardware_dequeue': >> drivers/usb/chipidea/udc.c:527: undefined reference to `usb_gadget_unmap_request' >> drivers/usb/chipidea/udc.c:1269: undefined reference to `usb_gadget_unmap_request' >> drivers/usb/chipidea/udc.c:1821: undefined reference to `usb_del_gadget_udc' >> drivers/usb/chipidea/udc.c:443: undefined reference to `usb_gadget_map_request' >> drivers/usb/chipidea/udc.c:1774: undefined reference to `usb_add_gadget_udc' >> >> This patch changes the dependencies, so that udc can only be built-in of the >> usb gadget is built-in, too. >> >> Signed-off-by: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx> >> Cc: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx> >> --- >> Hello, >> >> this patch is based on v3.5-rc7, is this a candidate for 3.5? >> >> Another solution would be to "select USB_GADGET".... > > no select please ;-) Sure :) > >> regards, Marc >> >> drivers/usb/chipidea/Kconfig | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/usb/chipidea/Kconfig b/drivers/usb/chipidea/Kconfig >> index fd36dc8..9993a66 100644 >> --- a/drivers/usb/chipidea/Kconfig >> +++ b/drivers/usb/chipidea/Kconfig >> @@ -12,7 +12,7 @@ if USB_CHIPIDEA >> >> config USB_CHIPIDEA_UDC >> bool "ChipIdea device controller" >> - depends on USB_GADGET >> + depends on USB_GADGET=USB_CHIPIDEA This patch says if USB_CHIPIDEA is builtin, so USB_GADGET has to be, too > This is not the real problem. The problem is that USB_CHIPIDEA depends > on USB (which is the Host side USB). So if you make host built-in, you > can make chipidea built-in regardless of the gadget setting. That's the > bug you want to solve. I don't think so. Have a look at the above mentioned undefined symbols: "usb_gadget_unmap_request", they are implemented in: $git grep usb_gadget_unmap_request | grep EXPORT drivers/usb/gadget/udc-core.c:EXPORT_SYMBOL_GPL(usb_gadget_unmap_request); And this is my current .config: $ grep CONFIG_USB.*= .config CONFIG_USB_USBNET=y CONFIG_USB_NET_AX8817X=y CONFIG_USB_SUPPORT=y CONFIG_USB_COMMON=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_CHIPIDEA=y CONFIG_USB_CHIPIDEA_UDC=y CONFIG_USB_CHIPIDEA_HOST=y CONFIG_USB_CHIPIDEA_DEBUG=y CONFIG_USB_GADGET=m CONFIG_USB_GADGET_VBUS_DRAW=2 CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 CONFIG_USB_GADGET_DUALSPEED=y CONFIG_USB_CDC_COMPOSITE=m CONFIG_USB_OTG_UTILS=y CONFIG_USB_MXS_PHY=y regards, Marc -- Pengutronix e.K. | Marc Kleine-Budde | Industrial Linux Solutions | Phone: +49-231-2826-924 | Vertretung West/Dortmund | Fax: +49-5121-206917-5555 | Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
Attachment:
signature.asc
Description: OpenPGP digital signature