linux/drivers/pci
Shaohua Li 6c723d5bd8 PCI: PCIE ASPM support
PCI Express ASPM defines a protocol for PCI Express components in the D0
state to reduce Link power by placing their Links into a low power state
and instructing the other end of the Link to do likewise. This
capability allows hardware-autonomous, dynamic Link power reduction
beyond what is achievable by software-only controlled power management.
However, The device should be configured by software appropriately.
Enabling ASPM will save power, but will introduce device latency.

This patch adds ASPM support in Linux. It introduces a global policy for
ASPM, a sysfs file /sys/module/pcie_aspm/parameters/policy can control
it. The interface can be used as a boot option too. Currently we have
below setting:
        -default, BIOS default setting
        -powersave, highest power saving mode, enable all available ASPM
state
and clock power management
        -performance, highest performance, disable ASPM and clock power
management
By default, the 'default' policy is used currently.

In my test, power difference between powersave mode and performance mode
is about 1.3w in a system with 3 PCIE links.

Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-02-01 15:04:30 -08:00
..
hotplug PCI: Fix fakephp deadlock 2008-02-01 15:04:30 -08:00
pcie PCI: PCIE ASPM support 2008-02-01 15:04:30 -08:00
.gitignore Add some basic .gitignore files 2005-10-18 08:26:15 -07:00
access.c [PATCH] severing module.h->sched.h 2006-12-04 02:00:22 -05:00
bus.c PCI: drivers/pci/: remove unused exports 2008-02-01 15:04:18 -08:00
dmar.c PCI: More Sanity checks for DMAR 2008-02-01 15:04:21 -08:00
hotplug.c Driver core: change add_uevent_var to use a struct 2007-10-12 14:51:01 -07:00
htirq.c PCI: Use pci_find_ht_capability() in drivers/pci/htirq.c 2006-12-20 10:54:42 -08:00
intel-iommu.c PCI: Spelling fixes 2008-02-01 15:04:26 -08:00
intel-iommu.h intel-iommu fixes 2007-10-29 07:41:32 -07:00
iova.c intel-iommu: optimize sg map/unmap calls 2007-10-22 08:13:19 -07:00
iova.h intel-iommu: optimize sg map/unmap calls 2007-10-22 08:13:19 -07:00
Kconfig PCI: Add Kconfig option to disable deprecated pci_find_* API 2007-11-05 13:35:17 -08:00
Makefile [POWERPC] Always build setup-bus.c on powerpc 2008-01-27 14:07:37 -06:00
msi.c PCI: drivers/pci/msi.c: move arch hooks to the top 2008-02-01 15:04:25 -08:00
msi.h PCI: Make some MSI-X #defines generic 2006-12-01 14:36:56 -08:00
pci-acpi.c PCI ACPI: Added a function to register _OSC with only PCIe devices. 2008-02-01 15:04:29 -08:00
pci-driver.c PCI: Mem Policy: fix mempolicy usage in pci driver 2008-02-01 15:04:20 -08:00
pci-sysfs.c PCI: PCIE ASPM support 2008-02-01 15:04:30 -08:00
pci.c PCI: PCIE ASPM support 2008-02-01 15:04:30 -08:00
pci.h PCI: export pci_restore_msi_state() 2008-02-01 15:04:22 -08:00
probe.c PCI: PCIE ASPM support 2008-02-01 15:04:30 -08:00
proc.c PCI: constify function pointer tables 2008-02-01 15:04:29 -08:00
quirks.c PCI: modify SB700 SATA MSI quirk 2008-02-01 15:04:30 -08:00
remove.c PCI: PCIE ASPM support 2008-02-01 15:04:30 -08:00
rom.c PCI: drivers/pci/rom.c: #if 0 two functions 2008-02-01 15:04:18 -08:00
search.c PCI: Add Kconfig option to disable deprecated pci_find_* API 2007-11-05 13:35:17 -08:00
setup-bus.c PCI: Fix bus resource assignment on 32 bits with 64b resources 2008-02-01 15:04:25 -08:00
setup-irq.c kobjects: fix up improper use of the kobject name field 2007-10-12 14:51:02 -07:00
setup-res.c PCI: Fix warning in setup-res.c on 32-bit platforms with 64-bit resources 2008-02-01 15:04:25 -08:00
syscall.c PCI: remove unneeded lock_kernel() in drivers/pci/syscall.c. 2008-02-01 15:04:21 -08:00