diff mbox series

ACPI: EC: Use ec_no_wakeup on ThinkPad T14 Gen 5

Message ID ZnFYpWHJ5Ml724Nv@ohnotp (mailing list archive)
State Deferred, archived
Headers show
Series ACPI: EC: Use ec_no_wakeup on ThinkPad T14 Gen 5 | expand

Commit Message

Yutaro Ohno June 18, 2024, 9:51 a.m. UTC
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(+)

Comments

Mark Pearson June 18, 2024, 11:28 p.m. UTC | #1
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)
Yutaro Ohno June 20, 2024, 1:10 p.m. UTC | #2
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
Mark Pearson June 20, 2024, 3:35 p.m. UTC | #3
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
Yutaro Ohno June 20, 2024, 4:57 p.m. UTC | #4
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

Mark Pearson June 20, 2024, 5:05 p.m. UTC | #5
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
> 
diff mbox series

Patch

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"),