APPLIED [OEM-5.6] Re: [PATCH 0/2 v2][SRU][OEM-5.6] Wakeup the system by touching the touchpad

Timo Aaltonen tjaalton at
Wed Jul 29 12:04:36 UTC 2020

On 21.7.2020 11.48, Koba Ko wrote:
> BugLink:
> [Impact]
> Can't wake up by touching the touchpad.
> [Fix]
> 1.gpio: With 'commit 461c1a7d4733 ("gpiolib: override rq_enable/disable")'
>   gpiolib overrides irqchip's irq_enable and irq_disable callbacks. If 
>   irq_disable callback is implemented then genirq takes unlazy path to 
>   disable irq. Underlying irqchip may not want to implement irq_disable 
>   callback to lazy disable irq when client drivers invokes disable_irq(). 
>   By overriding irq_disable callback, gpiolib ends up always unlazy 
>   disabling IRQ. Allow gpiolib to lazy disable IRQs by overriding 
>   irq_disable callback only if irqchip implemented irq_disable. In cases 
>   where irq_disable is not implemented irq_mask is overridden. Similarly 
>   override irq_enable callback only if irqchip implemented irq_enable 
>   otherwise irq_unmask is overridden.
> 2. hid: Many laptops can be woken up from Suspend-to-Idle by the touchpad. 
>    This is also the default behavior on other OSes.
>    However, if the touch pad and touchscreen contact to each other when 
>    lid is closed, the wakeup events can be triggered inadvertently.
>    So let's disable the wakeup by default, but enable the wakeup ability
>    so users can enable it at their own discretion.
> [test]
> With the patch and manually enable HID's power/wakeup, 
> the system can wake up by touching the touchpad.
> [Regression Potential]
> Low. The two patches are already landed in the upstream.
> v2: Add the line of cherry picked for the patches.
> Kai-Heng Feng (1):
>   HID: i2c-hid: Enable wakeup capability from Suspend-to-Idle
> Maulik Shah (1):
>   gpio: gpiolib: Allow GPIO IRQs to lazy disable
>  drivers/gpio/gpiolib.c             | 57 +++++++++++++++++++-----------
>  drivers/hid/i2c-hid/i2c-hid-core.c | 12 +++++++
>  include/linux/gpio/driver.h        | 13 +++++++
>  3 files changed, 62 insertions(+), 20 deletions(-)

applied to oem-5.6, thanks


More information about the kernel-team mailing list