Message ID | 20240501121742.1215792-4-sunilvl@ventanamicro.com |
---|---|
State | Superseded |
Headers | show |
Series | RISC-V: ACPI: Add external interrupt controller support | expand |
On Wed, May 01, 2024 at 05:47:28PM +0530, Sunil V L wrote: > Add a new function for RISC-V to do any architecture specific > initialization. This function will be used to create platform devices > like APLIC, PLIC, RISC-V IOMMU etc. This is similar to acpi_arm_init(). What is the special about this architecture that it requires a separate initialization that is _not_ going to be in other cases? Please, elaborate.
On Thu, May 02, 2024 at 12:24:14PM +0300, Andy Shevchenko wrote: > On Wed, May 01, 2024 at 05:47:28PM +0530, Sunil V L wrote: > > Add a new function for RISC-V to do any architecture specific > > initialization. This function will be used to create platform devices > > like APLIC, PLIC, RISC-V IOMMU etc. This is similar to acpi_arm_init(). > > What is the special about this architecture that it requires a separate > initialization that is _not_ going to be in other cases? > Please, elaborate. > This init function will be used to create GSI mapping structures and in future may be others like iommu. Like I mentioned, ARM already has similar function acpi_arm_init(). So, it is not new right? Thanks, Sunil
On Thu, May 02, 2024 at 03:32:25PM +0530, Sunil V L wrote: > On Thu, May 02, 2024 at 12:24:14PM +0300, Andy Shevchenko wrote: > > On Wed, May 01, 2024 at 05:47:28PM +0530, Sunil V L wrote: > > > Add a new function for RISC-V to do any architecture specific > > > initialization. This function will be used to create platform devices > > > like APLIC, PLIC, RISC-V IOMMU etc. This is similar to acpi_arm_init(). > > > > What is the special about this architecture that it requires a separate > > initialization that is _not_ going to be in other cases? > > Please, elaborate. > > > This init function will be used to create GSI mapping structures and in > future may be others like iommu. Like I mentioned, ARM already has > similar function acpi_arm_init(). So, it is not new right? > Just to add: This is to initialise everything around all the arch specific tables which you will not have on any other architectures. We could execute on all architectures but the tables will never be found. The main point is why do we want to do that if we can optimise and skip on all other archs. -- Regards, Sudeep
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index 844c46447914..17ee483c3bf4 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c @@ -1446,6 +1446,7 @@ static int __init acpi_init(void) acpi_hest_init(); acpi_ghes_init(); acpi_arm_init(); + acpi_riscv_init(); acpi_scan_init(); acpi_ec_init(); acpi_debugfs_init(); diff --git a/drivers/acpi/riscv/Makefile b/drivers/acpi/riscv/Makefile index 86b0925f612d..877de00d1b50 100644 --- a/drivers/acpi/riscv/Makefile +++ b/drivers/acpi/riscv/Makefile @@ -1,4 +1,4 @@ # SPDX-License-Identifier: GPL-2.0-only -obj-y += rhct.o +obj-y += rhct.o init.o obj-$(CONFIG_ACPI_PROCESSOR_IDLE) += cpuidle.o obj-$(CONFIG_ACPI_CPPC_LIB) += cppc.o diff --git a/drivers/acpi/riscv/init.c b/drivers/acpi/riscv/init.c new file mode 100644 index 000000000000..5f7571143245 --- /dev/null +++ b/drivers/acpi/riscv/init.c @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (C) 2023-2024, Ventana Micro Systems Inc + * Author: Sunil V L <sunilvl@ventanamicro.com> + * + */ + +#include <linux/acpi.h> + +void __init acpi_riscv_init(void) +{ +} diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 1afa289f1f4e..846a4001b5e0 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -1527,6 +1527,12 @@ void acpi_arm_init(void); static inline void acpi_arm_init(void) { } #endif +#ifdef CONFIG_RISCV +void acpi_riscv_init(void); +#else +static inline void acpi_riscv_init(void) { } +#endif + #ifdef CONFIG_ACPI_PCC void acpi_init_pcc(void); #else
Add a new function for RISC-V to do any architecture specific initialization. This function will be used to create platform devices like APLIC, PLIC, RISC-V IOMMU etc. This is similar to acpi_arm_init(). Signed-off-by: Sunil V L <sunilvl@ventanamicro.com> --- drivers/acpi/bus.c | 1 + drivers/acpi/riscv/Makefile | 2 +- drivers/acpi/riscv/init.c | 12 ++++++++++++ include/linux/acpi.h | 6 ++++++ 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 drivers/acpi/riscv/init.c