Mario Limonciello 65ea8f2c6e ACPI: processor idle: Fix up C-state latency if not ordered
Generally, the C-state latency is provided by the _CST method or
FADT, but some OEM platforms using AMD Picasso, Renoir, Van Gogh,
and Cezanne set the C2 latency greater than C3's which causes the
C2 state to be skipped.

That will block the core entering PC6, which prevents S0ix working
properly on Linux systems.

In other operating systems, the latency values are not validated and
this does not cause problems by skipping states.

To avoid this issue on Linux, detect when latencies are not an
arithmetic progression and sort them.

Link: 026d186e45
Link: https://gitlab.freedesktop.org/drm/amd/-/issues/1230#note_712174
Suggested-by: Prike Liang <Prike.Liang@amd.com>
Suggested-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
[ rjw: Subject and changelog edits ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2021-05-17 17:05:30 +02:00
..
2021-04-26 17:04:41 +02:00
2020-11-10 18:52:51 +01:00
2021-04-27 10:16:46 -07:00
2021-03-19 17:45:49 +01:00
2021-04-08 16:17:32 +02:00
2019-06-23 09:23:33 +02:00
2021-04-26 17:04:41 +02:00
2021-04-26 17:04:41 +02:00
2021-01-22 16:17:19 +01:00
2021-02-20 21:50:59 -08:00
2021-04-26 17:04:41 +02:00
2021-05-13 20:39:58 +02:00
2021-04-26 17:04:41 +02:00
2020-11-09 19:08:06 +01:00
2020-11-09 19:25:20 +01:00
2021-05-13 20:39:58 +02:00
2021-02-25 18:57:40 +01:00
2021-02-25 18:57:40 +01:00
2019-11-13 11:12:08 +01:00
2021-02-10 19:09:43 +01:00
2021-05-13 20:39:58 +02:00
2021-04-26 17:04:41 +02:00
2021-03-19 17:45:49 +01:00
2020-11-09 19:08:06 +01:00
2020-11-09 19:08:06 +01:00
2021-05-13 20:39:58 +02:00
2020-07-09 14:09:28 +02:00
2020-11-09 19:08:06 +01:00