diff options
author | Matt Carlson <mcarlson@broadcom.com> | 2011-11-16 18:36:59 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-11-16 18:36:59 -0500 |
commit | 28011cf19b75df9d3f35489a7599a97ec0b3f1a0 (patch) | |
tree | cc058e15191db60adb45e426fc3d328e9d246b41 /drivers/net/ethernet/broadcom/bnx2.c | |
parent | f85fa279138489543206381883c8f67ef94aa912 (diff) |
net: Add ethtool to mii advertisment conversion helpers
Translating between ethtool advertisement settings and MII
advertisements are common operations for ethernet drivers. This patch
adds a set of helper functions that implements the conversion. The
patch then modifies a couple of the drivers to use the new functions.
Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom/bnx2.c')
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2.c b/drivers/net/ethernet/broadcom/bnx2.c index 7203f37d2ef3..6b7cd1e80ada 100644 --- a/drivers/net/ethernet/broadcom/bnx2.c +++ b/drivers/net/ethernet/broadcom/bnx2.c | |||
@@ -2064,21 +2064,12 @@ __acquires(&bp->phy_lock) | |||
2064 | bnx2_read_phy(bp, MII_CTRL1000, &adv1000_reg); | 2064 | bnx2_read_phy(bp, MII_CTRL1000, &adv1000_reg); |
2065 | adv1000_reg &= PHY_ALL_1000_SPEED; | 2065 | adv1000_reg &= PHY_ALL_1000_SPEED; |
2066 | 2066 | ||
2067 | if (bp->advertising & ADVERTISED_10baseT_Half) | 2067 | new_adv_reg = ethtool_adv_to_mii_100bt(bp->advertising); |
2068 | new_adv_reg |= ADVERTISE_10HALF; | ||
2069 | if (bp->advertising & ADVERTISED_10baseT_Full) | ||
2070 | new_adv_reg |= ADVERTISE_10FULL; | ||
2071 | if (bp->advertising & ADVERTISED_100baseT_Half) | ||
2072 | new_adv_reg |= ADVERTISE_100HALF; | ||
2073 | if (bp->advertising & ADVERTISED_100baseT_Full) | ||
2074 | new_adv_reg |= ADVERTISE_100FULL; | ||
2075 | if (bp->advertising & ADVERTISED_1000baseT_Full) | ||
2076 | new_adv1000_reg |= ADVERTISE_1000FULL; | ||
2077 | |||
2078 | new_adv_reg |= ADVERTISE_CSMA; | 2068 | new_adv_reg |= ADVERTISE_CSMA; |
2079 | |||
2080 | new_adv_reg |= bnx2_phy_get_pause_adv(bp); | 2069 | new_adv_reg |= bnx2_phy_get_pause_adv(bp); |
2081 | 2070 | ||
2071 | new_adv1000_reg |= ethtool_adv_to_mii_1000T(bp->advertising); | ||
2072 | |||
2082 | if ((adv1000_reg != new_adv1000_reg) || | 2073 | if ((adv1000_reg != new_adv1000_reg) || |
2083 | (adv_reg != new_adv_reg) || | 2074 | (adv_reg != new_adv_reg) || |
2084 | ((bmcr & BMCR_ANENABLE) == 0)) { | 2075 | ((bmcr & BMCR_ANENABLE) == 0)) { |