diff options
author | David S. Miller <davem@davemloft.net> | 2014-03-05 20:32:02 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-03-05 20:32:02 -0500 |
commit | 67ddc87f162e2d0e29db2b6b21c5a3fbcb8be206 (patch) | |
tree | c83ac73e3d569156d4b7f3dab3e7e27e0054cd0d /drivers/net/phy | |
parent | 6092c79fd00ce48ee8698955ea6419cc5cd65641 (diff) | |
parent | c3bebc71c4bcdafa24b506adf0c1de3c1f77e2e0 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
drivers/net/wireless/ath/ath9k/recv.c
drivers/net/wireless/mwifiex/pcie.c
net/ipv6/sit.c
The SIT driver conflict consists of a bug fix being done by hand
in 'net' (missing u64_stats_init()) whilst in 'net-next' a helper
was created (netdev_alloc_pcpu_stats()) which takes care of this.
The two wireless conflicts were overlapping changes.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/phy')
-rw-r--r-- | drivers/net/phy/phy_device.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index a70b604ac644..a2fbb3e1db9a 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c | |||
@@ -933,6 +933,8 @@ int genphy_read_status(struct phy_device *phydev) | |||
933 | int err; | 933 | int err; |
934 | int lpa; | 934 | int lpa; |
935 | int lpagb = 0; | 935 | int lpagb = 0; |
936 | int common_adv; | ||
937 | int common_adv_gb = 0; | ||
936 | 938 | ||
937 | /* Update the link, but return if there was an error */ | 939 | /* Update the link, but return if there was an error */ |
938 | err = genphy_update_link(phydev); | 940 | err = genphy_update_link(phydev); |
@@ -954,7 +956,7 @@ int genphy_read_status(struct phy_device *phydev) | |||
954 | 956 | ||
955 | phydev->lp_advertising = | 957 | phydev->lp_advertising = |
956 | mii_stat1000_to_ethtool_lpa_t(lpagb); | 958 | mii_stat1000_to_ethtool_lpa_t(lpagb); |
957 | lpagb &= adv << 2; | 959 | common_adv_gb = lpagb & adv << 2; |
958 | } | 960 | } |
959 | 961 | ||
960 | lpa = phy_read(phydev, MII_LPA); | 962 | lpa = phy_read(phydev, MII_LPA); |
@@ -967,25 +969,25 @@ int genphy_read_status(struct phy_device *phydev) | |||
967 | if (adv < 0) | 969 | if (adv < 0) |
968 | return adv; | 970 | return adv; |
969 | 971 | ||
970 | lpa &= adv; | 972 | common_adv = lpa & adv; |
971 | 973 | ||
972 | phydev->speed = SPEED_10; | 974 | phydev->speed = SPEED_10; |
973 | phydev->duplex = DUPLEX_HALF; | 975 | phydev->duplex = DUPLEX_HALF; |
974 | phydev->pause = 0; | 976 | phydev->pause = 0; |
975 | phydev->asym_pause = 0; | 977 | phydev->asym_pause = 0; |
976 | 978 | ||
977 | if (lpagb & (LPA_1000FULL | LPA_1000HALF)) { | 979 | if (common_adv_gb & (LPA_1000FULL | LPA_1000HALF)) { |
978 | phydev->speed = SPEED_1000; | 980 | phydev->speed = SPEED_1000; |
979 | 981 | ||
980 | if (lpagb & LPA_1000FULL) | 982 | if (common_adv_gb & LPA_1000FULL) |
981 | phydev->duplex = DUPLEX_FULL; | 983 | phydev->duplex = DUPLEX_FULL; |
982 | } else if (lpa & (LPA_100FULL | LPA_100HALF)) { | 984 | } else if (common_adv & (LPA_100FULL | LPA_100HALF)) { |
983 | phydev->speed = SPEED_100; | 985 | phydev->speed = SPEED_100; |
984 | 986 | ||
985 | if (lpa & LPA_100FULL) | 987 | if (common_adv & LPA_100FULL) |
986 | phydev->duplex = DUPLEX_FULL; | 988 | phydev->duplex = DUPLEX_FULL; |
987 | } else | 989 | } else |
988 | if (lpa & LPA_10FULL) | 990 | if (common_adv & LPA_10FULL) |
989 | phydev->duplex = DUPLEX_FULL; | 991 | phydev->duplex = DUPLEX_FULL; |
990 | 992 | ||
991 | if (phydev->duplex == DUPLEX_FULL) { | 993 | if (phydev->duplex == DUPLEX_FULL) { |