platform/upstream/libevdev.git
8 years agolibevdev 1.4.6 libevdev-1.4.6
Peter Hutterer [Tue, 5 Jan 2016 02:38:54 +0000 (12:38 +1000)]
libevdev 1.4.6

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
8 years agouinput: fix race condition in uinput syspath check
Peter Hutterer [Mon, 21 Dec 2015 23:02:46 +0000 (09:02 +1000)]
uinput: fix race condition in uinput syspath check

In theory, the device could change between stat() call and open(), resulting
in us opening the new device. Change to open() first, then fstat() on the fd.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
8 years agotools: shut up coverity about a potential close(-1)
Peter Hutterer [Mon, 21 Dec 2015 23:18:37 +0000 (09:18 +1000)]
tools: shut up coverity about a potential close(-1)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
8 years agotools: fix coverty "may be used uninitialized" warnings
Peter Hutterer [Mon, 21 Dec 2015 22:48:41 +0000 (08:48 +1000)]
tools: fix coverty "may be used uninitialized" warnings

tools/libevdev-tweak-device.c:390: uninit_use_in_call: Using uninitialized
value "changes" when calling "parse_options_abs".

tools/libevdev-tweak-device.c:376: warning: 'led' may be used uninitialized in
this function

tools/libevdev-tweak-device.c:375: warning: 'axis' may be used uninitialized
in this function

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
8 years agoDocument that the fd should be drained before libevdev_set_fd
Peter Hutterer [Wed, 16 Dec 2015 00:36:00 +0000 (10:36 +1000)]
Document that the fd should be drained before libevdev_set_fd

This is the caller's responsibility, for two reasons:
* we don't know if O_NONBLOCK is set, so draining the fd isn't a simple matter
  of read() until EAGAIN. A select() + read() could work around this of
  course.
* for stateless information, keys and relative data, it is not a problem when
  there are events waiting on the fd already, they are processed correctly,
  albeit with a delay.

So punt this decision to the caller, they openend the fd, they know if they
care about delayed events, they can drain the fd before handing it to us.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Acked-by: David Herrmann <dh.herrmann@gmail.com>
8 years agolibevdev 1.4.5 libevdev-1.4.5
Peter Hutterer [Wed, 11 Nov 2015 02:11:32 +0000 (12:11 +1000)]
libevdev 1.4.5

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
8 years agotools: fix touchpad-edge-detector udev rule output
Peter Hutterer [Tue, 10 Nov 2015 02:49:45 +0000 (12:49 +1000)]
tools: fix touchpad-edge-detector udev rule output

off-by-one error on the ABS_ axes printed. ABS_X/Y are 0 and 1.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
8 years agoAdd some more files to gitignore
Peter Hutterer [Tue, 10 Nov 2015 01:47:08 +0000 (11:47 +1000)]
Add some more files to gitignore

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
8 years agolibevdev 1.4.4 libevdev-1.4.4
Peter Hutterer [Tue, 1 Sep 2015 00:26:21 +0000 (10:26 +1000)]
libevdev 1.4.4

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agoFix invalid absinfo range values reported by certain mtk soc
Andreas Pokorny [Sun, 23 Aug 2015 16:27:28 +0000 (18:27 +0200)]
Fix invalid absinfo range values reported by certain mtk soc

This change will only affect certain touch screens, for which the driver
integration code does not provide meaningful values for the allowed range
of ABS_MT_TRACKING_IDs. The reported range [0, 0] will be overwritten with
[-1, 0xFFFF]

Signed-off-by: Andreas Pokorny <andreas.pokorny@canonical.com>
[Changed from INT_MAX to 0xFFFF to match the kernel, add device name to log
message]

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agotools: print out evdev override udev rule from touchpad edge detector
Peter Hutterer [Fri, 31 Jul 2015 00:45:38 +0000 (10:45 +1000)]
tools: print out evdev override udev rule from touchpad edge detector

