Re: [PATCH 2/2] ACPI: processor idle: Check for architectural support for LPI

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Feb 24, 2022 at 09:12:55PM -0600, Mario Limonciello wrote:
> When `osc_pc_lpi_support_confirmed` is set through `_OSC` and `_LPI` is
> populated then the cpuidle driver assumes that LPI is fully functional.
> 
> However currently the kernel only provides architectural support for LPI
> on ARM.  This leads to high power consumption on X86 platforms that
> otherwise try to enable LPI.
> 
> So probe whether or not LPI support is implemented before enabling LPI in
> the kernel.  This is done by overloading `acpi_processor_ffh_lpi_probe` to
> check whether it returns `-EOPNOTSUPP`. It also means that all future
> implementations of `acpi_processor_ffh_lpi_probe` will need to follow
> these semantics as well.
> 
> Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx>
> ---
>  drivers/acpi/processor_idle.c | 15 ++++++++++-----
>  1 file changed, 10 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
> index f8e9fa82cb9b..0092fd479527 100644
> --- a/drivers/acpi/processor_idle.c
> +++ b/drivers/acpi/processor_idle.c
> @@ -1080,6 +1080,11 @@ static int flatten_lpi_states(struct acpi_processor *pr,
>  	return 0;
>  }
>  
> +int __weak acpi_processor_ffh_lpi_probe(unsigned int cpu)
> +{
> +	return -EOPNOTSUPP;
> +}
> +
>  static int acpi_processor_get_lpi_info(struct acpi_processor *pr)
>  {
>  	int ret, i;
> @@ -1094,6 +1099,11 @@ static int acpi_processor_get_lpi_info(struct acpi_processor *pr)
>  	if (!acpi_has_method(handle, "_LPI"))
>  		return -EINVAL;
>  
> +	/* make sure our architecture has support */
> +	ret = acpi_processor_ffh_lpi_probe(pr->id);
> +	if (ret == -EOPNOTSUPP)
> +		return ret;
> +

You can do this check first, before even checking osc_pc_lpi_support_confirmed
and looking for _LPI method IMO as they are not useful if arch doesn't support
handling LPIs.

Either way,

Reviewed-by: Sudeep Holla <sudeep.holla@xxxxxxx>

-- 
Regards,
Sudeep



[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux