On Wed, Sep 20, 2017 at 10:14:41AM +1000, Peter Hutterer wrote: > Hi Matt,
Hi Peter! > On Tue, Sep 19, 2017 at 12:41:52PM -0400, Matt Porter wrote: > > The Chalkboard Electronics HID Touchscreen is classified as > > a tablet device by systemd udev because it has BTN_TOOL_PEN > > support. It also reports a resolution of 0 for both X and Y > > axes in absinfo. This causes libinput to reject it as an > > invalid tablet device. > > > > This quirk reclassifies the device as a touchscreen which > > allows it to be added as a valid input device. > > > > Signed-off-by: Matt Porter <mpor...@konsulko.com> > > --- > > udev/90-libinput-model-quirks.hwdb | 7 +++++++ > > 1 file changed, 7 insertions(+) > > > > diff --git a/udev/90-libinput-model-quirks.hwdb > > b/udev/90-libinput-model-quirks.hwdb > > index 72fcdca..6348f0c 100644 > > --- a/udev/90-libinput-model-quirks.hwdb > > +++ b/udev/90-libinput-model-quirks.hwdb > > @@ -72,6 +72,13 @@ libinput:name:*ETPS/2 Elantech > > Touchpad*:dmi:*svnASUSTeKCOMPUTERINC.:pnX555LAB:* > > LIBINPUT_MODEL_TOUCHPAD_VISIBLE_MARKER=1 > > > > ########################################## > > +# Chalkboard Electronics > > +########################################## > > +libinput:name:Chalkboard Electronics HID Touchscreen:dmi:* > > + ID_INPUT_TABLET=0 > > + ID_INPUT_TOUCHSCREEN=1 First off, thanks for the very good explanation of where this quirk handling should live...I wasn't entirely clear on the separation from my read of systemd and libinput. > There are three things we have to fix here: > 1) ID_INPUT_* is not something set by libinput so if it is wrong, we should > fix > it at the source (i.e. systemd) so it will be correct for everyone. By the > time libinput sees this device, the ID_INPUT_* must be correct already, that > is one of the requirements we have from the base system. Ok. Since systemd's logic of normally classifying anything with a pen tool as a tablet makes sense, tt appears I'll want to add something similar to 65-libwacom.rules. We definitely are a traditional touchscreen device and not something with semantics like a Wacom tablet. Something like: 65-chalkboard-electronics.rules ------------------------------- # udev rules for Chalkboard Electronics devices ACTION!="add|change", GOTO="chalkboard_end" KERNEL!="event[0-9]*", GOTO="chalkboard_end" ENV{ID_BUS}=="usb", ENV{ID_VENDOR_ID}=="04d8", ENV{ID_MODEL_ID}=="f723", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="", ENV{ID_INPUT_TOUCHSCREEN}="1" LABEL="chalkboard_end" > 2) The absinfo bits can be set with the EV_ABS_.. in 60-evdev.hwdb. Have a > look at that file, it includes the explanation on how to set it. Ok, perfect. I totally missed this and I have a patch I'll send upstream to systemd. > 3) The libinput part of this will be to add a > LIBINPUT_MODEL_CHALKBOARD_ELECTRONICS_TOUCHSCREEN tag for this particular > model. That needs to be parsed in evdev_pre_configure_model_quirks because > we need to libevdev_disable_event_code(BTN_TOOL_PEN) for that to make sure > the rest of libinput has the data it expects. I see, ok. Is this necessary even if the device is detected as a touchscreen? It appears that BTN_TOOL_PEN events are only used in the evdev-tablet.c paths so I would have thought it unncessary to disable pen events. That is, assuming I have the first two cases above implemented. Is this simply for correctness and to not have bogus pen events arriving at get_key_type()? In any case, I can rework as described above. Thanks, Matt _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel