2018-04-16 08:51:02

by Tobias Regnery

[permalink] [raw]
Subject: [PATCH] extcon: axp288: fix link error

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

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 <[email protected]>
---
Hi,

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
help
Say Y here to enable support for USB peripheral detection
--
2.17.0



2018-04-16 10:07:27

by Hans de Goede

[permalink] [raw]
Subject: Re: [PATCH] extcon: axp288: fix link error

Hi,

On 16-04-18 10:40, Tobias Regnery wrote:
> With CONFIG_AXP288=y and CONFIG_USB_COMMON=n there is the following link
> error:
>
> 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 <[email protected]>

Patch looks good to me, thanks:

Reviewed-by: Hans de Goede <[email protected]>

Regards,

Hans



> ---
> Hi,
>
> 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
> help
> Say Y here to enable support for USB peripheral detection
>