Ideapad 5 Pro 16ACH charger state not correctly recognized

Hi,

I have an ideapad 5 pro with the ryzen 5800h and GTX1650.
It mostly works great with the latest linux, however I have found two issues related to the battery:

  1. The charger state is not recognized correctly. The icon shows the charger is connected even though it is not. First this only happend sometimes and could be seen as “delayed reaction” with some good will, right now it is permanently showing that it’s charging. However the charge percentage is shown correctly. Also in the system monitor, the chargin rate always shows a negative value no matter if the laptop is charging or not. However the absolute value seems plausible.
  2. TLP behaves strangely. I tried setting a maximum scaling frequency on battery of 2GHZ, however this resulted in the CPU frequency being capped at 1.2GHZ (I suppose the lowest possible value). This limit kept active when I plugged in the charger or even removed the config and ran tlp start. Only a reboot with this limit removed restored the old config. However it was not necessary to reboot the laptop for the limit to get activated. Interestingly, the tlp start command returns the correct charger connection status even when the icon does not.

Here is my system info:

System:
  Kernel: 5.16.0-1-MANJARO x86_64 bits: 64 compiler: gcc v: 11.1.0
    parameters: BOOT_IMAGE=/boot/vmlinuz-5.16-x86_64
    root=UUID=5379a4c7-4ca0-4f6d-8da9-827dbeb59dd8 rw quiet apparmor=1
    security=apparmor resume=UUID=12da933e-5b2c-4926-adee-5c1904aa8f1f
    udev.log_priority=3
  Desktop: KDE Plasma 5.23.4 tk: Qt 5.15.2 wm: kwin_x11 vt: 1 dm: SDDM
    Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Laptop System: LENOVO product: 82L5 v: IdeaPad 5 Pro 16ACH6
    serial: <superuser required> Chassis: type: 10 v: IdeaPad 5 Pro 16ACH6
    serial: <superuser required>
  Mobo: LENOVO model: LNVNB161216 v: WIN serial: <superuser required>
    UEFI: LENOVO v: GSCN29WW date: 10/08/2021
Battery:
  ID-1: BAT0 charge: 67.2 Wh (87.8%) condition: 76.5/75.0 Wh (102.0%)
    volts: 16.8 min: 15.4 model: LGC L20L4PE1 type: Li-ion serial: <filter>
    status: Discharging
Memory:
  RAM: total: 14.56 GiB used: 3.39 GiB (23.3%)
  RAM Report:
    permissions: Unable to run dmidecode. Root privileges required.
