On Mon, 31 Mar 2025 at 22:55, Mario Limonciello <superm1@xxxxxxxxxx> wrote: > > On 3/31/2025 3:53 PM, Antheas Kapenekakis wrote: > > On Mon, 31 Mar 2025 at 22:51, Antheas Kapenekakis <lkml@xxxxxxxxxxx> wrote: > >> > >> On Mon, 31 Mar 2025 at 22:44, Mario Limonciello <superm1@xxxxxxxxxx> wrote: > >>> > >>> From: Mario Limonciello <mario.limonciello@xxxxxxx> > >>> > >>> When AC adapter is unplugged or plugged in EC wakes from > >>> HW sleep but APU doesn't enter back into HW sleep. > >>> > >>> The reason this hapens is that when APU exits HW sleep the power > >>> rails the EC controls will power up the TCON. The TCON has a > >>> GPIO that will be toggled during this time. The GPIO is not marked > >>> as a wakeup source however GPIO controller still has an unserviced > >>> interrupt and it will block entering HW sleep again. Clearing the > >>> GPIO doesn't help, the TCON raises it again until it's been initialized > >>> by i2c-hid. > >>> > >>> Fixing this would require TCON F/W changes and it's already broken > >>> in the wild on production hardware. > >>> > >>> To avoid triggering this issue add a quirk to avoid letting EC wake > >>> up system at all. The power button still works properly on this system. > >> > >> Hi Mario, > >> I reported this issue to you early in January, did all the debugging > >> for it, found the cause, made this patch, tested it, and finally > >> deployed it as well. Then sent it to Xino. > >> > >> Then you pushed back for perfectly valid reasons, and we had a > >> multi-week long back and forth trying to find the proper cause for > >> this. > >> > >> So from my side I do not get why I am just a reported-by here. This is > >> my patch. We also had a discussion about this out of band. > >> > >> Antheas > > > > It is interesting you ended up finding the cause. Which makes > > attributing this a bit murkier. > > > > Antheas > > Hi Antheas, > > FWIW - you and I separately created very similar patches. There is only one way to write a no_ec_wakeup patch after I reported to you that it fixes it, here [1] mine is the same, even the DMI order is the same. > There has been more debugging that is not public (as you can see from > the content of this commit message). > > What tag would you like in this case? I think co-developed-by since you also worked very hard on fixing this. I do not know if b4 picks up co-developed tags. Not that I am content with it, which you might have noticed with my absence in the amd/drm issue tracker. So, was it the touchscreen after all? Did you verify this by tweaking its firmware? Antheas [1] https://github.com/bazzite-org/patchwork/commit/95b93b2852718ee1e808c72e6b1836da4a95fc63 > Thanks, > > >> > >>> Cc: Xino JS1 Ni <nijs1@xxxxxxxxxx> > >>> Reported-by: Antheas Kapenekakis <lkml@xxxxxxxxxxx> > >>> Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3929 > >>> Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx> > >>> --- > >>> drivers/acpi/ec.c | 28 ++++++++++++++++++++++++++++ > >>> 1 file changed, 28 insertions(+) > >>> > >>> diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c > >>> index 8db09d81918fb..3c5f34892734e 100644 > >>> --- a/drivers/acpi/ec.c > >>> +++ b/drivers/acpi/ec.c > >>> @@ -2301,6 +2301,34 @@ static const struct dmi_system_id acpi_ec_no_wakeup[] = { > >>> DMI_MATCH(DMI_PRODUCT_FAMILY, "103C_5336AN HP ZHAN 66 Pro"), > >>> }, > >>> }, > >>> + /* > >>> + * Lenovo Legion Go S; touchscreen blocks HW sleep when woken up from EC > >>> + * https://gitlab.freedesktop.org/drm/amd/-/issues/3929 > >>> + */ > >>> + { > >>> + .matches = { > >>> + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), > >>> + DMI_MATCH(DMI_PRODUCT_NAME, "83L3"), > >>> + } > >>> + }, > >>> + { > >>> + .matches = { > >>> + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), > >>> + DMI_MATCH(DMI_PRODUCT_NAME, "83N6"), > >>> + } > >>> + }, > >>> + { > >>> + .matches = { > >>> + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), > >>> + DMI_MATCH(DMI_PRODUCT_NAME, "83Q2"), > >>> + } > >>> + }, > >>> + { > >>> + .matches = { > >>> + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), > >>> + DMI_MATCH(DMI_PRODUCT_NAME, "83Q3"), > >>> + } > >>> + }, > >>> { }, > >>> }; > >>> > >>> -- > >>> 2.43.0 > >>> >