Linux puts the offlined CPUs to lowest power/idle state. The mwait hint used for the offlined CPUs are decoded from CPUID.5. (If the number of sub-states for a given major C-state is nonzero, those sub-states are always represented by consecutive numbers starting from 0) This no longer works for SRF/GRR/CWF because they support 1 or 2 C6 substates, while the proper mwait hint for them are 0x22/0x23, instead of 0x20/0x21. As a result, current code set the offlined CPUs to incorrect power/idle state. Fix the code and use intel_idle driver to provide proper play_dead callback.
The PR Link: https://gitee.com/anolis/cloud-kernel/pulls/5690