Re: [PATCH v2 1/4] ACPI: LoongArch: Add acpi_arch_[late]_init()

From: Bibo Mao

Date: Thu Jul 23 2026 - 08:50:28 EST




On 2026/7/22 上午3:10, Rafael J. Wysocki (Intel) wrote:
On Fri, Jul 17, 2026 at 8:44 AM Bibo Mao <maobibo@xxxxxxxxxxx> wrote:

LoongArch IOMMU scanning flow is similar with virtio-iommu,
there is early init and late_init. In early init function, PCI
ACS is enabled if there is IOMMU table, and late_init is called
after PCI device scanning, where IOVT table scanning function is
executed.

Here add acpi_arch_init() and acpi_arch_late_init() API on LoongArch,
now they are both empty, In the future, IOVT table parsing will be
added.

Signed-off-by: Bibo Mao <maobibo@xxxxxxxxxxx>
---
drivers/acpi/Makefile | 2 +-
drivers/acpi/bus.c | 2 ++
drivers/acpi/loongarch/Makefile | 2 ++
drivers/acpi/loongarch/init.c | 11 +++++++++++
include/linux/acpi.h | 1 +
5 files changed, 17 insertions(+), 1 deletion(-)
create mode 100644 drivers/acpi/loongarch/Makefile
create mode 100644 drivers/acpi/loongarch/init.c

diff --git a/drivers/acpi/Makefile b/drivers/acpi/Makefile
index d1b0affb844f..91584a3c1e01 100644
--- a/drivers/acpi/Makefile
+++ b/drivers/acpi/Makefile
@@ -131,6 +131,6 @@ obj-y += dptf/
obj-$(CONFIG_ARM64) += arm64/

obj-$(CONFIG_ACPI_VIOT) += viot.o
-
+obj-$(CONFIG_LOONGARCH) += loongarch/
obj-$(CONFIG_RISCV) += riscv/
obj-$(CONFIG_X86) += x86/
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index a30a904f6535..5f6924b9e29d 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -1571,6 +1571,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)
{
@@ -1609,6 +1610,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/Makefile b/drivers/acpi/loongarch/Makefile
new file mode 100644
index 000000000000..d3764139dfaf
--- /dev/null
+++ b/drivers/acpi/loongarch/Makefile
@@ -0,0 +1,2 @@
+# SPDX-License-Identifier: GPL-2.0-only
+obj-y += init.o
diff --git a/drivers/acpi/loongarch/init.c b/drivers/acpi/loongarch/init.c
new file mode 100644
index 000000000000..b11aa5c7d928
--- /dev/null
+++ b/drivers/acpi/loongarch/init.c
@@ -0,0 +1,11 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+#include <linux/acpi.h>
+
+void __init acpi_arch_init(void)
+{
+}
+
+void __init acpi_arch_late_init(void)
+{
+}
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 60ab50cb8930..c6a180341c2d 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -1617,6 +1617,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);
--

Please fold this one into the patch in which the new function is actually used.
Hi Rafael,

Thanks for reviewing my patch.

yeap, will fold this one into the patch where it is actually used.

Regards
Bibo Mao

Thanks!