Hi Lv,

Thanks for your comments.

On 24 September 2013 08:09, Zheng, Lv <lv.zheng@intel.com> wrote:


> -----Original Message-----
> From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-owner@vger.kernel.org] On Behalf Of Hanjun Guo
> Sent: Wednesday, September 18, 2013 5:28 PM
> To: Moore, Robert
> Cc: 'Rafael J. Wysocki'; 'Len Brown'; Box, David E; Zheng, Lv; 'linux-acpi@vger.kernel.org'; 'patches@linaro.org';
> 'linaro-kernel@lists.linaro.org'; 'linaro-acpi@lists.linaro.org'
> Subject: Re: [PATCH] ACPICA / hwreg: Use acpi_gbl_reduced_hardware to prevent accessing PM registers
>
> On 2013-9-17 1:26, Moore, Robert wrote:
> > + #define ACPI_REDUCED_HARDWARE           TRUE
> >
> > The intent of this feature is of course, to remove all code that is not needed -- specifically for hardware-reduced machines where the size
> of the kernel is important.
>
> Ok, how about this patch below, is it reasonable to you?
>
> From b10bc1d2f9a3ff09abfb6990412aa1cf62d56937 Mon Sep 17 00:00:00 2001
> From: Hanjun Guo <hanjun.guo@linaro.org>
> Date: Wed, 18 Sep 2013 17:19:23 +0800
> Subject: [PATCH] ACPI: Introduce CONFIG_ACPI_REDUCED_HARDWARE to enable
>  reduced hardware
>
> If we want to enable reduced hardware ACPI on some platform (such as ARM),
> we need to modify the kernel code and set ACPI_REDUCED_HARDWARE to TRUE.
>
> This is not reasonable, so introduce a kernel config to enable it, and
> no need for kernel modification when we use hardware-reduced ACPI.
>
> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
> ---
>  drivers/acpi/Kconfig    |    8 ++++++++
>  include/acpi/acconfig.h |    4 ++++
>  2 files changed, 12 insertions(+)
>
> diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
> index 0d7f6eb..1232a7b 100644
> --- a/drivers/acpi/Kconfig
> +++ b/drivers/acpi/Kconfig
> @@ -413,6 +413,14 @@ config ACPI_BGRT
>           data from the firmware boot splash. It will appear under
>           /sys/firmware/acpi/bgrt/ .
>
> +config ACPI_REDUCED_HARDWARE
> +       bool "Hardware-reduced ACPI support"
> +       depends on ARM || ARM64
> +        help
> +         This config adds support for Hardware-reduced ACPI. When this option
> +         is selected, will generate a specialized version of ACPICA that ONLY
> +         supports the ACPI 5.0 "reduced hardware".
> +
>  source "drivers/acpi/apei/Kconfig"
>
>  endif  # ACPI
> diff --git a/include/acpi/acconfig.h b/include/acpi/acconfig.h
> index 1c16f82..15254f5 100644
> --- a/include/acpi/acconfig.h
> +++ b/include/acpi/acconfig.h
> @@ -100,7 +100,11 @@
>   *      ACPI PM timer
>   *      FACS table (Waking vectors and Global Lock)
>   */
> +#ifdef CONFIG_ACPI_REDUCED_HARDWARE
> +#define ACPI_REDUCED_HARDWARE           TRUE
> +#else
>  #define ACPI_REDUCED_HARDWARE           FALSE
> +#endif /* CONFIG_ACPI_REDUCED_HARDWARE */

The acconfig.h is not meant to be modified by OSPM and CONFIG_ACPI_REDUCED_HARDWARE does not belong to ACPICA, so it should go into include/acpi/platform/aclinux.h.

Ok, Thanks for the reminding.

 
Well, I believe no one has ever tested the codes marked out by the ACPI_REDUCED_HARDWARE configurable.

Actually, Linaro ACPI team did this, we had tested the ACPI
driver with the ACPI_REDUCED_HARDWARE is true on ARM platform.

 and the oops raised by accessing to ACPI hardware is gone 
when set ACPI_REDUCED_HARDWARE  true, but we had to 
change the kernel code to do that, this is not the correct way.
 so I sent out the patch to disable the accessing ACPI hardware 
in ACPICA APIs.

Thanks
Hanjun