Re: [PATCH] Input: goodix - call acpi_device_fix_up_power() in some cases

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Jun 18, 2022 at 11:02:33PM +0200, Hans de Goede wrote:
> On ACPI boards, when we cannot get the GPIOs to do a reset ourselves
> if necessary, call acpi_device_fix_up_power() to force the ACPI _PS0
> method to run.
> 
> On some devices without proper GPIO descriptions this will reset
> the touchscreen for us and this may be necessary for us to be able
> to communicate to the touchscreen at all.
> 
> Specifically on an Aya Neo Next this change will cause the _PS0()
> ACPI function to call INIT() which does:
> 
>             Method (INIT, 0, Serialized)
>             {
>                 TP_I = 0x00A50000
>                 TP_R = 0x00A50000
>                 Sleep (0x0A)
>                 TP_I = 0x00E50000
>                 Sleep (One)
>                 TP_R = 0x00E50000
>                 Sleep (0x06)
>                 TP_I = 0x00A50000
>                 Sleep (0x3C)
>                 TP_I = 0x00041800
>             }
> 
> On older kernels the ACPI core assumed a power-on was necessary by itself
> and would run _PS0 before our probe function runs, which can be seen from
> the GPIO pin ctrl registers in /sys/kernel/debug/gpio which match
> the above hex values with older kernels.
> 
> With newer kernels before this change the GPIO pin ctrl registers do not
> match, indicating INIT() has not run and probing the touchscreen fails.
> 
> This change makes Linux run _PS0() again fixing the touchscreen not working
> on the Aya Neo Next.
> 
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=209061
> Reported-and-tested-by: Maya Matuszczyk <maccraft123mc@xxxxxxxxx>
> Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>

Applied, thank you.

-- 
Dmitry



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux