With CONFIG_AXP288=y and CONFIG_USB_COMMON=n there is the following link

drivers/extcon/extcon-axp288.o: In function `axp288_put_role_sw':
extcon-axp288.c:(.text+0xa0): undefined reference to `usb_role_switch_put'
drivers/extcon/extcon-axp288.o: In function `axp288_usb_role_work':
extcon-axp288.c:(.text+0xec): undefined reference to `usb_role_switch_get_role'
extcon-axp288.c:(.text+0x12c): undefined reference to `usb_role_switch_set_role'
drivers/extcon/extcon-axp288.o: In function `axp288_extcon_probe':
extcon-axp288.c:(.text+0x59d): undefined reference to `usb_role_switch_get'

The above functions are defined in drivers/usb/common/roles.c, but the build
system only enters the common directory depending on CONFIG_USB_COMMON. Fix
this by selecting the USB_COMMON symbol.

Fixes: d54f063cdbe4 ("extcon: axp288: Set USB role where necessary")
Signed-off-by: Tobias Regnery <tobias.regn...@gmail.com>

there is another solution for this problem: replace depends on USB_SUPPORT
with depends on USB, but since CONFIG_USB selects other symbols I went 
with the minimal fix and select the USB_COMMON symbol.
 drivers/extcon/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/extcon/Kconfig b/drivers/extcon/Kconfig
index de15bf55895b..0897bee54c2b 100644
--- a/drivers/extcon/Kconfig
+++ b/drivers/extcon/Kconfig
@@ -31,6 +31,7 @@ config EXTCON_ARIZONA
 config EXTCON_AXP288
        tristate "X-Power AXP288 EXTCON support"
        depends on MFD_AXP20X && USB_SUPPORT && X86
+       select USB_COMMON
        select USB_ROLE_SWITCH
          Say Y here to enable support for USB peripheral detection

Reply via email to