@@ -10,6 +10,7 @@
#include <asm/addrspace.h>
#include <asm/cpu.h>
+#include <asm/early_ioremap.h>
#include <asm/page.h>
#include <asm/pgtable-bits.h>
#include <asm/string.h>
@@ -17,9 +18,6 @@
extern void __init __iomem *early_ioremap(u64 phys_addr, unsigned long size);
extern void __init early_iounmap(void __iomem *addr, unsigned long size);
-#define early_memremap early_ioremap
-#define early_memunmap early_iounmap
-
#ifdef CONFIG_ARCH_IOREMAP
static inline void __iomem *ioremap_prot(phys_addr_t offset, unsigned long size,
@@ -9,6 +9,7 @@
#include <linux/init.h>
#include <linux/acpi.h>
+#include <linux/efi-bgrt.h>
#include <linux/irq.h>
#include <linux/irqdomain.h>
#include <linux/memblock.h>
@@ -39,14 +40,14 @@ void __init __iomem * __acpi_map_table(unsigned long phys, unsigned long size)
if (!phys || !size)
return NULL;
- return early_memremap(phys, size);
+ return (void __iomem *)early_memremap(phys, size);
}
void __init __acpi_unmap_table(void __iomem *map, unsigned long size)
{
if (!map || !size)
return;
- early_memunmap(map, size);
+ early_memunmap((void *)map, size);
}
void __iomem *acpi_os_ioremap(acpi_physical_address phys, acpi_size size)
@@ -212,6 +213,9 @@ void __init acpi_boot_table_init(void)
/* Do not enable ACPI SPCR console by default */
acpi_parse_spcr(earlycon_acpi_spcr_enable, false);
+ if (IS_ENABLED(CONFIG_ACPI_BGRT))
+ acpi_table_parse(ACPI_SIG_BGRT, acpi_parse_bgrt);
+
return;
fdt_earlycon:
@@ -16,6 +16,15 @@ void __init early_iounmap(void __iomem *addr, unsigned long size)
}
+void __init *early_memremap(resource_size_t phys_addr, unsigned long size)
+{
+ return (__force void *)early_ioremap(phys_addr, size);
+}
+
+void __init early_memunmap(void *addr, unsigned long size)
+{
+}
+
void *early_memremap_ro(resource_size_t phys_addr, unsigned long size)
{
return early_memremap(phys_addr, size);
@@ -451,7 +451,7 @@ config ACPI_HED
config ACPI_BGRT
bool "Boottime Graphics Resource Table support"
- depends on EFI && (X86 || ARM64)
+ depends on EFI && (X86 || ARM64 || LOONGARCH)
help
This driver adds support for exposing the ACPI Boottime Graphics
Resource Table, which allows the operating system to obtain
Add ACPI BGRT support on LoongArch so it can display image provied by acpi table at boot stage and switch to graphical UI smoothly. Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202409102056.DNqh6zzA-lkp@intel.com/ Signed-off-by: Bibo Mao <maobibo@loongson.cn> --- v1 ... v2: 1. Solve compile warning issue reported from lkp, return type of function early_memunmap() is void *, that of function early_ioremap() is void __iomem *, force type conversion is added. --- arch/loongarch/include/asm/io.h | 4 +--- arch/loongarch/kernel/acpi.c | 8 ++++++-- arch/loongarch/mm/ioremap.c | 9 +++++++++ drivers/acpi/Kconfig | 2 +- 4 files changed, 17 insertions(+), 6 deletions(-) base-commit: 196145c606d0f816fd3926483cb1ff87e09c2c0b