2021-10-04 23:56:45

by Randy Dunlap

[permalink] [raw]
Subject: [PATCH] usb: typec: STUSB160X should select REGMAP_I2C

REGMAP_I2C is not a user visible kconfig symbol so driver configs
should not "depend on" it. They should depend on I2C and then
select REGMAP_I2C.

If this worked, it was only because some other driver had set/enabled
REGMAP_I2C.

Fixes: da0cb6310094 ("usb: typec: add support for STUSB160x Type-C controller family")
Signed-off-by: Randy Dunlap <[email protected]>
Cc: Heikki Krogerus <[email protected]>
Cc: Amelie Delaunay <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Cc: [email protected]
---
drivers/usb/typec/Kconfig | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

--- lnx-515-rc4.orig/drivers/usb/typec/Kconfig
+++ lnx-515-rc4/drivers/usb/typec/Kconfig
@@ -65,9 +65,9 @@ config TYPEC_HD3SS3220

config TYPEC_STUSB160X
tristate "STMicroelectronics STUSB160x Type-C controller driver"
- depends on I2C
- depends on REGMAP_I2C
depends on USB_ROLE_SWITCH || !USB_ROLE_SWITCH
+ depends on I2C
+ select REGMAP_I2C
help
Say Y or M here if your system has STMicroelectronics STUSB160x
Type-C port controller.


2021-10-05 06:42:37

by Amelie Delaunay

[permalink] [raw]
Subject: Re: [PATCH] usb: typec: STUSB160X should select REGMAP_I2C



On 10/5/21 1:21 AM, Randy Dunlap wrote:
> REGMAP_I2C is not a user visible kconfig symbol so driver configs
> should not "depend on" it. They should depend on I2C and then
> select REGMAP_I2C.
>
> If this worked, it was only because some other driver had set/enabled
> REGMAP_I2C.
>
> Fixes: da0cb6310094 ("usb: typec: add support for STUSB160x Type-C controller family")
> Signed-off-by: Randy Dunlap <[email protected]>

Thanks for your patch.

Reviewed-by: Amelie Delaunay <[email protected]>

> Cc: Heikki Krogerus <[email protected]>
> Cc: Amelie Delaunay <[email protected]>
> Cc: Greg Kroah-Hartman <[email protected]>
> Cc: [email protected]
> ---
> drivers/usb/typec/Kconfig | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> --- lnx-515-rc4.orig/drivers/usb/typec/Kconfig
> +++ lnx-515-rc4/drivers/usb/typec/Kconfig
> @@ -65,9 +65,9 @@ config TYPEC_HD3SS3220
>
> config TYPEC_STUSB160X
> tristate "STMicroelectronics STUSB160x Type-C controller driver"
> - depends on I2C
> - depends on REGMAP_I2C
> depends on USB_ROLE_SWITCH || !USB_ROLE_SWITCH
> + depends on I2C
> + select REGMAP_I2C
> help
> Say Y or M here if your system has STMicroelectronics STUSB160x
> Type-C port controller.
>

2021-10-05 10:40:04

by Heikki Krogerus

[permalink] [raw]
Subject: Re: [PATCH] usb: typec: STUSB160X should select REGMAP_I2C

On Mon, Oct 04, 2021 at 04:21:03PM -0700, Randy Dunlap wrote:
> REGMAP_I2C is not a user visible kconfig symbol so driver configs
> should not "depend on" it. They should depend on I2C and then
> select REGMAP_I2C.
>
> If this worked, it was only because some other driver had set/enabled
> REGMAP_I2C.
>
> Fixes: da0cb6310094 ("usb: typec: add support for STUSB160x Type-C controller family")
> Signed-off-by: Randy Dunlap <[email protected]>
> Cc: Heikki Krogerus <[email protected]>
> Cc: Amelie Delaunay <[email protected]>
> Cc: Greg Kroah-Hartman <[email protected]>
> Cc: [email protected]

Reviewed-by: Heikki Krogerus <[email protected]>

> ---
> drivers/usb/typec/Kconfig | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> --- lnx-515-rc4.orig/drivers/usb/typec/Kconfig
> +++ lnx-515-rc4/drivers/usb/typec/Kconfig
> @@ -65,9 +65,9 @@ config TYPEC_HD3SS3220
>
> config TYPEC_STUSB160X
> tristate "STMicroelectronics STUSB160x Type-C controller driver"
> - depends on I2C
> - depends on REGMAP_I2C
> depends on USB_ROLE_SWITCH || !USB_ROLE_SWITCH
> + depends on I2C
> + select REGMAP_I2C
> help
> Say Y or M here if your system has STMicroelectronics STUSB160x
> Type-C port controller.

