Re: [PATCH v2] net: ethernet: support "fixed-link" DT key/node on nb8800 driver

From: Måns Rullgård
Date: Fri Feb 05 2016 - 08:58:39 EST


Sebastian Frias <sf84@xxxxxxxxxxx> writes:

> Signed-off-by: Sebastian Frias <sf84@xxxxxxxxxxx>
> ---
> drivers/net/ethernet/aurora/nb8800.c | 15 ++++++++++++---
> 1 file changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/ethernet/aurora/nb8800.c
> b/drivers/net/ethernet/aurora/nb8800.c
> index ecc4a33..dd7bedc 100644
> --- a/drivers/net/ethernet/aurora/nb8800.c
> +++ b/drivers/net/ethernet/aurora/nb8800.c
> @@ -1462,9 +1462,18 @@ static int nb8800_probe(struct platform_device *pdev)
>
> priv->phy_node = of_parse_phandle(pdev->dev.of_node, "phy-handle", 0);
> if (!priv->phy_node) {
> - dev_err(&pdev->dev, "no PHY specified\n");
> - ret = -ENODEV;
> - goto err_free_bus;
> + if (of_phy_is_fixed_link(pdev->dev.of_node)) {
> + ret = of_phy_register_fixed_link(pdev->dev.of_node);
> + if (ret < 0) {
> + dev_err(&pdev->dev, "bad fixed-link spec\n");
> + goto err_free_bus;
> + }
> + priv->phy_node = of_node_get(pdev->dev.of_node);
> + } else {
> + dev_err(&pdev->dev, "no PHY specified\n");
> + ret = -ENODEV;
> + goto err_free_bus;
> + }
> }

Maybe it would be clearer to reduce the if() nesting a bit, like this
for instance:

if (of_phy_is_fixed_link(pdev->dev.of_node)) {
ret = of_phy_register_fixed_link(pdev->dev.of_node);
if (ret < 0) {
dev_err(&pdev->dev, "bad fixed-link spec\n");
goto err_free_bus;
}
priv->phy_node = of_node_get(pdev->dev.of_node);
}

if (!priv->phy_node)
priv->phy_node = of_parse_phandle(pdev->dev.of_node,
"phy-handle", 0);

if (!priv->phy_node) {
dev_err(&pdev->dev, "no PHY specified\n");
ret = -ENODEV;
goto err_free_bus;
}


--
Måns Rullgård