CPU:
  Info: model: AMD Ryzen 7 5800H with Radeon Graphics bits: 64 type: MT MCP
    arch: Zen 3 family: 0x19 (25) model-id: 0x50 (80) stepping: 0
    microcode: 0xA50000C
  Topology: cpus: 1x cores: 8 tpc: 2 threads: 16 smt: enabled cache:
    L1: 512 KiB desc: d-8x32 KiB; i-8x32 KiB L2: 4 MiB desc: 8x512 KiB
    L3: 16 MiB desc: 1x16 MiB
  Speed (MHz): avg: 1350 high: 1667 min/max: 1200/3200 boost: enabled
    scaling: driver: acpi-cpufreq governor: schedutil cores: 1: 1312 2: 1667
    3: 1225 4: 1641 5: 1211 6: 1321 7: 1353 8: 1341 9: 1358 10: 1501 11: 1400
    12: 1198 13: 1224 14: 1241 15: 1382 16: 1227 bogomips: 102241
  Flags: 3dnowprefetch abm adx aes aperfmperf apic arat avic avx avx2 bmi1
    bmi2 bpext cat_l3 cdp_l3 clflush clflushopt clwb clzero cmov cmp_legacy
    constant_tsc cpb cpuid cqm cqm_llc cqm_mbm_local cqm_mbm_total
    cqm_occup_llc cr8_legacy cx16 cx8 de decodeassists erms extapic
    extd_apicid f16c flushbyasid fma fpu fsgsbase fsrm fxsr fxsr_opt ht
    hw_pstate ibpb ibrs ibs invpcid irperf lahf_lm lbrv lm mba mca mce
    misalignsse mmx mmxext monitor movbe msr mtrr mwaitx nonstop_tsc nopl npt
    nrip_save nx ospke osvw overflow_recov pae pat pausefilter pclmulqdq
    pdpe1gb perfctr_core perfctr_llc perfctr_nb pfthreshold pge pku pni popcnt
    pse pse36 rapl rdpid rdpru rdrand rdseed rdt_a rdtscp rep_good sep sha_ni
    skinit smap smca smep ssbd sse sse2 sse4_1 sse4_2 sse4a ssse3 stibp succor
    svm svm_lock syscall tce topoext tsc tsc_scale umip v_spec_ctrl
    v_vmsave_vmload vaes vgif vmcb_clean vme vmmcall vpclmulqdq wbnoinvd wdt
    xgetbv1 xsave xsavec xsaveerptr xsaveopt xsaves
  Vulnerabilities:
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: spec_store_bypass
    mitigation: Speculative Store Bypass disabled via prctl
  Type: spectre_v1
    mitigation: usercopy/swapgs barriers and __user pointer sanitization
  Type: spectre_v2 mitigation: Full AMD retpoline, IBPB: conditional,
    IBRS_FW, STIBP: always-on, RSB filling
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: NVIDIA TU117M [GeForce GTX 1650 Mobile / Max-Q] vendor: Lenovo
    driver: nvidia v: 495.44 alternate: nouveau,nvidia_drm bus-ID: 01:00.0
    chip-ID: 10de:1f9d class-ID: 0302
  Device-2: AMD Cezanne vendor: Lenovo driver: amdgpu v: kernel
    bus-ID: 05:00.0 chip-ID: 1002:1638 class-ID: 0300
  Device-3: IMC Networks Integrated Camera type: USB driver: uvcvideo
    bus-ID: 3-4:3 chip-ID: 13d3:56fb class-ID: fe01 serial: <filter>
  Display: x11 server: X.org 1.21.1.2 compositor: kwin_x11 driver:
    loaded: amdgpu,ati,nvidia unloaded: modesetting,nouveau
    alternate: fbdev,nv,vesa resolution: <missing: xdpyinfo>
  Message: Unable to show advanced data. Required tool glxinfo missing.
Audio:
  Device-1: AMD vendor: Lenovo driver: snd_hda_intel v: kernel bus-ID: 05:00.1
    chip-ID: 1002:1637 class-ID: 0403
  Device-2: AMD Raven/Raven2/FireFlight/Renoir Audio Processor
    vendor: Lenovo driver: N/A
    alternate: snd_pci_acp3x, snd_rn_pci_acp3x, snd_pci_acp5x bus-ID: 05:00.5
    chip-ID: 1022:15e2 class-ID: 0480
  Device-3: AMD Family 17h HD Audio vendor: Lenovo driver: snd_hda_intel
    v: kernel bus-ID: 05:00.6 chip-ID: 1022:15e3 class-ID: 0403
  Sound Server-1: ALSA v: k5.16.0-1-MANJARO running: yes
  Sound Server-2: JACK v: 1.9.19 running: no
  Sound Server-3: PulseAudio v: 15.0 running: yes
  Sound Server-4: PipeWire v: 0.3.42 running: yes
Network:
  Device-1: MEDIATEK vendor: Lenovo driver: mt7921e v: kernel port: N/A
    bus-ID: 03:00.0 chip-ID: 14c3:7961 class-ID: 0280
  IF: wlo1 state: up mac: <filter>
  IP v4: <filter> type: dynamic noprefixroute scope: global
    broadcast: <filter>
  IP v6: <filter> type: dynamic noprefixroute scope: global
  IP v6: <filter> type: dynamic noprefixroute scope: global
  IP v6: <filter> type: noprefixroute scope: link
  IF-ID-1: docker0 state: down mac: <filter>
  IP v4: <filter> scope: global broadcast: <filter>
  WAN IP: <filter>
