Re: [PATCH v4 06/13] ARM64 / ACPI: Introduce early_param for "acpi"

2014-06-27 Thread Graeme Gregory
On Fri, Jun 27, 2014 at 11:07:48AM +0200, Arnd Bergmann wrote:
> On Friday 27 June 2014 11:49:29 Hanjun Guo wrote:
> > +
> > +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) {
> > +   disable_acpi();
> > +   }
> > +   /* acpi=strict disables out-of-spec workarounds */
> > +   else if (strcmp(arg, "strict") == 0) {
> > +   acpi_strict = 1;
> > +   } else {
> > +   /* Core will printk when we return error */
> > +   return -EINVAL;
> > +   }
> > +
> > +   return 0;
> > +}
> > +early_param("acpi", parse_acpi);
> 
> Can you explain in the changelog what happens for the acpi=off case? Does this
> mean we fall back to using data from the dtb instead, or will it just not 
> work?
> 
> If I understand correctly, this option makes sense on PC systems that will
> still be able to boot using the legacy BIOS services and implicit assumptions
> about the hardware, but that never works on arm64.
> 
Yes the way ACPI has been integrated on ARM64 in these patches if you
supply acpi=off it will fall back to DTB if supplied by firmware.

Graeme

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v4 06/13] ARM64 / ACPI: Introduce early_param for "acpi"

2014-06-27 Thread Arnd Bergmann
On Friday 27 June 2014 11:49:29 Hanjun Guo wrote:
> +
> +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) {
> +   disable_acpi();
> +   }
> +   /* acpi=strict disables out-of-spec workarounds */
> +   else if (strcmp(arg, "strict") == 0) {
> +   acpi_strict = 1;
> +   } else {
> +   /* Core will printk when we return error */
> +   return -EINVAL;
> +   }
> +
> +   return 0;
> +}
> +early_param("acpi", parse_acpi);

Can you explain in the changelog what happens for the acpi=off case? Does this
mean we fall back to using data from the dtb instead, or will it just not work?

If I understand correctly, this option makes sense on PC systems that will
still be able to boot using the legacy BIOS services and implicit assumptions
about the hardware, but that never works on arm64.

Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v4 06/13] ARM64 / ACPI: Introduce early_param for acpi

2014-06-27 Thread Arnd Bergmann
On Friday 27 June 2014 11:49:29 Hanjun Guo wrote:
 +
 +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) {
 +   disable_acpi();
 +   }
 +   /* acpi=strict disables out-of-spec workarounds */
 +   else if (strcmp(arg, strict) == 0) {
 +   acpi_strict = 1;
 +   } else {
 +   /* Core will printk when we return error */
 +   return -EINVAL;
 +   }
 +
 +   return 0;
 +}
 +early_param(acpi, parse_acpi);

Can you explain in the changelog what happens for the acpi=off case? Does this
mean we fall back to using data from the dtb instead, or will it just not work?

If I understand correctly, this option makes sense on PC systems that will
still be able to boot using the legacy BIOS services and implicit assumptions
about the hardware, but that never works on arm64.

Arnd
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v4 06/13] ARM64 / ACPI: Introduce early_param for acpi

2014-06-27 Thread Graeme Gregory
On Fri, Jun 27, 2014 at 11:07:48AM +0200, Arnd Bergmann wrote:
 On Friday 27 June 2014 11:49:29 Hanjun Guo wrote:
  +
  +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) {
  +   disable_acpi();
  +   }
  +   /* acpi=strict disables out-of-spec workarounds */
  +   else if (strcmp(arg, strict) == 0) {
  +   acpi_strict = 1;
  +   } else {
  +   /* Core will printk when we return error */
  +   return -EINVAL;
  +   }
  +
  +   return 0;
  +}
  +early_param(acpi, parse_acpi);
 
 Can you explain in the changelog what happens for the acpi=off case? Does this
 mean we fall back to using data from the dtb instead, or will it just not 
 work?
 
 If I understand correctly, this option makes sense on PC systems that will
 still be able to boot using the legacy BIOS services and implicit assumptions
 about the hardware, but that never works on arm64.
 
Yes the way ACPI has been integrated on ARM64 in these patches if you
supply acpi=off it will fall back to DTB if supplied by firmware.

Graeme

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH v4 06/13] ARM64 / ACPI: Introduce early_param for "acpi"

2014-06-26 Thread Hanjun Guo
From: Al Stone 

Introduce two early parameters for "acpi", one is the parameter
to disable ACPI on ARM64 and another one is acpi=strict to disable
out-of-spec workarounds.

Reviewed-by: Grant Likely 
Signed-off-by: Al Stone 
Signed-off-by: Graeme Gregory 
Signed-off-by: Hanjun Guo 
---
 Documentation/kernel-parameters.txt |3 ++-
 drivers/acpi/plat/arm-core.c|   21 +
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/Documentation/kernel-parameters.txt 
b/Documentation/kernel-parameters.txt
index 8849049..b7e9fc0 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -165,7 +165,7 @@ multipliers 'Kilo', 'Mega', and 'Giga', equalling 2^10, 
2^20, and 2^30
 bytes respectively. Such letter suffixes can also be entirely omitted.
 
 
-   acpi=   [HW,ACPI,X86]
+   acpi=   [HW,ACPI,X86,ARM]
Advanced Configuration and Power Interface
Format: { force | off | strict | noirq | rsdt }
force -- enable ACPI if default was off
@@ -175,6 +175,7 @@ bytes respectively. Such letter suffixes can also be 
entirely omitted.
strictly ACPI specification compliant.
rsdt -- prefer RSDT over (default) XSDT
copy_dsdt -- copy DSDT to memory
+   For ARM64, ONLY "off" and "strict" are available.
 
See also Documentation/power/runtime_pm.txt, pci=noacpi
 
diff --git a/drivers/acpi/plat/arm-core.c b/drivers/acpi/plat/arm-core.c
index c6c7e03..cf46c25 100644
--- a/drivers/acpi/plat/arm-core.c
+++ b/drivers/acpi/plat/arm-core.c
@@ -108,3 +108,24 @@ void __init acpi_boot_table_init(void)
return;
}
 }
+
+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) {
+   disable_acpi();
+   }
+   /* acpi=strict disables out-of-spec workarounds */
+   else if (strcmp(arg, "strict") == 0) {
+   acpi_strict = 1;
+   } else {
+   /* Core will printk when we return error */
+   return -EINVAL;
+   }
+
+   return 0;
+}
+early_param("acpi", parse_acpi);
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH v4 06/13] ARM64 / ACPI: Introduce early_param for acpi

2014-06-26 Thread Hanjun Guo
From: Al Stone al.st...@linaro.org

Introduce two early parameters for acpi, one is the parameter
to disable ACPI on ARM64 and another one is acpi=strict to disable
out-of-spec workarounds.

Reviewed-by: Grant Likely grant.lik...@linaro.org
Signed-off-by: Al Stone al.st...@linaro.org
Signed-off-by: Graeme Gregory graeme.greg...@linaro.org
Signed-off-by: Hanjun Guo hanjun@linaro.org
---
 Documentation/kernel-parameters.txt |3 ++-
 drivers/acpi/plat/arm-core.c|   21 +
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/Documentation/kernel-parameters.txt 
b/Documentation/kernel-parameters.txt
index 8849049..b7e9fc0 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -165,7 +165,7 @@ multipliers 'Kilo', 'Mega', and 'Giga', equalling 2^10, 
2^20, and 2^30
 bytes respectively. Such letter suffixes can also be entirely omitted.
 
 
-   acpi=   [HW,ACPI,X86]
+   acpi=   [HW,ACPI,X86,ARM]
Advanced Configuration and Power Interface
Format: { force | off | strict | noirq | rsdt }
force -- enable ACPI if default was off
@@ -175,6 +175,7 @@ bytes respectively. Such letter suffixes can also be 
entirely omitted.
strictly ACPI specification compliant.
rsdt -- prefer RSDT over (default) XSDT
copy_dsdt -- copy DSDT to memory
+   For ARM64, ONLY off and strict are available.
 
See also Documentation/power/runtime_pm.txt, pci=noacpi
 
diff --git a/drivers/acpi/plat/arm-core.c b/drivers/acpi/plat/arm-core.c
index c6c7e03..cf46c25 100644
--- a/drivers/acpi/plat/arm-core.c
+++ b/drivers/acpi/plat/arm-core.c
@@ -108,3 +108,24 @@ void __init acpi_boot_table_init(void)
return;
}
 }
+
+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) {
+   disable_acpi();
+   }
+   /* acpi=strict disables out-of-spec workarounds */
+   else if (strcmp(arg, strict) == 0) {
+   acpi_strict = 1;
+   } else {
+   /* Core will printk when we return error */
+   return -EINVAL;
+   }
+
+   return 0;
+}
+early_param(acpi, parse_acpi);
-- 
1.7.9.5

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/