Commit e747f274 authored by Bjorn Helgaas's avatar Bjorn Helgaas Committed by Len Brown

ACPI: call acpi_scan_init() explicitly rather than as initcall

This patch makes acpi_init() call acpi_scan_init() directly.

Previously, both acpi_init() and acpi_scan_init() were subsys_initcalls,
and acpi_init() was called first based on the link order from the
makefile (bus.o before scan.o).

acpi_scan_init() registers the ACPI bus type, creates the root device,
and enumerates fixed-feature and namespace devices.  All of this must
be done after acpi_init(), and it's better to call acpi_scan_init()
explicitly rather than rely on the link ordering.
Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent 81d0273d
......@@ -878,6 +878,8 @@ static int __init acpi_init(void)
* will be disabled in the course of device power transistion.
*/
dmi_check_system(power_nocheck_dmi_table);
acpi_scan_init();
return result;
}
......
/* For use by Linux/ACPI infrastructure, not drivers */
int acpi_scan_init(void);
/* --------------------------------------------------------------------------
Power Resource
-------------------------------------------------------------------------- */
......
......@@ -1526,16 +1526,11 @@ static int acpi_bus_scan_fixed(struct acpi_device *root)
return result;
}
static int __init acpi_scan_init(void)
int __init acpi_scan_init(void)
{
int result;
struct acpi_bus_ops ops;
if (acpi_disabled)
return 0;
memset(&ops, 0, sizeof(ops));
ops.acpi_op_add = 1;
ops.acpi_op_start = 1;
......@@ -1568,5 +1563,3 @@ static int __init acpi_scan_init(void)
Done:
return result;
}
subsys_initcall(acpi_scan_init);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment