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

Koba Ko koba.ko at canonical.com
Tue Jul 21 04:04:51 UTC 2020

BugLink: https://bugs.launchpad.net/bugs/1888331

Can't wake up by touching the touchpad.

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.

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.

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


More information about the kernel-team mailing list