[PATCH libinput 0/5] Disable laptop touchpad on lid close
Peter Hutterer
peter.hutterer at who-t.net
Thu Jan 5 10:02:51 UTC 2017
On Thu, Jan 05, 2017 at 05:11:24PM +1100, James Ye wrote:
> Although a laptop touchpad is usually not accessible when the lid is closed,
> some laptop models suffer from a hardware bug where the touchpad can be
> activated even if the lid is closed. This bug can be worked around by disabling
> the touchpad when the lid is closed.
>
> This patch set adds:
> 1: hwdb patch to mark switches as input devices (needs to go to systemd)
> 2: switch interface[1]
> 3: evdev dispatch interface for laptop lid switches
> 4: mechanism for pairing touchpad with lid, and disabling the touchpad
> 5: test cases
>
> Best regards,
> James Ye
thanks for picking this up, much appreciated. The patches look good bar a
few minor nitpicks and a few test cases we should add. But the series even
*has* test cases, so there's really very little I can complain about :)
One thing I found missing when I reviewed the tests: we don't sync the
status of the switch on startup. There are two options here (either can be a
follow-up patch):
* send a switch toggle event immediately after DEVICE_ADDED on startup.
That's in-line with the other events and iirc also what we do for
proximity if a tablet tool is already in proximity on device added.
* add a libinput_device_switch_get_state() function for callers to query the
state if they need it and only send the actual changes after we have a
context initialised. That has a small potential for race conditions, so
I'm tending to the first option
Carlos, Jonas, Hans, any opinions?
Cheers,
Peter
>
> [1]: https://lists.freedesktop.org/archives/wayland-devel/2016-January/026349.html
>
> James Ye (5):
> udev: mark switches as input devices
> Add a "switch" interface for parts of the SW_* range
> Add evdev_dispatch interface for lid switch
> Pair touchpad and lid_switch for disable
> test: add tests for lid switch
>
> doc/Makefile.am | 1 +
> doc/switches.dox | 13 +++
> src/evdev-mt-touchpad.c | 47 ++++++++
> src/evdev-mt-touchpad.h | 5 +
> src/evdev.c | 92 ++++++++++++++-
> src/evdev.h | 8 ++
> src/libinput-private.h | 5 +
> src/libinput.c | 103 +++++++++++++++++
> src/libinput.h | 107 +++++++++++++++++
> src/libinput.sym | 9 ++
> test/Makefile.am | 4 +-
> test/lid.c | 228 +++++++++++++++++++++++++++++++++++++
> test/litest-device-lid-switch.c | 58 ++++++++++
> test/litest.c | 31 +++++
> test/litest.h | 10 ++
> tools/event-debug.c | 34 ++++++
> udev/90-libinput-model-quirks.hwdb | 6 +
> 17 files changed, 758 insertions(+), 3 deletions(-)
> create mode 100644 doc/switches.dox
> create mode 100644 test/lid.c
> create mode 100644 test/litest-device-lid-switch.c
>
> --
> 2.9.3
>
More information about the wayland-devel
mailing list