How to achieve S0ix states in Linux*

Introduction

Today, the vast majority of us rely on mobile devices every day. Over 95% of Americans own cellphones, nearly three quarters own desktop or laptop computers, roughly 50% own tablets, and one-in-five adults are “smartphone only” web surfers, indicating that they no longer have home broadband service, according to a recent study by the Pew Research Center. Our reliance on mobile devices makes their efficient power consumption ever more critical.

On Intel® Architecture-based platforms, Advanced Configuration and Power Interface (ACPI) S3 and S4 system states are often implemented to save energy when the system is not being used. However, bringing the system back to the active state can take from hundreds of milliseconds to tens of seconds. Because of this latency, newer Intel® System-On-Chip (SoC) releases introduced S0ix, which is a new set of sub-states for the ACPI S0 active state.

Using S0ix, the platform can achieve significant energy savings, similar to using S3, which can lead to longer battery life and less power consumption for mobile devices. When using S0ix, users will also experience lower latency than using S3 for an “instant on” experience in scenarios such as Audio Wake on Voice and Integrated Sensor Hub background sensing use cases. This paper provides a brief introduction of S0ix, how it works on Linux*, and how to debug S0ix-related issues[…]

https://01.org/blogs/qwang59/2018/how-achieve-s0ix-states-linux