Thanks David for doing this. On Wed, Oct 25, 2023, at 6:06 PM, Mario Limonciello wrote: > On 10/25/2023 14:30, David Lazar wrote: >> When suspending to idle and resuming on some Lenovo laptops using the >> Mendocino APU, multiple NVME IOMMU page faults occur, showing up in >> dmesg as repeated errors: >> >> nvme 0000:01:00.0: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x000b >> address=0xb6674000 flags=0x0000] >> >> The system is unstable afterwards. >> >> Applying the s2idle quirk introduced by commit 455cd867b85b5 >> ("platform/x86: thinkpad_acpi: Add a s2idle resume quirk for a number of >> laptops") allows these systems to work with the IOMMU enabled and s2idle >> resume to work. >> >> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218024 >> Suggested-by: Mario Limonciello <mario.limonciello@xxxxxxx> >> Suggested-by: Mark Pearson <mpearson-lenovo@xxxxxxxxx> >> Signed-off-by: David Lazar <dlazar@xxxxxxxxx> >> --- > > Reviewed-by: Mario Limonciello <mario.limonciello@xxxxxxx> Reviewed-by: Mark Pearson <mpearson-lenovo@xxxxxxxxx> > >> drivers/platform/x86/amd/pmc/pmc-quirks.c | 73 +++++++++++++++++++++++ >> 1 file changed, 73 insertions(+) >> >> diff --git a/drivers/platform/x86/amd/pmc/pmc-quirks.c b/drivers/platform/x86/amd/pmc/pmc-quirks.c >> index ad702463a65d..6bbffb081053 100644 >> --- a/drivers/platform/x86/amd/pmc/pmc-quirks.c >> +++ b/drivers/platform/x86/amd/pmc/pmc-quirks.c >> @@ -111,6 +111,79 @@ static const struct dmi_system_id fwbug_list[] = { >> DMI_MATCH(DMI_PRODUCT_NAME, "21A1"), >> } >> }, >> + /* https://bugzilla.kernel.org/show_bug.cgi?id=218024 */ >> + { >> + .ident = "V14 G4 AMN", >> + .driver_data = &quirk_s2idle_bug, >> + .matches = { >> + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), >> + DMI_MATCH(DMI_PRODUCT_NAME, "82YT"), >> + } >> + }, >> + { >> + .ident = "V14 G4 AMN", >> + .driver_data = &quirk_s2idle_bug, >> + .matches = { >> + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), >> + DMI_MATCH(DMI_PRODUCT_NAME, "83GE"), >> + } >> + }, >> + { >> + .ident = "V15 G4 AMN", >> + .driver_data = &quirk_s2idle_bug, >> + .matches = { >> + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), >> + DMI_MATCH(DMI_PRODUCT_NAME, "82YU"), >> + } >> + }, >> + { >> + .ident = "V15 G4 AMN", >> + .driver_data = &quirk_s2idle_bug, >> + .matches = { >> + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), >> + DMI_MATCH(DMI_PRODUCT_NAME, "83CQ"), >> + } >> + }, >> + { >> + .ident = "IdeaPad 1 14AMN7", >> + .driver_data = &quirk_s2idle_bug, >> + .matches = { >> + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), >> + DMI_MATCH(DMI_PRODUCT_NAME, "82VF"), >> + } >> + }, >> + { >> + .ident = "IdeaPad 1 15AMN7", >> + .driver_data = &quirk_s2idle_bug, >> + .matches = { >> + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), >> + DMI_MATCH(DMI_PRODUCT_NAME, "82VG"), >> + } >> + }, >> + { >> + .ident = "IdeaPad 1 15AMN7", >> + .driver_data = &quirk_s2idle_bug, >> + .matches = { >> + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), >> + DMI_MATCH(DMI_PRODUCT_NAME, "82X5"), >> + } >> + }, >> + { >> + .ident = "IdeaPad Slim 3 14AMN8", >> + .driver_data = &quirk_s2idle_bug, >> + .matches = { >> + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), >> + DMI_MATCH(DMI_PRODUCT_NAME, "82XN"), >> + } >> + }, >> + { >> + .ident = "IdeaPad Slim 3 15AMN8", >> + .driver_data = &quirk_s2idle_bug, >> + .matches = { >> + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), >> + DMI_MATCH(DMI_PRODUCT_NAME, "82XQ"), >> + } >> + }, >> /* https://gitlab.freedesktop.org/drm/amd/-/issues/2684 */ >> { >> .ident = "HP Laptop 15s-eq2xxx",