[PATCH] arm64: acpi: add a Kconfig option to prefer ACPI boot over DT
Graeme Gregory
graeme.gregory at linaro.org
Mon Apr 11 05:01:34 PDT 2016
On Mon, Apr 11, 2016 at 01:19:28PM +0200, Ard Biesheuvel wrote:
> If both ACPI and DT platform descriptions are available, and the
> kernel was configured at build time to support both flavours, the
> default policy in absence of a acpi=[off|force] kernel command line
> parameter is to prefer DT over ACPI.
>
> This adds an option to invert that default policy, and prefer ACPI
> over DT instead. Note that this policy is still superseded by the
> value of the acpi= command line parameter.
>
Looks sane to me
Reviewed-by: Graeme Gregory <graeme.gregory at linaro.org>
G
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel at linaro.org>
> ---
> arch/arm64/Kconfig | 13 +++++++++++++
> arch/arm64/kernel/acpi.c | 3 ++-
> 2 files changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index 4f436220384f..f3aef40ad0ac 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -918,6 +918,19 @@ config DMI
> However, even with this option, the resultant kernel should
> continue to boot on existing non-UEFI platforms.
>
> +config PREFER_ACPI_OVER_DT
> + bool "Prefer booting via ACPI if both ACPI and DT are available"
> + depends on ACPI
> + help
> + If both ACPI and DT platform descriptions are available, and the
> + kernel was configured at build time to support both flavours, the
> + default policy in absence of a acpi=[off|force] kernel command line
> + parameter is to prefer DT over ACPI.
> +
> + This option inverts that default policy, by preferring ACPI over DT
> + instead. Note that this default policy is still superseded by the
> + value of the acpi= command line parameter.
> +
> endmenu
>
> menu "Userspace binary formats"
> diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
> index d1ce8e2f98b9..50ac056fb1fd 100644
> --- a/arch/arm64/kernel/acpi.c
> +++ b/arch/arm64/kernel/acpi.c
> @@ -188,7 +188,8 @@ void __init acpi_boot_table_init(void)
> * and ACPI has not been force enabled (acpi=force)
> */
> if (param_acpi_off ||
> - (!param_acpi_force && of_scan_flat_dt(dt_scan_depth1_nodes, NULL)))
> + (!IS_ENABLED(CONFIG_PREFER_ACPI_OVER_DT) &&
> + !param_acpi_force && of_scan_flat_dt(dt_scan_depth1_nodes, NULL)))
> return;
>
> /*
> --
> 2.5.0
>
More information about the linux-arm-kernel
mailing list