diff mbox

[v3,61/62] arm/acpi: Add acpi parameter to enable/disable acpi

Message ID 1447753261-7552-62-git-send-email-shannon.zhao@linaro.org (mailing list archive)
State New, archived
Headers show

Commit Message

Shannon Zhao Nov. 17, 2015, 9:41 a.m. UTC
From: Parth Dixit <parth.dixit@linaro.org>

ACPI will be disabled by default. Define new command line parameter
"acpi" for enabling it.

Signed-off-by: Parth Dixit <parth.dixit@linaro.org>
Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
---
 xen/arch/arm/setup.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

Comments

Julien Grall Nov. 17, 2015, 12:26 p.m. UTC | #1
Hi Shannon,

I would have appreciate if you I had looked on comments made on the
series sent by Parth.

On 17/11/15 09:41, shannon.zhao@linaro.org wrote:
> From: Parth Dixit <parth.dixit@linaro.org>
> 
> ACPI will be disabled by default. Define new command line parameter
> "acpi" for enabling it.

I don't think this is right. We have to be able to boot platform where
there is only ACPI provided without adding a command line option.

Overall, it would be better if we follow the same behavior as Linux i.e
ACPI is enabled instead of DT unless:
        - ACPI has been disabled (acpi=off)
        - the DT is not empty (it has more than just a /chosen node) and
ACPI has not been forced to be enabled (acpi=force).

> 
> Signed-off-by: Parth Dixit <parth.dixit@linaro.org>
> Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
> ---
>  xen/arch/arm/setup.c | 22 ++++++++++++++++++++++
>  1 file changed, 22 insertions(+)
> 
> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> index 63feadf..1a40323 100644
> --- a/xen/arch/arm/setup.c
> +++ b/xen/arch/arm/setup.c
> @@ -59,6 +59,10 @@ static unsigned long opt_xenheap_megabytes __initdata;
>  integer_param("xenheap_megabytes", opt_xenheap_megabytes);
>  #endif
>  
> +/* "acpi=force" : Enables acpi */
> +static void parse_acpi_param(char *s);
> +custom_param("acpi", parse_acpi_param);
> +
>  static __used void init_done(void)
>  {
>      free_init_memory();
> @@ -84,6 +88,23 @@ static const char * __initdata processor_implementers[] = {
>      ['i'] = "Intel Corporation",
>  };
>  
> +static char __initdata acpi_param[10] = "";
> +static void __init parse_acpi_param(char *s)
> +{
> +    /* Save the parameter so it can be propagated to domain0. */
> +    safe_strcpy(acpi_param, s);

This acpi_param is never used within this series. Please drop it or
either implement what the comment claim.

> +
> +    /* Interpret the parameter for use within Xen. */
> +    if ( !parse_bool(s) )
> +    {
> +        disable_acpi();
> +    }
> +    else if ( !strcmp(s, "force") )
> +    {
> +        acpi_disabled = 0;
> +    }
> +}
> +
>  static void __init processor_id(void)
>  {
>      const char *implementer = "Unknown";
> @@ -729,6 +750,7 @@ void __init start_xen(unsigned long boot_phys_offset,
>          + (fdt_paddr & ((1 << SECOND_SHIFT) - 1));
>      fdt_size = boot_fdt_info(device_tree_flattened, fdt_paddr);
>  
> +    disable_acpi();
>      cmdline = boot_fdt_cmdline(device_tree_flattened);
>      printk("Command line: %s\n", cmdline);
>      cmdline_parse(cmdline);
> 

Regards,
Shannon Zhao Nov. 17, 2015, 12:57 p.m. UTC | #2
Hi,

On 2015/11/17 20:26, Julien Grall wrote:
> Hi Shannon,
> 
> I would have appreciate if you I had looked on comments made on the
> series sent by Parth.
> 
I do look. But I didn't find "Follow-Ups" ones at [1]. And among the
mails which Parth forwarded to me there is no [PATCH v2 37/41]. This is
werid.

[1]http://lists.xenproject.org/archives/html/xen-devel/2015-05/msg02227.html

> On 17/11/15 09:41, shannon.zhao@linaro.org wrote:
>> From: Parth Dixit <parth.dixit@linaro.org>
>>
>> ACPI will be disabled by default. Define new command line parameter
>> "acpi" for enabling it.
> 
> I don't think this is right. We have to be able to boot platform where
> there is only ACPI provided without adding a command line option.
> 
> Overall, it would be better if we follow the same behavior as Linux i.e
> ACPI is enabled instead of DT unless:
>         - ACPI has been disabled (acpi=off)
>         - the DT is not empty (it has more than just a /chosen node) and
> ACPI has not been forced to be enabled (acpi=force).
> 
Ok, will add this.

>>
>> Signed-off-by: Parth Dixit <parth.dixit@linaro.org>
>> Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
>> ---
>>  xen/arch/arm/setup.c | 22 ++++++++++++++++++++++
>>  1 file changed, 22 insertions(+)
>>
>> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
>> index 63feadf..1a40323 100644
>> --- a/xen/arch/arm/setup.c
>> +++ b/xen/arch/arm/setup.c
>> @@ -59,6 +59,10 @@ static unsigned long opt_xenheap_megabytes __initdata;
>>  integer_param("xenheap_megabytes", opt_xenheap_megabytes);
>>  #endif
>>  
>> +/* "acpi=force" : Enables acpi */
>> +static void parse_acpi_param(char *s);
>> +custom_param("acpi", parse_acpi_param);
>> +
>>  static __used void init_done(void)
>>  {
>>      free_init_memory();
>> @@ -84,6 +88,23 @@ static const char * __initdata processor_implementers[] = {
>>      ['i'] = "Intel Corporation",
>>  };
>>  
>> +static char __initdata acpi_param[10] = "";
>> +static void __init parse_acpi_param(char *s)
>> +{
>> +    /* Save the parameter so it can be propagated to domain0. */
>> +    safe_strcpy(acpi_param, s);
> 
> This acpi_param is never used within this series. Please drop it or
> either implement what the comment claim.
> 
>> +
>> +    /* Interpret the parameter for use within Xen. */
>> +    if ( !parse_bool(s) )
>> +    {
>> +        disable_acpi();
>> +    }
>> +    else if ( !strcmp(s, "force") )
>> +    {
>> +        acpi_disabled = 0;
>> +    }
>> +}
>> +
>>  static void __init processor_id(void)
>>  {
>>      const char *implementer = "Unknown";
>> @@ -729,6 +750,7 @@ void __init start_xen(unsigned long boot_phys_offset,
>>          + (fdt_paddr & ((1 << SECOND_SHIFT) - 1));
>>      fdt_size = boot_fdt_info(device_tree_flattened, fdt_paddr);
>>  
>> +    disable_acpi();
>>      cmdline = boot_fdt_cmdline(device_tree_flattened);
>>      printk("Command line: %s\n", cmdline);
>>      cmdline_parse(cmdline);
>>
> 
> Regards,
>
Julien Grall Nov. 17, 2015, 2:32 p.m. UTC | #3
On 17/11/15 12:57, Shannon Zhao wrote:
> Hi,
> 
> On 2015/11/17 20:26, Julien Grall wrote:
>> Hi Shannon,
>>
>> I would have appreciate if you I had looked on comments made on the
>> series sent by Parth.
>>
> I do look. But I didn't find "Follow-Ups" ones at [1]. And among the
> mails which Parth forwarded to me there is no [PATCH v2 37/41]. This is
> werid.

Sorry, it looks like the xen-devel archive didn't record it. I know that
some mails are missing time to time.

Give a look to:

http://www.gossamer-threads.com/lists/xen/devel/406613
diff mbox

Patch

diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 63feadf..1a40323 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -59,6 +59,10 @@  static unsigned long opt_xenheap_megabytes __initdata;
 integer_param("xenheap_megabytes", opt_xenheap_megabytes);
 #endif
 
+/* "acpi=force" : Enables acpi */
+static void parse_acpi_param(char *s);
+custom_param("acpi", parse_acpi_param);
+
 static __used void init_done(void)
 {
     free_init_memory();
@@ -84,6 +88,23 @@  static const char * __initdata processor_implementers[] = {
     ['i'] = "Intel Corporation",
 };
 
+static char __initdata acpi_param[10] = "";
+static void __init parse_acpi_param(char *s)
+{
+    /* Save the parameter so it can be propagated to domain0. */
+    safe_strcpy(acpi_param, s);
+
+    /* Interpret the parameter for use within Xen. */
+    if ( !parse_bool(s) )
+    {
+        disable_acpi();
+    }
+    else if ( !strcmp(s, "force") )
+    {
+        acpi_disabled = 0;
+    }
+}
+
 static void __init processor_id(void)
 {
     const char *implementer = "Unknown";
@@ -729,6 +750,7 @@  void __init start_xen(unsigned long boot_phys_offset,
         + (fdt_paddr & ((1 << SECOND_SHIFT) - 1));
     fdt_size = boot_fdt_info(device_tree_flattened, fdt_paddr);
 
+    disable_acpi();
     cmdline = boot_fdt_cmdline(device_tree_flattened);
     printk("Command line: %s\n", cmdline);
     cmdline_parse(cmdline);