linux/drivers/acpi
Bjorn Helgaas 46ec8598fd ACPI: support acpi_device_ops .notify methods
This patch adds support for ACPI device driver .notify() methods.  If
such a method is present, Linux/ACPI installs a handler for device
notifications (but not for system notifications such as Bus Check,
Device Check, etc).  When a device notification occurs, Linux/ACPI
passes it on to the driver's .notify() method.

In most cases, this removes the need for drivers to install their own
handlers for device-specific notifications.

For fixed hardware devices like some power and sleep buttons, there's
no notification value because there's no control method to execute a
Notify opcode.  When a fixed hardware device generates an event, we
handle it the same as a regular device notification, except we send
a ACPI_FIXED_HARDWARE_EVENT value.  This is outside the normal 0x0-0xff
range used by Notify opcodes.

Several drivers install their own handlers for system Bus Check and
Device Check notifications so they can support hot-plug.  This patch
doesn't affect that usage.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Reviewed-by: Alex Chiang <achiang@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2009-04-05 02:25:07 -04:00
..
acpica Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
Kconfig ACPI: update Kconfig help texts (no functional changes) 2009-03-17 02:06:04 -04:00
Makefile Merge branch 'async-battery' into release 2009-04-05 01:48:46 -04:00
ac.c proc 2/2: remove struct proc_dir_entry::owner 2009-03-31 01:14:44 +04:00
acpi_memhotplug.c trivial: Fix misspelling of "firmware" in acpi_memhotplug.c 2009-01-06 11:28:08 +01:00
battery.c Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
blacklist.c ACPI: delete OSI(Linux) DMI dmesg spam 2008-11-27 01:55:21 -05:00
bus.c Merge branch 'bjorn-initcall-cleanup' into release 2009-04-05 01:38:31 -04:00
button.c proc 2/2: remove struct proc_dir_entry::owner 2009-03-31 01:14:44 +04:00
cm_sbs.c ACPI: remove private acpica headers from driver files 2008-12-31 01:15:22 -05:00
container.c ACPI: add missing KERN_* constants to printks 2009-02-07 00:29:32 -05:00
debug.c Merge branch 'acpi-modparam' into release 2009-04-05 01:45:50 -04:00
dock.c Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
ec.c Merge branch 'constify' into release 2009-04-05 01:51:16 -04:00
event.c netlink: change return-value logic of netlink_broadcast() 2009-02-05 23:56:36 -08:00
fan.c Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
glue.c ACPI: call init_acpi_device_notify() explicitly rather than as initcall 2009-03-27 12:51:16 -04:00
internal.h ACPI: call acpi_wakeup_device_init() explicitly rather than as initcall 2009-03-27 12:51:31 -04:00
numa.c x86, ACPI: add support for x2apic ACPI extensions 2009-04-03 20:08:12 -04:00
osl.c Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
pci_bind.c ACPI: simplify buffer management for acpi_pci_bind() etc. 2008-12-30 22:52:26 -05:00
pci_irq.c Merge branch 'misc' into release 2009-04-05 01:52:07 -04:00
pci_link.c ACPI: pci_link: simplify list of link devices 2009-03-17 01:53:29 -04:00
pci_root.c PCI/ACPI: rename pci_osc_control_set() 2009-03-19 19:29:33 -07:00
pci_slot.c Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2008-10-23 10:20:36 -07:00
power.c Merge branch 'acpi-modparam' into release 2009-04-05 01:45:50 -04:00
proc.c ACPI: call acpi_sleep_proc_init() explicitly rather than as initcall 2009-03-27 12:51:23 -04:00
processor_core.c Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
processor_idle.c Merge branch 'pmtimer-overflow' into release 2009-04-05 01:39:07 -04:00
processor_perflib.c Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
processor_thermal.c Merge branch 'constify' into release 2009-04-05 01:51:16 -04:00
processor_throttling.c Merge branch 'misc' into release 2009-04-05 01:52:07 -04:00
reboot.c ACPI: reboot.c: use new acpi_reset interface 2008-12-31 01:15:00 -05:00
sbs.c Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
sbshc.c ACPI: remove private acpica headers from driver files 2008-12-31 01:15:22 -05:00
sbshc.h ACPI: SBS: Ignore alarms coming from unknown devices 2007-12-14 15:14:06 -05:00
scan.c ACPI: support acpi_device_ops .notify methods 2009-04-05 02:25:07 -04:00
sleep.c Merge branch 'misc' into release 2009-04-05 01:52:07 -04:00
sleep.h ACPICA: create acpica/ directory 2009-01-09 03:30:47 -05:00
system.c Merge branch 'acpi-modparam' into release 2009-04-05 01:45:50 -04:00
tables.c Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
thermal.c Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
utils.c ACPI: scheduling in atomic via acpi_evaluate_integer () 2008-11-26 17:39:06 -05:00
video.c Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
video_detect.c ACPI video: add a warning message if _BQC is not found 2009-03-27 22:37:22 -04:00
wakeup.c ACPI: call acpi_wakeup_device_init() explicitly rather than as initcall 2009-03-27 12:51:31 -04:00