aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/e1000e/e1000.h
diff options
context:
space:
mode:
authorBruce Allan <bruce.w.allan@intel.com>2011-03-23 23:09:03 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2011-04-13 22:19:22 -0400
commit78cd29d5a92ae5067377ad42089f2c8781312f4a (patch)
treefb9845f2fdb6c28890478c7fa8fbcfec79e4543d /drivers/net/e1000e/e1000.h
parent2084b114e3fb0d84e5882f5ee6c7039be52da715 (diff)
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>
Diffstat (limited to 'drivers/net/e1000e/e1000.h')
-rw-r--r--drivers/net/e1000e/e1000.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/e1000e/e1000.h b/drivers/net/e1000e/e1000.h
index 500896e42206..3be5478dfdf1 100644
--- a/drivers/net/e1000e/e1000.h
+++ b/drivers/net/e1000e/e1000.h
@@ -458,6 +458,7 @@ struct e1000_info {
458#define FLAG2_HAS_PHY_STATS (1 << 4) 458#define FLAG2_HAS_PHY_STATS (1 << 4)
459#define FLAG2_HAS_EEE (1 << 5) 459#define FLAG2_HAS_EEE (1 << 5)
460#define FLAG2_DMA_BURST (1 << 6) 460#define FLAG2_DMA_BURST (1 << 6)
461#define FLAG2_DISABLE_ASPM_L0S (1 << 7)
461#define FLAG2_DISABLE_AIM (1 << 8) 462#define FLAG2_DISABLE_AIM (1 << 8)
462#define FLAG2_CHECK_PHY_HANG (1 << 9) 463#define FLAG2_CHECK_PHY_HANG (1 << 9)
463 464
@@ -504,7 +505,6 @@ extern void e1000e_set_interrupt_capability(struct e1000_adapter *adapter);
504extern void e1000e_reset_interrupt_capability(struct e1000_adapter *adapter); 505extern void e1000e_reset_interrupt_capability(struct e1000_adapter *adapter);
505extern void e1000e_get_hw_control(struct e1000_adapter *adapter); 506extern void e1000e_get_hw_control(struct e1000_adapter *adapter);
506extern void e1000e_release_hw_control(struct e1000_adapter *adapter); 507extern void e1000e_release_hw_control(struct e1000_adapter *adapter);
507extern void e1000e_disable_aspm(struct pci_dev *pdev, u16 state);
508 508
509extern unsigned int copybreak; 509extern unsigned int copybreak;
510 510