diff options
author | Bruce Allan <bruce.w.allan@intel.com> | 2010-06-16 09:27:28 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-06-19 01:12:16 -0400 |
commit | d3738bb8203acf8552c3ec8b3447133fc0938ddd (patch) | |
tree | c466411e6dce52ca422ad524ace68301c6b0d169 /drivers/net/e1000e/ethtool.c | |
parent | eb7700dc0344564b0b9857d1f5e331a0dd629e92 (diff) |
e1000e: initial support for 82579 LOMs
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/e1000e/ethtool.c')
-rw-r--r-- | drivers/net/e1000e/ethtool.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/net/e1000e/ethtool.c b/drivers/net/e1000e/ethtool.c index 86c6a26c0a39..312c704aec34 100644 --- a/drivers/net/e1000e/ethtool.c +++ b/drivers/net/e1000e/ethtool.c | |||
@@ -880,6 +880,7 @@ static int e1000_reg_test(struct e1000_adapter *adapter, u64 *data) | |||
880 | switch (mac->type) { | 880 | switch (mac->type) { |
881 | case e1000_ich10lan: | 881 | case e1000_ich10lan: |
882 | case e1000_pchlan: | 882 | case e1000_pchlan: |
883 | case e1000_pch2lan: | ||
883 | mask |= (1 << 18); | 884 | mask |= (1 << 18); |
884 | break; | 885 | break; |
885 | default: | 886 | default: |
@@ -1321,6 +1322,17 @@ static int e1000_integrated_phy_loopback(struct e1000_adapter *adapter) | |||
1321 | /* Workaround: K1 must be disabled for stable 1Gbps operation */ | 1322 | /* Workaround: K1 must be disabled for stable 1Gbps operation */ |
1322 | e1000_configure_k1_ich8lan(hw, false); | 1323 | e1000_configure_k1_ich8lan(hw, false); |
1323 | break; | 1324 | break; |
1325 | case e1000_phy_82579: | ||
1326 | /* Disable PHY energy detect power down */ | ||
1327 | e1e_rphy(hw, PHY_REG(0, 21), &phy_reg); | ||
1328 | e1e_wphy(hw, PHY_REG(0, 21), phy_reg & ~(1 << 3)); | ||
1329 | /* Disable full chip energy detect */ | ||
1330 | e1e_rphy(hw, PHY_REG(776, 18), &phy_reg); | ||
1331 | e1e_wphy(hw, PHY_REG(776, 18), phy_reg | 1); | ||
1332 | /* Enable loopback on the PHY */ | ||
1333 | #define I82577_PHY_LBK_CTRL 19 | ||
1334 | e1e_wphy(hw, I82577_PHY_LBK_CTRL, 0x8001); | ||
1335 | break; | ||
1324 | default: | 1336 | default: |
1325 | break; | 1337 | break; |
1326 | } | 1338 | } |
@@ -1878,6 +1890,7 @@ static int e1000_phys_id(struct net_device *netdev, u32 data) | |||
1878 | 1890 | ||
1879 | if ((hw->phy.type == e1000_phy_ife) || | 1891 | if ((hw->phy.type == e1000_phy_ife) || |
1880 | (hw->mac.type == e1000_pchlan) || | 1892 | (hw->mac.type == e1000_pchlan) || |
1893 | (hw->mac.type == e1000_pch2lan) || | ||
1881 | (hw->mac.type == e1000_82583) || | 1894 | (hw->mac.type == e1000_82583) || |
1882 | (hw->mac.type == e1000_82574)) { | 1895 | (hw->mac.type == e1000_82574)) { |
1883 | INIT_WORK(&adapter->led_blink_task, e1000e_led_blink_task); | 1896 | INIT_WORK(&adapter->led_blink_task, e1000e_led_blink_task); |