[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1962826.WZ10VI9l8Q@vostro.rjw.lan>
Date: Thu, 05 Mar 2015 00:16:59 +0100
From: "Rafael J. Wysocki" <rjw@...ysocki.net>
To: al.stone@...aro.org
Cc: lenb@...nel.org, catalin.marinas@....com, will.deacon@....com,
robert.moore@...el.com, tony.luck@...el.com, fenghua.yu@...el.com,
linux-ia64@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-acpi@...r.kernel.org, devel@...ica.org,
linux-arm-kernel@...ts.infradead.org, linaro-acpi@...ts.linaro.org,
linaro-kernel@...ts.linaro.org, patches@...aro.org
Subject: Re: [PATCH v3 8/9] ACPI: arm64: use an arch-specific ACPI _OSI method and ACPI blacklist
On Tuesday, February 24, 2015 05:36:24 PM al.stone@...aro.org wrote:
> From: Al Stone <al.stone@...aro.org>
>
> Now that all of the _OSI functionality has been separated out, we can
> provide arch-specific functionality for it. This also allows us to do
> the same for the acpi_blacklisted() function. We also make sure the
> defaults for the arm64 kernel are set so that the arch-specific _OSI
> method and blacklist are always used for ACPI.
>
> For arm64, any use of _OSI will issue a warning that it is deprecated.
> All use of _OSI will return false -- i.e., it will return no useful
> information to any firmware using it. The ability to temporarily turn
> on _OSI, or turn off _OSI, or affect it in other ways from the command
> line is no longer available for arm64, either. The blacklist for ACPI
> on arm64 is empty. This will, of course, require ACPI to be enabled
> for arm64.
>
> Signed-off-by: Al Stone <al.stone@...aro.org>
> ---
> arch/arm64/Kconfig | 1 +
> arch/arm64/kernel/Makefile | 2 +-
> arch/arm64/kernel/acpi-blacklist.c | 20 ++++++++++++++++++++
> arch/arm64/kernel/acpi-osi.c | 25 +++++++++++++++++++++++++
> 4 files changed, 47 insertions(+), 1 deletion(-)
> create mode 100644 arch/arm64/kernel/acpi-blacklist.c
> create mode 100644 arch/arm64/kernel/acpi-osi.c
>
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index 3f08727..e441d28 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -7,6 +7,7 @@ config ARM64
> select ARCH_HAS_SG_CHAIN
> select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
> select ARCH_USE_CMPXCHG_LOCKREF
> + select ARCH_SPECIFIC_ACPI_OSI if ACPI
> select ARCH_SUPPORTS_ATOMIC_RMW
> select ARCH_WANT_OPTIONAL_GPIOLIB
> select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
> diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile
> index 79bdd3b..b5e1268 100644
> --- a/arch/arm64/kernel/Makefile
> +++ b/arch/arm64/kernel/Makefile
> @@ -35,7 +35,7 @@ arm64-obj-$(CONFIG_KGDB) += kgdb.o
> arm64-obj-$(CONFIG_EFI) += efi.o efi-stub.o efi-entry.o
> arm64-obj-$(CONFIG_PCI) += pci.o
> arm64-obj-$(CONFIG_ARMV8_DEPRECATED) += armv8_deprecated.o
> -arm64-obj-$(CONFIG_ACPI) += acpi.o
> +arm64-obj-$(CONFIG_ACPI) += acpi.o acpi-osi.o acpi-blacklist.o
>
> obj-y += $(arm64-obj-y) vdso/
> obj-m += $(arm64-obj-m)
> diff --git a/arch/arm64/kernel/acpi-blacklist.c b/arch/arm64/kernel/acpi-blacklist.c
> new file mode 100644
> index 0000000..1be6a56
> --- /dev/null
> +++ b/arch/arm64/kernel/acpi-blacklist.c
> @@ -0,0 +1,20 @@
> +/*
> + * ARM64 Specific ACPI Blacklist Support
> + *
> + * Copyright (C) 2015, Linaro Ltd.
> + * Author: Al Stone <al.stone@...aro.org>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +
> +#define pr_fmt(fmt) "ACPI: " fmt
> +
> +#include <linux/acpi.h>
> +
> +/* The arm64 ACPI blacklist is currently empty. */
> +int __init acpi_blacklisted(void)
> +{
> + return 0;
> +}
> diff --git a/arch/arm64/kernel/acpi-osi.c b/arch/arm64/kernel/acpi-osi.c
> new file mode 100644
> index 0000000..bb351f4
> --- /dev/null
> +++ b/arch/arm64/kernel/acpi-osi.c
> @@ -0,0 +1,25 @@
> +/*
> + * ARM64 Specific ACPI _OSI Support
> + *
> + * Copyright (C) 2015, Linaro Ltd.
> + * Author: Al Stone <al.stone@...aro.org>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +
> +#define pr_fmt(fmt) "ACPI: " fmt
> +
> +#include <linux/acpi.h>
> +
> +/*
> + * Consensus is to deprecate _OSI for all new ACPI-supported architectures.
> + * So, for arm64, reduce _OSI to a warning message, and tell the firmware
> + * nothing of value.
> + */
> +u32 acpi_osi_handler(acpi_string interface, u32 supported)
> +{
> + pr_warn("_OSI was called, but is deprecated for this architecture.\n");
I'd prefer "ACPI _OSI is not implemented for this architecture".
> + return false;
> +}
>
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists