[PATCH 4/8] ACPI: LoongArch: Add acpi_arch_late_init support
From: Bibo Mao
Date: Wed Jun 17 2026 - 03:50:20 EST
On LoongArch system, IOMMU is PCI device, its device id is based
on BDF information. IOVT table scanning should be called after PCI
device scanning.
Here api acpi_arch_late_init() is added, it is a weak function on
other architectures. On LoongArch it is empty function now, IOVT table
scanning function be will executed in this function later.
Signed-off-by: Bibo Mao <maobibo@xxxxxxxxxxx>
---
drivers/acpi/bus.c | 2 ++
drivers/acpi/loongarch/init.c | 4 ++++
include/linux/acpi.h | 1 +
3 files changed, 7 insertions(+)
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index 3b7db94b81f7..4a2d2bab05cd 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -1556,6 +1556,7 @@ struct kobject *acpi_kobj;
EXPORT_SYMBOL_GPL(acpi_kobj);
void __weak __init acpi_arch_init(void) { }
+void __weak __init acpi_arch_late_init(void) { }
static int __init acpi_init(void)
{
@@ -1594,6 +1595,7 @@ static int __init acpi_init(void)
acpi_wakeup_device_init();
acpi_debugger_init();
acpi_setup_sb_notify_handler();
+ acpi_arch_late_init();
acpi_viot_init();
return 0;
}
diff --git a/drivers/acpi/loongarch/init.c b/drivers/acpi/loongarch/init.c
index 9233f6c1cb55..1aa9bfa66e51 100644
--- a/drivers/acpi/loongarch/init.c
+++ b/drivers/acpi/loongarch/init.c
@@ -8,3 +8,7 @@ void __init acpi_arch_init(void)
if (IS_ENABLED(CONFIG_ACPI_IOVT))
acpi_iovt_init();
}
+
+void __init acpi_arch_late_init(void)
+{
+}
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 67effb91fa98..24d00d01bf12 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -1610,6 +1610,7 @@ static inline int acpi_pptt_get_cpumask_from_cache_id(u32 cache_id,
#endif
void acpi_arch_init(void);
+void acpi_arch_late_init(void);
#ifdef CONFIG_ACPI_PCC
void acpi_init_pcc(void);
--
2.39.3