diff options
author | dave graham <david.graham@intel.com> | 2009-02-10 13:51:41 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-02-11 02:00:27 +0100 |
commit | 5df3f0eaf8b236cc785e2733a3df1e5c84e4aad8 (patch) | |
tree | 2a1839f02ef900c5bcbfd789c88839fed1f436fb /drivers/net/e1000e/82571.c | |
parent | e1000e: add aer support (diff) | |
download | linux-5df3f0eaf8b236cc785e2733a3df1e5c84e4aad8.tar.xz linux-5df3f0eaf8b236cc785e2733a3df1e5c84e4aad8.zip |
e1000e: Disable dynamic clock gating for 82571 per si errata.
82571 and 82572 Errata #13 documents that the Si feature DMA Dynamic
Clock Gating should be disabled, and identifies the workaround of
disabling the feature by EEPROM setting. EEPROM versions that do not
include the recommended workaround have been found in the field, and so
some customers remain at risk. Because the feature DMA Dynamic clock
Gating can be disabled by directly setting the appropriate bit in the
E1000_CTRL_EXT register, this patch overrides the EEPROM setting, and
force-disables the feature.
Signed-off-by: dave graham <david.graham@intel.com>
Acked-by: Bruce Allan <bruce.w.allan@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/82571.c')
-rw-r--r-- | drivers/net/e1000e/82571.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/e1000e/82571.c b/drivers/net/e1000e/82571.c index 0890162953e9..25f6bc94e69b 100644 --- a/drivers/net/e1000e/82571.c +++ b/drivers/net/e1000e/82571.c @@ -980,6 +980,18 @@ static void e1000_initialize_hw_bits_82571(struct e1000_hw *hw) reg |= E1000_PBA_ECC_CORR_EN; ew32(PBA_ECC, reg); } + /* + * Workaround for hardware errata. + * Ensure that DMA Dynamic Clock gating is disabled on 82571 and 82572 + */ + + if ((hw->mac.type == e1000_82571) || + (hw->mac.type == e1000_82572)) { + reg = er32(CTRL_EXT); + reg &= ~E1000_CTRL_EXT_DMA_DYN_CLK_EN; + ew32(CTRL_EXT, reg); + } + /* PCI-Ex Control Registers */ if (hw->mac.type == e1000_82574) { |