OSDN Git Service

USB: otg: fix link breakage, when the NOP USB Xceiver is a module
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Thu, 9 Dec 2010 21:46:29 +0000 (22:46 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 10 Dec 2010 22:18:36 +0000 (14:18 -0800)
If the NOP USB OTG transceiver driver is built as a module, the otg.h
header declares external functions, but if they are referenced from the
kernel proper, as, e.g., in the OMAP3 case, where the omap3evm board is
calling the usb_nop_xceiv_register() function, linkage breaks. This patch
fixes this problem.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
include/linux/usb/otg.h

index 0a5b371..a1a1e7a 100644 (file)
@@ -116,7 +116,7 @@ struct otg_transceiver {
 /* for board-specific init logic */
 extern int otg_set_transceiver(struct otg_transceiver *);
 
-#if defined(CONFIG_NOP_USB_XCEIV) || defined(CONFIG_NOP_USB_XCEIV_MODULE)
+#if defined(CONFIG_NOP_USB_XCEIV) || (defined(CONFIG_NOP_USB_XCEIV_MODULE) && defined(MODULE))
 /* sometimes transceivers are accessed only through e.g. ULPI */
 extern void usb_nop_xceiv_register(void);
 extern void usb_nop_xceiv_unregister(void);