ACPI / scan: Introduce common code for ACPI-based device hotplug
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sun, 3 Mar 2013 22:05:29 +0000 (23:05 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 4 Mar 2013 13:25:32 +0000 (14:25 +0100)
commita33ec399e9fc266ba20f9b71d693aa63658bf2aa
tree404418949973ac053cfe02df039124d7189db1ed
parentc56980744ed99994799850903627c4bbb5fed006
ACPI / scan: Introduce common code for ACPI-based device hotplug

Multiple drivers handling hotplug-capable ACPI device nodes install
notify handlers covering the same types of events in a very similar
way.  Moreover, those handlers are installed in separate namespace
walks, although that really should be done during namespace scans
carried out by acpi_bus_scan().  This leads to substantial code
duplication, unnecessary overhead and behavior that is hard to
follow.

For this reason, introduce common code in drivers/acpi/scan.c for
handling hotplug-related notification and carrying out device
insertion and eject operations in a generic fashion, such that it
may be used by all of the relevant drivers in the future.  To cover
the existing differences between those drivers introduce struct
acpi_hotplug_profile for representing collections of hotplug
settings associated with different ACPI scan handlers that can be
used by the drivers to make the common code reflect their current
behavior.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Toshi Kani <toshi.kani@hp.com>
Tested-by: Toshi Kani <toshi.kani@hp.com>
drivers/acpi/scan.c
include/acpi/acpi_bus.h