Bluetooth:
  Device-1: Foxconn / Hon Hai Wireless_Device type: USB driver: btusb v: 0.8
    bus-ID: 3-3:2 chip-ID: 0489:e0cd class-ID: e001 serial: <filter>
  Report: rfkill ID: hci0 rfk-id: 2 state: up address: see --recommends
Logical:
  Message: No logical block device data found.
RAID:
  Message: No RAID data found.
Drives:
  Local Storage: total: 476.94 GiB used: 99.83 GiB (20.9%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: SK Hynix model: HFS512GDE9X084N
    size: 476.94 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
    lanes: 4 type: SSD serial: <filter> rev: 41010C22 temp: 39.9 C scheme: GPT
  Message: No optical or floppy data found.
Partition:
  ID-1: / raw-size: 461.71 GiB size: 453.39 GiB (98.20%)
    used: 99.83 GiB (22.0%) fs: ext4 dev: /dev/nvme0n1p2 maj-min: 259:2
    label: N/A uuid: 5379a4c7-4ca0-4f6d-8da9-827dbeb59dd8
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 288 KiB (0.1%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
    label: NO_LABEL uuid: 7A47-3FAB
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default)
  ID-1: swap-1 type: partition size: 14.93 GiB used: 0 KiB (0.0%)
    priority: -2 dev: /dev/nvme0n1p3 maj-min: 259:3 label: swap
    uuid: 12da933e-5b2c-4926-adee-5c1904aa8f1f
Unmounted:
  Message: No unmounted partitions found.
USB:
  Hub-1: 1-0:1 info: Hi-speed hub with single TT ports: 4 rev: 2.0
    speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
  Hub-2: 2-0:1 info: Super-speed hub ports: 2 rev: 3.1 speed: 10 Gb/s
    chip-ID: 1d6b:0003 class-ID: 0900
  Hub-3: 3-0:1 info: Hi-speed hub with single TT ports: 4 rev: 2.0
    speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
  Device-1: 3-3:2 info: Foxconn / Hon Hai Wireless_Device type: Bluetooth
    driver: btusb interfaces: 3 rev: 2.1 speed: 480 Mb/s power: 100mA
    chip-ID: 0489:e0cd class-ID: e001 serial: <filter>
  Device-2: 3-4:3 info: IMC Networks Integrated Camera type: Video
    driver: uvcvideo interfaces: 5 rev: 2.0 speed: 480 Mb/s power: 500mA
    chip-ID: 13d3:56fb class-ID: fe01 serial: <filter>
  Hub-4: 4-0:1 info: Super-speed hub ports: 2 rev: 3.1 speed: 10 Gb/s
    chip-ID: 1d6b:0003 class-ID: 0900
Sensors:
  System Temperatures: cpu: 49.0 C mobo: N/A gpu: amdgpu temp: 45.0 C
  Fan Speeds (RPM): N/A
Info:
  Processes: 401 Uptime: 19m wakeups: 1664 Init: systemd v: 250
  tool: systemctl Compilers: gcc: 11.1.0 clang: 13.0.0 Packages: 1463
  pacman: 1447 lib: 414 flatpak: 12 snap: 4 Shell: Zsh v: 5.8 default: Bash
  v: 5.1.12 running-in: konsole inxi: 3.3.12

Using the 5.15 kernel does not help.
Any ideas how to fix this?

What about kernel 5.10 ?

Try booting Manjaro Gnome or Cinnamon ISO and see if the charge state issue still exists.

Not able to help, but I have exactly the same issue on my IdeaPad 5 Pro. I have the R5-5600h with RTX3050. For me I first noticed this issue yesterday, but have been on 5.15 kernel for a little while now.

I know it’s not a structural fix, but let the battery drain completely until the laptop powers off. After doing that, and then fully charging, the status has reset and everything is good again.