mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-28 10:15:32 -05:00
net: dsa: realtek: clean user_mii_bus setup
Remove the line assigning dev.of_node in mdio_bus as subsequent
of_mdiobus_register will always overwrite it.
As discussed in [1], allow the DSA core to be simplified, by not
assigning ds->user_mii_bus when the MDIO bus is described in OF, as it
is unnecessary.
Since commit 3b73a7b8ec ("net: mdio_bus: add refcounting for fwnodes
to mdiobus"), we can put the "mdio" node just after the MDIO bus
registration.
[1] https://lkml.kernel.org/netdev/20231213120656.x46fyad6ls7sqyzv@skbuf/T/#u
Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
8685c98d45
commit
68c66d8d8a
@@ -331,7 +331,7 @@ static int realtek_smi_setup_mdio(struct dsa_switch *ds)
|
||||
{
|
||||
struct realtek_priv *priv = ds->priv;
|
||||
struct device_node *mdio_np;
|
||||
int ret;
|
||||
int ret = 0;
|
||||
|
||||
mdio_np = of_get_child_by_name(priv->dev->of_node, "mdio");
|
||||
if (!mdio_np) {
|
||||
@@ -344,15 +344,14 @@ static int realtek_smi_setup_mdio(struct dsa_switch *ds)
|
||||
ret = -ENOMEM;
|
||||
goto err_put_node;
|
||||
}
|
||||
|
||||
priv->user_mii_bus->priv = priv;
|
||||
priv->user_mii_bus->name = "SMI user MII";
|
||||
priv->user_mii_bus->read = realtek_smi_mdio_read;
|
||||
priv->user_mii_bus->write = realtek_smi_mdio_write;
|
||||
snprintf(priv->user_mii_bus->id, MII_BUS_ID_SIZE, "SMI-%d",
|
||||
ds->index);
|
||||
priv->user_mii_bus->dev.of_node = mdio_np;
|
||||
priv->user_mii_bus->parent = priv->dev;
|
||||
ds->user_mii_bus = priv->user_mii_bus;
|
||||
|
||||
ret = devm_of_mdiobus_register(priv->dev, priv->user_mii_bus, mdio_np);
|
||||
if (ret) {
|
||||
@@ -361,8 +360,6 @@ static int realtek_smi_setup_mdio(struct dsa_switch *ds)
|
||||
goto err_put_node;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
err_put_node:
|
||||
of_node_put(mdio_np);
|
||||
|
||||
@@ -428,8 +425,7 @@ EXPORT_SYMBOL_NS_GPL(realtek_smi_probe, REALTEK_DSA);
|
||||
* @pdev: platform_device to be removed.
|
||||
*
|
||||
* This function should be used as the .remove_new in a platform_driver. First
|
||||
* it unregisters the DSA switch and cleans internal data. Finally, it calls
|
||||
* the common remove function.
|
||||
* it unregisters the DSA switch and then it calls the common remove function.
|
||||
*
|
||||
* Context: Can sleep.
|
||||
* Return: Nothing.
|
||||
@@ -443,9 +439,6 @@ void realtek_smi_remove(struct platform_device *pdev)
|
||||
|
||||
rtl83xx_unregister_switch(priv);
|
||||
|
||||
if (priv->user_mii_bus)
|
||||
of_node_put(priv->user_mii_bus->dev.of_node);
|
||||
|
||||
rtl83xx_remove(priv);
|
||||
}
|
||||
EXPORT_SYMBOL_NS_GPL(realtek_smi_remove, REALTEK_DSA);
|
||||
|
||||
Reference in New Issue
Block a user