--
heikki

2021-10-05 11:50:33

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] usb: typec: STUSB160X should select REGMAP_I2C

On Mon, Oct 04, 2021 at 04:21:03PM -0700, Randy Dunlap wrote:
> REGMAP_I2C is not a user visible kconfig symbol so driver configs
> should not "depend on" it. They should depend on I2C and then
> select REGMAP_I2C.
>
> If this worked, it was only because some other driver had set/enabled
> REGMAP_I2C.
>
> Fixes: da0cb6310094 ("usb: typec: add support for STUSB160x Type-C controller family")
> Signed-off-by: Randy Dunlap <[email protected]>
> Cc: Heikki Krogerus <[email protected]>
> Cc: Amelie Delaunay <[email protected]>
> Cc: Greg Kroah-Hartman <[email protected]>
> Cc: [email protected]
> ---
> drivers/usb/typec/Kconfig | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)

With this applied, I get the following build error:

drivers/of/Kconfig:69:error: recursive dependency detected!
drivers/of/Kconfig:69: symbol OF_IRQ depends on IRQ_DOMAIN
kernel/irq/Kconfig:59: symbol IRQ_DOMAIN is selected by REGMAP
drivers/base/regmap/Kconfig:7: symbol REGMAP default is visible depending on REGMAP_I2C
drivers/base/regmap/Kconfig:20:symbol REGMAP_I2C is selected by TYPEC_STUSB160X
drivers/usb/typec/Kconfig:66: symbol TYPEC_STUSB160X depends on USB_ROLE_SWITCH
drivers/usb/roles/Kconfig:3: symbol USB_ROLE_SWITCH is selected by USB_MUSB_MEDIATEK
drivers/usb/musb/Kconfig:119: symbol USB_MUSB_MEDIATEK depends on GENERIC_PHY
drivers/phy/Kconfig:8: symbol GENERIC_PHY is selected by PHY_BCM_NS_USB3
drivers/phy/broadcom/Kconfig:49: symbol PHY_BCM_NS_USB3 depends on MDIO_BUS
drivers/net/mdio/Kconfig:13: symbol MDIO_BUS depends on MDIO_DEVICE
drivers/net/mdio/Kconfig:6: symbol MDIO_DEVICE is selected by PHYLIB
drivers/net/phy/Kconfig:16: symbol PHYLIB is selected by ARC_EMAC_CORE
drivers/net/ethernet/arc/Kconfig:19: symbol ARC_EMAC_CORE is selected by ARC_EMAC
drivers/net/ethernet/arc/Kconfig:25: symbol ARC_EMAC depends on OF_IRQ
For a resolution refer to Documentation/kbuild/kconfig-language.rst
subsection "Kconfig recursive dependency limitations"

So I can't take it as-is :(

thanks,

greg k-h

2021-10-05 19:08:16

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH] usb: typec: STUSB160X should select REGMAP_I2C

On 10/5/21 4:48 AM, Greg Kroah-Hartman wrote:
> On Mon, Oct 04, 2021 at 04:21:03PM -0700, Randy Dunlap wrote:
>> REGMAP_I2C is not a user visible kconfig symbol so driver configs
>> should not "depend on" it. They should depend on I2C and then
>> select REGMAP_I2C.
>>
>> If this worked, it was only because some other driver had set/enabled
>> REGMAP_I2C.
>>
>> Fixes: da0cb6310094 ("usb: typec: add support for STUSB160x Type-C controller family")
>> Signed-off-by: Randy Dunlap <[email protected]>
>> Cc: Heikki Krogerus <[email protected]>
>> Cc: Amelie Delaunay <[email protected]>
>> Cc: Greg Kroah-Hartman <[email protected]>
>> Cc: [email protected]
>> ---
>> drivers/usb/typec/Kconfig | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> With this applied, I get the following build error:
>
> drivers/of/Kconfig:69:error: recursive dependency detected!
> drivers/of/Kconfig:69: symbol OF_IRQ depends on IRQ_DOMAIN
> kernel/irq/Kconfig:59: symbol IRQ_DOMAIN is selected by REGMAP
> drivers/base/regmap/Kconfig:7: symbol REGMAP default is visible depending on REGMAP_I2C
> drivers/base/regmap/Kconfig:20:symbol REGMAP_I2C is selected by TYPEC_STUSB160X
> drivers/usb/typec/Kconfig:66: symbol TYPEC_STUSB160X depends on USB_ROLE_SWITCH
> drivers/usb/roles/Kconfig:3: symbol USB_ROLE_SWITCH is selected by USB_MUSB_MEDIATEK
> drivers/usb/musb/Kconfig:119: symbol USB_MUSB_MEDIATEK depends on GENERIC_PHY
> drivers/phy/Kconfig:8: symbol GENERIC_PHY is selected by PHY_BCM_NS_USB3
> drivers/phy/broadcom/Kconfig:49: symbol PHY_BCM_NS_USB3 depends on MDIO_BUS
> drivers/net/mdio/Kconfig:13: symbol MDIO_BUS depends on MDIO_DEVICE
> drivers/net/mdio/Kconfig:6: symbol MDIO_DEVICE is selected by PHYLIB
> drivers/net/phy/Kconfig:16: symbol PHYLIB is selected by ARC_EMAC_CORE
> drivers/net/ethernet/arc/Kconfig:19: symbol ARC_EMAC_CORE is selected by ARC_EMAC
> drivers/net/ethernet/arc/Kconfig:25: symbol ARC_EMAC depends on OF_IRQ
> For a resolution refer to Documentation/kbuild/kconfig-language.rst
> subsection "Kconfig recursive dependency limitations"
>
> So I can't take it as-is :(

