ACPI / PM: Register acpi_power_driver early
authorRafael J. Wysocki <rjw@sisk.pl>
Wed, 24 Nov 2010 23:10:02 +0000 (00:10 +0100)
committerLen Brown <len.brown@intel.com>
Wed, 12 Jan 2011 09:48:45 +0000 (04:48 -0500)
commit97d9a9e9f5ee68f20005ca5aa77c6b684e7cace8
tree37961b9dd711862f0b181bb6890f47fba3f58345
parent25eed40720fc9005c63a1f436e5f8a78836c26ff
ACPI / PM: Register acpi_power_driver early

The ACPI device driver used for handling power resources,
acpi_power_driver, creates a struct acpi_power_resource object for
each ACPI device representing a power resource.  These objects are
then used when setting and reading the power states of devices using
the corresponding power resources.  Unfortunately, acpi_power_driver
is registered after acpi_scan_init() that may add devices using the
power resources before acpi_power_driver has a chance to create
struct acpi_power_resource objects for them (specifically, the power
resources may be referred to during the scanning process through
acpi_bus_get_power() before they have been initialized).

As the first step towards fixing this issue, move the registration
of acpi_power_driver into acpi_scan_init() so that power resource
devices can be initialized by it as soon as they have been found in
the namespace.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/bus.c
drivers/acpi/scan.c