OSDN Git Service

net: axienet: Support phy-less mode of operation
authorSrikanth Thokala <srikanth.thokala@xilinx.com>
Tue, 5 May 2015 09:25:58 +0000 (11:25 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 5 May 2015 23:33:58 +0000 (19:33 -0400)
This patch adds proper checks to handle the PHY-less case.

Signed-off-by: Srikanth Thokala <sthokal@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/xilinx/xilinx_axienet_main.c

index b1081e1..c6f2ba0 100644 (file)
@@ -940,11 +940,10 @@ static int axienet_open(struct net_device *ndev)
                                             PHY_INTERFACE_MODE_RGMII_ID);
                }
 
-               if (!lp->phy_dev) {
+               if (!lp->phy_dev)
                        dev_err(lp->dev, "of_phy_connect() failed\n");
-                       return -ENODEV;
-               }
-               phy_start(lp->phy_dev);
+               else
+                       phy_start(lp->phy_dev);
        }
 
        /* Enable tasklets for Axi DMA error handling */
@@ -1606,7 +1605,8 @@ static int axienet_of_probe(struct platform_device *op)
        lp->coalesce_count_tx = XAXIDMA_DFT_TX_THRESHOLD;
 
        lp->phy_node = of_parse_phandle(op->dev.of_node, "phy-handle", 0);
-       ret = axienet_mdio_setup(lp, op->dev.of_node);
+       if (lp->phy_node)
+               ret = axienet_mdio_setup(lp, op->dev.of_node);
        if (ret)
                dev_warn(&op->dev, "error registering MDIO bus\n");