unsigned int            last_tx_idx;
        unsigned int            num_used_tx_buffs;
        struct mii_bus          *mii_bus;
-       struct phy_device       *phy_dev;
        struct clk              *clk;
        dma_addr_t              dma_buff_base_p;
        void                    *dma_buff_base_v;
 static void lpc_handle_link_change(struct net_device *ndev)
 {
        struct netdata_local *pldat = netdev_priv(ndev);
-       struct phy_device *phydev = pldat->phy_dev;
+       struct phy_device *phydev = ndev->phydev;
        unsigned long flags;
 
        bool status_change = false;
        pldat->link = 0;
        pldat->speed = 0;
        pldat->duplex = -1;
-       pldat->phy_dev = phydev;
 
        phy_attached_info(phydev);
 
        napi_disable(&pldat->napi);
        netif_stop_queue(ndev);
 
-       if (pldat->phy_dev)
-               phy_stop(pldat->phy_dev);
+       if (ndev->phydev)
+               phy_stop(ndev->phydev);
 
        spin_lock_irqsave(&pldat->lock, flags);
        __lpc_eth_reset(pldat);
 static int lpc_eth_ioctl(struct net_device *ndev, struct ifreq *req, int cmd)
 {
        struct netdata_local *pldat = netdev_priv(ndev);
-       struct phy_device *phydev = pldat->phy_dev;
+       struct phy_device *phydev = ndev->phydev;
 
        if (!netif_running(ndev))
                return -EINVAL;
        __lpc_eth_clock_enable(pldat, true);
 
        /* Suspended PHY makes LPC ethernet core block, so resume now */
-       phy_resume(pldat->phy_dev);
+       phy_resume(ndev->phydev);
 
        /* Reset and initialize */
        __lpc_eth_reset(pldat);
        __lpc_eth_init(pldat);
 
        /* schedule a link state check */
-       phy_start(pldat->phy_dev);
+       phy_start(ndev->phydev);
        netif_start_queue(ndev);
        napi_enable(&pldat->napi);
 
 static int lpc_eth_ethtool_getsettings(struct net_device *ndev,
        struct ethtool_cmd *cmd)
 {
-       struct netdata_local *pldat = netdev_priv(ndev);
-       struct phy_device *phydev = pldat->phy_dev;
+       struct phy_device *phydev = ndev->phydev;
 
        if (!phydev)
                return -EOPNOTSUPP;
 static int lpc_eth_ethtool_setsettings(struct net_device *ndev,
        struct ethtool_cmd *cmd)
 {
-       struct netdata_local *pldat = netdev_priv(ndev);
-       struct phy_device *phydev = pldat->phy_dev;
+       struct phy_device *phydev = ndev->phydev;
 
        if (!phydev)
                return -EOPNOTSUPP;
        netdev_info(ndev, "LPC mac at 0x%08x irq %d\n",
               res->start, ndev->irq);
 
-       phydev = pldat->phy_dev;
+       phydev = ndev->phydev;
 
        device_init_wakeup(&pdev->dev, 1);
        device_set_wakeup_enable(&pdev->dev, 0);