From b7b392ea50d946a2bb1a8d4ebca8bb5e4e72cbf1 Mon Sep 17 00:00:00 2001 From: Harini Katakam Date: Thu, 8 Mar 2018 18:20:39 +0530 Subject: [PATCH] net: macb: Use phy_dev in macb structure Use local phy_dev pointer in macb_structure. Signed-off-by: Harini Katakam Signed-off-by: Michal Simek --- drivers/net/ethernet/cadence/macb.h | 1 + drivers/net/ethernet/cadence/macb_main.c | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/cadence/macb.h b/drivers/net/ethernet/cadence/macb.h index 76b6b39eb356..35094c5b06ff 100644 --- a/drivers/net/ethernet/cadence/macb.h +++ b/drivers/net/ethernet/cadence/macb.h @@ -1029,6 +1029,7 @@ struct macb { struct macb_or_gem_ops macbgem_ops; struct mii_bus *mii_bus; + struct phy_device *phy_dev; struct device_node *phy_node; int link; int speed; diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c index 1f603fa488ac..564fa955d3c0 100644 --- a/drivers/net/ethernet/cadence/macb_main.c +++ b/drivers/net/ethernet/cadence/macb_main.c @@ -403,7 +403,7 @@ static void macb_set_tx_clk(struct clk *clk, int speed, struct net_device *dev) static void macb_handle_link_change(struct net_device *dev) { struct macb *bp = netdev_priv(dev); - struct phy_device *phydev = dev->phydev; + struct phy_device *phydev = bp->phy_dev; unsigned long flags; int status_change = 0; @@ -525,6 +525,7 @@ static int macb_mii_probe(struct net_device *dev) bp->link = 0; bp->speed = 0; bp->duplex = -1; + bp->phy_dev = phydev; return 0; } @@ -2209,7 +2210,7 @@ static int macb_open(struct net_device *dev) netif_carrier_off(dev); /* if the phy is not yet register, retry later*/ - if (!dev->phydev) + if (!bp->phy_dev) return -EAGAIN; /* RX buffers initialization */ @@ -2228,7 +2229,7 @@ static int macb_open(struct net_device *dev) macb_init_hw(bp); /* schedule a link state check */ - phy_start(dev->phydev); + phy_start(bp->phy_dev); netif_tx_start_all_queues(dev); @@ -2246,8 +2247,8 @@ static int macb_close(struct net_device *dev) netif_tx_stop_all_queues(dev); napi_disable(&bp->napi); - if (dev->phydev) - phy_stop(dev->phydev); + if (bp->phy_dev) + phy_stop(bp->phy_dev); spin_lock_irqsave(&bp->lock, flags); macb_reset_hw(bp); @@ -3062,7 +3063,7 @@ static int at91ether_open(struct net_device *dev) MACB_BIT(HRESP)); /* schedule a link state check */ - phy_start(dev->phydev); + phy_start(lp->phy_dev); netif_start_queue(dev); @@ -3556,6 +3557,8 @@ static int macb_probe(struct platform_device *pdev) macb_is_gem(bp) ? "GEM" : "MACB", macb_readl(bp, MID), dev->base_addr, dev->irq, dev->dev_addr); + phydev = bp->phy_dev; + return 0; err_out_unregister_mdio: @@ -3588,8 +3591,8 @@ static int macb_remove(struct platform_device *pdev) if (dev) { bp = netdev_priv(dev); - if (dev->phydev) - phy_disconnect(dev->phydev); + if (bp->phy_dev) + phy_disconnect(bp->phy_dev); mdiobus_unregister(bp->mii_bus); dev->phydev = NULL; mdiobus_free(bp->mii_bus); -- 2.39.2