<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/input/evdev.c, branch v3.5</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v3.5</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v3.5'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2012-05-02T07:23:58Z</updated>
<entry>
<title>Input: evdev - properly handle read/write with count 0</title>
<updated>2012-05-02T07:23:58Z</updated>
<author>
<name>Dmitry Torokhov</name>
<email>dmitry.torokhov@gmail.com</email>
</author>
<published>2012-05-02T07:13:37Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=2872a9b521ac936c7a8525a8c2bdfb9b4ccf5cfc'/>
<id>urn:sha1:2872a9b521ac936c7a8525a8c2bdfb9b4ccf5cfc</id>
<content type='text'>
According to the standard count 0 is special - no IO should happen but we
can check error conditions (device gone away, etc), and return 0 if there
are no errors. We used to return -EINVAL instead and we also could return 0
if an event was "stolen" by another thread.

Signed-off-by: Dmitry Torokhov &lt;dtor@mail.ru&gt;
</content>
</entry>
<entry>
<title>Input: evdev - properly access RCU-protected 'grab' data</title>
<updated>2012-05-02T07:23:14Z</updated>
<author>
<name>Dmitry Torokhov</name>
<email>dmitry.torokhov@gmail.com</email>
</author>
<published>2012-05-02T07:13:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=dba4258068f822b7dafc78c28fe9c99c551eca7e'/>
<id>urn:sha1:dba4258068f822b7dafc78c28fe9c99c551eca7e</id>
<content type='text'>
We should use rcu_dereference_protected() when checking if given client
is the one that grabbed the device. This fixes warnings produced by
sparse.

Signed-off-by: Dmitry Torokhov &lt;dtor@mail.ru&gt;
</content>
</entry>
<entry>
<title>Merge branch 'next' into for-linus</title>
<updated>2012-03-20T00:02:01Z</updated>
<author>
<name>Dmitry Torokhov</name>
<email>dmitry.torokhov@gmail.com</email>
</author>
<published>2012-03-20T00:02:01Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=10ce3cc919f50c2043b41ca968b43c26a3672600'/>
<id>urn:sha1:10ce3cc919f50c2043b41ca968b43c26a3672600</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'for-next' of github.com:rydberg/linux into next</title>
<updated>2012-03-09T18:56:35Z</updated>
<author>
<name>Dmitry Torokhov</name>
<email>dmitry.torokhov@gmail.com</email>
</author>
<published>2012-03-09T18:56:35Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=05b7b842fa1798c4775997602d42f3d6373e7ef3'/>
<id>urn:sha1:05b7b842fa1798c4775997602d42f3d6373e7ef3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge commit 'v3.3-rc6' into next</title>
<updated>2012-03-09T18:55:17Z</updated>
<author>
<name>Dmitry Torokhov</name>
<email>dmitry.torokhov@gmail.com</email>
</author>
<published>2012-03-09T18:55:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=b675b3667f6729dcd1036a2a129b35445947f905'/>
<id>urn:sha1:b675b3667f6729dcd1036a2a129b35445947f905</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Input: evdev - fix variable initialisation</title>
<updated>2012-02-24T08:52:43Z</updated>
<author>
<name>Heiko Stübner</name>
<email>heiko@sntech.de</email>
</author>
<published>2012-02-09T07:08:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=02dfc496800dfaf17b650256642f3df86653fe97'/>
<id>urn:sha1:02dfc496800dfaf17b650256642f3df86653fe97</id>
<content type='text'>
Commit 509f87c5f564 (evdev - do not block waiting for an event if fd
is nonblock) created a code path were it was possible to use retval
uninitialized.

This could lead to the xorg evdev input driver getting corrupt data
and refusing to work with log messages like
	AUO-Pixcir touchscreen: Read error: Success
	sg060_keys: Read error: Success
	AUO-Pixcir touchscreen: Read error: Success
	sg060_keys: Read error: Success
(for drivers auo-pixcir-ts and gpio-keys).

