linux/include/acpi
Rafael J. Wysocki b67ea76172 PCI / ACPI / PM: Platform support for PCI PME wake-up
Although the majority of PCI devices can generate PMEs that in
principle may be used to wake up devices suspended at run time,
platform support is generally necessary to convert PMEs into wake-up
events that can be delivered to the kernel.  If ACPI is used for this
purpose, PME signals generated by a PCI device will trigger the ACPI
GPE associated with the device to generate an ACPI wake-up event that
we can set up a handler for, provided that everything is configured
correctly.

Unfortunately, the subset of PCI devices that have GPEs associated
with them is quite limited.  The devices without dedicated GPEs have
to rely on the GPEs associated with other devices (in the majority of
cases their upstream bridges and, possibly, the root bridge) to
generate ACPI wake-up events in response to PME signals from them.

Add ACPI platform support for PCI PME wake-up:
o Add a framework making is possible to use ACPI system notify
  handlers for run-time PM.
o Add new PCI platform callback ->run_wake() to struct
  pci_platform_pm_ops allowing us to enable/disable the platform to
  generate wake-up events for given device.  Implemet this callback
  for the ACPI platform.
o Define ACPI wake-up handlers for PCI devices and PCI root buses and
  make the PCI-ACPI binding code register wake-up notifiers for all
  PCI devices present in the ACPI tables.
o Add function pci_dev_run_wake() which can be used by PCI drivers to
  check if given device is capable of generating wake-up events at
  run time.

Developed in cooperation with Matthew Garrett <mjg@redhat.com>.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-02-22 16:21:02 -08:00
..
platform ACPI: don't cond_resched if irq is disabled 2010-01-16 01:35:36 -05:00
acexcep.h ACPICA: Fix parameter validation for acpi_read/write 2009-03-26 16:38:25 -04:00
acnames.h ACPICA: update Intel copyright 2008-04-23 23:00:13 -04:00
acoutput.h ACPICA: Remove messages if predefined repair(s) are successful 2009-12-15 17:29:36 -05:00
acpi.h ACPICA: Restructure includes into public/private 2008-12-31 01:15:40 -05:00
acpi_bus.h PCI / ACPI / PM: Platform support for PCI PME wake-up 2010-02-22 16:21:02 -08:00
acpi_drivers.h Merge branches 'acerhdf', 'acpi-pci-bind', 'bjorn-pci-root', 'bugzilla-12904', 'bugzilla-13121', 'bugzilla-13396', 'bugzilla-13533', 'bugzilla-13612', 'c3_lock', 'hid-cleanups', 'misc-2.6.31', 'pdc-leak-fix', 'pnpacpi', 'power_nocheck', 'thinkpad_acpi', 'video' and 'wmi' into release 2009-06-24 01:19:50 -04:00
acpi_hest.h PCI: PCIe AER: honor ACPI HEST FIRMWARE FIRST mode 2009-11-04 13:06:25 -08:00
acpi_numa.h ACPI: misc cleanups 2008-02-07 03:33:23 -05:00
acpiosxf.h ACPICA: fix leak of acpi_os_validate_address 2009-08-27 13:10:35 -04:00
acpixf.h ACPI: Use GPE reference counting to support shared GPEs 2010-02-22 16:20:45 -08:00
acrestyp.h ACPICA: Restructure includes into public/private 2008-12-31 01:15:40 -05:00
actbl.h ACPICA: ACPI 4: Update headers for new and changed ACPI tables. 2009-08-28 19:40:38 -04:00
actbl1.h ACPICA: Fix typo for HEST ACPI table 2009-08-28 19:40:39 -04:00
actbl2.h ACPICA: ACPI 4: Update headers for new and changed ACPI tables. 2009-08-28 19:40:38 -04:00
actypes.h ACPI: Use GPE reference counting to support shared GPEs 2010-02-22 16:20:45 -08:00
button.h ACPI: make ACPI button funcs no-ops if not built in 2009-09-17 14:48:23 -07:00
container.h
pdc_intel.h ACPI: Enable bit 11 in _PDC to advertise hw coord 2009-02-07 00:41:14 -05:00
processor.h ACPI: processor: remove _PDC object list from struct acpi_processor 2009-12-22 03:35:16 -05:00
reboot.h Add the ability to reset the machine using the RESET_REG in ACPI's FADT table. 2008-07-16 23:27:08 +02:00
video.h ACPI: Add the reference count to avoid unloading ACPI video bus twice 2009-06-23 23:38:41 -04:00