aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Hovold <johan@kernel.org>2016-11-17 11:40:04 -0500
committerDavid S. Miller <davem@davemloft.net>2016-11-18 13:48:54 -0500
commit23a09873221c02106cf767a86743a55873f0d05b (patch)
tree8d1ba23a4f7991d290f884d4f27cbbd4a7cffe2c
parent3420ea88509f9d585b39f36e737022faf0286d9a (diff)
net: ethernet: ti: cpsw: fix fixed-link phy probe deferral
Make sure to propagate errors from of_phy_register_fixed_link() which can fail with -EPROBE_DEFER. Fixes: 1f71e8c96fc6 ("drivers: net: cpsw: Add support for fixed-link PHY") Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/ti/cpsw.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
index 1387299030e4..58947aae31c7 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
@@ -2375,8 +2375,11 @@ static int cpsw_probe_dt(struct cpsw_platform_data *data,
2375 * to the PHY is the Ethernet MAC DT node. 2375 * to the PHY is the Ethernet MAC DT node.
2376 */ 2376 */
2377 ret = of_phy_register_fixed_link(slave_node); 2377 ret = of_phy_register_fixed_link(slave_node);
2378 if (ret) 2378 if (ret) {
2379 if (ret != -EPROBE_DEFER)
2380 dev_err(&pdev->dev, "failed to register fixed-link phy: %d\n", ret);
2379 return ret; 2381 return ret;
2382 }
2380 slave_data->phy_node = of_node_get(slave_node); 2383 slave_data->phy_node = of_node_get(slave_node);
2381 } else if (parp) { 2384 } else if (parp) {
2382 u32 phyid; 2385 u32 phyid;
@@ -2637,11 +2640,10 @@ static int cpsw_probe(struct platform_device *pdev)
2637 goto clean_runtime_disable_ret; 2640 goto clean_runtime_disable_ret;
2638 } 2641 }
2639 2642
2640 if (cpsw_probe_dt(&cpsw->data, pdev)) { 2643 ret = cpsw_probe_dt(&cpsw->data, pdev);
2641 dev_err(&pdev->dev, "cpsw: platform data missing\n"); 2644 if (ret)
2642 ret = -ENODEV;
2643 goto clean_dt_ret; 2645 goto clean_dt_ret;
2644 } 2646
2645 data = &cpsw->data; 2647 data = &cpsw->data;
2646 cpsw->rx_ch_num = 1; 2648 cpsw->rx_ch_num = 1;
2647 cpsw->tx_ch_num = 1; 2649 cpsw->tx_ch_num = 1;