]> git.itanic.dy.fi Git - linux-stable/commitdiff
net: dsa: bcm_sf2: stop assigning an OF node to the ds->user_mii_bus
authorVladimir Oltean <vladimir.oltean@nxp.com>
Thu, 4 Jan 2024 14:00:36 +0000 (16:00 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 5 Jan 2024 11:56:36 +0000 (11:56 +0000)
The bcm_sf2 driver does something strange. Instead of calling
of_mdiobus_register() with an OF node argument, it manually assigns the
bus->dev->of_node and then calls the non-OF mdiobus_register(). This
circumvents some code from __of_mdiobus_register() from running, which
sets the auto-scan mask, parses some device tree properties, etc.

I'm going to go out on a limb and say that the OF node isn't, in fact,
needed at all, and can be removed. The MDIO diversion as initially
implemented in commit 461cd1b03e32 ("net: dsa: bcm_sf2: Register our
slave MDIO bus") looked quite different than it is now, after commit
771089c2a485 ("net: dsa: bcm_sf2: Ensure that MDIO diversion is used").
Initially, it made sense, as bcm_sf2 was registering another set of
driver ops for the "brcm,unimac-mdio" OF node. But now, it deletes all
phandles, which makes "phy-handle"s unable to find PHYs, which means
that it always goes through the OF-unaware dsa_user_phy_connect().

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Alvin Šipraga <alsi@bang-olufsen.dk>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/bcm_sf2.c

index cadee5505c29c9996e47e29eb122fab4e8e053df..19b325fa5a2722b836e5a9627cd03758e2ab1d2e 100644 (file)
@@ -635,7 +635,6 @@ static int bcm_sf2_mdio_register(struct dsa_switch *ds)
        priv->user_mii_bus->write = bcm_sf2_sw_mdio_write;
        snprintf(priv->user_mii_bus->id, MII_BUS_ID_SIZE, "sf2-%d",
                 index++);
-       priv->user_mii_bus->dev.of_node = dn;
 
        /* Include the pseudo-PHY address to divert reads towards our
         * workaround. This is only required for 7445D0, since 7445E0