Skip to content

Commit 1ffb8d0

Browse files
Alex Hungrafaeljw
authored andcommitted
acpi/x86: add a kernel parameter to disable ACPI BGRT
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 <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
1 parent fa0fca6 commit 1ffb8d0

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -450,6 +450,9 @@
450450
bert_disable [ACPI]
451451
Disable BERT OS support on buggy BIOSes.
452452

453+
bgrt_disable [ACPI][X86]
454+
Disable BGRT to avoid flickering OEM logo.
455+
453456
bttv.card= [HW,V4L] bttv (bt848 + bt878 based grabber cards)
454457
bttv.radio= Most important insmod options are available as
455458
kernel args too.

arch/x86/kernel/acpi/boot.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ EXPORT_SYMBOL(acpi_disabled);
4545
#define PREFIX "ACPI: "
4646

4747
int acpi_noirq; /* skip ACPI IRQ initialization */
48+
int acpi_nobgrt; /* skip ACPI BGRT */
4849
int acpi_pci_disabled; /* skip ACPI PCI scan and IRQ initialization */
4950
EXPORT_SYMBOL(acpi_pci_disabled);
5051

@@ -1619,7 +1620,7 @@ int __init acpi_boot_init(void)
16191620
acpi_process_madt();
16201621

16211622
acpi_table_parse(ACPI_SIG_HPET, acpi_parse_hpet);
1622-
if (IS_ENABLED(CONFIG_ACPI_BGRT))
1623+
if (IS_ENABLED(CONFIG_ACPI_BGRT) && !acpi_nobgrt)
16231624
acpi_table_parse(ACPI_SIG_BGRT, acpi_parse_bgrt);
16241625

16251626
if (!acpi_noirq)
@@ -1671,6 +1672,13 @@ static int __init parse_acpi(char *arg)
16711672
}
16721673
early_param("acpi", parse_acpi);
16731674

1675+
static int __init parse_acpi_bgrt(char *arg)
1676+
{
1677+
acpi_nobgrt = true;
1678+
return 0;
1679+
}
1680+
early_param("bgrt_disable", parse_acpi_bgrt);
1681+
16741682
/* FIXME: Using pci= for an ACPI parameter is a travesty. */
16751683
static int __init parse_pci(char *arg)
16761684
{

0 commit comments

Comments
 (0)