Signed-off-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Acked-by: Dima Zavin &lt;dima@android.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dtor@mail.ru&gt;
</content>
</entry>
<entry>
<title>Input: Add EVIOC mechanism for MT slots</title>
<updated>2012-02-09T08:40:57Z</updated>
<author>
<name>Henrik Rydberg</name>
<email>rydberg@euromail.se</email>
</author>
<published>2012-02-06T07:49:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=1cf0c6e69e396538615153056605aaafab11935a'/>
<id>urn:sha1:1cf0c6e69e396538615153056605aaafab11935a</id>
<content type='text'>
This patch adds the ability to extract MT slot data via a new ioctl,
EVIOCGMTSLOTS. The function returns an array of slot values for the
specified ABS_MT event type.

Example of user space usage:

struct { unsigned code; int values[64]; } req;
req.code = ABS_MT_POSITION_X;
if (ioctl(fd, EVIOCGMTSLOTS(sizeof(req)), &amp;req) &lt; 0)
	return -1;
for (i = 0; i &lt; 64; i++)
	printf("slot %d: %d\n", i, req.values[i]);

Reviewed-by: Chase Douglas &lt;chase.douglas@canonical.com&gt;
Signed-off-by: Henrik Rydberg &lt;rydberg@euromail.se&gt;
</content>
</entry>
<entry>
<title>Input: add infrastructure for selecting clockid for event time stamps</title>
<updated>2012-02-03T08:24:58Z</updated>
<author>
<name>John Stultz</name>
<email>john.stultz@linaro.org</email>
</author>
<published>2012-02-03T08:19:07Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=a80b83b7b8456e9b475346c2e01d7e210883208c'/>
<id>urn:sha1:a80b83b7b8456e9b475346c2e01d7e210883208c</id>
<content type='text'>
As noted by Arve and others, since wall time can jump backwards, it is
difficult to use for input because one cannot determine if one event
occurred before another or for how long a key was pressed.

However, the timestamp field is part of the kernel ABI, and cannot be
changed without possibly breaking existing users.

This patch adds a new IOCTL that allows a clockid to be set in the
evdev_client struct that will specify which time base to use for event
timestamps (ie: CLOCK_MONOTONIC instead of CLOCK_REALTIME).

For now we only support CLOCK_MONOTONIC and CLOCK_REALTIME, but
in the future we could support other clockids if appropriate.

The default remains CLOCK_REALTIME, so we don't change the ABI.

Signed-off-by: John Stultz &lt;john.stultz@linaro.org&gt;
Reviewed-by: Daniel Kurtz &lt;djkurtz@google.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dtor@mail.ru&gt;
</content>
</entry>
<entry>
<title>Input: evdev - fix variable initialisation</title>
<updated>2012-02-01T17:12:54Z</updated>
<author>
<name>Heiko Stübner</name>
<email>heiko@sntech.de</email>
</author>
<published>2012-02-01T17:12:23Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=42f578741bc59dc871bef03ff0f72dd197388409'/>
<id>urn:sha1:42f578741bc59dc871bef03ff0f72dd197388409</id>
<content type='text'>
Commit 509f87c5f564 (evdev - do not block waiting for an event if fd
is nonblock) created a code path were it was possible to use retval
uninitialized.

This could lead to the xorg evdev input driver getting corrupt data
and refusing to work with log messages like
	AUO-Pixcir touchscreen: Read error: Success
	sg060_keys: Read error: Success
	AUO-Pixcir touchscreen: Read error: Success
	sg060_keys: Read error: Success
(for drivers auo-pixcir-ts and gpio-keys).

Signed-off-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Acked-by: Dima Zavin &lt;dima@android.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dtor@mail.ru&gt;
</content>
</entry>
<entry>
<title>Input: evdev - do not block waiting for an event if fd is nonblock</title>
<updated>2011-12-30T23:26:35Z</updated>
<author>
<name>Dima Zavin</name>
<email>dima@android.com</email>
</author>
<published>2011-12-30T23:16:44Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=509f87c5f564627b6b9fc763e74ef3608213d610'/>
<id>urn:sha1:509f87c5f564627b6b9fc763e74ef3608213d610</id>
<content type='text'>
If there is a full packet in the buffer, and we overflow that buffer
right after checking for that condition, it would have been possible
for us to block indefinitely (rather, until the next full packet) even if
the file was marked as O_NONBLOCK.

Cc: Jeff Brown &lt;jeffbrown@android.com&gt;
Signed-off-by: Dima Zavin &lt;dima@android.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dtor@mail.ru&gt;
</content>
</entry>
</feed>
