Message ID | ZnFYpWHJ5Ml724Nv@ohnotp |
---|---|
State | New |
Headers | show |
Series | ACPI: EC: Use ec_no_wakeup on ThinkPad T14 Gen 5 | expand |
Hi Yutaro, On Tue, Jun 18, 2024, at 5:51 AM, Yutaro Ohno wrote: > On ThinkPad T14 Gen 5, EC interrupts constantly wake up the system from > s2idle, resulting in high power consumption. > > This sets `acpi.ec_no_wakeup=1` to fix the high power consumption issue > in s2idle state. > > Signed-off-by: Yutaro Ohno <yutaro.ono.418@gmail.com> > --- > drivers/acpi/ec.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c > index 299ec653388c..c7d5231edca7 100644 > --- a/drivers/acpi/ec.c > +++ b/drivers/acpi/ec.c > @@ -2248,6 +2248,12 @@ static const struct dmi_system_id acpi_ec_no_wakeup[] = { > DMI_MATCH(DMI_PRODUCT_FAMILY, "ThinkPad X1 Yoga 3rd"), > }, > }, > + { > + .matches = { > + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), > + DMI_MATCH(DMI_PRODUCT_FAMILY, "ThinkPad T14 Gen 5"), > + }, > + }, > { > .matches = { > DMI_MATCH(DMI_SYS_VENDOR, "HP"), > -- > 2.45.2 We're doing Linux enablement on the T14 G5 right now - and if this is an issue in the Lenovo FW I would rather fix it there instead of introducing a quirk into the kernel that might later need to be removed. This platform is getting full Linux support. I'd like to collect some debug details from you (if preferred you can ping me off thread using this email address): - Can I get your BIOS, EC and ME versions (easiest is to get these from the BIOS setup screen - F1 during early boot) - Get a report from running the Intel S0ix test tool - https://github.com/intel/S0ixSelftestTool. Run it with the -S option - There is a known issue if the ethernet is plugged in on this system that Intel are working on - can you confirm if you're using wired networking please? - Do you have WWAN enabled? If you have it can you try with WWAN disabled. I'll also highlight that Linux enablement is not complete on this platform yet, so some patience might be needed. Thanks Mark (Lenovo employee working on the Linux PC enablement program)
Hi, Mark. On Wed Jun 19, 2024 at 8:28 AM JST, Mark Pearson wrote: > We're doing Linux enablement on the T14 G5 right now - and if this is an issue in the Lenovo FW I would rather fix it there instead of introducing a quirk into the kernel that might later need to be removed. This platform is getting full Linux support. That sounds wonderful! I agree that my change is more of a workaround solution. > I'd like to collect some debug details from you (if preferred you can ping me off thread using this email address): Sure. But first, please note that my machine is AMD, not Intel. > - Can I get your BIOS, EC and ME versions (easiest is to get these from the BIOS setup screen - F1 during early boot) - BIOS: R2LET23W (1.04) - EC: R2LHT18W (1.01) - ME: Not applicable, as my machine is AMD, not Intel. > - Get a report from running the Intel S0ix test tool - https://github.com/intel/S0ixSelftestTool. Run it with the -S option It may not work as my machine is not Intel, but here's the output: ``` $ sudo ./s0ix-selftest-tool.sh -s ---Check S2idle path S0ix Residency---: The system OS Kernel version is: Linux ohnotp 6.9.5-arch1-1 #1 SMP PREEMPT_DYNAMIC Sun, 16 Jun 2024 19:06:37 +0000 x86_64 GNU/Linux ---Check whether your system supports S0ix or not---: Low Power S0 Idle is:1 Your system supports low power S0 idle capability. ---Check whether intel_pmc_core sysfs files exit---: ls: cannot access '/sys/kernel/debug/pmc_core': No such file or directory The pmc_core debug sysfs file is empty on your system. Isolation suggestions: Please check whether intel_pmc_core driver is loaded. The intel_pmc_core sysfs missing will impact S0ix failure analyze. ---Judge PC10, S0ix residency available status---: cat: /sys/kernel/debug/pmc_core/substate_residencies: No such file or directory grep: /sys/kernel/debug/pmc_core/substate_residencies: No such file or directory Test system does not support S0ix.y substate The system failed to place S2idle entry command by turbostat, please check if the suspend is failed or turbostat tool version is old e.g. did you make turbostat tool executable or separately run S2idle command: rtcwake -m freeze -s 15 ``` Note that `turbostat` command is available and its version is `2024.04.08`. > - There is a known issue if the ethernet is plugged in on this system that Intel are working on - can you confirm if you're using wired networking please? I haven't used the ethernet on my machine. It's not plugged in. > - Do you have WWAN enabled? If you have it can you try with WWAN disabled. No, I don't. My machine doesn't have a WWAN module. > I'll also highlight that Linux enablement is not complete on this platform yet, so some patience might be needed. Sure! Please let me know if there's anything else I can do. Thanks, Yutaro
Hi Ohno On Thu, Jun 20, 2024, at 9:10 AM, Yutaro Ohno wrote: > Hi, Mark. > > On Wed Jun 19, 2024 at 8:28 AM JST, Mark Pearson wrote: >> We're doing Linux enablement on the T14 G5 right now - and if this is an issue in the Lenovo FW I would rather fix it there instead of introducing a quirk into the kernel that might later need to be removed. This platform is getting full Linux support. > > That sounds wonderful! I agree that my change is more of a workaround solution. > >> I'd like to collect some debug details from you (if preferred you can ping me off thread using this email address): > > Sure. But first, please note that my machine is AMD, not Intel. Ooops - my bad! Thanks for the clarification. > >> - Can I get your BIOS, EC and ME versions (easiest is to get these from the BIOS setup screen - F1 during early boot) > > - BIOS: R2LET23W (1.04) > - EC: R2LHT18W (1.01) > - ME: Not applicable, as my machine is AMD, not Intel. Thanks > >> - Get a report from running the Intel S0ix test tool - https://github.com/intel/S0ixSelftestTool. Run it with the -S option > > It may not work as my machine is not Intel, but here's the output: <snip> Yeah - that won't work. The AMD test tool is here: https://gitlab.freedesktop.org/drm/amd/-/blob/master/scripts/amd_s2idle.py Can you try that please? > >> - There is a known issue if the ethernet is plugged in on this system that Intel are working on - can you confirm if you're using wired networking please? > > I haven't used the ethernet on my machine. It's not plugged in. > >> - Do you have WWAN enabled? If you have it can you try with WWAN disabled. > > No, I don't. My machine doesn't have a WWAN module. > One more question - which Wifi module do you have? The Qualcomm NCM825 Wifi7 device still has a lot of problems (it's currently the main thing gating our Linux certification of the platform). >> I'll also highlight that Linux enablement is not complete on this platform yet, so some patience might be needed. > > Sure! > > Please let me know if there's anything else I can do. > Thanks for the details. I've created internal ticket LO-3140 for tracking and we'll see if we can reproduce Mark
On Fri Jun 21, 2024 at 12:35 AM JST, Mark Pearson wrote: > >> - Get a report from running the Intel S0ix test tool - https://github.com/intel/S0ixSelftestTool. Run it with the -S option > > > > It may not work as my machine is not Intel, but here's the output: > <snip> > > Yeah - that won't work. The AMD test tool is here: > https://gitlab.freedesktop.org/drm/amd/-/blob/master/scripts/amd_s2idle.py > Can you try that please? Sure. I've tried with/without the kernel parameter `acpi.ec_no_wakeup=1`. Booting with the kernel parameter: ``` $ sudo python3 amd_s2idle.py Location of log file (default s2idle_report-2024-06-21.txt)? Debugging script for s2idle on AMD systems ๐ป LENOVO 21MCCTO1WW (ThinkPad T14 Gen 5) running BIOS 1.4 (R2LET23W (1.04 )) released 04/01/2024 and EC 1.1 ๐ง Arch Linux ๐ง Kernel 6.9.5-arch1-1 ๐ Battery BAT0 (SMP 5B11H56415) is operating at 101.22% of design Checking prerequisites for s2idle โ Logs are provided via systemd โ AMD Ryzen 7 PRO 8840U w/ Radeon 780M Graphics (family 19 model 75) โ SMT enabled โ LPS0 _DSM enabled โ ACPI FADT supports Low-power S0 idle โ HSMP driver `amd_hsmp` not detected (blocked: False) โ PMC driver `amd_pmc` loaded (Program 0 Firmware 76.83.0) โ USB4 driver `thunderbolt` bound to 0000:c6:00.5 โ USB4 driver `thunderbolt` bound to 0000:c6:00.6 โ GPU driver `amdgpu` bound to 0000:c4:00.0 โ System is configured for s2idle โ NVME KIOXIA Corporation NVMe SSD Controller XG8 is configured for s2idle in BIOS โ GPIO driver `pinctrl_amd` available ๐ฆ Device firmware checks unavailable without gobject introspection โ WCN6855 WLAN (fw build id WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.37) 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-06-21 01:05:15.386691 (cycle finish expected @ 2024-06-21 01:05:29.386714) Results from last s2idle cycle โ Suspend count: 1 โ Hardware sleep cycle count: 1 โ Wakeup triggered from IRQ 9: ACPI SCI โ Woke up from IRQ 9: ACPI SCI โ gpe07 increased from 9957 to 10219 โ Userspace suspended for 0:00:12.386591 โ In a hardware sleep state for 0:00:08.692840 (70.18%) ๐ Battery BAT0 lost 10000 ยตWh (0.02%) [Average rate 0.29W] ``` Booting without the kernel parameter: ``` $ sudo python3 ./amd_s2idle.py Location of log file (default s2idle_report-2024-06-21.txt)? Debugging script for s2idle on AMD systems ๐ป LENOVO 21MCCTO1WW (ThinkPad T14 Gen 5) running BIOS 1.4 (R2LET23W (1.04 )) released 04/01/2024 and EC 1.1 ๐ง Arch Linux ๐ง Kernel 6.9.5-arch1-1 ๐ Battery BAT0 (SMP 5B11H56415) is operating at 101.22% of design Checking prerequisites for s2idle โ Logs are provided via systemd โ AMD Ryzen 7 PRO 8840U w/ Radeon 780M Graphics (family 19 model 75) โ SMT enabled โ LPS0 _DSM enabled โ ACPI FADT supports Low-power S0 idle โ HSMP driver `amd_hsmp` not detected (blocked: False) โ PMC driver `amd_pmc` loaded (Program 0 Firmware 76.83.0) โ USB4 driver `thunderbolt` bound to 0000:c6:00.5 โ USB4 driver `thunderbolt` bound to 0000:c6:00.6 โ GPU driver `amdgpu` bound to 0000:c4:00.0 โ System is configured for s2idle โ NVME KIOXIA Corporation NVMe SSD Controller XG8 is configured for s2idle in BIOS โ GPIO driver `pinctrl_amd` available ๐ฆ Device firmware checks unavailable without gobject introspection โ WCN6855 WLAN (fw build id WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.37) 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-06-21 01:16:58.754215 (cycle finish expected @ 2024-06-21 01:17:12.754238) Results from last s2idle cycle โ Suspend count: 1 โ Hardware sleep cycle count: 10 โ Wakeup triggered from IRQ 9: ACPI SCI โ Woke up from IRQ 9: ACPI SCI โ gpe07 increased from 1823 to 2085 โ Userspace suspended for 0:00:12.962868 โ In a hardware sleep state for 0:00:01.672448 (12.90%) ๐ Battery BAT0 lost 30000 ยตWh (0.06%) [Average rate 0.83W] ``` > One more question - which Wifi module do you have? The Qualcomm NCM825 Wifi7 device still has a lot of problems (it's currently the main thing gating our Linux certification of the platform).
Thanks Ohno On Thu, Jun 20, 2024, at 12:57 PM, Yutaro Ohno wrote: > On Fri Jun 21, 2024 at 12:35 AM JST, Mark Pearson wrote: >> >> - Get a report from running the Intel S0ix test tool - https://github.com/intel/S0ixSelftestTool. Run it with the -S option >> > >> > It may not work as my machine is not Intel, but here's the output: >> <snip> >> >> Yeah - that won't work. The AMD test tool is here: >> https://gitlab.freedesktop.org/drm/amd/-/blob/master/scripts/amd_s2idle.py >> Can you try that please? > > Sure. I've tried with/without the kernel parameter `acpi.ec_no_wakeup=1`. > > Booting with the kernel parameter: > ``` > $ sudo python3 amd_s2idle.py > Location of log file (default s2idle_report-2024-06-21.txt)? > Debugging script for s2idle on AMD systems > ๐ป LENOVO 21MCCTO1WW (ThinkPad T14 Gen 5) running BIOS 1.4 (R2LET23W > (1.04 )) released 04/01/2024 and EC 1.1 > ๐ง Arch Linux > ๐ง Kernel 6.9.5-arch1-1 > ๐ Battery BAT0 (SMP 5B11H56415) is operating at 101.22% of design > Checking prerequisites for s2idle > โ Logs are provided via systemd > โ AMD Ryzen 7 PRO 8840U w/ Radeon 780M Graphics (family 19 model 75) > โ SMT enabled > โ LPS0 _DSM enabled > โ ACPI FADT supports Low-power S0 idle > โ HSMP driver `amd_hsmp` not detected (blocked: False) > โ PMC driver `amd_pmc` loaded (Program 0 Firmware 76.83.0) > โ USB4 driver `thunderbolt` bound to 0000:c6:00.5 > โ USB4 driver `thunderbolt` bound to 0000:c6:00.6 > โ GPU driver `amdgpu` bound to 0000:c4:00.0 > โ System is configured for s2idle > โ NVME KIOXIA Corporation NVMe SSD Controller XG8 is configured for > s2idle in BIOS > โ GPIO driver `pinctrl_amd` available > ๐ฆ Device firmware checks unavailable without gobject introspection > โ WCN6855 WLAN (fw build id > WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.37) > 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-06-21 01:05:15.386691 (cycle finish expected @ > 2024-06-21 01:05:29.386714) > Results from last s2idle cycle > โ Suspend count: 1 > โ Hardware sleep cycle count: 1 > โ Wakeup triggered from IRQ 9: ACPI SCI > โ Woke up from IRQ 9: ACPI SCI > โ gpe07 increased from 9957 to 10219 > โ Userspace suspended for 0:00:12.386591 > โ In a hardware sleep state for 0:00:08.692840 (70.18%) > ๐ Battery BAT0 lost 10000 ยตWh (0.02%) [Average rate 0.29W] > ``` > > Booting without the kernel parameter: > ``` > $ sudo python3 ./amd_s2idle.py > Location of log file (default s2idle_report-2024-06-21.txt)? > Debugging script for s2idle on AMD systems > ๐ป LENOVO 21MCCTO1WW (ThinkPad T14 Gen 5) running BIOS 1.4 (R2LET23W > (1.04 )) released 04/01/2024 and EC 1.1 > ๐ง Arch Linux > ๐ง Kernel 6.9.5-arch1-1 > ๐ Battery BAT0 (SMP 5B11H56415) is operating at 101.22% of design > Checking prerequisites for s2idle > โ Logs are provided via systemd > โ AMD Ryzen 7 PRO 8840U w/ Radeon 780M Graphics (family 19 model 75) > โ SMT enabled > โ LPS0 _DSM enabled > โ ACPI FADT supports Low-power S0 idle > โ HSMP driver `amd_hsmp` not detected (blocked: False) > โ PMC driver `amd_pmc` loaded (Program 0 Firmware 76.83.0) > โ USB4 driver `thunderbolt` bound to 0000:c6:00.5 > โ USB4 driver `thunderbolt` bound to 0000:c6:00.6 > โ GPU driver `amdgpu` bound to 0000:c4:00.0 > โ System is configured for s2idle > โ NVME KIOXIA Corporation NVMe SSD Controller XG8 is configured for > s2idle in BIOS > โ GPIO driver `pinctrl_amd` available > ๐ฆ Device firmware checks unavailable without gobject introspection > โ WCN6855 WLAN (fw build id > WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.37) > 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-06-21 01:16:58.754215 (cycle finish expected @ > 2024-06-21 01:17:12.754238) > Results from last s2idle cycle > โ Suspend count: 1 > โ Hardware sleep cycle count: 10 > โ Wakeup triggered from IRQ 9: ACPI SCI > โ Woke up from IRQ 9: ACPI SCI > โ gpe07 increased from 1823 to 2085 > โ Userspace suspended for 0:00:12.962868 > โ In a hardware sleep state for 0:00:01.672448 (12.90%) > ๐ Battery BAT0 lost 30000 ยตWh (0.06%) [Average rate 0.83W] > ``` > >> One more question - which Wifi module do you have? The Qualcomm NCM825 Wifi7 device still has a lot of problems (it's currently the main thing gating our Linux certification of the platform). > > From `lspci`, it's the QCNFA765. > I'll forward these on to the FW team. Mark
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index 299ec653388c..c7d5231edca7 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c @@ -2248,6 +2248,12 @@ static const struct dmi_system_id acpi_ec_no_wakeup[] = { DMI_MATCH(DMI_PRODUCT_FAMILY, "ThinkPad X1 Yoga 3rd"), }, }, + { + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_FAMILY, "ThinkPad T14 Gen 5"), + }, + }, { .matches = { DMI_MATCH(DMI_SYS_VENDOR, "HP"),
On ThinkPad T14 Gen 5, EC interrupts constantly wake up the system from s2idle, resulting in high power consumption. This sets `acpi.ec_no_wakeup=1` to fix the high power consumption issue in s2idle state. Signed-off-by: Yutaro Ohno <yutaro.ono.418@gmail.com> --- drivers/acpi/ec.c | 6 ++++++ 1 file changed, 6 insertions(+)