We're starting to collect overrides for custom devices, making this easier for
users and saves us time. Once we measured everything, print out a
guesstimated udev rule and instructions on how to calculate the resolution.
Extra output now is:

Touchpad size as listed by the kernel: 132x111mm
Calculate resolution as:
x axis: 6076/<width in mm>
y axis: 5021/<height in mm>

Suggested udev rule:
# <Laptop model description goes here>
evdev:input:b0005v05ACp030E*
 EVDEV_ABS_01=-2694:2862:<x resolution>
 EVDEV_ABS_02=-20:121:<y resolution>
 EVDEV_ABS_35=-2694:2862:<x resolution>
 EVDEV_ABS_36=-20:121:<y resolution>

The ABS_MT_ axes are only printed if the device have them, if the device isn't
bluetooth/usb we print the dmi modalias instead.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agotools - tweak-device: add a --resolution command
Peter Hutterer [Mon, 29 Jun 2015 02:13:40 +0000 (12:13 +1000)]
tools - tweak-device: add a --resolution command

So far, 100% of the usages for tweak-tool was to set the x/y resolution of a
device. Make --resolution a shortcut for this.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
9 years agotools - tweak-device: revamp to reduce use of globals
Peter Hutterer [Mon, 29 Jun 2015 00:44:10 +0000 (10:44 +1000)]
tools - tweak-device: revamp to reduce use of globals

Make the code base a bit more modular so it's easier to add new commands.
Main change here is: options are parsed twice now, first time for the mode
(abs/led) and the device path, then again for the mode-specific options.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
9 years agoNote that libevdev_free() does not close the fd
Peter Hutterer [Mon, 29 Jun 2015 02:23:34 +0000 (12:23 +1000)]
Note that libevdev_free() does not close the fd

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agotools - tweak-device: fix wrong error message if the LED doesn't exist
Peter Hutterer [Mon, 29 Jun 2015 01:53:29 +0000 (11:53 +1000)]
tools - tweak-device: fix wrong error message if the LED doesn't exist

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agotools - tweak-device: close the fd on exit
Peter Hutterer [Mon, 29 Jun 2015 01:55:45 +0000 (11:55 +1000)]
tools - tweak-device: close the fd on exit

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agolibevdev 1.4.3 libevdev-1.4.3
Peter Hutterer [Mon, 22 Jun 2015 06:57:35 +0000 (16:57 +1000)]
libevdev 1.4.3

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agoinclude: update to 4.1 header
Peter Hutterer [Mon, 22 Jun 2015 05:53:48 +0000 (15:53 +1000)]
include: update to 4.1 header

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agotools: complain about devices that don't have abs x/y axes in the edge detector
Peter Hutterer [Tue, 13 Jan 2015 00:45:22 +0000 (10:45 +1000)]
tools: complain about devices that don't have abs x/y axes in the edge detector

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agotools: widen frequency resolution to µs in the DPI tool
Peter Hutterer [Thu, 21 May 2015 01:48:34 +0000 (11:48 +1000)]
tools: widen frequency resolution to µs in the DPI tool

The Microsoft Arc Touch Mouse claims 8000fps which is higher than we can
measure in the current milliseconds resolution.
http://www.cnet.com/products/microsoft-arc-touch-mouse-black-series/specs/

https://bugs.freedesktop.org/show_bug.cgi?id=90540

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agolibevdev 1.4.2 libevdev-1.4.2
Peter Hutterer [Fri, 24 Apr 2015 01:52:54 +0000 (11:52 +1000)]
libevdev 1.4.2

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agotools: fix help string for manual DPI calculation
Peter Hutterer [Thu, 23 Apr 2015 00:36:55 +0000 (10:36 +1000)]
tools: fix help string for manual DPI calculation

https://bugs.freedesktop.org/show_bug.cgi?id=90143

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agoinclude: update to 4.0 header
Peter Hutterer [Mon, 13 Apr 2015 00:06:03 +0000 (10:06 +1000)]
include: update to 4.0 header

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agolibevdev 1.4.1 libevdev-1.4.1
Peter Hutterer [Wed, 8 Apr 2015 00:41:59 +0000 (10:41 +1000)]
libevdev 1.4.1

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agoAccept LIBEVDEV_READ_FLAG_BLOCKING as valid flag
Peter Hutterer [Mon, 6 Apr 2015 21:12:01 +0000 (07:12 +1000)]
Accept LIBEVDEV_READ_FLAG_BLOCKING as valid flag

https://bugs.freedesktop.org/show_bug.cgi?id=89798

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
9 years agoABS_MAX counts as MT axis for the event queue
Peter Hutterer [Mon, 23 Mar 2015 04:02:15 +0000 (14:02 +1000)]
ABS_MAX counts as MT axis for the event queue

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agocosmetic: fix a comment
Peter Hutterer [Mon, 23 Mar 2015 04:01:58 +0000 (14:01 +1000)]
cosmetic: fix a comment

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agoDisable test-static-link in case of shared only build.
Peter Seiderer [Fri, 13 Mar 2015 21:44:31 +0000 (22:44 +0100)]
Disable test-static-link in case of shared only build.

Fixes the following buildroot compile failure:

