diff options
Diffstat (limited to 'drivers/net/smsc911x.c')
-rw-r--r-- | drivers/net/smsc911x.c | 24 |
1 files changed, 1 insertions, 23 deletions
diff --git a/drivers/net/smsc911x.c b/drivers/net/smsc911x.c index ae327166f978..fa28542b47d5 100644 --- a/drivers/net/smsc911x.c +++ b/drivers/net/smsc911x.c | |||
@@ -642,28 +642,6 @@ static int smsc911x_phy_loopbacktest(struct net_device *dev) | |||
642 | } | 642 | } |
643 | #endif /* USE_PHY_WORK_AROUND */ | 643 | #endif /* USE_PHY_WORK_AROUND */ |
644 | 644 | ||
645 | static u8 smsc95xx_resolve_flowctrl_fulldplx(u16 lcladv, u16 rmtadv) | ||
646 | { | ||
647 | u8 cap = 0; | ||
648 | |||
649 | if (lcladv & ADVERTISE_PAUSE_CAP) { | ||
650 | if (lcladv & ADVERTISE_PAUSE_ASYM) { | ||
651 | if (rmtadv & LPA_PAUSE_CAP) | ||
652 | cap = FLOW_CTRL_TX | FLOW_CTRL_RX; | ||
653 | else if (rmtadv & LPA_PAUSE_ASYM) | ||
654 | cap = FLOW_CTRL_RX; | ||
655 | } else { | ||
656 | if (rmtadv & LPA_PAUSE_CAP) | ||
657 | cap = FLOW_CTRL_TX | FLOW_CTRL_RX; | ||
658 | } | ||
659 | } else if (lcladv & ADVERTISE_PAUSE_ASYM) { | ||
660 | if ((rmtadv & LPA_PAUSE_CAP) && (rmtadv & LPA_PAUSE_ASYM)) | ||
661 | cap = FLOW_CTRL_TX; | ||
662 | } | ||
663 | |||
664 | return cap; | ||
665 | } | ||
666 | |||
667 | static void smsc911x_phy_update_flowcontrol(struct smsc911x_data *pdata) | 645 | static void smsc911x_phy_update_flowcontrol(struct smsc911x_data *pdata) |
668 | { | 646 | { |
669 | struct phy_device *phy_dev = pdata->phy_dev; | 647 | struct phy_device *phy_dev = pdata->phy_dev; |
@@ -674,7 +652,7 @@ static void smsc911x_phy_update_flowcontrol(struct smsc911x_data *pdata) | |||
674 | if (phy_dev->duplex == DUPLEX_FULL) { | 652 | if (phy_dev->duplex == DUPLEX_FULL) { |
675 | u16 lcladv = phy_read(phy_dev, MII_ADVERTISE); | 653 | u16 lcladv = phy_read(phy_dev, MII_ADVERTISE); |
676 | u16 rmtadv = phy_read(phy_dev, MII_LPA); | 654 | u16 rmtadv = phy_read(phy_dev, MII_LPA); |
677 | u8 cap = smsc95xx_resolve_flowctrl_fulldplx(lcladv, rmtadv); | 655 | u8 cap = mii_resolve_flowctrl_fdx(lcladv, rmtadv); |
678 | 656 | ||
679 | if (cap & FLOW_CTRL_RX) | 657 | if (cap & FLOW_CTRL_RX) |
680 | flow = 0xFFFF0002; | 658 | flow = 0xFFFF0002; |