linux/drivers/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
..
acpica ACPI / ACPICA: Multiple system notify handlers per device 2010-02-22 16:20:56 -08:00
ac.c ACPI: add AC/DC notifier 2009-10-06 13:55:56 -04:00
acpi_memhotplug.c ACPICA: Add post-order callback to acpi_walk_namespace 2009-11-24 21:31:10 -05:00
acpi_pad.c Merge branch 'acpi-pad' into release 2010-01-20 01:14:30 -05:00
battery.c battery: fix typo in comment 2009-12-16 00:07:21 -05:00
blacklist.c ACPI: disable _OSI(Windows 2009) on Asus K50IJ 2009-12-22 02:39:24 -05:00
bus.c ACPI: Advertise to BIOS in _OSC: _OST on _PPC changes 2010-01-15 23:05:00 -05:00
button.c ACPI / PM: Add more run-time wake-up fields 2010-02-22 16:20:51 -08: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 ACPICA: Add post-order callback to acpi_walk_namespace 2009-11-24 21:31:10 -05:00
debug.c ACPI: add kernel tainting after overriding an ACPI control method 2009-12-15 22:52:19 -05:00
dock.c ACPI: dock: properly initialize local struct dock_station in dock_add() 2010-02-16 03:54:28 -05:00
ec.c ACPI: Use GPE reference counting to support shared GPEs 2010-02-22 16:20:45 -08:00
event.c ACPI: Move definition of PREFIX from acpi_bus.h to internal..h 2009-08-28 19:57:27 -04:00
fan.c ACPI: Remove repeated registered as cooling_device messages 2009-12-16 00:07:10 -05:00
glue.c ACPICA: Add post-order callback to acpi_walk_namespace 2009-11-24 21:31:10 -05:00
hest.c PCI: PCIe AER: honor ACPI HEST FIRMWARE FIRST mode 2009-11-04 13:06:25 -08:00
internal.h PCI / ACPI / PM: Platform support for PCI PME wake-up 2010-02-22 16:21:02 -08:00
Kconfig ACPI: Kconfig, fix proc aggregator text 2009-10-09 13:14:51 -04:00
Makefile ACPI: processor: call _PDC early 2009-12-22 03:24:08 -05:00
numa.c Merge branch 'misc-2.6.33' into release 2009-12-16 14:22:32 -05:00
osl.c ACPI: add const to acpi_check_resource_conflict() 2009-12-09 14:44:42 -05: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 ACPI: Move definition of PREFIX from acpi_bus.h to internal..h 2009-08-28 19:57:27 -04:00
pci_link.c acpi: make ACPI device id constant 2010-01-16 15:56:43 -05:00
pci_root.c PCI / ACPI / PM: Platform support for PCI PME wake-up 2010-02-22 16:21:02 -08:00
pci_slot.c ACPICA: Add post-order callback to acpi_walk_namespace 2009-11-24 21:31:10 -05:00
power.c acpi: make ACPI device id constant 2010-01-16 15:56:43 -05:00
power_meter.c ACPI: power_meter: remove double kfree() 2010-01-19 23:56:02 -05:00
proc.c ACPI: clean up video.c boundary checks and types 2009-10-28 11:49:37 -04:00
processor_core.c ACPI: processor: change acpi_processor_set_pdc() interface 2009-12-22 03:33:58 -05:00
processor_idle.c ACPI: fix High cpu temperature with 2.6.32 2010-02-16 04:11:27 -05:00
processor_pdc.c ACPI: processor: only evaluate _PDC once per processor 2010-01-22 12:39:56 -05:00
processor_perflib.c Merge branch 'ost' into release 2009-12-16 02:18:36 -05:00
processor_thermal.c ACPI: Remove unnecessary cast. 2010-01-15 23:06:44 -05:00
processor_throttling.c ACPI: Move dereference after NULL test 2009-11-05 17:30:57 -05:00
reboot.c ACPI: reboot.c: use new acpi_reset interface 2008-12-31 01:15:00 -05:00
sbs.c ACPI: Fix unused variable warning in sbs.c 2010-01-16 16:04:18 -05:00
sbshc.c ACPI: SBS: Move SBS HC callback to faster Notify queue 2010-01-15 22:52:48 -05:00
sbshc.h ACPI: SBS: Ignore alarms coming from unknown devices 2007-12-14 15:14:06 -05:00
scan.c PCI / ACPI / PM: Platform support for PCI PME wake-up 2010-02-22 16:21:02 -08:00
sleep.c ACPI: Use GPE reference counting to support shared GPEs 2010-02-22 16:20:45 -08:00
sleep.h ACPI: convert acpi_device_lock spinlock to mutex 2009-04-07 00:02:40 -04:00
system.c ACPI: Use GPE reference counting to support shared GPEs 2010-02-22 16:20:45 -08:00
tables.c ACPI: fix "acpi=ht" boot option 2010-02-18 03:49:38 -05:00
thermal.c acpi: thermal: display forced passive trip points in proc 2009-12-16 01:54:09 -05:00
utils.c ACPI: Move definition of PREFIX from acpi_bus.h to internal..h 2009-08-28 19:57:27 -04:00
video.c Merge branch 'bugzilla-13577-video' into release 2010-01-20 01:14:41 -05:00
video_detect.c Merge branch 'acpica' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2009-12-09 19:57:06 -08:00
wakeup.c ACPI / PM: Add more run-time wake-up fields 2010-02-22 16:20:51 -08:00