[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <568F6DAA.9000205@electromag.com.au>
Date: Fri, 8 Jan 2016 16:04:58 +0800
From: Phil Reid <preid@...ctromag.com.au>
To: peppe.cavallaro@...com
Cc: netdev@...r.kernel.org, linux-rockchip@...ts.infradead.org
Subject: Re: [PATCH v2] stmmac: Don't exit mdio registration when mdio subnode
is not found in the DTS
On 8/01/2016 4:13 AM, Romain Perier wrote:
> Originally, most of the platforms using this driver did not define an mdio subnode
> in the devicetree. Commit e34d65 ("stmmac: create of compatible mdio bus for stmmac driver")
> introduced a backward compatibily issue by using of_mdiobus_register explicitly
> with an mdio subnode. This patch fixes the issue by calling the function
> mdiobus_register, when mdio subnode is not found. The driver is now compatible
> with both modes.
>
> Fixes: e34d65696d2e ("stmmac: create of compatible mdio bus for stmmac driver")
> Signed-off-by: Romain Perier <romain.perier@...il.com>
> ---
>
> Changes in v2:
> - Removed IS_ENABLED macro from the if statement before calling
> of_mdiobus_register.
> - Added Fixes tag in commit message
>
> drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
> index 16c85cc..648488d 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
> @@ -218,8 +218,7 @@ int stmmac_mdio_register(struct net_device *ndev)
> if (mdio_node) {
> netdev_dbg(ndev, "FOUND MDIO subnode\n");
> } else {
> - netdev_err(ndev, "NO MDIO subnode\n");
> - return 0;
> + netdev_warn(ndev, "No MDIO subnode found\n");
> }
> }
>
> @@ -251,7 +250,10 @@ int stmmac_mdio_register(struct net_device *ndev)
> new_bus->phy_mask = mdio_bus_data->phy_mask;
> new_bus->parent = priv->device;
>
> - err = of_mdiobus_register(new_bus, mdio_node);
> + if (mdio_node)
> + err = of_mdiobus_register(new_bus, mdio_node);
> + else
> + err = mdiobus_register(new_bus);
> if (err != 0) {
> pr_err("%s: Cannot register as MDIO bus\n", new_bus->name);
> goto bus_register_fail;
>
Tested-by: Phil Reid <preid@...ctromag.com.au>
--
Regards
Phil Reid
Powered by blists - more mailing lists