drivers/platform/x86/amd/pmc/pmc-quirks.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
The Lenovo Legion Go 2 takes a long time to resume from suspend.
This is due to it having an nvme resume handler that interferes
with IOMMU mappings. It is a common issue with older Lenovo
laptops. Adding it to that quirk list fixes this issue.
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4618
Suggested-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Antheas Kapenekakis <lkml@antheas.dev>
---
drivers/platform/x86/amd/pmc/pmc-quirks.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/drivers/platform/x86/amd/pmc/pmc-quirks.c b/drivers/platform/x86/amd/pmc/pmc-quirks.c
index d63aaad7ef59..0fadcf5f288a 100644
--- a/drivers/platform/x86/amd/pmc/pmc-quirks.c
+++ b/drivers/platform/x86/amd/pmc/pmc-quirks.c
@@ -204,6 +204,23 @@ static const struct dmi_system_id fwbug_list[] = {
DMI_MATCH(DMI_PRODUCT_NAME, "82ND"),
}
},
+ /* https://gitlab.freedesktop.org/drm/amd/-/issues/4618 */
+ {
+ .ident = "Lenovo Legion Go 2",
+ .driver_data = &quirk_s2idle_bug,
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "83N0"),
+ }
+ },
+ {
+ .ident = "Lenovo Legion Go 2",
+ .driver_data = &quirk_s2idle_bug,
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "83N1"),
+ }
+ },
/* https://gitlab.freedesktop.org/drm/amd/-/issues/2684 */
{
.ident = "HP Laptop 15s-eq2xxx",
base-commit: a8cdf51cda30f7461a98af821e8a28c5cb5f8878
--
2.51.0
On Wed, 08 Oct 2025 15:50:57 +0200, Antheas Kapenekakis wrote:
> The Lenovo Legion Go 2 takes a long time to resume from suspend.
> This is due to it having an nvme resume handler that interferes
> with IOMMU mappings. It is a common issue with older Lenovo
> laptops. Adding it to that quirk list fixes this issue.
>
>
Thank you for your contribution, it has been applied to my local
review-ilpo-fixes branch. Note it will show up in the public
platform-drivers-x86/review-ilpo-fixes branch only once I've pushed my
local branch there, which might take a while.
The list of commits applied:
[1/1] platform/x86/amd: pmc: Add Lenovo Legion Go 2 to pmc quirk list
commit: ad537973e63dbd8fa1342489c818ab26cf447649
--
i.
On 10/8/25 8:50 AM, Antheas Kapenekakis wrote:
> The Lenovo Legion Go 2 takes a long time to resume from suspend.
> This is due to it having an nvme resume handler that interferes
> with IOMMU mappings. It is a common issue with older Lenovo
> laptops. Adding it to that quirk list fixes this issue.
>
> Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4618
> Suggested-by: Mario Limonciello <mario.limonciello@amd.com>
> Signed-off-by: Antheas Kapenekakis <lkml@antheas.dev>
This makes sense for BIOS in the field.
If this is fixed in the BIOS later I'd like to narrow the quirk at a
later time.
Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org>
> ---
> drivers/platform/x86/amd/pmc/pmc-quirks.c | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/drivers/platform/x86/amd/pmc/pmc-quirks.c b/drivers/platform/x86/amd/pmc/pmc-quirks.c
> index d63aaad7ef59..0fadcf5f288a 100644
> --- a/drivers/platform/x86/amd/pmc/pmc-quirks.c
> +++ b/drivers/platform/x86/amd/pmc/pmc-quirks.c
> @@ -204,6 +204,23 @@ static const struct dmi_system_id fwbug_list[] = {
> DMI_MATCH(DMI_PRODUCT_NAME, "82ND"),
> }
> },
> + /* https://gitlab.freedesktop.org/drm/amd/-/issues/4618 */
> + {
> + .ident = "Lenovo Legion Go 2",
> + .driver_data = &quirk_s2idle_bug,
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "83N0"),
> + }
> + },
> + {
> + .ident = "Lenovo Legion Go 2",
> + .driver_data = &quirk_s2idle_bug,
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "83N1"),
> + }
> + },
> /* https://gitlab.freedesktop.org/drm/amd/-/issues/2684 */
> {
> .ident = "HP Laptop 15s-eq2xxx",
>
> base-commit: a8cdf51cda30f7461a98af821e8a28c5cb5f8878
© 2016 - 2026 Red Hat, Inc.