<varlistentry>
<term>suspend-then-hibernate</term>
- <listitem><para>A low power state where the system is initially suspended
- (the state is stored in RAM) and then hibernated based on battery percentage
- capacity. If the current battery capacity is higher than 5%, the system goes
- back to suspend for interval calculated using battery discharge rate per hour.
+ <listitem><para>A low power state where initially user.slice unit is freezed.
+ If the hardware supports low-battery alarms (ACPI _BTP), then the system is
+ first suspended (the state is stored in RAM) and then hibernates if the system
+ is woken up by the hardware via ACPI low-battery signal. Unit user.slice is
+ thawed when system returns from hibernation. If the hardware does not support
+ low-battery alarms (ACPI _BTP), then the system is suspended based on battery's
+ current percentage capacity. If the current battery capacity is higher than 5%, the
+ system suspends for interval calculated using battery discharge rate per hour or
+ <command>HibernateDelaySec=</command>
+ if former is not available.
Battery discharge rate per hour is stored in a file which is created after
initial suspend-resume cycle. The value is calculated using battery decreasing
- charge level a timespan. In case of manual wakeup before RTC alarm, the timespan
- is the duration for which system was suspended. If the file does not exist or
- has invalid value, initial suspend duration is set to
- <command>HibernateDelaySec=</command>.
- After wakeup via an RTC alarm, the battery discharge rate per hour is again
- estimated. If the current battery charge level is equal to or less than 5%,
- the system will be hibernated (the state is then stored on disk) else the
- system goes back to suspend for the amount of time it would take to fully
- discharge the battery minus 30 minutes.
+ charge level over a timespan for which system was suspended. For each battery
+ connected to the system, there is a unique entry. After RTC alarm wakeup from
+ suspend, battery discharge rate per hour is again estimated. If the current battery
+ charge level is equal to or less than 5%, the system will be hibernated (the state
+ is then stored on disk) else the system goes back to suspend for the interval
+ calculated using battery discharge rate per hour.
+ In case of manual wakeup, if the battery was discharged while the system was
+ suspended, the battery discharge rate is estimated and stored on the filesystem.
+ In case the system is woken up by the hardware via the ACPI low-battery signal,
+ then it hibernates.
</para></listitem>
</varlistentry>