linux/drivers/acpi
Rafael J. Wysocki 3f0be67188 ACPI / ACPICA: Multiple system notify handlers per device
Currently it only is possible to install one system notify handler
per namespace node, but this is not enough for PCI run-time power
management, because we need to install power management notifiers for
devices that already have hotplug notifiers installed.  While in
principle this could be handled at the PCI level, that would be
suboptimal due to the way in which the ACPI-based PCI hotplug code is
designed.

For this reason, modify ACPICA so that it is possible to install more
than one system notify handler per namespace node.  Namely, make
acpi_install_notify_handler(), acpi_remove_notify_handler() and
acpi_ev_notify_dispatch() use a list of system notify handler objects
associated with a namespace node.

Make acpi_remove_notify_handler() call acpi_os_wait_events_complete()
upfront to avoid a situation in which concurrent instance of
acpi_remove_notify_handler() removes the handler from under us while
we're waiting for the event queues to flush.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-02-22 16:20:56 -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 ACPI: processor: call _PDC early 2009-12-22 03:24:08 -05: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 ACPI: kill acpi_get_pci_id 2009-06-17 23:32:23 -04: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 acpi: make ACPI device id constant 2010-01-16 15:56:43 -05:00
pci_slot.c ACPICA: Add post-order callback to acpi_walk_namespace 2009-11-24 21:31:10 -05:00
power_meter.c ACPI: power_meter: remove double kfree() 2010-01-19 23:56:02 -05:00
power.c acpi: make ACPI device id constant 2010-01-16 15:56:43 -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 ACPI / PM: Add more run-time wake-up fields 2010-02-22 16:20:51 -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_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
video.c Merge branch 'bugzilla-13577-video' into release 2010-01-20 01:14:41 -05:00
wakeup.c ACPI / PM: Add more run-time wake-up fields 2010-02-22 16:20:51 -08:00