X86 platform drivers
 help / color / mirror / Atom feed
* [PATCH v1] platform/x86/amd: pmc: Add Lenovo Legion Go 2 to pmc quirk list
@ 2025-10-08 13:50 Antheas Kapenekakis
  2025-10-08 14:06 ` Mario Limonciello
  2025-11-05 12:24 ` Ilpo Järvinen
  0 siblings, 2 replies; 6+ messages in thread
From: Antheas Kapenekakis @ 2025-10-08 13:50 UTC (permalink / raw)
  To: Mario Limonciello, Shyam-sundar.S-k, hansg, ilpo.jarvinen
  Cc: platform-driver-x86, linux-kernel, Mark Pearson,
	Antheas Kapenekakis

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



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v1] platform/x86/amd: pmc: Add Lenovo Legion Go 2 to pmc quirk list
  2025-10-08 13:50 [PATCH v1] platform/x86/amd: pmc: Add Lenovo Legion Go 2 to pmc quirk list Antheas Kapenekakis
@ 2025-10-08 14:06 ` Mario Limonciello
  2025-10-08 14:18   ` Antheas Kapenekakis
  2025-11-05 12:24 ` Ilpo Järvinen
  1 sibling, 1 reply; 6+ messages in thread
From: Mario Limonciello @ 2025-10-08 14:06 UTC (permalink / raw)
  To: Antheas Kapenekakis, Shyam-sundar.S-k, hansg, ilpo.jarvinen
  Cc: platform-driver-x86, linux-kernel, Mark Pearson

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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v1] platform/x86/amd: pmc: Add Lenovo Legion Go 2 to pmc quirk list
  2025-10-08 14:06 ` Mario Limonciello
@ 2025-10-08 14:18   ` Antheas Kapenekakis
  2025-10-08 15:14     ` Mario Limonciello
  0 siblings, 1 reply; 6+ messages in thread
From: Antheas Kapenekakis @ 2025-10-08 14:18 UTC (permalink / raw)
  To: Mario Limonciello
  Cc: Shyam-sundar.S-k, hansg, ilpo.jarvinen, platform-driver-x86,
	linux-kernel, Mark Pearson

On Wed, 8 Oct 2025 at 16:06, Mario Limonciello <superm1@kernel.org> wrote:
>
> 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.

That would be ideal. Especially since the issue is known and fixed in
Lenovo laptops from the last three years so it should be easy to fix.
Currently, there are two BIOS versions that would need quirking,
RRCN11WW, RRCN10WW.

What are the side effects from blocking the Nvme handler? Other than
OPAL support handled by the built in BIOS, which is a semi-antifeature
for a device like this.

I should note that there are other pressing issues with the device.
Users report HDR brightness is not at correct levels compared to
Windows and the brightness slider sometimes breaks after sleep.

HDR brightness might be a bug in Bazzite specifically, due to a
blanket quirk we apply to disable the PQ curve on internal displays
(essentially the panel that had the brightness bug on e.g. Zotac Zone
also reports supporting PQ but it does not). I disabled it for the Go
2 but have not double checked it is disabled due to not having a
device. Users said there was an improvement after disabling it though.

Antheas

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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v1] platform/x86/amd: pmc: Add Lenovo Legion Go 2 to pmc quirk list
  2025-10-08 14:18   ` Antheas Kapenekakis
@ 2025-10-08 15:14     ` Mario Limonciello
  2025-10-08 15:38       ` Antheas Kapenekakis
  0 siblings, 1 reply; 6+ messages in thread
From: Mario Limonciello @ 2025-10-08 15:14 UTC (permalink / raw)
  To: Antheas Kapenekakis
  Cc: Shyam-sundar.S-k, hansg, ilpo.jarvinen, platform-driver-x86,
	linux-kernel, Mark Pearson

On 10/8/25 9:18 AM, Antheas Kapenekakis wrote:
> On Wed, 8 Oct 2025 at 16:06, Mario Limonciello <superm1@kernel.org> wrote:
>>
>> 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.
> 
> That would be ideal. Especially since the issue is known and fixed in
> Lenovo laptops from the last three years so it should be easy to fix.
> Currently, there are two BIOS versions that would need quirking,
> RRCN11WW, RRCN10WW.
> 
> What are the side effects from blocking the Nvme handler? Other than
> OPAL support handled by the built in BIOS, which is a semi-antifeature
> for a device like this.

The inability to use a storage password is the only side effect I'm 
aware of.  Given the form factor I tend to agree it's not "high 
priority" and thus this quirk makes sense.
> 
> I should note that there are other pressing issues with the device.
> Users report HDR brightness is not at correct levels compared to
> Windows and the brightness slider sometimes breaks after sleep.
> 
> HDR brightness might be a bug in Bazzite specifically, due to a
> blanket quirk we apply to disable the PQ curve on internal displays
> (essentially the panel that had the brightness bug on e.g. Zotac Zone
> also reports supporting PQ but it does not). I disabled it for the Go
> 2 but have not double checked it is disabled due to not having a
> device. Users said there was an improvement after disabling it though.
> 

Wrong audience for this issue.  I would raise this for discussion on 
dri-devel if it happens on a mainline kernel without extra distro 
specific quirks added.
> Antheas
> 
>> 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
>>
>>
> 


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v1] platform/x86/amd: pmc: Add Lenovo Legion Go 2 to pmc quirk list
  2025-10-08 15:14     ` Mario Limonciello
