All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sunil V L <sunilvl@ventanamicro.com>
To: Andrew Jones <ajones@ventanamicro.com>
Cc: Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
	Marc Zyngier <maz@kernel.org>, Jonathan Corbet <corbet@lwn.net>,
	linux-riscv@lists.infradead.org, linux-acpi@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	Conor Dooley <conor.dooley@microchip.com>,
	Anup Patel <apatel@ventanamicro.com>,
	Atish Patra <atishp@rivosinc.com>,
	"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>
Subject: Re: [PATCH V2 18/21] RISC-V: Add ACPI initialization in setup_arch()
Date: Fri, 24 Feb 2023 18:06:22 +0530	[thread overview]
Message-ID: <Y/ivRjQbIna7M4R2@sunil-laptop> (raw)
In-Reply-To: <20230220200743.rev3djzbaa2jcmg6@orel>

On Mon, Feb 20, 2023 at 09:07:43PM +0100, Andrew Jones wrote:
> On Thu, Feb 16, 2023 at 11:50:40PM +0530, Sunil V L wrote:
> > Initialize the ACPI core for RISC-V during boot.
> > 
> > ACPI tables and interpreter are initialized based on
> > the information passed from the firmware and the value of
> > the kernel parameter 'acpi'.
> > 
> > Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
> > Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> > ---
> >  arch/riscv/kernel/acpi.c  | 113 ++++++++++++++++++++++++++++++++++++++
> >  arch/riscv/kernel/setup.c |  25 ++++++---
> >  2 files changed, 130 insertions(+), 8 deletions(-)
> > 
> > diff --git a/arch/riscv/kernel/acpi.c b/arch/riscv/kernel/acpi.c
> > index 13b26c87c136..35e7b24a30c8 100644
> > --- a/arch/riscv/kernel/acpi.c
> > +++ b/arch/riscv/kernel/acpi.c
> > @@ -16,6 +16,7 @@
> >  #include <linux/acpi.h>
> >  #include <linux/io.h>
> >  #include <linux/pci.h>
> > +#include <linux/efi.h>
> >  
> >  int acpi_noirq = 1;		/* skip ACPI IRQ initialization */
> >  int acpi_disabled = 1;
> > @@ -26,6 +27,118 @@ EXPORT_SYMBOL(acpi_pci_disabled);
> >  
> >  static unsigned int intc_count;
> >  static struct acpi_madt_rintc cpu_madt_rintc[NR_CPUS];
> > +static bool param_acpi_off __initdata;
> > +static bool param_acpi_on __initdata;
> > +static bool param_acpi_force __initdata;
> > +
> > +static int __init parse_acpi(char *arg)
> > +{
> > +	if (!arg)
> > +		return -EINVAL;
> > +
> > +	/* "acpi=off" disables both ACPI table parsing and interpreter */
> > +	if (strcmp(arg, "off") == 0)
> > +		param_acpi_off = true;
> > +	else if (strcmp(arg, "on") == 0) /* prefer ACPI over DT */
> > +		param_acpi_on = true;
> > +	else if (strcmp(arg, "force") == 0) /* force ACPI to be enabled */
> > +		param_acpi_force = true;
> > +	else
> > +		return -EINVAL;	/* Core will print when we return error */
> > +
> > +	return 0;
> > +}
> > +early_param("acpi", parse_acpi);
> > +
> > +/*
> > + * acpi_fadt_sanity_check() - Check FADT presence and carry out sanity
> > + *			      checks on it
> > + *
> > + * Return 0 on success,  <0 on failure
> > + */
> > +static int __init acpi_fadt_sanity_check(void)
> > +{
> > +	struct acpi_table_header *table;
> > +	struct acpi_table_fadt *fadt;
> > +	acpi_status status;
> > +	int ret = 0;
> > +
> > +	/*
> > +	 * FADT is required on riscv; retrieve it to check its presence
> > +	 * and carry out revision and ACPI HW reduced compliancy tests
> > +	 */
> > +	status = acpi_get_table(ACPI_SIG_FADT, 0, &table);
> > +	if (ACPI_FAILURE(status)) {
> > +		const char *msg = acpi_format_exception(status);
> > +
> > +		pr_err("Failed to get FADT table, %s\n", msg);
> > +		return -ENODEV;
> > +	}
> > +
> > +	fadt = (struct acpi_table_fadt *)table;
> > +
> > +	if (!(fadt->flags & ACPI_FADT_HW_REDUCED)) {
> 
> Do we also need to check for ACPI version 5.0+ when checking for HW
> reduced?
> 
We need to add version check of FADT once spec is released. Will
update it at that time.

> > +		pr_err("FADT not ACPI hardware reduced compliant\n");
> > +		ret = -EINVAL;
> > +	}
> > +
> > +	/*
> > +	 * acpi_get_table() creates FADT table mapping that
> > +	 * should be released after parsing and before resuming boot
> > +	 */
> > +	acpi_put_table(table);
> > +	return ret;
> > +}
> > +
> > +/*
> > + * acpi_boot_table_init() called from setup_arch(), always.
> > + *	1. find RSDP and get its address, and then find XSDT
> > + *	2. extract all tables and checksums them all
> > + *	3. check ACPI FADT HW reduced flag
> > + *
> > + * We can parse ACPI boot-time tables such as MADT after
> > + * this function is called.
> > + *
> > + * On return ACPI is enabled if either:
> > + *
> > + * - ACPI tables are initialized and sanity checks passed
> > + * - acpi=force was passed in the command line and ACPI was not disabled
> > + *   explicitly through acpi=off command line parameter
> > + *
> > + * ACPI is disabled on function return otherwise
> > + */
> > +void __init acpi_boot_table_init(void)
> > +{
> > +	/*
> > +	 * Enable ACPI instead of device tree unless
> > +	 * - ACPI has been disabled explicitly (acpi=off), or
> > +	 * - firmware has not populated ACPI ptr in EFI system table
> > +	 *   and ACPI has not been [force] enabled (acpi=on|force)
> > +	 */
> > +	if (param_acpi_off ||
> > +	    (!param_acpi_on && !param_acpi_force &&
> > +	     efi.acpi20 == EFI_INVALID_TABLE_ADDR))
> > +		return;
> > +
> > +	/*
> > +	 * ACPI is disabled at this point. Enable it in order to parse
> > +	 * the ACPI tables and carry out sanity checks
> > +	 */
> > +	enable_acpi();
> > +
> > +	/*
> > +	 * If ACPI tables are initialized and FADT sanity checks passed,
> > +	 * leave ACPI enabled and carry on booting; otherwise disable ACPI
> > +	 * on initialization error.
> > +	 * If acpi=force was passed on the command line it forces ACPI
> > +	 * to be enabled even if its initialization failed.
> > +	 */
> > +	if (acpi_table_init() || acpi_fadt_sanity_check()) {
> > +		pr_err("Failed to init ACPI tables\n");
> > +		if (!param_acpi_force)
> > +			disable_acpi();
> > +	}
> > +}
> 
> A lot of the above code is common with arm64. It'd be nice to share that,
> but maybe refactoring can be done on top of this.
>
Okay.
 
> >  
> >  static int acpi_parse_madt_rintc(union acpi_subtable_headers *header, const unsigned long end)
> >  {
> > diff --git a/arch/riscv/kernel/setup.c b/arch/riscv/kernel/setup.c
> > index 4335f08ffaf2..c2ee7f4427a1 100644
> > --- a/arch/riscv/kernel/setup.c
> > +++ b/arch/riscv/kernel/setup.c
> > @@ -8,6 +8,7 @@
> >   *  Nick Kossifidis <mick@ics.forth.gr>
> >   */
> >  
> > +#include <linux/acpi.h>
> >  #include <linux/init.h>
> >  #include <linux/mm.h>
> >  #include <linux/memblock.h>
> > @@ -276,14 +277,22 @@ void __init setup_arch(char **cmdline_p)
> >  
> >  	efi_init();
> >  	paging_init();
> > -#if IS_ENABLED(CONFIG_BUILTIN_DTB)
> > -	unflatten_and_copy_device_tree();
> > -#else
> > -	if (early_init_dt_verify(__va(XIP_FIXUP(dtb_early_pa))))
> > -		unflatten_device_tree();
> > -	else
> > -		pr_err("No DTB found in kernel mappings\n");
> > -#endif
> > +
> > +	/* Parse the ACPI tables for possible boot-time configuration */
> > +	acpi_boot_table_init();
> > +	if (acpi_disabled) {
> > +		if (IS_ENABLED(CONFIG_BUILTIN_DTB)) {
> > +			unflatten_and_copy_device_tree();
> > +		} else {
> > +			if (early_init_dt_verify(__va(XIP_FIXUP(dtb_early_pa))))
> > +				unflatten_device_tree();
> > +			else
> > +				pr_err("No DTB found in kernel mappings\n");
> > +		}
> > +	} else {
> > +		early_init_dt_verify(__va(XIP_FIXUP(dtb_early_pa)));
> > +	}
> > +
> >  	early_init_fdt_scan_reserved_mem();
> >  	misc_mem_init();
> >  
> > -- 
> > 2.34.1
> >
> 
> Otherwise,
> 
> Reviewed-by: Andrew Jones <ajones@ventanamicro.com>

Thanks,
Sunil

WARNING: multiple messages have this Message-ID (diff)
From: Sunil V L <sunilvl@ventanamicro.com>
To: Andrew Jones <ajones@ventanamicro.com>
Cc: Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
	Marc Zyngier <maz@kernel.org>, Jonathan Corbet <corbet@lwn.net>,
	linux-riscv@lists.infradead.org, linux-acpi@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	Conor Dooley <conor.dooley@microchip.com>,
	Anup Patel <apatel@ventanamicro.com>,
	Atish Patra <atishp@rivosinc.com>,
	"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>
Subject: Re: [PATCH V2 18/21] RISC-V: Add ACPI initialization in setup_arch()
Date: Fri, 24 Feb 2023 18:06:22 +0530	[thread overview]
Message-ID: <Y/ivRjQbIna7M4R2@sunil-laptop> (raw)
In-Reply-To: <20230220200743.rev3djzbaa2jcmg6@orel>

On Mon, Feb 20, 2023 at 09:07:43PM +0100, Andrew Jones wrote:
> On Thu, Feb 16, 2023 at 11:50:40PM +0530, Sunil V L wrote:
> > Initialize the ACPI core for RISC-V during boot.
> > 
> > ACPI tables and interpreter are initialized based on
> > the information passed from the firmware and the value of
> > the kernel parameter 'acpi'.
> > 
> > Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
> > Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> > ---
> >  arch/riscv/kernel/acpi.c  | 113 ++++++++++++++++++++++++++++++++++++++
> >  arch/riscv/kernel/setup.c |  25 ++++++---
> >  2 files changed, 130 insertions(+), 8 deletions(-)
> > 
> > diff --git a/arch/riscv/kernel/acpi.c b/arch/riscv/kernel/acpi.c
> > index 13b26c87c136..35e7b24a30c8 100644
> > --- a/arch/riscv/kernel/acpi.c
> > +++ b/arch/riscv/kernel/acpi.c
> > @@ -16,6 +16,7 @@
> >  #include <linux/acpi.h>
> >  #include <linux/io.h>
> >  #include <linux/pci.h>
> > +#include <linux/efi.h>
> >  
> >  int acpi_noirq = 1;		/* skip ACPI IRQ initialization */
> >  int acpi_disabled = 1;
> > @@ -26,6 +27,118 @@ EXPORT_SYMBOL(acpi_pci_disabled);
> >  
> >  static unsigned int intc_count;
> >  static struct acpi_madt_rintc cpu_madt_rintc[NR_CPUS];
> > +static bool param_acpi_off __initdata;
> > +static bool param_acpi_on __initdata;
> > +static bool param_acpi_force __initdata;
> > +
> > +static int __init parse_acpi(char *arg)
> > +{
> > +	if (!arg)
> > +		return -EINVAL;
> > +
> > +	/* "acpi=off" disables both ACPI table parsing and interpreter */
> > +	if (strcmp(arg, "off") == 0)
> > +		param_acpi_off = true;
> > +	else if (strcmp(arg, "on") == 0) /* prefer ACPI over DT */
> > +		param_acpi_on = true;
> > +	else if (strcmp(arg, "force") == 0) /* force ACPI to be enabled */
> > +		param_acpi_force = true;
> > +	else
> > +		return -EINVAL;	/* Core will print when we return error */
> > +
> > +	return 0;
> > +}
> > +early_param("acpi", parse_acpi);
> > +
> > +/*
> > + * acpi_fadt_sanity_check() - Check FADT presence and carry out sanity
> > + *			      checks on it
> > + *
> > + * Return 0 on success,  <0 on failure
> > + */
> > +static int __init acpi_fadt_sanity_check(void)
> > +{
> > +	struct acpi_table_header *table;
> > +	struct acpi_table_fadt *fadt;
> > +	acpi_status status;
> > +	int ret = 0;
> > +
> > +	/*
> > +	 * FADT is required on riscv; retrieve it to check its presence
> > +	 * and carry out revision and ACPI HW reduced compliancy tests
> > +	 */
> > +	status = acpi_get_table(ACPI_SIG_FADT, 0, &table);
> > +	if (ACPI_FAILURE(status)) {
> > +		const char *msg = acpi_format_exception(status);
> > +
> > +		pr_err("Failed to get FADT table, %s\n", msg);
> > +		return -ENODEV;
> > +	}
> > +
> > +	fadt = (struct acpi_table_fadt *)table;
> > +
> > +	if (!(fadt->flags & ACPI_FADT_HW_REDUCED)) {
> 
> Do we also need to check for ACPI version 5.0+ when checking for HW
> reduced?
> 
We need to add version check of FADT once spec is released. Will
update it at that time.

> > +		pr_err("FADT not ACPI hardware reduced compliant\n");
> > +		ret = -EINVAL;
> > +	}
> > +
> > +	/*
> > +	 * acpi_get_table() creates FADT table mapping that
> > +	 * should be released after parsing and before resuming boot
> > +	 */
> > +	acpi_put_table(table);
> > +	return ret;
> > +}
> > +
> > +/*
> > + * acpi_boot_table_init() called from setup_arch(), always.
> > + *	1. find RSDP and get its address, and then find XSDT
> > + *	2. extract all tables and checksums them all
> > + *	3. check ACPI FADT HW reduced flag
> > + *
> > + * We can parse ACPI boot-time tables such as MADT after
> > + * this function is called.
> > + *
> > + * On return ACPI is enabled if either:
> > + *
> > + * - ACPI tables are initialized and sanity checks passed
> > + * - acpi=force was passed in the command line and ACPI was not disabled
> > + *   explicitly through acpi=off command line parameter
> > + *
> > + * ACPI is disabled on function return otherwise
> > + */
> > +void __init acpi_boot_table_init(void)
> > +{
> > +	/*
> > +	 * Enable ACPI instead of device tree unless
> > +	 * - ACPI has been disabled explicitly (acpi=off), or
> > +	 * - firmware has not populated ACPI ptr in EFI system table
> > +	 *   and ACPI has not been [force] enabled (acpi=on|force)
> > +	 */
> > +	if (param_acpi_off ||
> > +	    (!param_acpi_on && !param_acpi_force &&
> > +	     efi.acpi20 == EFI_INVALID_TABLE_ADDR))
> > +		return;
> > +
> > +	/*
> > +	 * ACPI is disabled at this point. Enable it in order to parse
> > +	 * the ACPI tables and carry out sanity checks
> > +	 */
> > +	enable_acpi();
> > +
> > +	/*
> > +	 * If ACPI tables are initialized and FADT sanity checks passed,
> > +	 * leave ACPI enabled and carry on booting; otherwise disable ACPI
> > +	 * on initialization error.
> > +	 * If acpi=force was passed on the command line it forces ACPI
> > +	 * to be enabled even if its initialization failed.
> > +	 */
> > +	if (acpi_table_init() || acpi_fadt_sanity_check()) {
> > +		pr_err("Failed to init ACPI tables\n");
> > +		if (!param_acpi_force)
> > +			disable_acpi();
> > +	}
> > +}
> 
> A lot of the above code is common with arm64. It'd be nice to share that,
> but maybe refactoring can be done on top of this.
>
Okay.
 
> >  
> >  static int acpi_parse_madt_rintc(union acpi_subtable_headers *header, const unsigned long end)
> >  {
> > diff --git a/arch/riscv/kernel/setup.c b/arch/riscv/kernel/setup.c
> > index 4335f08ffaf2..c2ee7f4427a1 100644
> > --- a/arch/riscv/kernel/setup.c
> > +++ b/arch/riscv/kernel/setup.c
> > @@ -8,6 +8,7 @@
> >   *  Nick Kossifidis <mick@ics.forth.gr>
> >   */
> >  
> > +#include <linux/acpi.h>
> >  #include <linux/init.h>
> >  #include <linux/mm.h>
> >  #include <linux/memblock.h>
> > @@ -276,14 +277,22 @@ void __init setup_arch(char **cmdline_p)
> >  
> >  	efi_init();
> >  	paging_init();
> > -#if IS_ENABLED(CONFIG_BUILTIN_DTB)
> > -	unflatten_and_copy_device_tree();
> > -#else
> > -	if (early_init_dt_verify(__va(XIP_FIXUP(dtb_early_pa))))
> > -		unflatten_device_tree();
> > -	else
> > -		pr_err("No DTB found in kernel mappings\n");
> > -#endif
> > +
> > +	/* Parse the ACPI tables for possible boot-time configuration */
> > +	acpi_boot_table_init();
> > +	if (acpi_disabled) {
> > +		if (IS_ENABLED(CONFIG_BUILTIN_DTB)) {
> > +			unflatten_and_copy_device_tree();
> > +		} else {
> > +			if (early_init_dt_verify(__va(XIP_FIXUP(dtb_early_pa))))
> > +				unflatten_device_tree();
> > +			else
> > +				pr_err("No DTB found in kernel mappings\n");
> > +		}
> > +	} else {
> > +		early_init_dt_verify(__va(XIP_FIXUP(dtb_early_pa)));
> > +	}
> > +
> >  	early_init_fdt_scan_reserved_mem();
> >  	misc_mem_init();
> >  
> > -- 
> > 2.34.1
> >
> 
> Otherwise,
> 
> Reviewed-by: Andrew Jones <ajones@ventanamicro.com>

Thanks,
Sunil

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

  reply	other threads:[~2023-02-24 12:36 UTC|newest]

Thread overview: 106+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-16 18:20 [PATCH V2 00/21] Add basic ACPI support for RISC-V Sunil V L
2023-02-16 18:20 ` Sunil V L
2023-02-16 18:20 ` [PATCH V2 01/21] riscv: move sbi_init() earlier before jump_label_init() Sunil V L
2023-02-16 18:20   ` Sunil V L
2023-02-16 18:20 ` [PATCH V2 02/21] ACPICA: MADT: Add RISC-V INTC interrupt controller Sunil V L
2023-02-16 18:20   ` Sunil V L
2023-02-16 18:20 ` [PATCH V2 03/21] ACPICA: Add structure definitions for RISC-V RHCT Sunil V L
2023-02-16 18:20   ` Sunil V L
2023-02-16 18:20 ` [PATCH V2 04/21] RISC-V: Add support to build the ACPI core Sunil V L
2023-02-16 18:20   ` Sunil V L
2023-02-20 15:44   ` Andrew Jones
2023-02-20 15:44     ` Andrew Jones
2023-02-24  9:00     ` Sunil V L
2023-02-24  9:00       ` Sunil V L
2023-02-16 18:20 ` [PATCH V2 05/21] ACPI: Kconfig: Enable ACPI_PROCESSOR for RISC-V Sunil V L
2023-02-16 18:20   ` Sunil V L
2023-02-20 16:05   ` Andrew Jones
2023-02-20 16:05     ` Andrew Jones
2023-02-24  8:45     ` Sunil V L
2023-02-24  8:45       ` Sunil V L
2023-02-16 18:20 ` [PATCH V2 06/21] ACPI: OSL: Make should_use_kmap() 0 " Sunil V L
2023-02-16 18:20   ` Sunil V L
2023-02-16 18:20 ` [PATCH V2 07/21] ACPI: processor_core: RISC-V: Enable mapping processor to the hartid Sunil V L
2023-02-16 18:20   ` Sunil V L
2023-02-20 16:10   ` Andrew Jones
2023-02-20 16:10     ` Andrew Jones
2023-02-16 18:20 ` [PATCH V2 08/21] drivers/acpi: RISC-V: Add RHCT related code Sunil V L
2023-02-16 18:20   ` Sunil V L
2023-02-20 16:36   ` Andrew Jones
2023-02-20 16:36     ` Andrew Jones
2023-02-24 12:03     ` Sunil V L
2023-02-24 12:03       ` Sunil V L
2023-02-16 18:20 ` [PATCH V2 09/21] RISC-V: smpboot: Create wrapper smp_setup() Sunil V L
2023-02-16 18:20   ` Sunil V L
2023-02-20 16:37   ` Andrew Jones
2023-02-20 16:37     ` Andrew Jones
2023-02-16 18:20 ` [PATCH V2 10/21] RISC-V: smpboot: Add ACPI support in smp_setup() Sunil V L
2023-02-16 18:20   ` Sunil V L
2023-02-20 17:08   ` Andrew Jones
2023-02-20 17:08     ` Andrew Jones
2023-02-24 16:50     ` Sunil V L
2023-02-24 16:50       ` Sunil V L
2023-02-24 17:06       ` Andrew Jones
2023-02-24 17:06         ` Andrew Jones
2023-02-16 18:20 ` [PATCH V2 11/21] RISC-V: ACPI: Add a function to retrieve the hartid Sunil V L
2023-02-16 18:20   ` Sunil V L
2023-02-20 17:34   ` Andrew Jones
2023-02-20 17:34     ` Andrew Jones
2023-02-16 18:20 ` [PATCH V2 12/21] RISC-V: cpufeature: Add ACPI support in riscv_fill_hwcap() Sunil V L
2023-02-16 18:20   ` Sunil V L
2023-02-20 17:45   ` Andrew Jones
2023-02-20 17:45     ` Andrew Jones
2023-02-16 18:20 ` [PATCH V2 13/21] RISC-V: cpu: Enable cpuinfo for ACPI systems Sunil V L
2023-02-16 18:20   ` Sunil V L
2023-02-20 17:54   ` Andrew Jones
2023-02-20 17:54     ` Andrew Jones
2023-02-24 12:27     ` Sunil V L
2023-02-24 12:27       ` Sunil V L
2023-02-16 18:20 ` [PATCH V2 14/21] irqchip/riscv-intc: Add ACPI support Sunil V L
2023-02-16 18:20   ` Sunil V L
2023-02-20 19:37   ` Andrew Jones
2023-02-20 19:37     ` Andrew Jones
2023-02-24 12:29     ` Sunil V L
2023-02-24 12:29       ` Sunil V L
2023-02-16 18:20 ` [PATCH V2 15/21] clocksource/timer-riscv: Refactor riscv_timer_init_dt() Sunil V L
2023-02-16 18:20   ` Sunil V L
2023-02-20 19:47   ` Andrew Jones
2023-02-20 19:47     ` Andrew Jones
2023-02-16 18:20 ` [PATCH V2 16/21] clocksource/timer-riscv: Add ACPI support Sunil V L
2023-02-16 18:20   ` Sunil V L
2023-02-20 19:51   ` Andrew Jones
2023-02-20 19:51     ` Andrew Jones
2023-02-16 18:20 ` [PATCH V2 17/21] RISC-V: time.c: Add ACPI support for time_init() Sunil V L
2023-02-16 18:20   ` Sunil V L
2023-02-20 19:58   ` Andrew Jones
2023-02-20 19:58     ` Andrew Jones
2023-02-24 12:33     ` Sunil V L
2023-02-24 12:33       ` Sunil V L
2023-02-16 18:20 ` [PATCH V2 18/21] RISC-V: Add ACPI initialization in setup_arch() Sunil V L
2023-02-16 18:20   ` Sunil V L
2023-02-20 20:07   ` Andrew Jones
2023-02-20 20:07     ` Andrew Jones
2023-02-24 12:36     ` Sunil V L [this message]
2023-02-24 12:36       ` Sunil V L
2023-02-24 13:07       ` Andrew Jones
2023-02-24 13:07         ` Andrew Jones
2023-02-24 14:44         ` Sunil V L
2023-02-24 14:44           ` Sunil V L
2023-02-16 18:20 ` [PATCH V2 19/21] RISC-V: Enable ACPI in defconfig Sunil V L
2023-02-16 18:20   ` Sunil V L
2023-02-20 20:09   ` Andrew Jones
2023-02-20 20:09     ` Andrew Jones
2023-02-24  8:46     ` Sunil V L
2023-02-24  8:46       ` Sunil V L
2023-02-16 18:20 ` [PATCH V2 20/21] MAINTAINERS: Add entry for drivers/acpi/riscv Sunil V L
2023-02-16 18:20   ` Sunil V L
2023-02-20 20:14   ` Andrew Jones
2023-02-20 20:14     ` Andrew Jones
2023-02-24 12:38     ` Sunil V L
2023-02-24 12:38       ` Sunil V L
2023-02-16 18:20 ` [PATCH V2 21/21] Documentation/kernel-parameters.txt: Add RISC-V for ACPI parameter Sunil V L
2023-02-16 18:20   ` Sunil V L
2023-02-20 20:15   ` Andrew Jones
2023-02-20 20:15     ` Andrew Jones
2023-02-24 12:37     ` Sunil V L
2023-02-24 12:37       ` Sunil V L

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y/ivRjQbIna7M4R2@sunil-laptop \
    --to=sunilvl@ventanamicro.com \
    --cc=ajones@ventanamicro.com \
    --cc=aou@eecs.berkeley.edu \
    --cc=apatel@ventanamicro.com \
    --cc=atishp@rivosinc.com \
    --cc=conor.dooley@microchip.com \
    --cc=corbet@lwn.net \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=maz@kernel.org \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    --cc=rafael.j.wysocki@intel.com \
    --cc=rafael@kernel.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.