• Vladimir Oltean's avatar
    net: mscc: ocelot: rethink Kconfig dependencies again · 89e35f66
    Vladimir Oltean authored
    Having the users of MSCC_OCELOT_SWITCH_LIB depend on REGMAP_MMIO was a
    bad idea, since that symbol is not user-selectable. So we should have
    kept a 'select REGMAP_MMIO'.
    
    When we do that, we run into 2 more problems:
    
    - By depending on GENERIC_PHY, we are causing a recursive dependency.
      But it looks like GENERIC_PHY has no other dependencies, and other
      drivers select it, so we can select it too:
    
    drivers/of/Kconfig:69:error: recursive dependency detected!
    drivers/of/Kconfig:69:  symbol OF_IRQ depends on IRQ_DOMAIN
    kernel/irq/Kconfig:68:  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 MSCC_OCELOT_SWITCH_LIB
    drivers/net/ethernet/mscc/Kconfig:15:   symbol MSCC_OCELOT_SWITCH_LIB is selected by MSCC_OCELOT_SWITCH
    drivers/net/ethernet/mscc/Kconfig:22:   symbol MSCC_OCELOT_SWITCH depends on GENERIC_PHY
    drivers/phy/Kconfig:8:  symbol GENERIC_PHY is selected by PHY_BCM_NS_USB3
    drivers/phy/broadcom/Kconfig:41:        symbol PHY_BCM_NS_USB3 depends on MDIO_BUS
    drivers/net/phy/Kconfig:13:     symbol MDIO_BUS depends on MDIO_DEVICE
    drivers/net/phy/Kconfig:6:      symbol MDIO_DEVICE is selected by PHYLIB
    drivers/net/phy/Kconfig:254:    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
    
    - By depending on PHYLIB, we are causing a recursive dependency. PHYLIB
      only has a single dependency, "depends on NETDEVICES", which we are
      already depending on, so we can again hack our way into conformance by
      turning the PHYLIB dependency into a select.
    
    drivers/of/Kconfig:69:error: recursive dependency detected!
    drivers/of/Kconfig:69:  symbol OF_IRQ depends on IRQ_DOMAIN
    kernel/irq/Kconfig:68:  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 MSCC_OCELOT_SWITCH_LIB
    drivers/net/ethernet/mscc/Kconfig:15:   symbol MSCC_OCELOT_SWITCH_LIB is selected by MSCC_OCELOT_SWITCH
    drivers/net/ethernet/mscc/Kconfig:22:   symbol MSCC_OCELOT_SWITCH depends on PHYLIB
    drivers/net/phy/Kconfig:254:    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
    
    Fixes: f4d0323b ("net: mscc: ocelot: convert MSCC_OCELOT_SWITCH into a library")
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    89e35f66
Kconfig 718 Bytes