[PATCH 0/2 v2][SRU][OEM-5.6] Wakeup the system by touching the touchpad
Koba Ko
koba.ko at canonical.com
Tue Jul 21 08:48:12 UTC 2020
BugLink: https://bugs.launchpad.net/bugs/1888331
[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(-)
--
2.25.1
More information about the kernel-team
mailing list