ACPI: processor idle: Check for architectural support for LPI
authorMario Limonciello <mario.limonciello@amd.com>
Fri, 25 Feb 2022 19:06:46 +0000 (13:06 -0600)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 3 Mar 2022 19:20:06 +0000 (20:20 +0100)
commiteb087f305919ee8169ad65665610313e74260463
tree45b3946c04030c3633c7ac865e7cc5d7955b1d5a
parent01f6c7338ce267959975da65d86ba34f44d54220
ACPI: processor idle: Check for architectural support for LPI

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.

Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/processor_idle.c