libtool: link: [..]/host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc -std=gnu99 -I.. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -static -o test-static-link test_static_link-test-link.o  ../libevdev/.libs/libevdev.so -Wl,-rpath -Wl,[...]/build/libevdev-1.4/libevdev/.libs
[...]/arm-buildroot-linux-uclibcgnueabi/bin/ld: attempted static link of dynamic object `../libevdev/.libs/libevdev.so'
collect2: error: ld returned 1 exit status
Makefile:719: recipe for target 'test-static-link' failed

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agolibevdev 1.4 libevdev-1.4
Peter Hutterer [Tue, 3 Mar 2015 22:50:43 +0000 (08:50 +1000)]
libevdev 1.4

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agocosmetic: fix a couple of duplicate/missing empty lines
Peter Hutterer [Tue, 3 Mar 2015 22:37:22 +0000 (08:37 +1000)]
cosmetic: fix a couple of duplicate/missing empty lines

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agotest: use -std=c89 instead of c90 for the build test
Peter Hutterer [Mon, 9 Feb 2015 02:54:36 +0000 (12:54 +1000)]
test: use -std=c89 instead of c90 for the build test

They're identical, but RHEL6 doesn't support -std=c90

https://gcc.gnu.org/onlinedocs/gcc/Standards.html
https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html#C-Dialect-Options

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agotools: add a tool to change kernel devices
Peter Hutterer [Mon, 5 Jan 2015 04:25:00 +0000 (14:25 +1000)]
tools: add a tool to change kernel devices

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agotest: always build the build-tests
Peter Hutterer [Mon, 25 Aug 2014 00:56:10 +0000 (10:56 +1000)]
test: always build the build-tests

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agoconfigure: rename BUILD_TESTS to ENABLE_RUNTIME_TESTS
Peter Hutterer [Mon, 25 Aug 2014 00:48:50 +0000 (10:48 +1000)]
configure: rename BUILD_TESTS to ENABLE_RUNTIME_TESTS

Avoids confusion when we build tests in the future even though BUILD_TESTS is
disabled.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agoUse memcpy/memmove instead of loop operations
Thilo Schulz [Sun, 1 Feb 2015 14:58:36 +0000 (15:58 +0100)]
Use memcpy/memmove instead of loop operations

Signed-off-by: Thilo Schulz <thilo@tjps.eu>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agolibevdev_uinput_destroy: don't close non-open FD
Owen W. Taylor [Mon, 19 Jan 2015 21:45:49 +0000 (16:45 -0500)]
libevdev_uinput_destroy: don't close non-open FD

The returned errno from libevdev_input_create_from_device was returned
incorrectly because libevdev_uinput_destroy() would try to close the
unset value of ->fd, overwriting errno.

That was fixed in debe9b030c8069cdf78307888ef3b65830b25122, this patch avoids
the ioctl/close calls if the fd isn't set.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agotools: note that the mouse frequency measured is the highest frequency
Peter Hutterer [Wed, 7 Jan 2015 03:39:55 +0000 (13:39 +1000)]
tools: note that the mouse frequency measured is the highest frequency

Some devices scale the frequency based on the input and will provide
recordings with different frequencies each time. Recommend to measure multiple
times since we can only know what the highest frequency is.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agotools: fix clang compiler warning
Peter Hutterer [Mon, 5 Jan 2015 23:05:25 +0000 (09:05 +1000)]
tools: fix clang compiler warning

mouse-dpi-tool.c:213:39: warning: missing field 'frequency' initializer
[-Wmissing-field-initializers]
        struct measurements measurements = {0};

Annoying, but a low-cost fix.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agoShut up clang compiler warnings
Peter Hutterer [Mon, 5 Jan 2015 23:04:18 +0000 (09:04 +1000)]
Shut up clang compiler warnings

clang looks at GCC pragmas, but doesn't understand -Woverride-init. Instead,
it uses -Winitializer-overrides.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
9 years agotools: print the formula to calculate resolutions sandbox/kevinthierry/upstream
Peter Hutterer [Thu, 11 Dec 2014 21:47:20 +0000 (07:47 +1000)]
tools: print the formula to calculate resolutions

And encourage users to move at least 25cm, makes it a lot easier to pick the
resolution.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agoinclude: update to 3.18 header
Peter Hutterer [Mon, 8 Dec 2014 00:39:18 +0000 (10:39 +1000)]
include: update to 3.18 header

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agolibevdev 1.3.2 libevdev-1.3.2
Peter Hutterer [Fri, 5 Dec 2014 04:27:19 +0000 (14:27 +1000)]
libevdev 1.3.2

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agotools: zero-pad PID/VID in the dpi tool
Peter Hutterer [Fri, 5 Dec 2014 04:17:27 +0000 (14:17 +1000)]
tools: zero-pad PID/VID in the dpi tool

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agotools: print the hwdb match line from the dpi tool
Peter Hutterer [Mon, 1 Dec 2014 04:51:13 +0000 (14:51 +1000)]
tools: print the hwdb match line from the dpi tool

Let's make this as easy as possible

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agotools: add a tool to estimate the resolution of a mouse
Peter Hutterer [Mon, 17 Nov 2014 05:52:24 +0000 (15:52 +1000)]
tools: add a tool to estimate the resolution of a mouse

Relative devices don't provide a physical resolution to the host. For things
like pointer acceleration, the physical amount of movement is better as
baseline than the movement in device units.

Alas, many devices don't come with any information at all, so the users have
to guess. Help that guesswork by providing a tool that does the calculations
for them.

This tool measures the device units covered, then prints the frequency and an
lookup table for various resolutions (in dpi) to match to the physical
movement of the device.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
9 years agodoc: add the prefixing * to all @code doxygen sections
Peter Hutterer [Mon, 17 Nov 2014 02:13:25 +0000 (12:13 +1000)]
doc: add the prefixing * to all @code doxygen sections

These were removed in (7da329b) because for some reason they got copied into
the output. That was either a buggy doxygen or just some other problem. Add
them again, makes it much easier to read the header file.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agotest: add test for clock id setting on an invalid device
Peter Hutterer [Mon, 17 Nov 2014 02:06:46 +0000 (12:06 +1000)]
test: add test for clock id setting on an invalid device

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agotest: add test for setting absinfo on invalid devices
Peter Hutterer [Mon, 17 Nov 2014 02:01:41 +0000 (12:01 +1000)]
test: add test for setting absinfo on invalid devices

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agotest: add test case for grab calls on invalid devices
Peter Hutterer [Mon, 17 Nov 2014 01:54:04 +0000 (11:54 +1000)]
test: add test case for grab calls on invalid devices

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agotest: add missing tests for invalid calls on next_event/has_event_pending
Peter Hutterer [Mon, 17 Nov 2014 01:37:43 +0000 (11:37 +1000)]
test: add missing tests for invalid calls on next_event/has_event_pending

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agoRemove superfluous linebreak in an error message
Peter Hutterer [Mon, 17 Nov 2014 01:51:04 +0000 (11:51 +1000)]
Remove superfluous linebreak in an error message

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agodoc: fix uinput example code
Peter Hutterer [Mon, 17 Nov 2014 22:03:27 +0000 (08:03 +1000)]
doc: fix uinput example code

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agoFix a confusing comment
Peter Hutterer [Mon, 17 Nov 2014 01:26:29 +0000 (11:26 +1000)]
Fix a confusing comment

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agolibevdev 1.3.1 libevdev-1.3.1
Peter Hutterer [Thu, 13 Nov 2014 01:05:22 +0000 (11:05 +1000)]
libevdev 1.3.1

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agodoc: update doxygen.in for current doxygen
Peter Hutterer [Thu, 13 Nov 2014 01:05:55 +0000 (11:05 +1000)]
doc: update doxygen.in for current doxygen

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agoinclude: update to 3.17 header
Peter Hutterer [Wed, 12 Nov 2014 23:40:42 +0000 (09:40 +1000)]
include: update to 3.17 header

Adds INPUT_PROP_POINTING_STICK

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
9 years agolibevdev 1.3 libevdev-1.3
Peter Hutterer [Tue, 9 Sep 2014 01:29:15 +0000 (11:29 +1000)]
libevdev 1.3

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agodoc: fix slightly confusing code/type comments
Ran Benita [Wed, 27 Aug 2014 18:53:39 +0000 (21:53 +0300)]
doc: fix slightly confusing code/type comments

Signed-off-by: Ran Benita <ran234@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agoconfigure.ac: print prefix and libdir
Peter Hutterer [Tue, 26 Aug 2014 23:42:56 +0000 (09:42 +1000)]
configure.ac: print prefix and libdir

When building for multiple prefixes from the same repo it's nice to see a
reminder for what the current prefix is.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agolibevdev 1.3RC2 libevdev-1.2.99.902
Peter Hutterer [Mon, 25 Aug 2014 00:28:55 +0000 (10:28 +1000)]
libevdev 1.3RC2

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agotest: fix EVIOCREVOKE test on non-supporting kernels
Peter Hutterer [Mon, 25 Aug 2014 00:28:09 +0000 (10:28 +1000)]
test: fix EVIOCREVOKE test on non-supporting kernels

The ioctl-returned errno is positive.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agoAdd some minimal documentation about static linking
Peter Hutterer [Tue, 19 Aug 2014 00:31:12 +0000 (10:31 +1000)]
Add some minimal documentation about static linking

I can't recommend it, but I can't stop people from doing it, so at least
document the ground rules.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agoHook up nm to check for leaking symbols in the static library
Peter Hutterer [Mon, 18 Aug 2014 23:16:39 +0000 (09:16 +1000)]
Hook up nm to check for leaking symbols in the static library

We ignore anything that starts with an underscore, anything that starts with
libevdev and main (since we test the test-static-link binary) and a couple of
gcov-related functions. This should catch any functions we accidentally
export.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agotest: handle the GCOV_LDFLAGS in all tests
Peter Hutterer [Mon, 18 Aug 2014 22:40:19 +0000 (08:40 +1000)]
test: handle the GCOV_LDFLAGS in all tests

We rebuild the libevdev object files with the gcov flags for the tests, so we
need to make sure those flags are present on all binaries.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agotest: override check-local instead of check
Peter Hutterer [Mon, 18 Aug 2014 22:16:37 +0000 (08:16 +1000)]
test: override check-local instead of check

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agotest: add basic static link test
Peter Hutterer [Mon, 18 Aug 2014 22:15:07 +0000 (08:15 +1000)]
test: add basic static link test

Same as the dynamic link test, just with the -static flag

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agouinput: explicitly ignore the UI_DEV_DESTROY return value
Peter Hutterer [Fri, 22 Aug 2014 01:47:38 +0000 (11:47 +1000)]
uinput: explicitly ignore the UI_DEV_DESTROY return value

This can't fail in the kernel anyway, so cast it to shut up Coverity.
Error message:
"Calling function "ioctl(int, unsigned long, ...)" without checking return
 value (as is done elsewhere 35 out of 36 times)."

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agotools: pass -rc to strerror, not rc
Peter Hutterer [Fri, 22 Aug 2014 01:45:01 +0000 (11:45 +1000)]
tools: pass -rc to strerror, not rc

rc is a negative errno

Found by Coverity.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agouinput: close the managed fd on error
Peter Hutterer [Fri, 22 Aug 2014 01:42:10 +0000 (11:42 +1000)]
uinput: close the managed fd on error

Using LIBEVDEV_UINPUT_OPEN_MANAGED can leak the fd if an error occurs after
opening it.

Found by Coverity.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agoRename symbols leaking from static library to avoid name clashes
Peter Hutterer [Mon, 18 Aug 2014 04:03:43 +0000 (14:03 +1000)]
Rename symbols leaking from static library to avoid name clashes

The static library currently leaks log_msg and log_priority. Both are too
generic, so rename them, with a leading underscore to hint they're supposed to
be private.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agoAdd libevdev_property_from_name()
Peter Hutterer [Mon, 18 Aug 2014 00:33:18 +0000 (10:33 +1000)]
Add libevdev_property_from_name()

12717d79 "Add libevdev_event_type/code_from_name() resolvers" added the
lookup functions for types and codes, this commit adds the missing ones for
input properties.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
10 years agoconfigure: move the python check down to re-unite the gcov check outputs
Peter Hutterer [Mon, 18 Aug 2014 22:20:49 +0000 (08:20 +1000)]
configure: move the python check down to re-unite the gcov check outputs

The python check was inserted between "checking whether to build with gcov"
and the answering "yes", causing a lonely "yes" or "no" to wander around the
config.log in vain, haunted by solitude and wondering about the binary
simplicity of its life.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agotest: drop include of libevdev-int.h
Peter Hutterer [Mon, 18 Aug 2014 00:32:16 +0000 (10:32 +1000)]
test: drop include of libevdev-int.h

Not needed, and shouldn't be used in a test anyway

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agotest: use ck_assert_int_eq() where comparing integers
Peter Hutterer [Mon, 18 Aug 2014 00:20:49 +0000 (10:20 +1000)]
test: use ck_assert_int_eq() where comparing integers

A simple ck_assert() just fails, a ck_assert_int_eq() also shows the two
values. Makes failures a bit easier to debug.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agouinput: preserve the errno before cleaning up
Peter Hutterer [Tue, 12 Aug 2014 05:41:45 +0000 (15:41 +1000)]
uinput: preserve the errno before cleaning up

libevdev_uinput_destroy() may/will botch the errno, make sure we save it
before use.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agouinput: check errno against the positive value
Peter Hutterer [Tue, 12 Aug 2014 05:38:47 +0000 (15:38 +1000)]
uinput: check errno against the positive value

We use the negative errno internally, but the proper errno is always positive.

Fixes device creation failures on kernels that don't support UI_SET_PROPBIT.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
10 years agolibevdev 1.3RC1 libevdev-1.2.99.901
Peter Hutterer [Fri, 8 Aug 2014 01:39:52 +0000 (11:39 +1000)]
libevdev 1.3RC1

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agoinclude: update to Linux 3.16 header
Peter Hutterer [Fri, 8 Aug 2014 01:12:24 +0000 (11:12 +1000)]
include: update to Linux 3.16 header

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agoinclude: add uinput.h header as well
Peter Hutterer [Mon, 23 Jun 2014 23:05:53 +0000 (09:05 +1000)]
include: add uinput.h header as well

Older kernels don't have UI_GET_SYSNAME, and upstream is adding a few more
ioctls to the uinput code. So ship the header we're using to avoid compilation
errors.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
10 years agouinput: change strcpy/strcat usage for snprintf
Peter Hutterer [Thu, 19 Jun 2014 04:20:58 +0000 (14:20 +1000)]
uinput: change strcpy/strcat usage for snprintf

Better protection against buffer overflow, though by the time someone
is manipulating your sysfs, libevdev is unlikely to be the biggest worry.

Slight change in functionality: before we checked the timestamp of
/sys/devices/virtual/input/inputXYZ before looking at /inputXYZ/name, now we
just check the name file for the timestamp.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
10 years agouinput: use the UI_GET_SYSNAME ioctl if available
Peter Hutterer [Thu, 19 Jun 2014 04:10:13 +0000 (14:10 +1000)]
uinput: use the UI_GET_SYSNAME ioctl if available

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
10 years agowhitespace fix
Peter Hutterer [Thu, 19 Jun 2014 03:52:02 +0000 (13:52 +1000)]
whitespace fix

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agotest: ignore any timer_create errors in valgrind
Peter Hutterer [Wed, 11 Jun 2014 23:47:32 +0000 (09:47 +1000)]
test: ignore any timer_create errors in valgrind

Drop the rest of the stack trace, we know whenever check calls this we get a
valgrind error if sevp in timer_create(2) is NULL.

https://bugs.freedesktop.org/show_bug.cgi?id=79921

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agoinclude: update to Linux 3.15 header
Peter Hutterer [Mon, 9 Jun 2014 21:51:09 +0000 (07:51 +1000)]
include: update to Linux 3.15 header

Adds INPUT_PROP_TOPBUTTONPAD

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agoAdd per-device log handlers
Peter Hutterer [Wed, 14 May 2014 06:36:49 +0000 (16:36 +1000)]
Add per-device log handlers

The global log handler isn't a good choice for a low-level library. In the
caser of the X server, both evdev and synaptics are now using the libevdev but
are loaded from the same server process. Thus, there's only one log handler,
but evdev and synaptics don't talk to each other (a bit childish, I know).

Add a per-device log handler that overrides the global log handler, and fall
back to the global log handler if no device log handler is set. The log
macros take care of that automatically, especially as we can't do per-device
log handlers for the uinput code.

Note that we use the same struct for the global and device logging, so in each
instance one of the two function pointers is NULL. Suicide triggers are in
place in case we mess that up.

This also makes libevdev_new_from_fd() a bit less useful since we can't set
the log handler beforehand.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
10 years agom4: fix CC_CHECK_WERROR and CC_FLAG_VISIBILITY macros
Peter Hutterer [Wed, 14 May 2014 23:52:14 +0000 (09:52 +1000)]
m4: fix CC_CHECK_WERROR and CC_FLAG_VISIBILITY macros

These macros come from systemd, but CC_CHECK_CFLAGS_SILENT was removed in
systemd commit eb2e280f9c59b66965c9316eadc4c113a13ca744, breaking some of
them.

CC_FLAG_VISIBILITY doesn't need to require CC_CHECK_WERROR because
CC_CHECK_FLAG_APPEND always append -Werror anyway. Which kinda brings into
question why we have CC_CHECK_WERROR in the first place, but whavever.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agolibevdev 1.2.99.1
Peter Hutterer [Wed, 14 May 2014 22:23:25 +0000 (08:23 +1000)]
libevdev 1.2.99.1

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agolibevdev 1.2.2 libevdev-1.2.2
Peter Hutterer [Thu, 5 Jun 2014 05:15:30 +0000 (15:15 +1000)]
libevdev 1.2.2

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agoMark the log functions with the printf format attribute
Peter Hutterer [Wed, 14 May 2014 23:54:10 +0000 (09:54 +1000)]
Mark the log functions with the printf format attribute

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
10 years agoDocument that we need uinput in the kernel for the test suite
Peter Hutterer [Thu, 22 May 2014 05:07:59 +0000 (15:07 +1000)]
Document that we need uinput in the kernel for the test suite

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agolibevdev 1.2.1 libevdev-1.2.1
Peter Hutterer [Wed, 14 May 2014 05:11:23 +0000 (15:11 +1000)]
libevdev 1.2.1

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agotest: unconditionally distribute the valgrind suppressions
Peter Hutterer [Wed, 7 May 2014 08:55:02 +0000 (18:55 +1000)]
test: unconditionally distribute the valgrind suppressions

Reported-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agoIgnore NULL as argument in libevdev_uinput_destroy()
Peter Hutterer [Thu, 1 May 2014 21:53:24 +0000 (07:53 +1000)]
Ignore NULL as argument in libevdev_uinput_destroy()

Triggered by the tests when run as non-root. Simply ignore any attempt to
destroy a NULL device, which also matches the behaviour of libevdev_free().

Reported-by: Andreas Radke <a.radke@arcor.de>
Reviewed-by: Daniel Martin <consume.noise@gmail.com>
Tested-by: Daniel Martin <consume.noise@gmail.com>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agolibevdev 1.2 libevdev-1.2
Peter Hutterer [Wed, 30 Apr 2014 05:08:25 +0000 (15:08 +1000)]
libevdev 1.2

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agotest: run all tests through valgrind
Peter Hutterer [Thu, 24 Apr 2014 01:27:14 +0000 (11:27 +1000)]
test: run all tests through valgrind

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
10 years agotest: disable parallel testing
Peter Hutterer [Thu, 24 Apr 2014 01:14:34 +0000 (11:14 +1000)]
test: disable parallel testing

The tests create devices on the host system, avoid running them in parallel to
avoid interference between the test devices.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
10 years agotest: silence some valgrind warnings
Peter Hutterer [Thu, 24 Apr 2014 01:08:18 +0000 (11:08 +1000)]
test: silence some valgrind warnings

ioctl points to uninitialized bytes - correct but we didn't use those anyway.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
10 years agolibevdev 1.2RC1 libevdev-1.1.99.1
Peter Hutterer [Wed, 23 Apr 2014 22:24:06 +0000 (08:24 +1000)]
libevdev 1.2RC1

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agoDrain all events before synchronizing after SYN_DROPPED
Peter Hutterer [Mon, 7 Apr 2014 05:16:28 +0000 (15:16 +1000)]
Drain all events before synchronizing after SYN_DROPPED

The kernel ring buffer drops all events on SYN_DROPPED, but then continues to
fill up again. So by the time we read the events, the kernel's client buffer is
essentially like this:
  SYN_DROPPED, ev1, ev2, ev3, ...., evN

The kernel's device state represents the device after evN, and that is what
the ioctls return. For EV_KEY, EV_SND, EV_LED and EV_SW the kernel removes
potential duplicates from the client buffer [1], it doesn't do so for EV_ABS.

So we can't actually sync while there are events on the wire because the
events represent an earlier state. So simply discard all events in the kernel
buffer, synchronize, and then start processing again. We lose some granularity
but at least the events are correct.

[1] http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/input/evdev.c?id=483180281f0ac60d1138710eb21f4b9961901294

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
10 years agoMove read_more_events() up in the file
Peter Hutterer [Mon, 7 Apr 2014 05:01:44 +0000 (15:01 +1000)]
Move read_more_events() up in the file

No functional change

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>