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 > _______________________________________________ wayland-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/wayland-devel
