aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/mdio.c
diff options
context:
space:
mode:
authorAndrea Bastoni <bastoni@cs.unc.edu>2010-05-30 19:16:45 -0400
committerAndrea Bastoni <bastoni@cs.unc.edu>2010-05-30 19:16:45 -0400
commitada47b5fe13d89735805b566185f4885f5a3f750 (patch)
tree644b88f8a71896307d71438e9b3af49126ffb22b /drivers/net/mdio.c
parent43e98717ad40a4ae64545b5ba047c7b86aa44f4f (diff)
parent3280f21d43ee541f97f8cda5792150d2dbec20d5 (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.c12
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);