From: al.stone@linaro.org (al.stone at linaro.org)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 8/9] ACPI: arm64: use an arch-specific ACPI _OSI method and ACPI blacklist
Date: Tue, 24 Feb 2015 17:36:24 -0700 [thread overview]
Message-ID: <1424824585-6405-9-git-send-email-al.stone@linaro.org> (raw)
In-Reply-To: <1424824585-6405-1-git-send-email-al.stone@linaro.org>
From: Al Stone <al.stone@linaro.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@linaro.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@linaro.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@linaro.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");
+ return false;
+}
--
2.1.0
next prev parent reply other threads:[~2015-02-25 0:36 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-25 0:36 [PATCH v3 0/9] Start deprecating _OSI on new architectures al.stone at linaro.org
2015-02-25 0:36 ` [PATCH v3 1/9] ACPI: fix all errors reported by cleanpatch.pl in osl.c al.stone at linaro.org
2015-02-25 12:47 ` Hanjun Guo
2015-03-04 23:04 ` Rafael J. Wysocki
2015-03-04 23:56 ` Al Stone
2015-03-05 0:25 ` Rafael J. Wysocki
2015-03-05 0:06 ` Al Stone
2015-02-25 0:36 ` [PATCH v3 2/9] ACPI: clear up warnings on use of printk reported by checkpatch.pl al.stone at linaro.org
2015-02-25 12:55 ` Hanjun Guo
2015-02-25 20:56 ` Al Stone
2015-02-25 0:36 ` [PATCH v3 3/9] ACPI: clean up checkpatch warnings for various bits of syntax al.stone at linaro.org
2015-02-25 12:59 ` [Linaro-acpi] " Hanjun Guo
2015-02-25 0:36 ` [PATCH v3 4/9] ACPI: clean up checkpatch warnings for items with possible semantic value al.stone at linaro.org
2015-02-25 13:08 ` [Linaro-acpi] " Hanjun Guo
2015-02-25 20:57 ` Al Stone
2015-02-25 0:36 ` [PATCH v3 5/9] ACPI: move acpi_os_handler() so it can be made arch-dependent later al.stone at linaro.org
2015-02-25 13:47 ` [Linaro-acpi] " Hanjun Guo
2015-02-25 0:36 ` [PATCH v3 6/9] ACPI: move _OSI support functions to allow arch-dependent implementation al.stone at linaro.org
2015-03-04 23:09 ` Rafael J. Wysocki
2015-02-25 0:36 ` [PATCH v3 7/9] ACPI: enable arch-specific compilation for _OSI and the blacklist al.stone at linaro.org
2015-03-04 23:11 ` Rafael J. Wysocki
2015-02-25 0:36 ` al.stone at linaro.org [this message]
2015-03-02 17:29 ` [PATCH v3 8/9] ACPI: arm64: use an arch-specific ACPI _OSI method and ACPI blacklist Will Deacon
2015-03-02 19:00 ` Al Stone
2015-03-04 23:14 ` Rafael J. Wysocki
2015-03-05 10:17 ` Will Deacon
2015-03-05 12:56 ` Rafael J. Wysocki
2015-03-04 23:16 ` Rafael J. Wysocki
2015-02-25 0:36 ` [PATCH v3 9/9] ACPI: arm64: use "Linux" as ACPI_OS_NAME for _OS on arm64 al.stone at linaro.org
2015-03-04 23:17 ` Rafael J. Wysocki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1424824585-6405-9-git-send-email-al.stone@linaro.org \
--to=al.stone@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).