linux/drivers/acpi
Matthew Garrett 852972acff ACPI: Disable ASPM if the platform won't provide _OSC control for PCIe
The PCI SIG documentation for the _OSC OS/firmware handshaking interface
states:

"If the _OSC control method is absent from the scope of a host bridge
device, then the operating system must not enable or attempt to use any
features defined in this section for the hierarchy originated by the host
bridge."

The obvious interpretation of this is that the OS should not attempt to use
PCIe hotplug, PME or AER - however, the specification also notes that an
_OSC method is *required* for PCIe hierarchies, and experimental validation
with An Alternative OS indicates that it doesn't use any PCIe functionality
if the _OSC method is missing. That arguably means we shouldn't be using
MSI or extended config space, but right now our problems seem to be limited
to vendors being surprised when ASPM gets enabled on machines when other
OSs refuse to do so. So, for now, let's just disable ASPM if the _OSC
method doesn't exist or refuses to hand over PCIe capability control.

Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-07-30 09:29:17 -07:00
..
acpica ACPI: handle systems which asynchoronously enable ACPI mode 2010-06-28 20:55:01 -04:00
apei correct console log level when ERST ACPI table is not found 2010-07-01 18:40:29 -07:00
Kconfig ACPI Hardware Error Device (PNP0C33) support 2010-05-19 22:40:24 -04:00
Makefile ACPI Hardware Error Device (PNP0C33) support 2010-05-19 22:40:24 -04:00
ac.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
acpi_memhotplug.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
acpi_pad.c ACPI: acpi_pad: Don't needlessly mark LAPIC unstable 2010-06-04 03:48:10 -04:00
atomicio.c acpi: update gfp/slab.h includes 2010-06-28 10:19:19 +10:00
battery.c ACPI battery: don't invoke power_supply_changed twice when battery is hot-added 2010-07-06 22:22:46 -04:00
blacklist.c ACPI video: fix string mismatch for Sony SR290 laptop 2010-07-06 22:45:18 -04:00
bus.c drivers: acpi: don't use own implementation of hex_to_bin() 2010-05-25 08:07:06 -07:00
button.c ACPI / PM: Do not enable GPEs for system wakeup in advance 2010-06-17 12:18:09 -04:00
cm_sbs.c ACPI: Move definition of PREFIX from acpi_bus.h to internal..h 2009-08-28 19:57:27 -04:00
container.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
debug.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
dock.c Merge branches 'battery', 'bugzilla-14667', 'bugzilla-15096', 'bugzilla-15480', 'bugzilla-15521', 'bugzilla-15605', 'gpe-reference-counters', 'misc', 'pxm-fix' and 'video-random-key' into release 2010-04-06 17:06:22 -04:00
ec.c Merge branches 'bugzilla-14668' and 'misc-2.6.35' into release 2010-06-01 22:53:36 -04:00
event.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
fan.c ACPI: fan: fix unbalanced code block 2010-06-10 11:24:51 -04:00
glue.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
hed.c ACPI Hardware Error Device (PNP0C33) support 2010-05-19 22:40:24 -04:00
internal.h ACPI / EC / PM: Fix names of functions that block/unblock EC transactions 2010-05-28 23:36:06 -04:00
numa.c ACPI: NUMA: map pxms to low node ids 2010-04-04 00:50:01 -04:00
osl.c hwmon: (asus_atk0110) Don't load if ACPI resources aren't enforced 2010-05-27 19:58:37 +02:00
pci_bind.c PCI / ACPI / PM: Platform support for PCI PME wake-up 2010-02-22 16:21:02 -08:00
pci_irq.c x86, acpi/irq: pci device dev->irq is an isa irq not a gsi 2010-05-04 13:34:30 -07:00
pci_link.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pci_root.c ACPI: Disable ASPM if the platform won't provide _OSC control for PCIe 2010-07-30 09:29:17 -07:00
pci_slot.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
power.c Merge branch 'master' into for-next 2010-04-23 02:08:44 +02:00
power_meter.c power_meter: acpi_device_class "power_meter_resource" too long 2010-05-06 02:38:24 -04:00
proc.c Fix misspellings of "separate" in strings. 2010-02-04 11:55:46 +01:00
processor_core.c ACPI: processor: fix processor_physically_present on UP 2010-07-12 13:28:34 -04:00
processor_driver.c ACPI: Do not try to set up acpi processor stuff on cores exceeding maxcpus= 2010-06-09 18:04:12 -04:00
processor_idle.c Merge branch 'misc' into release 2010-07-22 18:19:12 -04:00
processor_perflib.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
processor_thermal.c ACPI: Remove unnecessary cast. 2010-01-15 23:06:44 -05:00
processor_throttling.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
reboot.c ACPI: reboot.c: use new acpi_reset interface 2008-12-31 01:15:00 -05:00
sbs.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sbshc.c sbshc: acpi_device_class "smbus_host_controller" too long 2010-05-06 02:38:25 -04:00
sbshc.h
scan.c ACPICA: Minimize the differences between linux GPE code and ACPICA code base 2010-04-20 10:43:16 -04:00
sleep.c ACPI / Sleep: Allow the NVS saving to be skipped during suspend to RAM 2010-07-24 23:26:09 -04:00
sleep.h drivers/acpi/sleep.h: Checkpatch cleanup 2010-05-28 15:31:33 -04:00
system.c Merge branch 'gpe-regression-fixes' into release 2010-06-12 00:51:49 -04:00
tables.c ACPI: delete the "acpi=ht" boot option 2010-03-14 20:58:38 -04:00
thermal.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
utils.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
video.c Merge branch 'misc-2.6.35' into release 2010-05-28 16:18:20 -04:00
video_detect.c ACPI: video: fix acpi_backlight=video 2010-05-20 01:31:00 -04:00
wakeup.c ACPI / PM: Do not enable GPEs for system wakeup in advance 2010-06-17 12:18:09 -04:00