Re: [PATCH] gpiolib: acpi: Add a ignore wakeup quirk for Clevo NH5xAx

From: Andy Shevchenko
Date: Mon Feb 13 2023 - 12:50:18 EST


On Mon, Feb 13, 2023 at 10:20:41AM -0700, Raul Rangel wrote:
> On Mon, Feb 13, 2023 at 7:47 AM Werner Sembach <wse@xxxxxxxxxxxxxxxxxxx> wrote:
> > Am 13.02.23 um 15:37 schrieb Andy Shevchenko:
> > > On Mon, Feb 13, 2023 at 07:20:48AM -0600, Mario Limonciello wrote:
> > >> On 2/13/23 06:41, Andy Shevchenko wrote:
> > >>> On Mon, Feb 13, 2023 at 12:30:08PM +0100, Werner Sembach wrote:
> > >>>> Am 10.02.23 um 18:04 schrieb Andy Shevchenko:
> > >>>>> On Fri, Feb 10, 2023 at 05:46:36PM +0100, Werner Sembach wrote:
> > >>>>>> commit 1796f808e4bb ("HID: i2c-hid: acpi: Stop setting wakeup_capable")
> > >>>>>> changed the policy such that I2C touchpads may be able to wake up the
> > >>>>>> system by default if the system is configured as such.
> > >>>>>>
> > >>>>>> However on Clevo NH5xAx/TUXEDO XA15 Gen10 there is a mistake in the ACPI
> > >>>>>> tables that the TP_ATTN# signal connected to GPIO 10 is configured as
> > >>>>>> ActiveLow and level triggered but connected to a pull up.
> > >>>>> I'm not sure I understand the issue here. From what you say here it seems
> > >>>>> correct ACPI description.
> > >>>> TBH I copied the commit description from https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4cb786180dfb5258ff3111181b5e4ecb1d4a297b
> > >>>> which is for a different device having the exact same problem.
> > >>> Yeah, and I reviewed that and seems paid no attention to this detail.
> > >>>
> > >>> So, ActiveLow + PullUp is the _right_ thing to do in ACPI.
> > >>> The problem seems somewhere else.
> > >>>
> > >>> Mario, can we have an access to the schematics of the affected pin to
> > >>> understand better what's going on?
> > >>>
> > >>> Or is that description missing some crucial detail?
> >
> > Schematics for the NH5xAx can also be found on this unofficial clevo mirror
> > (service manuals, scroll to end for schematics):
> >
> > http://repo.palkeo.com/clevo-mirror/NH5xACx_AFx_ADx/NH50AC.zip
> >
> > http://repo.palkeo.com/clevo-mirror/NH5xACx_AFx_ADx/NH50AF1.zip
> >
> > User: repo
> >
> > PW: repo
> >
> > >> The schematics were shared by the reporter for the original issue which is
> > >> how we reached the conclusion there was a mistake.
> > >>
> > >> As they're both Clevo designs it's certainly possible they have the same
> > >> mistake in two systems.
>
> > > Thank you!
> > > I have looked at the schematics and read discussion.
> > >
> > > So, the conclusion that this is a BIOS bug is incorrect in my opinion.
> > > The problem is either in the PMIC/EC firmware that shouldn't shut down 3.3VS
> > > signal for a while or on the PCB level, so that pull up should be connected
> > > to another power source that stays on.
> > >
> > > This means the description on the initial patch with the same issue is
> > > incorrect.
> > >
> > > Do we know the power sequence on the suspend to see which and how on the
> > > time line the power sources are off/on?
>
> If you look at the load switch for 3.3VS, its EN2 pin is connected to
> SUSB#_EN which is connected to SUSB# which is connected to
> AND(SUSB#_PCH -> SLP_S3_L, PM_SLP_S0 -> S0A3_GPIO). So there is no
> PMIC/EC firmware that is incharge of this. I guess I'm not quite sure
> how they have S0A3_GPIO configured, so maybe I have an invert wrong.
>
> The EC does control DD_ON which controls the 3.3V and 5V rails.

On page 6 of the schematics I see the U7 that forms SUSB# from SUSB#_APU
(which corresponds to what you said) _and_ EC_EN, which is GPIO from IT5570,
which is EC.

Are you using different schematics? I'm using the one from FDO bug report.

> > >>>>>> As soon as the
> > >>>>>> system suspends the touchpad loses power and then the system wakes up.
> > >>>>>>
> > >>>>>> To avoid this problem, introduce a quirk for this model that will prevent
> > >>>>>> the wakeup capability for being set for GPIO 10.
> > >>>>> I'm not against fixing this, but wouldn't be better to actually target the root
> > >>>>> cause and have a different quirk? Or is it me who didn't get what is the root
> > >>>>> cause?
> > >>>>>
> > >>>> I missed to reference the original discussion while copying the description:
> > >>>> https://gitlab.freedesktop.org/drm/amd/-/issues/1722#note_1720627 (Note that
> > >>>> it's a somewhat convoluted issue spanning multiple bugs when you scroll up
> > >>>> from that particular linked comment, which are however irrelevant for this
> > >>>> patch)
> > >>>>
> > >>>> I'm not deep into how ACPI defined IRQ work so maybe not a good idea for me
> > >>>> summing it up, as I might have misunderstood parts of it ^^
> > >>> The GpioIo() and GpioInt() resources have gaps in them, due to this some
> > >>> additional information is required or some heuristics is used to deduct
> > >>> the settings.
> > >>>
> > >>> All this is described in
> > >>> https://www.kernel.org/doc/html/latest/firmware-guide/acpi/gpio-properties.html
> > >>>
> > >>>> I added the other ones from there to the cc.
> > >>> Thank you.

--
With Best Regards,
Andy Shevchenko