diff options
author | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2006-03-02 21:21:24 -0500 |
---|---|---|
committer | root <root@jk-desktop.jf.intel.com> | 2006-03-02 21:21:24 -0500 |
commit | 8704163987882f8b989e8143ad1f87c6b7229a13 (patch) | |
tree | 24e16b012722402cedba6f9fbc10dcda4a5eef20 /drivers/net/e1000/e1000_ethtool.c | |
parent | 6418ecc68e1d9416451b6f78ebb2c0b077e0abf2 (diff) |
e1000: Fixed the following issues with ESB2 (requires ESB2 support):
- Add restriction for ESB2 to MTU size <=9216
- Removed FIFO errors which were not being used
- Fixed issues with loopback
- Power management change for saving state and config space
- WA to disable recieves and reset device on link loss. Reset needed to be done outside the interrupt context - modified existing tx_timeout_task
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: John Ronciak <john.ronciak@intel.com>
Diffstat (limited to 'drivers/net/e1000/e1000_ethtool.c')
-rw-r--r-- | drivers/net/e1000/e1000_ethtool.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/e1000/e1000_ethtool.c b/drivers/net/e1000/e1000_ethtool.c index 0d6a16c5f8cd..44d39f1d8298 100644 --- a/drivers/net/e1000/e1000_ethtool.c +++ b/drivers/net/e1000/e1000_ethtool.c | |||
@@ -67,7 +67,6 @@ static const struct e1000_stats e1000_gstrings_stats[] = { | |||
67 | { "rx_over_errors", E1000_STAT(net_stats.rx_over_errors) }, | 67 | { "rx_over_errors", E1000_STAT(net_stats.rx_over_errors) }, |
68 | { "rx_crc_errors", E1000_STAT(net_stats.rx_crc_errors) }, | 68 | { "rx_crc_errors", E1000_STAT(net_stats.rx_crc_errors) }, |
69 | { "rx_frame_errors", E1000_STAT(net_stats.rx_frame_errors) }, | 69 | { "rx_frame_errors", E1000_STAT(net_stats.rx_frame_errors) }, |
70 | { "rx_fifo_errors", E1000_STAT(net_stats.rx_fifo_errors) }, | ||
71 | { "rx_no_buffer_count", E1000_STAT(stats.rnbc) }, | 70 | { "rx_no_buffer_count", E1000_STAT(stats.rnbc) }, |
72 | { "rx_missed_errors", E1000_STAT(net_stats.rx_missed_errors) }, | 71 | { "rx_missed_errors", E1000_STAT(net_stats.rx_missed_errors) }, |
73 | { "tx_aborted_errors", E1000_STAT(net_stats.tx_aborted_errors) }, | 72 | { "tx_aborted_errors", E1000_STAT(net_stats.tx_aborted_errors) }, |
@@ -1253,6 +1252,10 @@ e1000_integrated_phy_loopback(struct e1000_adapter *adapter) | |||
1253 | e1000_write_phy_reg(&adapter->hw, PHY_CTRL, 0x9140); | 1252 | e1000_write_phy_reg(&adapter->hw, PHY_CTRL, 0x9140); |
1254 | /* autoneg off */ | 1253 | /* autoneg off */ |
1255 | e1000_write_phy_reg(&adapter->hw, PHY_CTRL, 0x8140); | 1254 | e1000_write_phy_reg(&adapter->hw, PHY_CTRL, 0x8140); |
1255 | } else if (adapter->hw.phy_type == e1000_phy_gg82563) { | ||
1256 | e1000_write_phy_reg(&adapter->hw, | ||
1257 | GG82563_PHY_KMRN_MODE_CTRL, | ||
1258 | 0x1CE); | ||
1256 | } | 1259 | } |
1257 | /* force 1000, set loopback */ | 1260 | /* force 1000, set loopback */ |
1258 | e1000_write_phy_reg(&adapter->hw, PHY_CTRL, 0x4140); | 1261 | e1000_write_phy_reg(&adapter->hw, PHY_CTRL, 0x4140); |
@@ -1403,6 +1406,11 @@ e1000_loopback_cleanup(struct e1000_adapter *adapter) | |||
1403 | case e1000_82546_rev_3: | 1406 | case e1000_82546_rev_3: |
1404 | default: | 1407 | default: |
1405 | hw->autoneg = TRUE; | 1408 | hw->autoneg = TRUE; |
1409 | if (hw->phy_type == e1000_phy_gg82563) { | ||
1410 | e1000_write_phy_reg(hw, | ||
1411 | GG82563_PHY_KMRN_MODE_CTRL, | ||
1412 | 0x180); | ||
1413 | } | ||
1406 | e1000_read_phy_reg(hw, PHY_CTRL, &phy_reg); | 1414 | e1000_read_phy_reg(hw, PHY_CTRL, &phy_reg); |
1407 | if (phy_reg & MII_CR_LOOPBACK) { | 1415 | if (phy_reg & MII_CR_LOOPBACK) { |
1408 | phy_reg &= ~MII_CR_LOOPBACK; | 1416 | phy_reg &= ~MII_CR_LOOPBACK; |