aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/phy
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2014-03-05 20:32:02 -0500
committerDavid S. Miller <davem@davemloft.net>2014-03-05 20:32:02 -0500
commit67ddc87f162e2d0e29db2b6b21c5a3fbcb8be206 (patch)
treec83ac73e3d569156d4b7f3dab3e7e27e0054cd0d /drivers/net/phy
parent6092c79fd00ce48ee8698955ea6419cc5cd65641 (diff)
parentc3bebc71c4bcdafa24b506adf0c1de3c1f77e2e0 (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.c16
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) {