<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/input/evdev.c, branch v2.6.36</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=v2.6.36</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v2.6.36'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2010-10-18T15:45:08Z</updated>
<entry>
<title>Input: evdev - fix EVIOCSABS regression</title>
<updated>2010-10-18T15:45:08Z</updated>
<author>
<name>Daniel Mack</name>
<email>zonque@gmail.com</email>
</author>
<published>2010-10-18T15:43:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f9ce6eb5b6fa8cbcf0a0fb7c5f4203f94730fc52'/>
<id>urn:sha1:f9ce6eb5b6fa8cbcf0a0fb7c5f4203f94730fc52</id>
<content type='text'>
448cd16 ("Input: evdev - rearrange ioctl handling") broke EVIOCSABS by
checking for the wrong direction bit.

Signed-off-by: Daniel Mack &lt;zonque@gmail.com&gt;
Reported-by: Sven Neumann &lt;s.neumann@raumfeld.com&gt;
Tested-by: Sven Neumann &lt;s.neumann@raumfeld.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dtor@mail.ru&gt;
</content>
</entry>
<entry>
<title>Input: evdev - fix Ooops in EVIOCGABS/EVIOCSABS</title>
<updated>2010-10-18T15:45:02Z</updated>
<author>
<name>Daniel Mack</name>
<email>zonque@gmail.com</email>
</author>
<published>2010-10-18T15:43:30Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=0a74a1df3c13655b66b1908d76f2159654216326'/>
<id>urn:sha1:0a74a1df3c13655b66b1908d76f2159654216326</id>
<content type='text'>
This fixes a regression introduced by the dynamic allocation of absinfo
for input devices. We need to bail out early for input devices which
don't have absolute axis.

[  929.664303] Pid: 2989, comm: input Not tainted 2.6.36-rc8+ #14 MS-7260/MS-7260
[  929.664318] EIP: 0060:[&lt;c12bdc01&gt;] EFLAGS: 00010246 CPU: 0
[  929.664331] EIP is at evdev_ioctl+0x4f8/0x59f
[  929.664341] EAX: 00000040 EBX: 00000000 ECX: 00000006 EDX: f45a1efc
[  929.664355] ESI: 00000000 EDI: f45a1efc EBP: f45a1f24 ESP: f45a1eb8
[  929.664369]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
[  929.664402]  f470da74 f6a30e78 f462c240 00000018 bfe4a260 00000000 f45b06fc 00000000
[  929.664429] &lt;0&gt; 000000c4 b769d000 c3544620 f470da74 f45b06fc f45b06fc f45a1f38 c107dd1f
[  929.664458] &lt;0&gt; f4710b74 000000c4 00000000 00000000 00000000 0000029d 00000a74 f4710b74
[  929.664500]  [&lt;c107dd1f&gt;] ? handle_mm_fault+0x2be/0x59a
[  929.664513]  [&lt;c12bd709&gt;] ? evdev_ioctl+0x0/0x59f
[  929.664524]  [&lt;c1099d30&gt;] ? do_vfs_ioctl+0x494/0x4d9
[  929.664538]  [&lt;c10432a1&gt;] ? up_read+0x16/0x29
[  929.664550]  [&lt;c101c818&gt;] ? do_page_fault+0x2ff/0x32d
[  929.664564]  [&lt;c108d048&gt;] ? do_sys_open+0xc5/0xcf
[  929.664575]  [&lt;c1099db6&gt;] ? sys_ioctl+0x41/0x61
[  929.664587]  [&lt;c1002710&gt;] ? sysenter_do_call+0x12/0x36
[  929.684570] ---[ end trace 11b83e923bd8f2bb ]---

Signed-off-by: Daniel Mack &lt;zonque@gmail.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dtor@mail.ru&gt;
</content>
</entry>
<entry>
<title>Input: evdev - rearrange ioctl handling</title>
<updated>2010-08-03T03:30:44Z</updated>
<author>
<name>Dmitry Torokhov</name>
<email>dmitry.torokhov@gmail.com</email>
</author>
<published>2010-08-03T03:29:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=448cd1664a573e69f54bfd32f3bb7220212b6cf5'/>
<id>urn:sha1:448cd1664a573e69f54bfd32f3bb7220212b6cf5</id>
<content type='text'>
Split ioctl handling into 3 separate sections: fixed-length ioctls,
variable-length ioctls and multi-number variable length handlers.
This reduces identation and makes the code a bit clearer.

Signed-off-by: Dmitry Torokhov &lt;dtor@mail.ru&gt;
</content>
</entry>
<entry>
<title>Input: dynamically allocate ABS information</title>
<updated>2010-08-03T03:30:04Z</updated>
<author>
<name>Daniel Mack</name>
<email>daniel@caiaq.de</email>
</author>
<published>2010-08-03T03:18:21Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=d31b2865a4e8a9dd02f39e56c8fadb824c5e187b'/>
<id>urn:sha1:d31b2865a4e8a9dd02f39e56c8fadb824c5e187b</id>
<content type='text'>
As all callers are now changed to only use the input_abs_*() access
helpers, switching over to dynamically allocated ABS information is
easy. This reduces size of struct input_dev from 3152 to 1640 on
64 bit architectures.

