Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -878,6 +878,8 @@ static int __init acpi_init(void)
	 * will be disabled in the course of device power transistion.
	 * will be disabled in the course of device power transistion.
	 */
	 */
	dmi_check_system(power_nocheck_dmi_table);
	dmi_check_system(power_nocheck_dmi_table);

	acpi_scan_init();
	return result;
	return result;
}
}


+2 −0
Original line number Original line Diff line number Diff line
/* For use by Linux/ACPI infrastructure, not drivers */
/* For use by Linux/ACPI infrastructure, not drivers */


int acpi_scan_init(void);

/* --------------------------------------------------------------------------
/* --------------------------------------------------------------------------
                                  Power Resource
                                  Power Resource
   -------------------------------------------------------------------------- */
   -------------------------------------------------------------------------- */
+1 −8
Original line number Original line Diff line number Diff line
@@ -1526,16 +1526,11 @@ static int acpi_bus_scan_fixed(struct acpi_device *root)
	return result;
	return result;
}
}



int __init acpi_scan_init(void)
static int __init acpi_scan_init(void)
{
{
	int result;
	int result;
	struct acpi_bus_ops ops;
	struct acpi_bus_ops ops;



	if (acpi_disabled)
		return 0;

	memset(&ops, 0, sizeof(ops));
	memset(&ops, 0, sizeof(ops));
	ops.acpi_op_add = 1;
	ops.acpi_op_add = 1;
	ops.acpi_op_start = 1;
	ops.acpi_op_start = 1;
@@ -1568,5 +1563,3 @@ static int __init acpi_scan_init(void)
      Done:
      Done:
	return result;
	return result;
}
}

subsys_initcall(acpi_scan_init);