diff mbox series

soc: sunxi: Fix missing dependency on REGMAP_MMIO

Message ID 20190301022044.24431-1-samuel@sholland.org (mailing list archive)
State Superseded
Headers show
Series soc: sunxi: Fix missing dependency on REGMAP_MMIO | expand

Commit Message

Samuel Holland March 1, 2019, 2:20 a.m. UTC
When enabling ARCH_SUNXI from allnoconfig, SUNXI_SRAM is enabled, but
not REGMAP_MMIO, so the kernel fails to link with an undefined reference
to __devm_regmap_init_mmio_clk. Select REGMAP_MMIO, as suggested in
drivers/base/regmap/Kconfig.

This creates the following dependency loop:

  drivers/of/Kconfig:68:                symbol OF_IRQ depends on IRQ_DOMAIN
  kernel/irq/Kconfig:63:                symbol IRQ_DOMAIN is selected by REGMAP
  drivers/base/regmap/Kconfig:7:        symbol REGMAP default is visible depending on REGMAP_MMIO
  drivers/base/regmap/Kconfig:39:       symbol REGMAP_MMIO is selected by SUNXI_SRAM
  drivers/soc/sunxi/Kconfig:4:          symbol SUNXI_SRAM is selected by USB_MUSB_SUNXI
  drivers/usb/musb/Kconfig:63:          symbol USB_MUSB_SUNXI depends on GENERIC_PHY
  drivers/phy/Kconfig:7:                symbol GENERIC_PHY is selected by PHY_BCM_NS_USB3
  drivers/phy/broadcom/Kconfig:29:      symbol PHY_BCM_NS_USB3 depends on MDIO_BUS
  drivers/net/phy/Kconfig:12:           symbol MDIO_BUS default is visible depending on PHYLIB
  drivers/net/phy/Kconfig:181:          symbol PHYLIB is selected by ARC_EMAC_CORE
  drivers/net/ethernet/arc/Kconfig:18:  symbol ARC_EMAC_CORE is selected by ARC_EMAC
  drivers/net/ethernet/arc/Kconfig:24:  symbol ARC_EMAC depends on OF_IRQ

To fix the circular dependency, make USB_MUSB_SUNXI select GENERIC_PHY
instead of depending on it. This matches the use of GENERIC_PHY by all
but two other drivers.

Signed-off-by: Samuel Holland <samuel@sholland.org>
---
 drivers/soc/sunxi/Kconfig | 1 +
 drivers/usb/musb/Kconfig  | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

Comments

Maxime Ripard March 1, 2019, 2:43 p.m. UTC | #1
On Thu, Feb 28, 2019 at 08:20:44PM -0600, Samuel Holland wrote:
> When enabling ARCH_SUNXI from allnoconfig, SUNXI_SRAM is enabled, but
> not REGMAP_MMIO, so the kernel fails to link with an undefined reference
> to __devm_regmap_init_mmio_clk. Select REGMAP_MMIO, as suggested in
> drivers/base/regmap/Kconfig.
> 
> This creates the following dependency loop:
> 
>   drivers/of/Kconfig:68:                symbol OF_IRQ depends on IRQ_DOMAIN
>   kernel/irq/Kconfig:63:                symbol IRQ_DOMAIN is selected by REGMAP
>   drivers/base/regmap/Kconfig:7:        symbol REGMAP default is visible depending on REGMAP_MMIO
>   drivers/base/regmap/Kconfig:39:       symbol REGMAP_MMIO is selected by SUNXI_SRAM
>   drivers/soc/sunxi/Kconfig:4:          symbol SUNXI_SRAM is selected by USB_MUSB_SUNXI
>   drivers/usb/musb/Kconfig:63:          symbol USB_MUSB_SUNXI depends on GENERIC_PHY
>   drivers/phy/Kconfig:7:                symbol GENERIC_PHY is selected by PHY_BCM_NS_USB3
>   drivers/phy/broadcom/Kconfig:29:      symbol PHY_BCM_NS_USB3 depends on MDIO_BUS
>   drivers/net/phy/Kconfig:12:           symbol MDIO_BUS default is visible depending on PHYLIB
>   drivers/net/phy/Kconfig:181:          symbol PHYLIB is selected by ARC_EMAC_CORE
>   drivers/net/ethernet/arc/Kconfig:18:  symbol ARC_EMAC_CORE is selected by ARC_EMAC
>   drivers/net/ethernet/arc/Kconfig:24:  symbol ARC_EMAC depends on OF_IRQ
> 
> To fix the circular dependency, make USB_MUSB_SUNXI select GENERIC_PHY
> instead of depending on it. This matches the use of GENERIC_PHY by all
> but two other drivers.
> 
> Signed-off-by: Samuel Holland <samuel@sholland.org>

I assume it would go through the USB tree.

Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>

Maxime
Bin Liu April 1, 2019, 3:29 p.m. UTC | #2
On Fri, Mar 01, 2019 at 03:43:48PM +0100, Maxime Ripard wrote:
> On Thu, Feb 28, 2019 at 08:20:44PM -0600, Samuel Holland wrote:
> > When enabling ARCH_SUNXI from allnoconfig, SUNXI_SRAM is enabled, but
> > not REGMAP_MMIO, so the kernel fails to link with an undefined reference
> > to __devm_regmap_init_mmio_clk. Select REGMAP_MMIO, as suggested in
> > drivers/base/regmap/Kconfig.
> > 
> > This creates the following dependency loop:
> > 
> >   drivers/of/Kconfig:68:                symbol OF_IRQ depends on IRQ_DOMAIN
> >   kernel/irq/Kconfig:63:                symbol IRQ_DOMAIN is selected by REGMAP
> >   drivers/base/regmap/Kconfig:7:        symbol REGMAP default is visible depending on REGMAP_MMIO
> >   drivers/base/regmap/Kconfig:39:       symbol REGMAP_MMIO is selected by SUNXI_SRAM
> >   drivers/soc/sunxi/Kconfig:4:          symbol SUNXI_SRAM is selected by USB_MUSB_SUNXI
> >   drivers/usb/musb/Kconfig:63:          symbol USB_MUSB_SUNXI depends on GENERIC_PHY
> >   drivers/phy/Kconfig:7:                symbol GENERIC_PHY is selected by PHY_BCM_NS_USB3
> >   drivers/phy/broadcom/Kconfig:29:      symbol PHY_BCM_NS_USB3 depends on MDIO_BUS
> >   drivers/net/phy/Kconfig:12:           symbol MDIO_BUS default is visible depending on PHYLIB
> >   drivers/net/phy/Kconfig:181:          symbol PHYLIB is selected by ARC_EMAC_CORE
> >   drivers/net/ethernet/arc/Kconfig:18:  symbol ARC_EMAC_CORE is selected by ARC_EMAC
> >   drivers/net/ethernet/arc/Kconfig:24:  symbol ARC_EMAC depends on OF_IRQ
> > 
> > To fix the circular dependency, make USB_MUSB_SUNXI select GENERIC_PHY
> > instead of depending on it. This matches the use of GENERIC_PHY by all
> > but two other drivers.

Should this go to stable tree as well? Is a 'Fixes' tag for it?

> > Signed-off-by: Samuel Holland <samuel@sholland.org>
> 
> I assume it would go through the USB tree.
> 
> Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>

Regards,
-Bin.
Samuel Holland April 1, 2019, 10:04 p.m. UTC | #3
On 4/1/19 10:29 AM, 'Bin Liu' via linux-sunxi wrote:
> On Fri, Mar 01, 2019 at 03:43:48PM +0100, Maxime Ripard wrote:
>> On Thu, Feb 28, 2019 at 08:20:44PM -0600, Samuel Holland wrote:
>>> When enabling ARCH_SUNXI from allnoconfig, SUNXI_SRAM is enabled, but
>>> not REGMAP_MMIO, so the kernel fails to link with an undefined reference
>>> to __devm_regmap_init_mmio_clk. Select REGMAP_MMIO, as suggested in
>>> drivers/base/regmap/Kconfig.
>>>
>>> This creates the following dependency loop:
>>>
>>>   drivers/of/Kconfig:68:                symbol OF_IRQ depends on IRQ_DOMAIN
>>>   kernel/irq/Kconfig:63:                symbol IRQ_DOMAIN is selected by REGMAP
>>>   drivers/base/regmap/Kconfig:7:        symbol REGMAP default is visible depending on REGMAP_MMIO
>>>   drivers/base/regmap/Kconfig:39:       symbol REGMAP_MMIO is selected by SUNXI_SRAM
>>>   drivers/soc/sunxi/Kconfig:4:          symbol SUNXI_SRAM is selected by USB_MUSB_SUNXI
>>>   drivers/usb/musb/Kconfig:63:          symbol USB_MUSB_SUNXI depends on GENERIC_PHY
>>>   drivers/phy/Kconfig:7:                symbol GENERIC_PHY is selected by PHY_BCM_NS_USB3
>>>   drivers/phy/broadcom/Kconfig:29:      symbol PHY_BCM_NS_USB3 depends on MDIO_BUS
>>>   drivers/net/phy/Kconfig:12:           symbol MDIO_BUS default is visible depending on PHYLIB
>>>   drivers/net/phy/Kconfig:181:          symbol PHYLIB is selected by ARC_EMAC_CORE
>>>   drivers/net/ethernet/arc/Kconfig:18:  symbol ARC_EMAC_CORE is selected by ARC_EMAC
>>>   drivers/net/ethernet/arc/Kconfig:24:  symbol ARC_EMAC depends on OF_IRQ
>>>
>>> To fix the circular dependency, make USB_MUSB_SUNXI select GENERIC_PHY
>>> instead of depending on it. This matches the use of GENERIC_PHY by all
>>> but two other drivers.
> 
> Should this go to stable tree as well? Is a 'Fixes' tag for it?

Yes, I just sent v2 with these tags (although I forgot Maxime's Ack).

>>> Signed-off-by: Samuel Holland <samuel@sholland.org>
>>
>> I assume it would go through the USB tree.
>>
>> Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>

Cheers,
Samuel
diff mbox series

Patch

diff --git a/drivers/soc/sunxi/Kconfig b/drivers/soc/sunxi/Kconfig
index 353b07e40176..e84eb4e59f58 100644
--- a/drivers/soc/sunxi/Kconfig
+++ b/drivers/soc/sunxi/Kconfig
@@ -4,6 +4,7 @@ 
 config SUNXI_SRAM
 	bool
 	default ARCH_SUNXI
+	select REGMAP_MMIO
 	help
 	  Say y here to enable the SRAM controller support. This
 	  device is responsible on mapping the SRAM in the sunXi SoCs
diff --git a/drivers/usb/musb/Kconfig b/drivers/usb/musb/Kconfig
index ad08895e78f9..c3dae7d5cb6e 100644
--- a/drivers/usb/musb/Kconfig
+++ b/drivers/usb/musb/Kconfig
@@ -66,7 +66,7 @@  config USB_MUSB_SUNXI
 	depends on NOP_USB_XCEIV
 	depends on PHY_SUN4I_USB
 	depends on EXTCON
-	depends on GENERIC_PHY
+	select GENERIC_PHY
 	select SUNXI_SRAM
 
 config USB_MUSB_DAVINCI