Darn, I never saw that, but I'll look into it.

thanks.

--
~Randy

2021-10-05 23:09:41

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH] usb: typec: STUSB160X should select REGMAP_I2C

On 10/5/21 12:04 PM, Randy Dunlap wrote:
> On 10/5/21 4:48 AM, Greg Kroah-Hartman wrote:
>> On Mon, Oct 04, 2021 at 04:21:03PM -0700, Randy Dunlap wrote:
>>> REGMAP_I2C is not a user visible kconfig symbol so driver configs
>>> should not "depend on" it. They should depend on I2C and then
>>> select REGMAP_I2C.
>>>
>>> If this worked, it was only because some other driver had set/enabled
>>> REGMAP_I2C.
>>>
>>> Fixes: da0cb6310094 ("usb: typec: add support for STUSB160x Type-C controller family")
>>> Signed-off-by: Randy Dunlap <[email protected]>
>>> Cc: Heikki Krogerus <[email protected]>
>>> Cc: Amelie Delaunay <[email protected]>
>>> Cc: Greg Kroah-Hartman <[email protected]>
>>> Cc: [email protected]
>>> ---
>>>   drivers/usb/typec/Kconfig |    4 ++--
>>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> With this applied, I get the following build error:
>>
>> drivers/of/Kconfig:69:error: recursive dependency detected!
>> drivers/of/Kconfig:69:    symbol OF_IRQ depends on IRQ_DOMAIN
>> kernel/irq/Kconfig:59:    symbol IRQ_DOMAIN is selected by REGMAP
>> drivers/base/regmap/Kconfig:7:    symbol REGMAP default is visible depending on REGMAP_I2C
>> drivers/base/regmap/Kconfig:20:symbol REGMAP_I2C is selected by TYPEC_STUSB160X
>> drivers/usb/typec/Kconfig:66:    symbol TYPEC_STUSB160X depends on USB_ROLE_SWITCH
>> drivers/usb/roles/Kconfig:3:    symbol USB_ROLE_SWITCH is selected by USB_MUSB_MEDIATEK
>> drivers/usb/musb/Kconfig:119:    symbol USB_MUSB_MEDIATEK depends on GENERIC_PHY
>> drivers/phy/Kconfig:8:    symbol GENERIC_PHY is selected by PHY_BCM_NS_USB3
>> drivers/phy/broadcom/Kconfig:49:    symbol PHY_BCM_NS_USB3 depends on MDIO_BUS
>> drivers/net/mdio/Kconfig:13:    symbol MDIO_BUS depends on MDIO_DEVICE
>> drivers/net/mdio/Kconfig:6:    symbol MDIO_DEVICE is selected by PHYLIB
>> drivers/net/phy/Kconfig:16:    symbol PHYLIB is selected by ARC_EMAC_CORE
>> drivers/net/ethernet/arc/Kconfig:19:    symbol ARC_EMAC_CORE is selected by ARC_EMAC
>> drivers/net/ethernet/arc/Kconfig:25:    symbol ARC_EMAC depends on OF_IRQ
>> For a resolution refer to Documentation/kbuild/kconfig-language.rst
>> subsection "Kconfig recursive dependency limitations"
>>
>> So I can't take it as-is :(
>
> Darn, I never saw that, but I'll look into it.

Yeah, I easily see that in linux-next instead of mainline.

Still digging into it. :(

--
~Randy