diff options
author | Philippe Reynes <tremyfr@gmail.com> | 2016-05-16 10:52:36 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-05-16 22:16:32 -0400 |
commit | c1c511a275c9c0a14836c2071d37946df3862c25 (patch) | |
tree | 9f467c611626363480357e88ab2c47ebbdcdd1dd | |
parent | 92964c79b357efd980812c4de5c1fd2ec8bb5520 (diff) |
net: ethernet: fs-enet: 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>
5 files changed, 18 insertions, 26 deletions
diff --git a/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c b/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c index da90b5ad6e36..dc3700ca48d2 100644 --- a/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c +++ b/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c | |||
@@ -652,13 +652,13 @@ static void fs_timeout(struct net_device *dev) | |||
652 | spin_lock_irqsave(&fep->lock, flags); | 652 | spin_lock_irqsave(&fep->lock, flags); |
653 | 653 | ||
654 | if (dev->flags & IFF_UP) { | 654 | if (dev->flags & IFF_UP) { |
655 | phy_stop(fep->phydev); | 655 | phy_stop(dev->phydev); |
656 | (*fep->ops->stop)(dev); | 656 | (*fep->ops->stop)(dev); |
657 | (*fep->ops->restart)(dev); | 657 | (*fep->ops->restart)(dev); |
658 | phy_start(fep->phydev); | 658 | phy_start(dev->phydev); |
659 | } | 659 | } |
660 | 660 | ||
661 | phy_start(fep->phydev); | 661 | phy_start(dev->phydev); |
662 | wake = fep->tx_free && !(CBDR_SC(fep->cur_tx) & BD_ENET_TX_READY); | 662 | wake = fep->tx_free && !(CBDR_SC(fep->cur_tx) & BD_ENET_TX_READY); |
663 | spin_unlock_irqrestore(&fep->lock, flags); | 663 | spin_unlock_irqrestore(&fep->lock, flags); |
664 | 664 | ||
@@ -672,7 +672,7 @@ static void fs_timeout(struct net_device *dev) | |||
672 | static void generic_adjust_link(struct net_device *dev) | 672 | static void generic_adjust_link(struct net_device *dev) |
673 | { | 673 | { |
674 | struct fs_enet_private *fep = netdev_priv(dev); | 674 | struct fs_enet_private *fep = netdev_priv(dev); |
675 | struct phy_device *phydev = fep->phydev; | 675 | struct phy_device *phydev = dev->phydev; |
676 | int new_state = 0; | 676 | int new_state = 0; |
677 | 677 | ||
678 | if (phydev->link) { | 678 | if (phydev->link) { |
@@ -741,8 +741,6 @@ static int fs_init_phy(struct net_device *dev) | |||
741 | return -ENODEV; | 741 | return -ENODEV; |
742 | } | 742 | } |
743 | 743 | ||
744 | fep->phydev = phydev; | ||
745 | |||
746 | return 0; | 744 | return 0; |
747 | } | 745 | } |
748 | 746 | ||
@@ -776,7 +774,7 @@ static int fs_enet_open(struct net_device *dev) | |||
776 | napi_disable(&fep->napi_tx); | 774 | napi_disable(&fep->napi_tx); |
777 | return err; | 775 | return err; |
778 | } | 776 | } |
779 | phy_start(fep->phydev); | 777 | phy_start(dev->phydev); |
780 | 778 | ||
781 | netif_start_queue(dev); | 779 | netif_start_queue(dev); |
782 | 780 | ||
@@ -792,7 +790,7 @@ static int fs_enet_close(struct net_device *dev) | |||
792 | netif_carrier_off(dev); | 790 | netif_carrier_off(dev); |
793 | napi_disable(&fep->napi); | 791 | napi_disable(&fep->napi); |
794 | napi_disable(&fep->napi_tx); | 792 | napi_disable(&fep->napi_tx); |
795 | phy_stop(fep->phydev); | 793 | phy_stop(dev->phydev); |
796 | 794 | ||
797 | spin_lock_irqsave(&fep->lock, flags); | 795 | spin_lock_irqsave(&fep->lock, flags); |
798 | spin_lock(&fep->tx_lock); | 796 | spin_lock(&fep->tx_lock); |
@@ -801,8 +799,7 @@ static int fs_enet_close(struct net_device *dev) | |||
801 | spin_unlock_irqrestore(&fep->lock, flags); | 799 | spin_unlock_irqrestore(&fep->lock, flags); |
802 | 800 | ||
803 | /* release any irqs */ | 801 | /* release any irqs */ |
804 | phy_disconnect(fep->phydev); | 802 | phy_disconnect(dev->phydev); |
805 | fep->phydev = NULL; | ||
806 | free_irq(fep->interrupt, dev); | 803 | free_irq(fep->interrupt, dev); |
807 | 804 | ||
808 | return 0; | 805 | return 0; |
@@ -850,10 +847,9 @@ static void fs_get_regs(struct net_device *dev, struct ethtool_regs *regs, | |||
850 | static int fs_get_ksettings(struct net_device *dev, | 847 | static int fs_get_ksettings(struct net_device *dev, |
851 | struct ethtool_link_ksettings *cmd) | 848 | struct ethtool_link_ksettings *cmd) |
852 | { | 849 | { |
853 | struct fs_enet_private *fep = netdev_priv(dev); | 850 | struct phy_device *phydev = dev->phydev; |
854 | struct phy_device *phydev = fep->phydev; | ||
855 | 851 | ||
856 | if (!fep->phydev) | 852 | if (!phydev) |
857 | return -ENODEV; | 853 | return -ENODEV; |
858 | 854 | ||
859 | return phy_ethtool_ksettings_get(phydev, cmd); | 855 | return phy_ethtool_ksettings_get(phydev, cmd); |
@@ -862,10 +858,9 @@ static int fs_get_ksettings(struct net_device *dev, | |||
862 | static int fs_set_ksettings(struct net_device *dev, | 858 | static int fs_set_ksettings(struct net_device *dev, |
863 | const struct ethtool_link_ksettings *cmd) | 859 | const struct ethtool_link_ksettings *cmd) |
864 | { | 860 | { |
865 | struct fs_enet_private *fep = netdev_priv(dev); | 861 | struct phy_device *phydev = dev->phydev; |
866 | struct phy_device *phydev = fep->phydev; | ||
867 | 862 | ||
868 | if (!fep->phydev) | 863 | if (!phydev) |
869 | return -ENODEV; | 864 | return -ENODEV; |
870 | 865 | ||
871 | return phy_ethtool_ksettings_set(phydev, cmd); | 866 | return phy_ethtool_ksettings_set(phydev, cmd); |
@@ -903,12 +898,10 @@ static const struct ethtool_ops fs_ethtool_ops = { | |||
903 | 898 | ||
904 | static int fs_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | 899 | static int fs_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) |
905 | { | 900 | { |
906 | struct fs_enet_private *fep = netdev_priv(dev); | ||
907 | |||
908 | if (!netif_running(dev)) | 901 | if (!netif_running(dev)) |
909 | return -EINVAL; | 902 | return -EINVAL; |
910 | 903 | ||
911 | return phy_mii_ioctl(fep->phydev, rq, cmd); | 904 | return phy_mii_ioctl(dev->phydev, rq, cmd); |
912 | } | 905 | } |
913 | 906 | ||
914 | extern int fs_mii_connect(struct net_device *dev); | 907 | extern int fs_mii_connect(struct net_device *dev); |
diff --git a/drivers/net/ethernet/freescale/fs_enet/fs_enet.h b/drivers/net/ethernet/freescale/fs_enet/fs_enet.h index f184d8f952e2..e29f54a35210 100644 --- a/drivers/net/ethernet/freescale/fs_enet/fs_enet.h +++ b/drivers/net/ethernet/freescale/fs_enet/fs_enet.h | |||
@@ -149,7 +149,6 @@ struct fs_enet_private { | |||
149 | unsigned int last_mii_status; | 149 | unsigned int last_mii_status; |
150 | int interrupt; | 150 | int interrupt; |
151 | 151 | ||
152 | struct phy_device *phydev; | ||
153 | int oldduplex, oldspeed, oldlink; /* current settings */ | 152 | int oldduplex, oldspeed, oldlink; /* current settings */ |
154 | 153 | ||
155 | /* event masks */ | 154 | /* event masks */ |
diff --git a/drivers/net/ethernet/freescale/fs_enet/mac-fcc.c b/drivers/net/ethernet/freescale/fs_enet/mac-fcc.c index 1ba359f17ec6..d71761a34022 100644 --- a/drivers/net/ethernet/freescale/fs_enet/mac-fcc.c +++ b/drivers/net/ethernet/freescale/fs_enet/mac-fcc.c | |||
@@ -370,7 +370,7 @@ static void restart(struct net_device *dev) | |||
370 | 370 | ||
371 | /* adjust to speed (for RMII mode) */ | 371 | /* adjust to speed (for RMII mode) */ |
372 | if (fpi->use_rmii) { | 372 | if (fpi->use_rmii) { |
373 | if (fep->phydev->speed == 100) | 373 | if (dev->phydev->speed == 100) |
374 | C8(fcccp, fcc_gfemr, 0x20); | 374 | C8(fcccp, fcc_gfemr, 0x20); |
375 | else | 375 | else |
376 | S8(fcccp, fcc_gfemr, 0x20); | 376 | S8(fcccp, fcc_gfemr, 0x20); |
@@ -396,7 +396,7 @@ static void restart(struct net_device *dev) | |||
396 | S32(fccp, fcc_fpsmr, FCC_PSMR_RMII); | 396 | S32(fccp, fcc_fpsmr, FCC_PSMR_RMII); |
397 | 397 | ||
398 | /* adjust to duplex mode */ | 398 | /* adjust to duplex mode */ |
399 | if (fep->phydev->duplex) | 399 | if (dev->phydev->duplex) |
400 | S32(fccp, fcc_fpsmr, FCC_PSMR_FDE | FCC_PSMR_LPB); | 400 | S32(fccp, fcc_fpsmr, FCC_PSMR_FDE | FCC_PSMR_LPB); |
401 | else | 401 | else |
402 | C32(fccp, fcc_fpsmr, FCC_PSMR_FDE | FCC_PSMR_LPB); | 402 | C32(fccp, fcc_fpsmr, FCC_PSMR_FDE | FCC_PSMR_LPB); |
diff --git a/drivers/net/ethernet/freescale/fs_enet/mac-fec.c b/drivers/net/ethernet/freescale/fs_enet/mac-fec.c index bade2f8f9b5c..35a318ed3a62 100644 --- a/drivers/net/ethernet/freescale/fs_enet/mac-fec.c +++ b/drivers/net/ethernet/freescale/fs_enet/mac-fec.c | |||
@@ -254,7 +254,7 @@ static void restart(struct net_device *dev) | |||
254 | int r; | 254 | int r; |
255 | u32 addrhi, addrlo; | 255 | u32 addrhi, addrlo; |
256 | 256 | ||
257 | struct mii_bus *mii = fep->phydev->mdio.bus; | 257 | struct mii_bus *mii = dev->phydev->mdio.bus; |
258 | struct fec_info* fec_inf = mii->priv; | 258 | struct fec_info* fec_inf = mii->priv; |
259 | 259 | ||
260 | r = whack_reset(fep->fec.fecp); | 260 | r = whack_reset(fep->fec.fecp); |
@@ -333,7 +333,7 @@ static void restart(struct net_device *dev) | |||
333 | /* | 333 | /* |
334 | * adjust to duplex mode | 334 | * adjust to duplex mode |
335 | */ | 335 | */ |
336 | if (fep->phydev->duplex) { | 336 | if (dev->phydev->duplex) { |
337 | FC(fecp, r_cntrl, FEC_RCNTRL_DRT); | 337 | FC(fecp, r_cntrl, FEC_RCNTRL_DRT); |
338 | FS(fecp, x_cntrl, FEC_TCNTRL_FDEN); /* FD enable */ | 338 | FS(fecp, x_cntrl, FEC_TCNTRL_FDEN); /* FD enable */ |
339 | } else { | 339 | } else { |
@@ -363,7 +363,7 @@ static void stop(struct net_device *dev) | |||
363 | const struct fs_platform_info *fpi = fep->fpi; | 363 | const struct fs_platform_info *fpi = fep->fpi; |
364 | struct fec __iomem *fecp = fep->fec.fecp; | 364 | struct fec __iomem *fecp = fep->fec.fecp; |
365 | 365 | ||
366 | struct fec_info *feci = fep->phydev->mdio.bus->priv; | 366 | struct fec_info *feci = dev->phydev->mdio.bus->priv; |
367 | 367 | ||
368 | int i; | 368 | int i; |
369 | 369 | ||
diff --git a/drivers/net/ethernet/freescale/fs_enet/mac-scc.c b/drivers/net/ethernet/freescale/fs_enet/mac-scc.c index 7a184e8816a4..e8b9c33d35b4 100644 --- a/drivers/net/ethernet/freescale/fs_enet/mac-scc.c +++ b/drivers/net/ethernet/freescale/fs_enet/mac-scc.c | |||
@@ -352,7 +352,7 @@ static void restart(struct net_device *dev) | |||
352 | W16(sccp, scc_psmr, SCC_PSMR_ENCRC | SCC_PSMR_NIB22); | 352 | W16(sccp, scc_psmr, SCC_PSMR_ENCRC | SCC_PSMR_NIB22); |
353 | 353 | ||
354 | /* Set full duplex mode if needed */ | 354 | /* Set full duplex mode if needed */ |
355 | if (fep->phydev->duplex) | 355 | if (dev->phydev->duplex) |
356 | S16(sccp, scc_psmr, SCC_PSMR_LPB | SCC_PSMR_FDE); | 356 | S16(sccp, scc_psmr, SCC_PSMR_LPB | SCC_PSMR_FDE); |
357 | 357 | ||
358 | /* Restore multicast and promiscuous settings */ | 358 | /* Restore multicast and promiscuous settings */ |