Battery drains completely while in suspend mode (Lenovo Yoga 7i)

Did you know that I see only with an eye?
You're the kindest person ever! Have a nice day/night! (Here it's night.)

1 Like

I suffered this behavior with ThinkPad which consists of two parts actually,

  • Unexpected drain (on different states)
  • Improper status reporting (battery is full in real but reported as empty to system)

As of now, the last issue has been completely solved while the first one has been partially solved i.e. unexpected drain while in shutdown state!! (still observing anyway)

Give it a try with Yoga and see.

add-apt-repository ppa:linrunner/tlp
apt update && apt upgrade -y
apt install tlp tlp-rdw

as per developer READ MORE the below package available on 20.04 repo causes errors and it is advised to download it manually from 22.04 repo and install it,

dpkg -i acpi-call-dkms_1.2.2-1_all.deb

After finish, proceed with,

tlp-stat -s
tlp recalibrate BAT0

Let me know, if working well with modern Lenovo models, I test it and it works good with old models.

Thanks everyone foe the input!

@Aravisian: I guess the DSDT method only works on 5.8. Unfortunately since 5.8 is unusable on my laptop I think I'm out of luck here :frowning:. It's getting pretty out of hand, too. Yesterday I put my laptop i suspend and put in my backback. Couple of minutes later it heated up to the point where I could hardly touch it--apparently carrying out some intensive process!

Thank you @ Nicolaco_08 for the suggestion, and good catch! Unfortunately, even after adding the space, the same error is returned:

echo deep > /sys/power/mem_sleep
bash: echo: write error: Invalid argument

Still not sure what that means...

vCentre Thank you for the suggestion! tlp recalibrate BAT0 fails for some reason, returning:

Setting temporary charge threshold for all batteries:
  conservation mode = 0 (no change)
Error: battery discharge/recalibrate not available.


@Aravisian any idea why?

That looks like an acpi_call issue.
Possible solutions are to patch acpi_call or not use acpi_call, at all.
Here is how to patch it:

This should work on Zorin OS 16.

To disable it- just stop at the portion where you remove the acpi_call package.

1 Like

please check out using tlp status
I assume that you're using Zorin v16.2 Core having kernel 5.15 with acpi-call-dkms_1.2.2 package.

The above working fine on my side.

root@ThinkPad:~# tlp-stat -s

The output of the above command is,

--- TLP 1.5.0 --------------------------------------------

+++ System Info
System         = LENOVO ThinkPad T420s 41717FU
BIOS           = 8CET66WW (1.46 )
OS Release     = Zorin OS 16.2
Kernel         = 5.15.0-60-generic #66~20.04.1-Ubuntu SMP Wed Jan 25 09:41:30 UTC 2023 x86_64
/proc/cmdline  = BOOT_IMAGE=/boot/vmlinuz-5.15.0-60-generic root=UUID=a43123ae-aeb2-4ce8-b45d-afac270f0572 ro quiet splash mce=off loglevel=3 vt.handoff=7
Init system    = systemd v245 (245.4-4ubuntu3.19)
Boot mode      = UEFI

+++ TLP Status
State          = enabled
RDW state      = enabled
Last run       = 07:52:31 PM,    300 sec(s) ago
Mode           = AC (manual)
Power source   = AC

also check out the below,

root@ThinkPad:~# tlp-stat -b

The output of the above command is,

--- TLP 1.5.0 --------------------------------------------

+++ Battery Care
Plugin: thinkpad
Supported features: charge thresholds, recalibration
Driver usage:
* natacpi (thinkpad_acpi) = active (charge thresholds)
* tpacpi-bat (acpi_call)  = active (recalibration)
* tp-smapi (tp_smapi)     = inactive (kernel module 'tp_smapi' not installed)
Parameter value ranges:
* START_CHARGE_THRESH_BAT0/1:  0(off)..96(default)..99
* STOP_CHARGE_THRESH_BAT0/1:   1..100(default)

+++ ThinkPad Battery Status: BAT0 (Main / Internal)
/sys/class/power_supply/BAT0/manufacturer                   = SANYO
/sys/class/power_supply/BAT0/model_name                     = 42T4817
/sys/class/power_supply/BAT0/cycle_count                    =      0 (or not supported)
/sys/class/power_supply/BAT0/energy_full_design             =  43290 [mWh]
/sys/class/power_supply/BAT0/energy_full                    =  50330 [mWh]
/sys/class/power_supply/BAT0/energy_now                     =  50330 [mWh]
/sys/class/power_supply/BAT0/power_now                      =      0 [mW]
/sys/class/power_supply/BAT0/status                         = Full

/sys/class/power_supply/BAT0/charge_control_start_threshold =     96 [%]
/sys/class/power_supply/BAT0/charge_control_end_threshold   =    100 [%]
tpacpi-bat.BAT0.forceDischarge                              =      0

Charge                                                      =  100.0 [%]
Capacity                                                    =  116.3 [%]

+++ Recommendations
* Install tp-smapi kernel modules for extended battery status (e.g. the cycle count)

Observe BAT0 or BAT1 etc in case of you replace battery or having multiple batteries.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.