linux/drivers/net/e1000e
Bruce Allan 78cd29d5a9 e1000e: If ASPM L0s needs to be disabled, do it prior to enabling device
Based on a patch from Naga Chumbalkar <nagananda.chumbalkar@hp.com>:

If ASPM L0s needs to be disabled due to HW errata, do it prior to
"enabling" the device. This way if the kernel ever defaults its
aspm_policy to POLICY_POWERSAVE, then the e1000e driver will get a
chance to disable ASPM on the misbehaving device *prior* to calling
pci_enable_device_mem(). This will be useful in situations
where the BIOS indicates ASPM support on the server by clearing the
ACPI FADT "ASPM Controls" bit.

Note:
The kernel (2.6.38) currently uses the BIOS "default" as its aspm_policy.
However, Linux distros can diverge from that and set the default to
"powersave".

v2: o cleanup namespace pollution of e1000e_disable_aspm(),
    o fix type and initialization of the new aspm_disable_flag in a few
      functions, and
    o redefine FLAG2_DISABLE_ASPM_L0S to the first unused bit in
      adapter->flags2.

Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Cc: Naga Chumbalkar <nagananda.chumbalkar@hp.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2011-04-13 19:19:22 -07:00
..
82571.c e1000e: If ASPM L0s needs to be disabled, do it prior to enabling device 2011-04-13 19:19:22 -07:00
defines.h e1000e: disable jumbo frames on 82579 when MACsec enabled in EEPROM 2011-03-11 02:23:21 -08:00
e1000.h e1000e: If ASPM L0s needs to be disabled, do it prior to enabling device 2011-04-13 19:19:22 -07:00
es2lan.c e1000e: convert short duration msleep() to usleep_range() 2011-04-13 19:17:06 -07:00
ethtool.c e1000e: convert to new VLAN model 2011-04-13 19:17:50 -07:00
hw.h e1000e: magic number cleanup - ETH_ALEN 2011-03-11 01:52:40 -08:00
ich8lan.c e1000e: convert short duration msleep() to usleep_range() 2011-04-13 19:17:06 -07:00
lib.c e1000e: convert short duration msleep() to usleep_range() 2011-04-13 19:17:06 -07:00
Makefile e1000e: update Copyright for 2011 2011-01-14 02:04:01 -08:00
netdev.c e1000e: If ASPM L0s needs to be disabled, do it prior to enabling device 2011-04-13 19:19:22 -07:00
param.c e1000e: consistent use of Rx/Tx vs. RX/TX/rx/tx in comments/logs 2011-01-14 02:06:23 -08:00
phy.c e1000e: convert short duration msleep() to usleep_range() 2011-04-13 19:17:06 -07:00