- 19 Nov, 2016 1 commit
-
-
Peter Hutterer authored
The parent device ref's the libinput device during pre_init and unref's it during DEVICE_INIT, so the copy is lost. During DEVICE_ON, the libinput device is re-added and ref'd, this one stays around now. But the takeaway is: unless the device is enabled, no libinput device reference is available. If a device is a mixed pointer + keyboard device, a subdevice is created during a WorkProc. The subdevice relied on the parent's libinput_device being available and didn't even check for it. This WorkProc usually runs after the parent's DEVICE_ON, so in most cases all is well. But when running without logind and the server is vt-switched away, the parent device only runs PreInit and DEVICE_INIT but never DEVICE_ON, causing the subdevice to burn, crash, and generally fail horribly when it dereferences the parent's libinput device. Fix this because we have global warming already and don't need to burn more things and also because it's considered bad user experience to have the server crash. The simple fix is to check the parent device first and if it is unavailable, create a new one because it will end up disabled as well anyway, so the ref goes away as well. The use-case where the parent somehow gets disabled but the subdevice doesn't is a bit too niche to worry about. This doesn't happen with logind because in that case we don't get a usable fd while VT-switched away, so we can't even run PreInit and never get this far (see the paused fd handling in the xfree86 code for that). It can be reproduced by setting AutoEnableDevices off, but why would you do that, seriously. https://bugs.freedesktop.org/show_bug.cgi?id=97117Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by:
Hans de Goede <hdegoede@redhat.com>
-
- 14 Nov, 2016 1 commit
-
-
Peter Hutterer authored
The property is tablet-wide, not just per tool. So when one tool is updated, run through all other devices that share the same underlying device. Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by:
Hans de Goede <hdegoede@redhat.com>
-
- 01 Nov, 2016 2 commits
-
-
Peter Hutterer authored
Exit early if the string is NULL to reduce indentation. No functional changes. Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
Peter Hutterer authored
Now that we sort below the xf86-input-wacom driver anyway, there's no good reason to ignore tablets anymore. Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
- 27 Oct, 2016 2 commits
-
-
Peter Hutterer authored
Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
Peter Hutterer authored
This device never sends events, no point in exposing these options Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by:
Eric Engestrom <eric.engestrom@imgtec.com>
-
- 20 Oct, 2016 1 commit
-
-
Peter Hutterer authored
Found by coverity. Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
- 19 Oct, 2016 5 commits
-
-
Peter Hutterer authored
is_libinput_device(next) causes a dereference of next anyway, so this cannot ever be NULL. Besides, if next ends up as NULL that means we have lost count of how many remaining devices use libinput, so we have other issues. Found by coverity. Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
Peter Hutterer authored
They were never used anyway Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
Peter Hutterer authored
Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
Peter Hutterer authored
Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
Peter Hutterer authored
Missing from a790ff35Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
- 18 Oct, 2016 2 commits
-
-
Peter Hutterer authored
Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
Peter Hutterer authored
If we don't swap out the pInfo previously passed to xf86AddEnabledDevice(), the thread eventually calls read_input on a struct that has been deleted. Avoid this by swapping out the to-be-destroyed pInfo with the first one we find. Reproducer: sudo udevadm trigger --type=devices --action=add Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by:
Hans de Goede <hdegoede@redhat.com>
-
- 14 Oct, 2016 1 commit
-
-
Peter Hutterer authored
Copy/paste error https://bugs.freedesktop.org/show_bug.cgi?id=97989Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
- 30 Sep, 2016 1 commit
-
-
Peter Hutterer authored
Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
- 21 Sep, 2016 1 commit
-
-
Michel Dänzer authored
If --prefix isn't specified on the command line, $prefix contains "NONE" at this point, not the default prefix value. So make install would attempt to install the xorg.conf.d snippet to ${DESTDIR}NONE/share/X11/xorg.conf.d/. Avoid this by leaving ${prefix} verbatim in the default value, to be resolved by make. Signed-off-by:
Michel Dänzer <michel.daenzer@amd.com> Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
- 18 Sep, 2016 1 commit
-
-
Keith Packard authored
This looks like a cut&paste coding error to me, and it generated a compiler warning about possibly uninitialized value. Signed-off-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
- 13 Sep, 2016 1 commit
-
-
Peter Hutterer authored
Clear typo. Not bothering to be backwards compatible here, anything that uses the #define will update on rebuild, anyone using the string directly should've told me about the typo... Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by:
Hans de Goede <hdegoede@redhat.com>
-
- 09 Sep, 2016 1 commit
-
-
Peter Hutterer authored
Avoid creating new devices from within the input thread which was the case for tablet tools. It requires a lot more care about locking and has a potential to mess up things. Instead, schedule a WorkProc and buffer all events until we have the device created. Once that's done, replay the event sequence so far. If the device comes into proximity and out again before we manage to create the new device we just ditch the whole sequence and wait for the next proximity in. Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
- 07 Sep, 2016 1 commit
-
-
Peter Hutterer authored
Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by:
Hans de Goede <hdegoede@redhat.com>
-
- 31 Aug, 2016 1 commit
-
-
Peter Hutterer authored
Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
- 30 Aug, 2016 1 commit
-
-
Peter Hutterer authored
This is the continuation of 3f569ec4, dropping libinput below the remaining drivers. Wacom and synaptics already sort higher anyway (see wacom commit 0da5cd54 and synaptics commit 59e5db025). evdev remains the catchall basic fallback driver and is overwritten by libinput. The two drivers affected by this patch are joystick and vmmouse. joystick is a niche driver and drives devices libinput doesn't handle anyway so there is no need to override. If a user installs it, presumably it is to use it. vmmouse is a niche driver and does not assign itself anymore for newer kernel drivers (see vmmouse commit 576e8123 from Oct 2014). So if vmmouse is installed it can safely sort higher than libinput. Note: this is upstream behavior, distributions have to work out the wanted behavior themselves by renaming the config snippets accordingly. Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by:
Hans de Goede <hdegoede@redhat.com>
-
- 19 Aug, 2016 1 commit
-
-
Peter Hutterer authored
Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
- 15 Aug, 2016 3 commits
-
-
Peter Hutterer authored
Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
Peter Hutterer authored
There is not good wire protocol for pad modes so instead we just export the information via properties. One property to tell us how many groups and how many modes each group has. One property for the current mode of each group. And three properties to tell us which group each button, ring and strip is in. Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
Peter Hutterer authored
The list returned by xf86FirstLocalDevice() includes our own device. If the parent device is removed before the hotplug callback is invoked, the first match with the same shared-device ID is our own device (or potentially another subdevice on the same already-removed parent). Avoid this by making sure the matched device is actually a parent device. Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by:
Hans de Goede <hdegoede@redhat.com> Tested-by:
Keith Packard <keithp@keithp.com>
-
- 12 Aug, 2016 2 commits
-
-
Peter Hutterer authored
If the parent device is removed before the WorkProc is called, the private data is NULL. Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by:
Hans de Goede <hdegoede@redhat.com>
-
Peter Hutterer authored
If an event comes in halfway through the new device creation we read it from libinput's epollfd but depending on the setup stage the new device may not be ready yet. https://bugs.freedesktop.org/show_bug.cgi?id=97117Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by:
Hans de Goede <hdegoede@redhat.com>
-
- 08 Jul, 2016 1 commit
-
-
Peter Hutterer authored
4-7 is reserved for scroll buttons, as usual Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
- 03 Jul, 2016 1 commit
-
-
Eric Engestrom authored
Signed-off-by:
Eric Engestrom <eric@engestrom.ch> Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
- 14 Jun, 2016 1 commit
-
-
Peter Hutterer authored
https://bugs.freedesktop.org/show_bug.cgi?id=96481Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by:
Hans de Goede <hdegoede@redhat.com>
-
- 30 May, 2016 2 commits
-
-
Keith Packard authored
libinput can't run at SIGIO time, so it has been using AddEnabledDevice to run in non-signal context. Threaded input runs all input in non-signal context, so we want to use xf86AddEnabledDevice at last. v2: use XINPUT ABI version check instead of testing for presence of AddEnabledDevice, which can't get removed from the server until a few more patches past the threaded input change are merged. v3: remove reference to XI86_SIGNAL_IO, which was presumably a planned change to the xf86AddEnabledDevice path to make that not use SIGIO. Signed-off-by:
Keith Packard <keithp@keithp.com> Tested-by:
Michel Dänzer <michel.daenzer@amd.com> Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
Peter Hutterer authored
Just to make it more obvious we're using floats/doubles here. Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
- 23 May, 2016 1 commit
-
-
Peter Hutterer authored
Two bugs caused proximity events to be discarded. First, on proximity out posting through pDev would be discarded because pDev is the parent device that we use as a base for hotplugging the real devices for each tool from. That device never sends events though, doing so will see the event discarded in the server. Second, if the tool already exists don't just exit, send the proximity event first. To unify the three paths where we do send the events simply move them down to the exit phase of the function. https://bugs.freedesktop.org/show_bug.cgi?id=95484Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
- 09 May, 2016 1 commit
-
-
Peter Hutterer authored
Modelled to be mostly compatible to the xf86-input-wacom driver behavior. The pad gets 7 axes, the first three of which are mute and the others are always available but obviously only send events when the axis is there. The strip axes are incompatible, the wacom driver merely forwards the device events (which are a bitshifted value), libinput normalizes it and we just expand this back into an integer range. Let's see how we go with this. Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
- 08 May, 2016 1 commit
-
-
Peter Hutterer authored
https://bugs.freedesktop.org/show_bug.cgi?id=95295Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
- 28 Apr, 2016 3 commits
-
-
Peter Hutterer authored
Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
Peter Hutterer authored
Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
Peter Hutterer authored
60 sorts higher than the other drivers (evdev has 10, synaptics, wacom and others have 50) so we keep the same order. This is part of a two-step solution, the other half is renaming the xf86-input-wacom's config snippet to sort higher than libinput's. Currently libinput picks up devices that are (for now) destined to the wacom driver. Since the wacom driver is more of a leaf package than libinput, the best option here is to make the wacom driver sort higher and let users uninstall it when not needed. To avoid crowding the 90-* space where users usually have custom config snippets, drop libinput down to 60 and bump wacom up. Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net> Acked-by:
Jason Gerecke <jason.gerecke@wacom.com>
-