diff options
author | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
---|---|---|
committer | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
commit | ada47b5fe13d89735805b566185f4885f5a3f750 (patch) | |
tree | 644b88f8a71896307d71438e9b3af49126ffb22b /drivers/net/mdio.c | |
parent | 43e98717ad40a4ae64545b5ba047c7b86aa44f4f (diff) | |
parent | 3280f21d43ee541f97f8cda5792150d2dbec20d5 (diff) |
Merge branch 'wip-2.6.34' into old-private-masterarchived-private-master
Diffstat (limited to 'drivers/net/mdio.c')
-rw-r--r-- | drivers/net/mdio.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/net/mdio.c b/drivers/net/mdio.c index 21f8754fcf4c..e85bf04cf813 100644 --- a/drivers/net/mdio.c +++ b/drivers/net/mdio.c | |||
@@ -162,6 +162,10 @@ static u32 mdio45_get_an(const struct mdio_if_info *mdio, u16 addr) | |||
162 | result |= ADVERTISED_100baseT_Half; | 162 | result |= ADVERTISED_100baseT_Half; |
163 | if (reg & ADVERTISE_100FULL) | 163 | if (reg & ADVERTISE_100FULL) |
164 | result |= ADVERTISED_100baseT_Full; | 164 | result |= ADVERTISED_100baseT_Full; |
165 | if (reg & ADVERTISE_PAUSE_CAP) | ||
166 | result |= ADVERTISED_Pause; | ||
167 | if (reg & ADVERTISE_PAUSE_ASYM) | ||
168 | result |= ADVERTISED_Asym_Pause; | ||
165 | return result; | 169 | return result; |
166 | } | 170 | } |
167 | 171 | ||
@@ -344,11 +348,9 @@ void mdio45_ethtool_spauseparam_an(const struct mdio_if_info *mdio, | |||
344 | 348 | ||
345 | old_adv = mdio->mdio_read(mdio->dev, mdio->prtad, MDIO_MMD_AN, | 349 | old_adv = mdio->mdio_read(mdio->dev, mdio->prtad, MDIO_MMD_AN, |
346 | MDIO_AN_ADVERTISE); | 350 | MDIO_AN_ADVERTISE); |
347 | adv = old_adv & ~(ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM); | 351 | adv = ((old_adv & ~(ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM)) | |
348 | if (ecmd->autoneg) | 352 | mii_advertise_flowctrl((ecmd->rx_pause ? FLOW_CTRL_RX : 0) | |
349 | adv |= mii_advertise_flowctrl( | 353 | (ecmd->tx_pause ? FLOW_CTRL_TX : 0))); |
350 | (ecmd->rx_pause ? FLOW_CTRL_RX : 0) | | ||
351 | (ecmd->tx_pause ? FLOW_CTRL_TX : 0)); | ||
352 | if (adv != old_adv) { | 354 | if (adv != old_adv) { |
353 | mdio->mdio_write(mdio->dev, mdio->prtad, MDIO_MMD_AN, | 355 | mdio->mdio_write(mdio->dev, mdio->prtad, MDIO_MMD_AN, |
354 | MDIO_AN_ADVERTISE, adv); | 356 | MDIO_AN_ADVERTISE, adv); |