Heavy battery drain while suspended and USB-C plugged on AMD Ryzen 7 PRO 7840U
Brief summary of the problem:
I'm encountering a significant battery drain issue on my laptop when it's in suspend mode with a USB-C device (a YubiKey in this case) plugged in. Strangely, this drain does not occur when the USB device is unplugged. USB autosuspend for the device is enabled, but still, anecdotally, the power draw while in suspend with the USB attached runs around 5/6% every hour, compared to 0.5/1% without the USB attached.
Script reports:
🔋 Battery BAT0 lost 60000 µWh (0.11%) [Average rate 0.61W]
with USB-C connected
🔋 Battery BAT0 lost 20000 µWh (0.04%) [Average rate 0.21W]
without USB-C connected
Hardware description:
- amd_s2idle report:
sudo python amd_s2idle.py --force
Location of log file (default s2idle_report-2024-02-02.txt)?
Debugging script for s2idle on AMD systems
💻 LENOVO 21F8CTO1WW (ThinkPad T14s Gen 4) running BIOS 1.16 (R2EET35W (1.16 )) released 10/24/2023 and EC 1.11
🐧 Kernel 6.6.10-1-MANJARO
🔋 Battery BAT0 (BYD 5B10W51877) is operating at 99.79% of design
Checking prerequisites for s2idle
✅ Logs are provided via systemd
✅ AMD Ryzen 7 PRO 7840U w/ Radeon 780M Graphics (family 19 model 74)
✅ LPS0 _DSM enabled
✅ ACPI FADT supports Low-power S0 idle
✅ HSMP driver `amd_hsmp` not detected (blocked: False)
Platform may hang resuming. Upgrade your firmware or add pcie_port_pm=off to kernel command line if you have problems.
✅ PMC driver `amd_pmc` loaded (Program 4 Firmware 76.31.0)
✅ USB4 driver `thunderbolt` loaded
✅ GPU driver `amdgpu` available
✅ System is configured for s2idle
✅ NVME SK hynix Platinum P41/PC801 NVMe Solid State Drive is configured for s2idle in BIOS
✅ GPIO driver `pinctrl_amd` available
✅ WCN6855 WLAN (fw build id WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.23)
❌ Kernel is tainted: 12288
Your system does not meet s2idle prerequisites!
How long should suspend cycles last in seconds (default 10)?
How long to wait in between suspend cycles in seconds (default 4)?
How many suspend cycles to run (default 1)?
Started at 2024-02-02 09:16:50.825707 (cycle finish expected @ 2024-02-02 09:17:04.825727)
Results from last s2idle cycle
○ Suspend count: 1
○ Hardware sleep cycle count: 1
○ Wakeups triggered from IRQs: [9]
○ Woke up from IRQ 9 (IR-IO-APIC 9-fasteoi acpi)
○ gpe07 increased from 50238 to 50567
✅ Userspace suspended for 0:00:12.817224
✅ In a hardware sleep state for 0:00:08.824127 (68.85%)
🔋 Battery BAT0 lost 20000 µWh (0.04%) [Average rate 0.56W]
Explanations for your system
🚦 Kernel is tainted
A tainted kernel may exhibit unpredictable bugs that are difficult for this script to characterize.
If this is intended behavior run the tool with --force.
For more information on this failure see:
https://gitlab.freedesktop.org/drm/amd/-/issues/3089
The kernel is tainted by an external virtualbox module being loaded.
System information:
- Distro name and Version:
Manjaro Linux 23.1.3
- Kernel version:
Linux 6.6.10-1-MANJARO #1 SMP PREEMPT_DYNAMIC Fri Jan 5 17:38:36 UTC 2024 x86_64 GNU/Linux
How to reproduce the issue:
- Compare the power usage while in s2idle suspend state when a Yubikey (or other USB-C device) is connected compared to not attached.
Edited by Andrea V