]> git.baikalelectronics.ru Git - kernel.git/commitdiff
acpi/x86: add a kernel parameter to disable ACPI BGRT
authorAlex Hung <alex.hung@canonical.com>
Wed, 4 Mar 2020 22:55:29 +0000 (15:55 -0700)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sat, 14 Mar 2020 09:36:49 +0000 (10:36 +0100)
BGRT is for displaying seamless OEM logo from booting to login screen;
however, this mechanism does not always work well on all configurations
and the OEM logo can be displayed multiple times. This looks worse than
without BGRT enabled.

This patch adds a kernel parameter to disable BGRT in boot time. This is
easier than re-compiling a kernel with CONFIG_ACPI_BGRT disabled.

Signed-off-by: Alex Hung <alex.hung@canonical.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Documentation/admin-guide/kernel-parameters.txt
arch/x86/kernel/acpi/boot.c

index c07815d230bcd4bde32a93c0615326f37a68824c..83ba095b3cded01f0fa97f8f586ba05e2bd08777 100644 (file)
        bert_disable    [ACPI]
                        Disable BERT OS support on buggy BIOSes.
 
+       bgrt_disable    [ACPI][X86]
+                       Disable BGRT to avoid flickering OEM logo.
+
        bttv.card=      [HW,V4L] bttv (bt848 + bt878 based grabber cards)
        bttv.radio=     Most important insmod options are available as
                        kernel args too.
index 04205ce127a12a6f32ddebd2bee99f6682cfd1c6..d1757ceca8ae525e5ffbbb0eaf4c573538281ea8 100644 (file)
@@ -45,6 +45,7 @@ EXPORT_SYMBOL(acpi_disabled);
 #define PREFIX                 "ACPI: "
 
 int acpi_noirq;                                /* skip ACPI IRQ initialization */
+int acpi_nobgrt;                       /* skip ACPI BGRT */
 int acpi_pci_disabled;         /* skip ACPI PCI scan and IRQ initialization */
 EXPORT_SYMBOL(acpi_pci_disabled);
 
@@ -1619,7 +1620,7 @@ int __init acpi_boot_init(void)
        acpi_process_madt();
 
        acpi_table_parse(ACPI_SIG_HPET, acpi_parse_hpet);
-       if (IS_ENABLED(CONFIG_ACPI_BGRT))
+       if (IS_ENABLED(CONFIG_ACPI_BGRT) && !acpi_nobgrt)
                acpi_table_parse(ACPI_SIG_BGRT, acpi_parse_bgrt);
 
        if (!acpi_noirq)
@@ -1671,6 +1672,13 @@ static int __init parse_acpi(char *arg)
 }
 early_param("acpi", parse_acpi);
 
+static int __init parse_acpi_bgrt(char *arg)
+{
+       acpi_nobgrt = true;
+       return 0;
+}
+early_param("bgrt_disable", parse_acpi_bgrt);
+
 /* FIXME: Using pci= for an ACPI parameter is a travesty. */
 static int __init parse_pci(char *arg)
 {