Skip to contentSkip to conversation

usb: typec: STUSB160X should select REGMAP_I2C

PATCH Superseded Randy Dunlap 4 participants 6 messages Oct 4, 2021 – Oct 5, 2021

Subsystems (2)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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")
Cc Heikki Krogerus <[email protected]>
Cc Amelie Delaunay <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
---
 drivers/usb/typec/Kconfig |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/usb/typec/Kconfig +2 -2
@@ -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.
Reviewed-by on v1 1/1
#1 lore raw
Quoted 9 lines · Randy Dunlap

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")

Thanks for your patch.

Quoted 23 lines
Cc Heikki Krogerus <[email protected]>
Cc Amelie Delaunay <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
---
  drivers/usb/typec/Kconfig |    4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
drivers/usb/typec/Kconfig +2 -2
@@ -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.
maintainer Reviewed-by on v1 1/1
#2 lore raw
In reply to Randy Dunlap
Quoted 7 lines · Randy Dunlap

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.

Quoted 6 lines
Fixes da0cb6310094 ("usb: typec: add support for STUSB160x Type-C controller family")
Cc Heikki Krogerus <[email protected]>
Cc Amelie Delaunay <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
Quoted 18 lines
---
 drivers/usb/typec/Kconfig |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/usb/typec/Kconfig +2 -2
@@ -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.
Signature · 1 line
heikki
#3 lore raw
In reply to Randy Dunlap
Quoted 13 lines · Randy Dunlap

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")
Cc Heikki Krogerus <[email protected]>
Cc Amelie Delaunay <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
Quoted 3 lines
---
 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

#4 lore raw
Quoted 38 lines · Greg Kroah-Hartman
Quoted 13 lines · Randy Dunlap

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")
Cc Heikki Krogerus <[email protected]>
Cc Amelie Delaunay <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
Quoted 3 lines
---
  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"

Quoted 1 line

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

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

thanks.

Signature · 1 line
~Randy
#5 lore raw
Quoted 39 lines · Randy Dunlap
Quoted 38 lines · Greg Kroah-Hartman
Quoted 13 lines · Randy Dunlap

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")
Cc Heikki Krogerus <[email protected]>
Cc Amelie Delaunay <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
Quoted 3 lines

---
  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"

Quoted 3 lines
Quoted 1 line

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. :(

Signature · 1 line
~Randy