<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/drivers/input/evdev.c, branch v3.4.46</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v3.4.46</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v3.4.46'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2012-03-20T00:02:01Z</updated>
<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.stealer.net/cgit.cgi/user/sven/linux.git/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.stealer.net/cgit.cgi/user/sven/linux.git/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.stealer.net/cgit.cgi/user/sven/linux.git/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.stealer.net/cgit.cgi/user/sven/linux.git/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.stealer.net/cgit.cgi/user/sven/linux.git/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.stealer.net/cgit.cgi/user/sven/linux.git/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.stealer.net/cgit.cgi/user/sven/linux.git/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.stealer.net/cgit.cgi/user/sven/linux.git/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>
<entry>
<title>Input: evdev - if no events and non-block, return EAGAIN not 0</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.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=e90f869cae3b4aedf0f6d2ca8048d60245ee77f7'/>
<id>urn:sha1:e90f869cae3b4aedf0f6d2ca8048d60245ee77f7</id>
<content type='text'>
Signed-off-by: Dima Zavin &lt;dima@android.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dtor@mail.ru&gt;
</content>
</entry>
<entry>
<title>Input: evdev - only allow reading events if a full packet is present</title>
<updated>2011-12-30T23:26:34Z</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.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=566cf5b6e34504aaccb76167ecccd7e7e69e6456'/>
<id>urn:sha1:566cf5b6e34504aaccb76167ecccd7e7e69e6456</id>
<content type='text'>
Without this, it was possible for the reader to get ahead of packet_head.
If the input device generated a partial packet *right* after the reader
got ahead, then we can get into a situation where the device is marked
readable, but read always returns 0 until the next packet is finished
(i.e a SYN is generated by the input driver).

This situation can also happen if we overflow the buffer while a reader
is trying to read an event out.

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