Signed-off-by: Daniel Mack &lt;daniel@caiaq.de&gt;
Signed-off-by: Dmitry Torokhov &lt;dtor@mail.ru&gt;
</content>
</entry>
<entry>
<title>Input: switch to input_abs_*() access functions</title>
<updated>2010-08-03T03:29:56Z</updated>
<author>
<name>Daniel Mack</name>
<email>daniel@caiaq.de</email>
</author>
<published>2010-08-03T03:15:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=987a6c0298260b7aa40702b349282554d6180e4b'/>
<id>urn:sha1:987a6c0298260b7aa40702b349282554d6180e4b</id>
<content type='text'>
Change all call sites in drivers/input to not access the ABS axis
information directly anymore. Make them use the access helpers instead.

Also use input_set_abs_params() when possible.
Did some code refactoring as I was on it.

Signed-off-by: Daniel Mack &lt;daniel@caiaq.de&gt;
Cc: Dmitry Torokhov &lt;dtor@mail.ru&gt;
Signed-off-by: Dmitry Torokhov &lt;dtor@mail.ru&gt;
</content>
</entry>
<entry>
<title>Input: evdev - signal that device is writable in evdev_poll()</title>
<updated>2010-07-16T06:53:00Z</updated>
<author>
<name>Dmitry Torokhov</name>
<email>dmitry.torokhov@gmail.com</email>
</author>
<published>2010-07-16T06:28:42Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=c18fb1396eb809dbc16e51da273a1789f9d799bf'/>
<id>urn:sha1:c18fb1396eb809dbc16e51da273a1789f9d799bf</id>
<content type='text'>
Signed-off-by: Dmitry Torokhov &lt;dtor@mail.ru&gt;
</content>
</entry>
<entry>
<title>Input: change input handlers to use bool when possible</title>
<updated>2010-07-16T06:52:33Z</updated>
<author>
<name>Dmitry Torokhov</name>
<email>dmitry.torokhov@gmail.com</email>
</author>
<published>2010-07-16T06:27:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=20da92de8ec3c1d4ba7e5aca322d38b6ce634932'/>
<id>urn:sha1:20da92de8ec3c1d4ba7e5aca322d38b6ce634932</id>
<content type='text'>
Signed-off-by: Dmitry Torokhov &lt;dtor@mail.ru&gt;
</content>
</entry>
<entry>
<title>Input: introduce MT event slots</title>
<updated>2010-07-16T06:52:03Z</updated>
<author>
<name>Henrik Rydberg</name>
<email>rydberg@euromail.se</email>
</author>
<published>2010-07-16T06:10:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=40d007e7df1dab17bf1ecf91e718218354d963d7'/>
<id>urn:sha1:40d007e7df1dab17bf1ecf91e718218354d963d7</id>
<content type='text'>
With the rapidly increasing number of intelligent multi-contact and
multi-user devices, the need to send digested, filtered information
from a set of different sources within the same device is imminent.
This patch adds the concept of slots to the MT protocol. The slots
enumerate a set of identified sources, such that all MT events
can be passed independently and selectively per identified source.

The protocol works like this: Instead of sending a SYN_MT_REPORT
event immediately after the contact data, one sends an ABS_MT_SLOT
event immediately before the contact data. The input core will only
emit events for slots with modified MT events. It is assumed that
the same slot is used for the duration of an initiated contact.

Acked-by: Ping Cheng &lt;pingc@wacom.com&gt;
Acked-by: Chase Douglas &lt;chase.douglas@canonical.com&gt;
Acked-by: Rafi Rubin &lt;rafi@seas.upenn.edu&gt;
Signed-off-by: Henrik Rydberg &lt;rydberg@euromail.se&gt;
Signed-off-by: Dmitry Torokhov &lt;dtor@mail.ru&gt;
</content>
</entry>
<entry>
<title>Input: evdev - never leave the client buffer empty after write</title>
<updated>2010-06-23T20:05:27Z</updated>
<author>
<name>Henrik Rydberg</name>
<email>rydberg@euromail.se</email>
</author>
<published>2010-06-23T17:09:26Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=e725a4945d6eedd400dd5d0ead293d980a2f76ec'/>
<id>urn:sha1:e725a4945d6eedd400dd5d0ead293d980a2f76ec</id>
<content type='text'>
When the client buffer is very small and wraps around a lot, it may
well be that a write increases the head such that head == tail. If
this happens between the point where a poll is triggered and the
actual data is being read, there will be no data to read. This is
confusing to applications, which might end up closing the file.

This patch solves the problem by making sure the client buffer is
never empty after writing to it.

Signed-off-by: Henrik Rydberg &lt;rydberg@euromail.se&gt;
Signed-off-by: Dmitry Torokhov &lt;dtor@mail.ru&gt;
</content>
</entry>
<entry>
<title>Input: evdev - use driver hint to compute size of event buffer</title>
<updated>2010-06-23T20:05:25Z</updated>
<author>
<name>Henrik Rydberg</name>
<email>rydberg@euromail.se</email>
</author>
<published>2010-06-10T19:05:24Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=63a6404d8ae693e71ab27c4f9c4032aa29113e92'/>
<id>urn:sha1:63a6404d8ae693e71ab27c4f9c4032aa29113e92</id>
<content type='text'>
Some devices, in particular MT devices, produce a lot of data.  This
may lead to overflowing of the event queues in evdev driver, which
by default are fairly small. Let the drivers hint the average number
of events per packet generated by the device, and use that information
when computing the buffer size evdev should use for the device.

Signed-off-by: Henrik Rydberg &lt;rydberg@euromail.se&gt;
Acked-by: Chase Douglas &lt;chase.douglas@canonical.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dtor@mail.ru&gt;
</content>
</entry>
</feed>
