diff options
author | Auke Kok <auke-jan.h.kok@intel.com> | 2007-10-31 18:22:00 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 18:03:43 -0500 |
commit | 1eae4eb2a1c784bf35ee4f8f158cd21cf8c387c1 (patch) | |
tree | 4e9de1ad1d24b201647376a21862a110e462c831 /drivers/net/e1000e/param.c | |
parent | 93ca161027eb6a1761fb674ad7b995aedccf5f6e (diff) |
e1000e: Disable L1 ASPM power savings for 82573 mobile variants
L1 ASPM link (pci-e link power savings) has significant benefits
(~1W savings when link is active) but unfortunately does not work
correctly on any of the chipsets that have 82573 on mobile platforms
which causes various nuisances:
- eeprom reads return garbage information leading to bad eeprom
checksums
- long ping times (up to 2 seconds)
- complete system hangs (freeze/lockup)
A lot of T60 owners have been plagued by this, but other mobile
solutions also suffer from these symptoms.
Disabling L1 ASPM before we activate the PCI-E link fixes all of
these issues at the cost of some power consumption.
Remove a workaround RDTR adjustment that is no longer needed with
this new one.
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/e1000e/param.c')
-rw-r--r-- | drivers/net/e1000e/param.c | 7 |
1 files changed, 0 insertions, 7 deletions
diff --git a/drivers/net/e1000e/param.c b/drivers/net/e1000e/param.c index 332789238b9c..df266c32ac4b 100644 --- a/drivers/net/e1000e/param.c +++ b/drivers/net/e1000e/param.c | |||
@@ -262,13 +262,6 @@ void __devinit e1000e_check_options(struct e1000_adapter *adapter) | |||
262 | .max = MAX_RXDELAY } } | 262 | .max = MAX_RXDELAY } } |
263 | }; | 263 | }; |
264 | 264 | ||
265 | /* modify min and default if 82573 for slow ping w/a, | ||
266 | * a value greater than 8 needs to be set for RDTR */ | ||
267 | if (adapter->flags & FLAG_HAS_ASPM) { | ||
268 | opt.def = 32; | ||
269 | opt.arg.r.min = 8; | ||
270 | } | ||
271 | |||
272 | if (num_RxIntDelay > bd) { | 265 | if (num_RxIntDelay > bd) { |
273 | adapter->rx_int_delay = RxIntDelay[bd]; | 266 | adapter->rx_int_delay = RxIntDelay[bd]; |
274 | e1000_validate_option(&adapter->rx_int_delay, &opt, | 267 | e1000_validate_option(&adapter->rx_int_delay, &opt, |