Commit ce554d32 authored by Philippe Reynes's avatar Philippe Reynes Committed by David S. Miller

net: ethernet: dwc_eth_qos: use phydev from struct net_device

The private structure contain a pointer to phydev, but the structure
net_device already contain such pointer. So we can remove the pointer
phydev in the private structure, and update the driver to use the
one contained in struct net_device.
Signed-off-by: default avatarPhilippe Reynes <tremyfr@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 13e4c230
...@@ -598,7 +598,6 @@ struct net_local { ...@@ -598,7 +598,6 @@ struct net_local {
struct work_struct txtimeout_reinit; struct work_struct txtimeout_reinit;
phy_interface_t phy_interface; phy_interface_t phy_interface;
struct phy_device *phy_dev;
struct mii_bus *mii_bus; struct mii_bus *mii_bus;
unsigned int link; unsigned int link;
...@@ -816,7 +815,7 @@ static int dwceqos_mdio_write(struct mii_bus *bus, int mii_id, int phyreg, ...@@ -816,7 +815,7 @@ static int dwceqos_mdio_write(struct mii_bus *bus, int mii_id, int phyreg,
static int dwceqos_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd) static int dwceqos_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd)
{ {
struct net_local *lp = netdev_priv(ndev); struct net_local *lp = netdev_priv(ndev);
struct phy_device *phydev = lp->phy_dev; struct phy_device *phydev = ndev->phydev;
if (!netif_running(ndev)) if (!netif_running(ndev))
return -EINVAL; return -EINVAL;
...@@ -850,6 +849,7 @@ static void dwceqos_link_down(struct net_local *lp) ...@@ -850,6 +849,7 @@ static void dwceqos_link_down(struct net_local *lp)
static void dwceqos_link_up(struct net_local *lp) static void dwceqos_link_up(struct net_local *lp)
{ {
struct net_device *ndev = lp->ndev;
u32 regval; u32 regval;
unsigned long flags; unsigned long flags;
...@@ -860,7 +860,7 @@ static void dwceqos_link_up(struct net_local *lp) ...@@ -860,7 +860,7 @@ static void dwceqos_link_up(struct net_local *lp)
dwceqos_write(lp, REG_DWCEQOS_MAC_LPI_CTRL_STATUS, regval); dwceqos_write(lp, REG_DWCEQOS_MAC_LPI_CTRL_STATUS, regval);
spin_unlock_irqrestore(&lp->hw_lock, flags); spin_unlock_irqrestore(&lp->hw_lock, flags);
lp->eee_active = !phy_init_eee(lp->phy_dev, 0); lp->eee_active = !phy_init_eee(ndev->phydev, 0);
/* Check for changed EEE capability */ /* Check for changed EEE capability */
if (!lp->eee_active && lp->eee_enabled) { if (!lp->eee_active && lp->eee_enabled) {
...@@ -876,7 +876,8 @@ static void dwceqos_link_up(struct net_local *lp) ...@@ -876,7 +876,8 @@ static void dwceqos_link_up(struct net_local *lp)
static void dwceqos_set_speed(struct net_local *lp) static void dwceqos_set_speed(struct net_local *lp)
{ {
struct phy_device *phydev = lp->phy_dev; struct net_device *ndev = lp->ndev;
struct phy_device *phydev = ndev->phydev;
u32 regval; u32 regval;
regval = dwceqos_read(lp, REG_DWCEQOS_MAC_CFG); regval = dwceqos_read(lp, REG_DWCEQOS_MAC_CFG);
...@@ -903,7 +904,7 @@ static void dwceqos_set_speed(struct net_local *lp) ...@@ -903,7 +904,7 @@ static void dwceqos_set_speed(struct net_local *lp)
static void dwceqos_adjust_link(struct net_device *ndev) static void dwceqos_adjust_link(struct net_device *ndev)
{ {
struct net_local *lp = netdev_priv(ndev); struct net_local *lp = netdev_priv(ndev);
struct phy_device *phydev = lp->phy_dev; struct phy_device *phydev = ndev->phydev;
int status_change = 0; int status_change = 0;
if (lp->phy_defer) if (lp->phy_defer)
...@@ -987,7 +988,6 @@ static int dwceqos_mii_probe(struct net_device *ndev) ...@@ -987,7 +988,6 @@ static int dwceqos_mii_probe(struct net_device *ndev)
lp->link = 0; lp->link = 0;
lp->speed = 0; lp->speed = 0;
lp->duplex = DUPLEX_UNKNOWN; lp->duplex = DUPLEX_UNKNOWN;
lp->phy_dev = phydev;
return 0; return 0;
} }
...@@ -1531,6 +1531,7 @@ static void dwceqos_configure_bus(struct net_local *lp) ...@@ -1531,6 +1531,7 @@ static void dwceqos_configure_bus(struct net_local *lp)
static void dwceqos_init_hw(struct net_local *lp) static void dwceqos_init_hw(struct net_local *lp)
{ {
struct net_device *ndev = lp->ndev;
u32 regval; u32 regval;
u32 buswidth; u32 buswidth;
u32 dma_skip; u32 dma_skip;
...@@ -1645,10 +1646,10 @@ static void dwceqos_init_hw(struct net_local *lp) ...@@ -1645,10 +1646,10 @@ static void dwceqos_init_hw(struct net_local *lp)
regval | DWCEQOS_MAC_CFG_TE | DWCEQOS_MAC_CFG_RE); regval | DWCEQOS_MAC_CFG_TE | DWCEQOS_MAC_CFG_RE);
lp->phy_defer = false; lp->phy_defer = false;
mutex_lock(&lp->phy_dev->lock); mutex_lock(&ndev->phydev->lock);
phy_read_status(lp->phy_dev); phy_read_status(ndev->phydev);
dwceqos_adjust_link(lp->ndev); dwceqos_adjust_link(lp->ndev);
mutex_unlock(&lp->phy_dev->lock); mutex_unlock(&ndev->phydev->lock);
} }
static void dwceqos_tx_reclaim(unsigned long data) static void dwceqos_tx_reclaim(unsigned long data)
...@@ -1898,7 +1899,7 @@ static int dwceqos_open(struct net_device *ndev) ...@@ -1898,7 +1899,7 @@ static int dwceqos_open(struct net_device *ndev)
* hence the unusual init order with phy_start first. * hence the unusual init order with phy_start first.
*/ */
lp->phy_defer = true; lp->phy_defer = true;
phy_start(lp->phy_dev); phy_start(ndev->phydev);
dwceqos_init_hw(lp); dwceqos_init_hw(lp);
napi_enable(&lp->napi); napi_enable(&lp->napi);
...@@ -1943,7 +1944,7 @@ static int dwceqos_stop(struct net_device *ndev) ...@@ -1943,7 +1944,7 @@ static int dwceqos_stop(struct net_device *ndev)
dwceqos_drain_dma(lp); dwceqos_drain_dma(lp);
dwceqos_reset_hw(lp); dwceqos_reset_hw(lp);
phy_stop(lp->phy_dev); phy_stop(ndev->phydev);
dwceqos_descriptor_free(lp); dwceqos_descriptor_free(lp);
...@@ -2526,8 +2527,7 @@ dwceqos_get_stats64(struct net_device *ndev, struct rtnl_link_stats64 *s) ...@@ -2526,8 +2527,7 @@ dwceqos_get_stats64(struct net_device *ndev, struct rtnl_link_stats64 *s)
static int static int
dwceqos_get_settings(struct net_device *ndev, struct ethtool_cmd *ecmd) dwceqos_get_settings(struct net_device *ndev, struct ethtool_cmd *ecmd)
{ {
struct net_local *lp = netdev_priv(ndev); struct phy_device *phydev = ndev->phydev;
struct phy_device *phydev = lp->phy_dev;
if (!phydev) if (!phydev)
return -ENODEV; return -ENODEV;
...@@ -2538,8 +2538,7 @@ dwceqos_get_settings(struct net_device *ndev, struct ethtool_cmd *ecmd) ...@@ -2538,8 +2538,7 @@ dwceqos_get_settings(struct net_device *ndev, struct ethtool_cmd *ecmd)
static int static int
dwceqos_set_settings(struct net_device *ndev, struct ethtool_cmd *ecmd) dwceqos_set_settings(struct net_device *ndev, struct ethtool_cmd *ecmd)
{ {
struct net_local *lp = netdev_priv(ndev); struct phy_device *phydev = ndev->phydev;
struct phy_device *phydev = lp->phy_dev;
if (!phydev) if (!phydev)
return -ENODEV; return -ENODEV;
...@@ -2574,17 +2573,17 @@ static int dwceqos_set_pauseparam(struct net_device *ndev, ...@@ -2574,17 +2573,17 @@ static int dwceqos_set_pauseparam(struct net_device *ndev,
lp->flowcontrol.autoneg = pp->autoneg; lp->flowcontrol.autoneg = pp->autoneg;
if (pp->autoneg) { if (pp->autoneg) {
lp->phy_dev->advertising |= ADVERTISED_Pause; ndev->phydev->advertising |= ADVERTISED_Pause;
lp->phy_dev->advertising |= ADVERTISED_Asym_Pause; ndev->phydev->advertising |= ADVERTISED_Asym_Pause;
} else { } else {
lp->phy_dev->advertising &= ~ADVERTISED_Pause; ndev->phydev->advertising &= ~ADVERTISED_Pause;
lp->phy_dev->advertising &= ~ADVERTISED_Asym_Pause; ndev->phydev->advertising &= ~ADVERTISED_Asym_Pause;
lp->flowcontrol.rx = pp->rx_pause; lp->flowcontrol.rx = pp->rx_pause;
lp->flowcontrol.tx = pp->tx_pause; lp->flowcontrol.tx = pp->tx_pause;
} }
if (netif_running(ndev)) if (netif_running(ndev))
ret = phy_start_aneg(lp->phy_dev); ret = phy_start_aneg(ndev->phydev);
return ret; return ret;
} }
...@@ -2705,7 +2704,7 @@ static int dwceqos_get_eee(struct net_device *ndev, struct ethtool_eee *edata) ...@@ -2705,7 +2704,7 @@ static int dwceqos_get_eee(struct net_device *ndev, struct ethtool_eee *edata)
dwceqos_get_tx_lpi_state(regval)); dwceqos_get_tx_lpi_state(regval));
} }
return phy_ethtool_get_eee(lp->phy_dev, edata); return phy_ethtool_get_eee(ndev->phydev, edata);
} }
static int dwceqos_set_eee(struct net_device *ndev, struct ethtool_eee *edata) static int dwceqos_set_eee(struct net_device *ndev, struct ethtool_eee *edata)
...@@ -2747,7 +2746,7 @@ static int dwceqos_set_eee(struct net_device *ndev, struct ethtool_eee *edata) ...@@ -2747,7 +2746,7 @@ static int dwceqos_set_eee(struct net_device *ndev, struct ethtool_eee *edata)
spin_unlock_irqrestore(&lp->hw_lock, flags); spin_unlock_irqrestore(&lp->hw_lock, flags);
} }
return phy_ethtool_set_eee(lp->phy_dev, edata); return phy_ethtool_set_eee(ndev->phydev, edata);
} }
static u32 dwceqos_get_msglevel(struct net_device *ndev) static u32 dwceqos_get_msglevel(struct net_device *ndev)
...@@ -2981,8 +2980,8 @@ static int dwceqos_remove(struct platform_device *pdev) ...@@ -2981,8 +2980,8 @@ static int dwceqos_remove(struct platform_device *pdev)
if (ndev) { if (ndev) {
lp = netdev_priv(ndev); lp = netdev_priv(ndev);
if (lp->phy_dev) if (ndev->phydev)
phy_disconnect(lp->phy_dev); phy_disconnect(ndev->phydev);
mdiobus_unregister(lp->mii_bus); mdiobus_unregister(lp->mii_bus);
mdiobus_free(lp->mii_bus); mdiobus_free(lp->mii_bus);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment