Message ID | 20171018114458.17891-11-clabbe.montjoie@gmail.com |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
Series | net: stmmac: dwmac-sun8i: Handle integrated PHY | expand |
On Wed, Oct 18, 2017 at 01:44:58PM +0200, Corentin Labbe wrote: > Each child node of an MDIO node is scanned as a PHY when calling > of_mdiobus_register() givint the following result: > [ 18.175379] mdio_bus stmmac-0: /soc/ethernet@1c30000/mdio/mdio-mux has invalid PHY address > [ 18.175408] mdio_bus stmmac-0: scan phy mdio-mux at address 0 > [ 18.175450] mdio_bus stmmac-0: scan phy mdio-mux at address 1 > [...] > [ 18.176420] mdio_bus stmmac-0: scan phy mdio-mux at address 30 > [ 18.176452] mdio_bus stmmac-0: scan phy mdio-mux at address 31 > > Since mdio-mux nodes are not PHY, this patch a way to to not scan > them. This can be dropped now, right? > > Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com> > --- > drivers/of/of_mdio.c | 10 ++++++++++ > 1 file changed, 10 insertions(+)
On Tue, Oct 24, 2017 at 01:46:54PM -0500, Rob Herring wrote: > On Wed, Oct 18, 2017 at 01:44:58PM +0200, Corentin Labbe wrote: > > Each child node of an MDIO node is scanned as a PHY when calling > > of_mdiobus_register() givint the following result: > > [ 18.175379] mdio_bus stmmac-0: /soc/ethernet@1c30000/mdio/mdio-mux has invalid PHY address > > [ 18.175408] mdio_bus stmmac-0: scan phy mdio-mux at address 0 > > [ 18.175450] mdio_bus stmmac-0: scan phy mdio-mux at address 1 > > [...] > > [ 18.176420] mdio_bus stmmac-0: scan phy mdio-mux at address 30 > > [ 18.176452] mdio_bus stmmac-0: scan phy mdio-mux at address 31 > > > > Since mdio-mux nodes are not PHY, this patch a way to to not scan > > them. > > This can be dropped now, right? Yes and it is dropped in my two last serie. Forgot to said it in changelog
diff --git a/drivers/of/of_mdio.c b/drivers/of/of_mdio.c index d94dd8b77abd..90f3ac87c98f 100644 --- a/drivers/of/of_mdio.c +++ b/drivers/of/of_mdio.c @@ -190,6 +190,10 @@ int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np) struct device_node *child; bool scanphys = false; int addr, rc; + static const struct of_device_id compatible_muxes[] = { + { .compatible = "mdio-mux" }, + {} + }; /* Do not continue if the node is disabled */ if (!of_device_is_available(np)) @@ -212,6 +216,9 @@ int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np) /* Loop over the child nodes and register a phy_device for each phy */ for_each_available_child_of_node(np, child) { + if (of_match_node(compatible_muxes, child)) + continue; + addr = of_mdio_parse_addr(&mdio->dev, child); if (addr < 0) { scanphys = true; @@ -229,6 +236,9 @@ int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np) /* auto scan for PHYs with empty reg property */ for_each_available_child_of_node(np, child) { + if (of_match_node(compatible_muxes, child)) + continue; + /* Skip PHYs with reg property set */ if (of_find_property(child, "reg", NULL)) continue;
Each child node of an MDIO node is scanned as a PHY when calling of_mdiobus_register() givint the following result: [ 18.175379] mdio_bus stmmac-0: /soc/ethernet@1c30000/mdio/mdio-mux has invalid PHY address [ 18.175408] mdio_bus stmmac-0: scan phy mdio-mux at address 0 [ 18.175450] mdio_bus stmmac-0: scan phy mdio-mux at address 1 [...] [ 18.176420] mdio_bus stmmac-0: scan phy mdio-mux at address 30 [ 18.176452] mdio_bus stmmac-0: scan phy mdio-mux at address 31 Since mdio-mux nodes are not PHY, this patch a way to to not scan them. Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com> --- drivers/of/of_mdio.c | 10 ++++++++++ 1 file changed, 10 insertions(+)