Re: [PATCH] platform/x86: thinkpad_acpi: Add missing T14s Gen1 type to s2idle quirk list

From: Benjamin Asbach
Date: Mon Apr 03 2023 - 07:04:58 EST


On 2023-04-03 12:03, Hans de Goede wrote:
Hi,

On 4/1/23 01:24, Benjamin Asbach wrote:
Lenovo laptops that contain NVME SSDs across a variety of generations have
trouble resuming from suspend to idle when the IOMMU translation layer is
active for the NVME storage device.

This generally manifests as a large resume delay or page faults. These
delays and page faults occur as a result of a Lenovo BIOS specific SMI
that runs during the D3->D0 transition on NVME devices.

Link: https://lore.kernel.org/all/20220503183420.348-1-mario.limonciello@xxxxxxx/

As Lenovo distributes T14s Gen1 laptops with different product names
a missing one is added by this patch.

Note: Based on lenovo support page there might be some more variants which
are not represented in s2idle quirk list.

Can you provide some more in info on this? Then Mark can maybe check
if we need to add more models ?

Sure. When you go to https://pcsupport.lenovo.com/us/en/ and type in any of the
models in that quirk list - for example `T14 Gen2` beside `20XK` there's also `20XL`.
I assume - but cannot confirm - that the other types suffer the same firmware issue.

For my model the issue only arised after I upgraded the original NVMe with a bigger one.

Greetings,
Benjamin

Mark, generally speaking it may help to do a DMI_EXACT_MATCH on
DMI_PRODUCT_VERSION with ThinkPads ? That contains the human
readable model string instead of things like "20UJ", and I guess
that we want to e.g. apply the s2idle quirk to all "T14s Gen1 AMD"
ThinkPads.


Signed-off-by: Benjamin Asbach <asbachb.kernel@xxxxxxx>
Tested-by: Benjamin Asbach <asbachb.kernel@xxxxxxx>

Thank you for your patch, I've applied this patch to my fixes
branch:
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=fixes

I will include this patch in my next fixes pull-req to Linus
for the current kernel development cycle.

Regards,

Hans






Link: https://bbs.archlinux.org/viewtopic.php?pid=2084655#p2084655
---
drivers/platform/x86/thinkpad_acpi.c | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
index 32c10457399e..57428d7a392d 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
@@ -4478,6 +4478,15 @@ static const struct dmi_system_id fwbug_list[] __initconst = {
DMI_MATCH(DMI_PRODUCT_NAME, "20UH"),
}
},
+ {
+ .ident = "T14s Gen1 AMD",
+ .driver_data = &quirk_s2idle_bug,
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "20UJ"),
+ }
+ },
+
{
.ident = "P14s Gen1 AMD",
.driver_data = &quirk_s2idle_bug,