@ 2025-10-08 15:38       ` Antheas Kapenekakis
  0 siblings, 0 replies; 6+ messages in thread
From: Antheas Kapenekakis @ 2025-10-08 15:38 UTC (permalink / raw)
  To: Mario Limonciello
  Cc: Shyam-sundar.S-k, hansg, ilpo.jarvinen, platform-driver-x86,
	linux-kernel, Mark Pearson

On Wed, 8 Oct 2025 at 17:14, Mario Limonciello <superm1@kernel.org> wrote:
>
> On 10/8/25 9:18 AM, Antheas Kapenekakis wrote:
> > On Wed, 8 Oct 2025 at 16:06, Mario Limonciello <superm1@kernel.org> wrote:
> >>
> >> 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.
> >
> > That would be ideal. Especially since the issue is known and fixed in
> > Lenovo laptops from the last three years so it should be easy to fix.
> > Currently, there are two BIOS versions that would need quirking,
> > RRCN11WW, RRCN10WW.
> >
> > What are the side effects from blocking the Nvme handler? Other than
> > OPAL support handled by the built in BIOS, which is a semi-antifeature
> > for a device like this.
>
> The inability to use a storage password is the only side effect I'm
> aware of.  Given the form factor I tend to agree it's not "high
> priority" and thus this quirk makes sense.
> >
> > I should note that there are other pressing issues with the device.
> > Users report HDR brightness is not at correct levels compared to
> > Windows and the brightness slider sometimes breaks after sleep.
> >
> > HDR brightness might be a bug in Bazzite specifically, due to a
> > blanket quirk we apply to disable the PQ curve on internal displays
> > (essentially the panel that had the brightness bug on e.g. Zotac Zone
> > also reports supporting PQ but it does not). I disabled it for the Go
> > 2 but have not double checked it is disabled due to not having a
> > device. Users said there was an improvement after disabling it though.
> >
>
> Wrong audience for this issue.  I would raise this for discussion on
> dri-devel if it happens on a mainline kernel without extra distro
> specific quirks added.

The reason I raise this here is to say since the device has more
pressing issues currently, a BIOS fix for OPAL should be prioritized
accordingly.

I do not have a dev unit so I cannot reproduce these two issues and
user reporting is inconsistent so I will leave it there. The PQ quirk
is in gamescope, where the issue might very well be.

> > Antheas
> >
> >> 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
> >>
> >>
> >
>
>


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v1] platform/x86/amd: pmc: Add Lenovo Legion Go 2 to pmc quirk list
  2025-10-08 13:50 [PATCH v1] platform/x86/amd: pmc: Add Lenovo Legion Go 2 to pmc quirk list Antheas Kapenekakis
  2025-10-08 14:06 ` Mario Limonciello
@ 2025-11-05 12:24 ` Ilpo Järvinen
  1 sibling, 0 replies; 6+ messages in thread
From: Ilpo Järvinen @ 2025-11-05 12:24 UTC (permalink / raw)
  To: Mario Limonciello, Shyam-sundar.S-k, hansg, Antheas Kapenekakis
  Cc: platform-driver-x86, linux-kernel, Mark Pearson

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.


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2025-11-05 12:24 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-08 13:50 [PATCH v1] platform/x86/amd: pmc: Add Lenovo Legion Go 2 to pmc quirk list Antheas Kapenekakis
2025-10-08 14:06 ` Mario Limonciello
2025-10-08 14:18   ` Antheas Kapenekakis
2025-10-08 15:14     ` Mario Limonciello
2025-10-08 15:38       ` Antheas Kapenekakis
2025-11-05 12:24 ` Ilpo Järvinen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox