[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