2022-05-11 09:59:24

by guanjing (D)

[permalink] [raw]
Subject: [PATCH -next v2] usb: dwc3: include extcon.h to fix compile error

If dwc3 is not include extcon.h, the dwc3 driver
will fail to link:

drivers/usb/dwc3/core.o: In function `dwc3_probe':
core.c:(.text+0x1095): undefined reference to `extcon_get_edev_by_phandle'
core.c:(.text+0x10bd): undefined reference to `extcon_get_extcon_dev'

Add miss #include <linux/extcon.h> to fix this error.

Fixes: 0f0101719138 ("usb: dwc3: Don't switch OTG -> peripheral if extcon is present")
Reported-by: Hulk Robot <[email protected]>
Signed-off-by: Guan Jing <[email protected]>
---
drivers/usb/dwc3/core.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index 950e238c65bf..e619a3ef6c46 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -28,6 +28,7 @@
#include <linux/pinctrl/consumer.h>
#include <linux/reset.h>
#include <linux/bitfield.h>
+#include <linux/extcon.h>

#include <linux/usb/ch9.h>
#include <linux/usb/gadget.h>
--
2.17.1



2022-05-12 16:04:52

by Jack Pham

[permalink] [raw]
Subject: Re: [PATCH -next v2] usb: dwc3: include extcon.h to fix compile error

On Wed, May 11, 2022 at 10:26:22AM +0800, Guan Jing wrote:
> If dwc3 is not include extcon.h, the dwc3 driver
> will fail to link:

That doesn't make sense... If the header/definitions aren't present you
should certainly see errors earlier on in the compilation of the object,
not the linker.

> drivers/usb/dwc3/core.o: In function `dwc3_probe':
> core.c:(.text+0x1095): undefined reference to `extcon_get_edev_by_phandle'
> core.c:(.text+0x10bd): undefined reference to `extcon_get_extcon_dev'
>
> Add miss #include <linux/extcon.h> to fix this error.
>
> Fixes: 0f0101719138 ("usb: dwc3: Don't switch OTG -> peripheral if extcon is present")
> Reported-by: Hulk Robot <[email protected]>
> Signed-off-by: Guan Jing <[email protected]>
> ---
> drivers/usb/dwc3/core.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
> index 950e238c65bf..e619a3ef6c46 100644
> --- a/drivers/usb/dwc3/core.c
> +++ b/drivers/usb/dwc3/core.c
> @@ -28,6 +28,7 @@
> #include <linux/pinctrl/consumer.h>
> #include <linux/reset.h>
> #include <linux/bitfield.h>
> +#include <linux/extcon.h>
>
> #include <linux/usb/ch9.h>
> #include <linux/usb/gadget.h>

Below this we also have

#include <linux/usb/otg.h>

Which itself has

#include <linux/usb/phy.h>

Which also does

#include <linux/extcon.h>

So extcon.h would have already been included via this nesting...

Jack

2022-05-14 00:38:54

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH -next v2] usb: dwc3: include extcon.h to fix compile error

On Wed, May 11, 2022 at 10:26:22AM +0800, Guan Jing wrote:
> If dwc3 is not include extcon.h, the dwc3 driver
> will fail to link:
>
> drivers/usb/dwc3/core.o: In function `dwc3_probe':
> core.c:(.text+0x1095): undefined reference to `extcon_get_edev_by_phandle'
> core.c:(.text+0x10bd): undefined reference to `extcon_get_extcon_dev'
>
> Add miss #include <linux/extcon.h> to fix this error.
>
> Fixes: 0f0101719138 ("usb: dwc3: Don't switch OTG -> peripheral if extcon is present")
> Reported-by: Hulk Robot <[email protected]>
> Signed-off-by: Guan Jing <[email protected]>
> ---
> drivers/usb/dwc3/core.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
> index 950e238c65bf..e619a3ef6c46 100644
> --- a/drivers/usb/dwc3/core.c
> +++ b/drivers/usb/dwc3/core.c
> @@ -28,6 +28,7 @@
> #include <linux/pinctrl/consumer.h>
> #include <linux/reset.h>
> #include <linux/bitfield.h>
> +#include <linux/extcon.h>
>
> #include <linux/usb/ch9.h>
> #include <linux/usb/gadget.h>
> --
> 2.17.1
>

As Jack said, this will not fix a linker error. I think something else
is wrong with your system as your .config file builds just fine for me.

greg k-h