mirror of https://gitee.com/openkylin/linux.git
net: ethernet: mvpp2: 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: Philippe Reynes <tremyfr@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
bc3a334cc2
commit
8e07269de1
|
@ -699,7 +699,6 @@ struct mvpp2_port {
|
|||
u16 rx_ring_size;
|
||||
struct mvpp2_pcpu_stats __percpu *stats;
|
||||
|
||||
struct phy_device *phy_dev;
|
||||
phy_interface_t phy_interface;
|
||||
struct device_node *phy_node;
|
||||
unsigned int link;
|
||||
|
@ -4850,7 +4849,7 @@ static irqreturn_t mvpp2_isr(int irq, void *dev_id)
|
|||
static void mvpp2_link_event(struct net_device *dev)
|
||||
{
|
||||
struct mvpp2_port *port = netdev_priv(dev);
|
||||
struct phy_device *phydev = port->phy_dev;
|
||||
struct phy_device *phydev = dev->phydev;
|
||||
int status_change = 0;
|
||||
u32 val;
|
||||
|
||||
|
@ -5416,6 +5415,8 @@ static int mvpp2_poll(struct napi_struct *napi, int budget)
|
|||
/* Set hw internals when starting port */
|
||||
static void mvpp2_start_dev(struct mvpp2_port *port)
|
||||
{
|
||||
struct net_device *ndev = port->dev;
|
||||
|
||||
mvpp2_gmac_max_rx_size_set(port);
|
||||
mvpp2_txp_max_tx_size_set(port);
|
||||
|
||||
|
@ -5425,13 +5426,15 @@ static void mvpp2_start_dev(struct mvpp2_port *port)
|
|||
mvpp2_interrupts_enable(port);
|
||||
|
||||
mvpp2_port_enable(port);
|
||||
phy_start(port->phy_dev);
|
||||
phy_start(ndev->phydev);
|
||||
netif_tx_start_all_queues(port->dev);
|
||||
}
|
||||
|
||||
/* Set hw internals when stopping port */
|
||||
static void mvpp2_stop_dev(struct mvpp2_port *port)
|
||||
{
|
||||
struct net_device *ndev = port->dev;
|
||||
|
||||
/* Stop new packets from arriving to RXQs */
|
||||
mvpp2_ingress_disable(port);
|
||||
|
||||
|
@ -5447,7 +5450,7 @@ static void mvpp2_stop_dev(struct mvpp2_port *port)
|
|||
|
||||
mvpp2_egress_disable(port);
|
||||
mvpp2_port_disable(port);
|
||||
phy_stop(port->phy_dev);
|
||||
phy_stop(ndev->phydev);
|
||||
}
|
||||
|
||||
/* Return positive if MTU is valid */
|
||||
|
@ -5535,7 +5538,6 @@ static int mvpp2_phy_connect(struct mvpp2_port *port)
|
|||
phy_dev->supported &= PHY_GBIT_FEATURES;
|
||||
phy_dev->advertising = phy_dev->supported;
|
||||
|
||||
port->phy_dev = phy_dev;
|
||||
port->link = 0;
|
||||
port->duplex = 0;
|
||||
port->speed = 0;
|
||||
|
@ -5545,8 +5547,9 @@ static int mvpp2_phy_connect(struct mvpp2_port *port)
|
|||
|
||||
static void mvpp2_phy_disconnect(struct mvpp2_port *port)
|
||||
{
|
||||
phy_disconnect(port->phy_dev);
|
||||
port->phy_dev = NULL;
|
||||
struct net_device *ndev = port->dev;
|
||||
|
||||
phy_disconnect(ndev->phydev);
|
||||
}
|
||||
|
||||
static int mvpp2_open(struct net_device *dev)
|
||||
|
@ -5796,13 +5799,12 @@ mvpp2_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
|
|||
|
||||
static int mvpp2_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
|
||||
{
|
||||
struct mvpp2_port *port = netdev_priv(dev);
|
||||
int ret;
|
||||
|
||||
if (!port->phy_dev)
|
||||
if (!dev->phydev)
|
||||
return -ENOTSUPP;
|
||||
|
||||
ret = phy_mii_ioctl(port->phy_dev, ifr, cmd);
|
||||
ret = phy_mii_ioctl(dev->phydev, ifr, cmd);
|
||||
if (!ret)
|
||||
mvpp2_link_event(dev);
|
||||
|
||||
|
@ -5815,22 +5817,18 @@ static int mvpp2_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
|
|||
static int mvpp2_ethtool_get_settings(struct net_device *dev,
|
||||
struct ethtool_cmd *cmd)
|
||||
{
|
||||
struct mvpp2_port *port = netdev_priv(dev);
|
||||
|
||||
if (!port->phy_dev)
|
||||
if (!dev->phydev)
|
||||
return -ENODEV;
|
||||
return phy_ethtool_gset(port->phy_dev, cmd);
|
||||
return phy_ethtool_gset(dev->phydev, cmd);
|
||||
}
|
||||
|
||||
/* Set settings (phy address, speed) for ethtools */
|
||||
static int mvpp2_ethtool_set_settings(struct net_device *dev,
|
||||
struct ethtool_cmd *cmd)
|
||||
{
|
||||
struct mvpp2_port *port = netdev_priv(dev);
|
||||
|
||||
if (!port->phy_dev)
|
||||
if (!dev->phydev)
|
||||
return -ENODEV;
|
||||
return phy_ethtool_sset(port->phy_dev, cmd);
|
||||
return phy_ethtool_sset(dev->phydev, cmd);
|
||||
}
|
||||
|
||||
/* Set interrupt coalescing for ethtools */
|
||||
|
|
Loading…
Reference in New Issue