efi/bgrt: Enable ACPI BGRT handling on arm64
authorBhupesh Sharma <bhsharma@redhat.com>
Tue, 4 Apr 2017 16:02:41 +0000 (17:02 +0100)
committerIngo Molnar <mingo@kernel.org>
Wed, 5 Apr 2017 10:27:25 +0000 (12:27 +0200)
Now that the ACPI BGRT handling code has been made generic, we can
enable it for arm64.

Signed-off-by: Bhupesh Sharma <bhsharma@redhat.com>
[ Updated commit log to reflect that BGRT is only enabled for arm64, and added
  missing 'return' statement to the dummy acpi_parse_bgrt() function. ]
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-efi@vger.kernel.org
Link: http://lkml.kernel.org/r/20170404160245.27812-8-ard.biesheuvel@linaro.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/arm64/kernel/acpi.c
arch/x86/kernel/acpi/boot.c
drivers/acpi/Kconfig
drivers/acpi/bgrt.c
include/linux/efi-bgrt.h

index 64d9cbd61678233dc24648f11bb5b242df3ee244..e25c11e727fe5150f1792d29221cb03d98c4c7c0 100644 (file)
@@ -18,6 +18,7 @@
 #include <linux/acpi.h>
 #include <linux/bootmem.h>
 #include <linux/cpumask.h>
+#include <linux/efi-bgrt.h>
 #include <linux/init.h>
 #include <linux/irq.h>
 #include <linux/irqdomain.h>
@@ -233,6 +234,8 @@ done:
                        early_init_dt_scan_chosen_stdout();
        } else {
                parse_spcr(earlycon_init_is_deferred);
+               if (IS_ENABLED(CONFIG_ACPI_BGRT))
+                       acpi_table_parse(ACPI_SIG_BGRT, acpi_parse_bgrt);
        }
 }
 
index b2879cc23db470ec8cc2cbeacdea4ff2b94ec1e3..70854988a963fb39b2ea84f1e2dce7b51ffd8262 100644 (file)
@@ -1564,12 +1564,6 @@ int __init early_acpi_boot_init(void)
        return 0;
 }
 
-static int __init acpi_parse_bgrt(struct acpi_table_header *table)
-{
-       efi_bgrt_init(table);
-       return 0;
-}
-
 int __init acpi_boot_init(void)
 {
        /* those are executed after early-quirks are executed */
index 83e5f7e1a20d3f7c9fcfd3822f9102673f7c12e5..dad02c0f21b93fb17eb40ddc99a07696146620dc 100644 (file)
@@ -440,7 +440,7 @@ config ACPI_CUSTOM_METHOD
 
 config ACPI_BGRT
        bool "Boottime Graphics Resource Table support"
-       depends on EFI && X86
+       depends on EFI && (X86 || ARM64)
         help
          This driver adds support for exposing the ACPI Boottime Graphics
          Resource Table, which allows the operating system to obtain
index ca28aa572aa9543f5fc148221fc5b902c6fdfd02..df1c629205e7b9c477c173351580b049446f8706 100644 (file)
@@ -81,6 +81,12 @@ static struct attribute_group bgrt_attribute_group = {
        .bin_attrs = bgrt_bin_attributes,
 };
 
+int __init acpi_parse_bgrt(struct acpi_table_header *table)
+{
+       efi_bgrt_init(table);
+       return 0;
+}
+
 static int __init bgrt_init(void)
 {
        int ret;
index 2fd3993c370b273c9ae8c0f58604a1280527f832..e6f624b53c3d89c6ba575bb61a3d868a251473ae 100644 (file)
@@ -6,6 +6,7 @@
 #ifdef CONFIG_ACPI_BGRT
 
 void efi_bgrt_init(struct acpi_table_header *table);
+int __init acpi_parse_bgrt(struct acpi_table_header *table);
 
 /* The BGRT data itself; only valid if bgrt_image != NULL. */
 extern size_t bgrt_image_size;
@@ -14,6 +15,10 @@ extern struct acpi_table_bgrt bgrt_tab;
 #else /* !CONFIG_ACPI_BGRT */
 
 static inline void efi_bgrt_init(struct acpi_table_header *table) {}
+static inline int __init acpi_parse_bgrt(struct acpi_table_header *table)
+{
+       return 0;
+}
 
 #endif /* !CONFIG_ACPI_BGRT */