提交 c6c022e3 编写于 作者: P Philippe Reynes 提交者: David S. Miller

net: ethernet: marvell: mvneta: 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
phy_dev in the private structure, and update the driver to use the
one contained in struct net_device.
Signed-off-by: NPhilippe Reynes <tremyfr@gmail.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 72582fdb
...@@ -399,7 +399,6 @@ struct mvneta_port { ...@@ -399,7 +399,6 @@ struct mvneta_port {
u16 rx_ring_size; u16 rx_ring_size;
struct mii_bus *mii_bus; struct mii_bus *mii_bus;
struct phy_device *phy_dev;
phy_interface_t phy_interface; phy_interface_t phy_interface;
struct device_node *phy_node; struct device_node *phy_node;
unsigned int link; unsigned int link;
...@@ -2651,6 +2650,7 @@ static int mvneta_poll(struct napi_struct *napi, int budget) ...@@ -2651,6 +2650,7 @@ static int mvneta_poll(struct napi_struct *napi, int budget)
u32 cause_rx_tx; u32 cause_rx_tx;
int rx_queue; int rx_queue;
struct mvneta_port *pp = netdev_priv(napi->dev); struct mvneta_port *pp = netdev_priv(napi->dev);
struct net_device *ndev = pp->dev;
struct mvneta_pcpu_port *port = this_cpu_ptr(pp->ports); struct mvneta_pcpu_port *port = this_cpu_ptr(pp->ports);
if (!netif_running(pp->dev)) { if (!netif_running(pp->dev)) {
...@@ -2668,7 +2668,7 @@ static int mvneta_poll(struct napi_struct *napi, int budget) ...@@ -2668,7 +2668,7 @@ static int mvneta_poll(struct napi_struct *napi, int budget)
(MVNETA_CAUSE_PHY_STATUS_CHANGE | (MVNETA_CAUSE_PHY_STATUS_CHANGE |
MVNETA_CAUSE_LINK_CHANGE | MVNETA_CAUSE_LINK_CHANGE |
MVNETA_CAUSE_PSC_SYNC_CHANGE))) { MVNETA_CAUSE_PSC_SYNC_CHANGE))) {
mvneta_fixed_link_update(pp, pp->phy_dev); mvneta_fixed_link_update(pp, ndev->phydev);
} }
} }
...@@ -2963,6 +2963,7 @@ static int mvneta_setup_txqs(struct mvneta_port *pp) ...@@ -2963,6 +2963,7 @@ static int mvneta_setup_txqs(struct mvneta_port *pp)
static void mvneta_start_dev(struct mvneta_port *pp) static void mvneta_start_dev(struct mvneta_port *pp)
{ {
int cpu; int cpu;
struct net_device *ndev = pp->dev;
mvneta_max_rx_size_set(pp, pp->pkt_size); mvneta_max_rx_size_set(pp, pp->pkt_size);
mvneta_txq_max_tx_size_set(pp, pp->pkt_size); mvneta_txq_max_tx_size_set(pp, pp->pkt_size);
...@@ -2985,15 +2986,16 @@ static void mvneta_start_dev(struct mvneta_port *pp) ...@@ -2985,15 +2986,16 @@ static void mvneta_start_dev(struct mvneta_port *pp)
MVNETA_CAUSE_LINK_CHANGE | MVNETA_CAUSE_LINK_CHANGE |
MVNETA_CAUSE_PSC_SYNC_CHANGE); MVNETA_CAUSE_PSC_SYNC_CHANGE);
phy_start(pp->phy_dev); phy_start(ndev->phydev);
netif_tx_start_all_queues(pp->dev); netif_tx_start_all_queues(pp->dev);
} }
static void mvneta_stop_dev(struct mvneta_port *pp) static void mvneta_stop_dev(struct mvneta_port *pp)
{ {
unsigned int cpu; unsigned int cpu;
struct net_device *ndev = pp->dev;
phy_stop(pp->phy_dev); phy_stop(ndev->phydev);
for_each_online_cpu(cpu) { for_each_online_cpu(cpu) {
struct mvneta_pcpu_port *port = per_cpu_ptr(pp->ports, cpu); struct mvneta_pcpu_port *port = per_cpu_ptr(pp->ports, cpu);
...@@ -3166,7 +3168,7 @@ static int mvneta_set_mac_addr(struct net_device *dev, void *addr) ...@@ -3166,7 +3168,7 @@ static int mvneta_set_mac_addr(struct net_device *dev, void *addr)
static void mvneta_adjust_link(struct net_device *ndev) static void mvneta_adjust_link(struct net_device *ndev)
{ {
struct mvneta_port *pp = netdev_priv(ndev); struct mvneta_port *pp = netdev_priv(ndev);
struct phy_device *phydev = pp->phy_dev; struct phy_device *phydev = ndev->phydev;
int status_change = 0; int status_change = 0;
if (phydev->link) { if (phydev->link) {
...@@ -3244,7 +3246,6 @@ static int mvneta_mdio_probe(struct mvneta_port *pp) ...@@ -3244,7 +3246,6 @@ static int mvneta_mdio_probe(struct mvneta_port *pp)
phy_dev->supported &= PHY_GBIT_FEATURES; phy_dev->supported &= PHY_GBIT_FEATURES;
phy_dev->advertising = phy_dev->supported; phy_dev->advertising = phy_dev->supported;
pp->phy_dev = phy_dev;
pp->link = 0; pp->link = 0;
pp->duplex = 0; pp->duplex = 0;
pp->speed = 0; pp->speed = 0;
...@@ -3254,8 +3255,9 @@ static int mvneta_mdio_probe(struct mvneta_port *pp) ...@@ -3254,8 +3255,9 @@ static int mvneta_mdio_probe(struct mvneta_port *pp)
static void mvneta_mdio_remove(struct mvneta_port *pp) static void mvneta_mdio_remove(struct mvneta_port *pp)
{ {
phy_disconnect(pp->phy_dev); struct net_device *ndev = pp->dev;
pp->phy_dev = NULL;
phy_disconnect(ndev->phydev);
} }
/* Electing a CPU must be done in an atomic way: it should be done /* Electing a CPU must be done in an atomic way: it should be done
...@@ -3495,12 +3497,10 @@ static int mvneta_stop(struct net_device *dev) ...@@ -3495,12 +3497,10 @@ static int mvneta_stop(struct net_device *dev)
static int mvneta_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) static int mvneta_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
{ {
struct mvneta_port *pp = netdev_priv(dev); if (!dev->phydev)
if (!pp->phy_dev)
return -ENOTSUPP; return -ENOTSUPP;
return phy_mii_ioctl(pp->phy_dev, ifr, cmd); return phy_mii_ioctl(dev->phydev, ifr, cmd);
} }
/* Ethtool methods */ /* Ethtool methods */
...@@ -3508,19 +3508,17 @@ static int mvneta_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) ...@@ -3508,19 +3508,17 @@ static int mvneta_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
/* Get settings (phy address, speed) for ethtools */ /* Get settings (phy address, speed) for ethtools */
int mvneta_ethtool_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) int mvneta_ethtool_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
{ {
struct mvneta_port *pp = netdev_priv(dev); if (!dev->phydev)
if (!pp->phy_dev)
return -ENODEV; return -ENODEV;
return phy_ethtool_gset(pp->phy_dev, cmd); return phy_ethtool_gset(dev->phydev, cmd);
} }
/* Set settings (phy address, speed) for ethtools */ /* Set settings (phy address, speed) for ethtools */
int mvneta_ethtool_set_settings(struct net_device *dev, struct ethtool_cmd *cmd) int mvneta_ethtool_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
{ {
struct mvneta_port *pp = netdev_priv(dev); struct mvneta_port *pp = netdev_priv(dev);
struct phy_device *phydev = pp->phy_dev; struct phy_device *phydev = dev->phydev;
if (!phydev) if (!phydev)
return -ENODEV; return -ENODEV;
...@@ -3557,7 +3555,7 @@ int mvneta_ethtool_set_settings(struct net_device *dev, struct ethtool_cmd *cmd) ...@@ -3557,7 +3555,7 @@ int mvneta_ethtool_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
} }
} }
return phy_ethtool_sset(pp->phy_dev, cmd); return phy_ethtool_sset(dev->phydev, cmd);
} }
/* Set interrupt coalescing for ethtools */ /* Set interrupt coalescing for ethtools */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册