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 Note it will show up in my fixes branch once I've pushed my local branch there, which might take a while. 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,