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

"Rafael J. Wysocki (Intel)" <[email protected]> Tue, 21 Jul 2026 21:10:35 +0200
Newsgroups dev.linux.lists.acpica-devel,dev.linux.lists.loongarch,org.kernel.vger.linux-acpi,org.kernel.vger.linux-kernel
Message-ID <CAJZ5v0j4w01XhqQ1EHKCMXOs=v-cddPu=NtdtX3wL7vAi6Y9Rg@mail.gmail.com>
On Fri, Jul 17, 2026 at 8:44=E2=80=AFAM Bibo Mao <[email protected]> wrot=
e:
>
> 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 <[email protected]>
> ---
>  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                               +=3D dptf/
>  obj-$(CONFIG_ARM64)            +=3D arm64/
>
>  obj-$(CONFIG_ACPI_VIOT)                +=3D viot.o
> -
> +obj-$(CONFIG_LOONGARCH)                +=3D loongarch/
>  obj-$(CONFIG_RISCV)            +=3D riscv/
>  obj-$(CONFIG_X86)              +=3D 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/Mak=
efile
> 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                                  +=3D 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 u=
sed.

Thanks!