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 ?
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,