)]}'
{
  "log": [
    {
      "commit": "509f87c5f564627b6b9fc763e74ef3608213d610",
      "tree": "c5034b38b7c49d75726ed24411a4bd9c57bc1f73",
      "parents": [
        "e90f869cae3b4aedf0f6d2ca8048d60245ee77f7"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Fri Dec 30 15:16:44 2011 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Dec 30 15:26:35 2011 -0800"
      },
      "message": "Input: evdev - do not block waiting for an event if fd is nonblock\n\nIf there is a full packet in the buffer, and we overflow that buffer\nright after checking for that condition, it would have been possible\nfor us to block indefinitely (rather, until the next full packet) even if\nthe file was marked as O_NONBLOCK.\n\nCc: Jeff Brown \u003cjeffbrown@android.com\u003e\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "e90f869cae3b4aedf0f6d2ca8048d60245ee77f7",
      "tree": "9afd751f1f9bdbd2623e065054aafc8cdfdb41eb",
      "parents": [
        "566cf5b6e34504aaccb76167ecccd7e7e69e6456"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Fri Dec 30 15:16:44 2011 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Dec 30 15:26:35 2011 -0800"
      },
      "message": "Input: evdev - if no events and non-block, return EAGAIN not 0\n\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "566cf5b6e34504aaccb76167ecccd7e7e69e6456",
      "tree": "41b3c2b291b96218d92c8a8d321b7400b0a01006",
      "parents": [
        "36a281e25276f2d138bbbca4170d11453323cce1"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Fri Dec 30 15:16:44 2011 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Dec 30 15:26:34 2011 -0800"
      },
      "message": "Input: evdev - only allow reading events if a full packet is present\n\nWithout this, it was possible for the reader to get ahead of packet_head.\nIf the input device generated a partial packet *right* after the reader\ngot ahead, then we can get into a situation where the device is marked\nreadable, but read always returns 0 until the next packet is finished\n(i.e a SYN is generated by the input driver).\n\nThis situation can also happen if we overflow the buffer while a reader\nis trying to read an event out.\n\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "da40b0b6b4d3a81c5051fe6ae0544c48c13261c4",
      "tree": "c54325034ac30742fa6d0a82bc49a5396e8e66f2",
      "parents": [
        "8c127f0717b438e6abc3d92d4ae248c4224b9dcb"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Jun 18 02:50:11 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Jun 18 02:54:02 2011 -0700"
      },
      "message": "Input: evdev - try to wake up readers only if we have full packet\n\nWe should only wake waiters on the event device when we actually post\nan EV_SYN/SYN_REPORT to the queue. Otherwise we end up making waiting\nthreads runnable only to go right back to sleep because the device\nstill isn\u0027t readable.\n\nReported-by: Jeffrey Brown \u003cjeffbrown@android.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "7cbbb758d3c93b24b45b169af55440d2e7d5b7f6",
      "tree": "2eda8bad7a0f92c67b2255e9076e892309e85011",
      "parents": [
        "1201e7e67634624aec89317cf308cd0d3d8d4770"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed May 11 15:38:10 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu May 12 08:28:57 2011 -0700"
      },
      "message": "Input: remove useless synchronize_rcu() calls\n\nThere is no need to call synchronize_rcu() after a list insertion,\nor a NULL-\u003eptr assignment.\n\nHowever, the reverse operations do need this call.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "cdda911c34006f1089f3c87b1a1f31ab3a4722f2",
      "tree": "436a244dfc080bb694337797e98699c68d94f67b",
      "parents": [
        "03351ff4d897098a590cb247b6eebc470b8ecb5a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Tue Apr 26 22:16:11 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Apr 26 22:16:38 2011 -0700"
      },
      "message": "Input: evdev - only signal polls on full packets\n\nThis patch modifies evdev so that it only becomes readable when\nthe buffer contains an EV_SYN/SYN_REPORT event.\n\nOn SMP systems, it is possible for an evdev client blocked on poll()\nto wake up and read events from the evdev ring buffer at the same\nrate as they are enqueued.  This can result in high CPU usage,\nparticularly for MT devices, because the client ends up reading\nevents one at a time instead of reading complete packets.\n\nWe eliminate this problem by making the device readable only when\nthe buffer contains at least one complete packet.  This causes\nclients to block until the entire packet is available.\n\nSigned-off-by: Jeff Brown \u003cjeffbrown@android.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "9fb0f14e31b6101a0cc69a333b43541044f9b0a6",
      "tree": "a384acf387f5dff50e0c3a56fa54336dedd286c5",
      "parents": [
        "b1e064b81e238d47cb56544b34c9baf473e09837"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 12 23:29:38 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Apr 12 23:35:24 2011 -0700"
      },
      "message": "Input: evdev - indicate buffer overrun with SYN_DROPPED\n\nAdd a new EV_SYN code, SYN_DROPPED, to inform the client when input\nevents have been dropped from the evdev input buffer due to a\nbuffer overrun.  The client should use this event as a hint to\nreset its state or ignore all following events until the next\npacket begins.\n\nSigned-off-by: Jeff Brown \u003cjeffbrown@android.com\u003e\n[dtor@mail.ru: Implement Henrik\u0027s suggestion and drop old events in\n case of overflow.]\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "439581ec07fa9cf3f519dd461a2cf41cfd3adcb4",
      "tree": "204e640e88005bfcda1176d28ecc9325fbf57ad3",
      "parents": [
        "5063511539bbb436ae8e4f75409561ef547f8516"
      ],
      "author": {
        "name": "Peter Korsgaard",
        "email": "jacmet@sunsite.dk",
        "time": "Fri Feb 25 09:30:46 2011 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Feb 27 01:52:53 2011 -0800"
      },
      "message": "Input: evdev - fix evdev_write return value on partial writes\n\nAs was recently brought up on the busybox list\n(http://lists.busybox.net/pipermail/busybox/2011-January/074565.html),\nevdev_write doesn\u0027t properly check the count argument, which will\nlead to a return value \u003e count on partial writes if the remaining bytes\nare accessible - causing userspace confusion.\n\nFix it by only handling each full input_event structure and return -EINVAL\nif less than 1 struct was written, similar to how it is done in evdev_read.\n\nReported-by: Baruch Siach \u003cbaruch@tkos.co.il\u003e\nSigned-off-by: Peter Korsgaard \u003cjacmet@sunsite.dk\u003e\nAcked-by: Henrik Rydberg \u003crydberg@euromail.se\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "554738da71004d96e06fb75f4772dfc3b0f47810",
      "tree": "149a96ce3727025d3b9260961ec94ba8306db278",
      "parents": [
        "7b4b30689d688d9ca2e5c3859db6bbe1c35e6014",
        "a6d38f889750ed6290728a19d9dad577b147c6d0"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Jan 06 22:34:59 2011 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Jan 06 22:34:59 2011 -0800"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n\nConflicts:\n\tinclude/linux/input.h\n"
    },
    {
      "commit": "5c461b913a16aed8afa285a1d00414791a9afe33",
      "tree": "95c7d32fcb899240e8bc5ab5bfac20d259a81b46",
      "parents": [
        "ef11e701f32fb0cd5c5f0f6fb9a9e28fab151219",
        "4f56ce929cab45a3a6e1a81700da52bb9bdbfc0f"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Dec 27 17:33:20 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Dec 27 17:33:20 2010 -0800"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rydberg/input-mt into next\n"
    },
    {
      "commit": "85b7720039fc000b561c20fe2aaa3b54cddae4a7",
      "tree": "8fee2c82e215b87699ad6615239752af50ac9310",
      "parents": [
        "4dd295a73e80b55c3fec25555bf0a5d253023740"
      ],
      "author": {
        "name": "Henrik Rydberg",
        "email": "rydberg@euromail.se",
        "time": "Sat Dec 18 20:51:13 2010 +0100"
      },
      "committer": {
        "name": "Henrik Rydberg",
        "email": "rydberg@euromail.se",
        "time": "Mon Dec 20 09:37:33 2010 +0100"
      },
      "message": "Input: introduce device properties\n\nToday, userspace sets up an input device based on the data it emits.\nThis is not always enough; a tablet and a touchscreen may emit exactly\nthe same data, for instance, but the former should be set up with a\npointer whereas the latter does not need to. Recently, a new type of\ntouchpad has emerged where the buttons are under the pad, which\nchanges logic without changing the emitted data. This patch introduces\na new ioctl, EVIOCGPROP, which enables user access to a set of device\nproperties useful during setup. The properties are given as a bitmap\nin the same fashion as the event types, and are also made available\nvia sysfs, uevent and /proc/bus/input/devices.\n\nAcked-by: Ping Cheng \u003cpingc@wacom.com\u003e\nAcked-by: Chase Douglas \u003cchase.douglas@canonical.com\u003e\nAcked-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: Henrik Rydberg \u003crydberg@euromail.se\u003e\n"
    },
    {
      "commit": "ab4e0192196b8d4e43a3945742d4996da934a86f",
      "tree": "7aeeec6e5fe84dcb1b3026c7cc6c0f81807f0922",
      "parents": [
        "57a7872fa0f03e90be0fa224b9ea533f5b03ee4f"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Dec 14 23:53:21 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Dec 14 23:55:21 2010 -0800"
      },
      "message": "Input: define separate EVIOCGKEYCODE_V2/EVIOCSKEYCODE_V2\n\nThe desire to keep old names for the EVIOCGKEYCODE/EVIOCSKEYCODE while\nextending them to support large scancodes was a mistake. While we tried\nto keep ABI intact (and we succeeded in doing that, programs compiled\non older kernels will work on newer ones) there is still a problem with\nrecompiling existing software with newer kernel headers.\n\nNew kernel headers will supply updated ioctl numbers and kernel will\nexpect that userspace will use struct input_keymap_entry to set and\nretrieve keymap data. But since the names of ioctls are still the same\nuserspace will happily compile even if not adjusted to make use of the\nnew structure and will start miraculously fail in the field.\n\nTo avoid this issue let\u0027s revert EVIOCGKEYCODE/EVIOCSKEYCODE definitions\nand add EVIOCGKEYCODE_V2/EVIOCSKEYCODE_V2 so that userspace can explicitly\nselect the style of ioctls it wants to employ.\n\nReviewed-by: Henrik Rydberg \u003crydberg@euromail.se\u003e\nAcked-by: Jarod Wilson \u003cjarod@redhat.com\u003e\nAcked-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "da0c490115de026618a7fdcd886602da44392a50",
      "tree": "b61dae8d525fa765151adb8df5456a1e9880a773",
      "parents": [
        "4eb3c30b2e034b673df3e8f21b497e39f3911a02"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Nov 29 23:33:07 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Nov 30 23:10:26 2010 -0800"
      },
      "message": "Input: use pr_fmt and pr_\u003clevel\u003e\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "3a99c6319064af3f2e18eb929f638d555dbf7a62",
      "tree": "e611927f41142123dc8efed7e07a3a91151edb01",
      "parents": [
        "1dfd166e93f98892aa4427069a23ed73259983c8",
        "49327ad2bbbaf1945d5ba431522201574219d150"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 07:59:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 07:59:01 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (75 commits)\n  Input: wacom - specify Cinitq supported tools\n  Input: ab8500-ponkey - fix IRQ freeing in error path\n  Input: adp5588-keys - use more obvious i2c_device_id name string\n  Input: ad7877 - switch to using threaded IRQ\n  Input: ad7877 - use attribute group to control visibility of attributes\n  Input: serio - add support for PS2Mult multiplexer protocol\n  Input: wacom - properly enable runtime PM\n  Input: ad7877 - filter events where pressure is beyond the maximum\n  Input: ad7877 - implement EV_KEY:BTN_TOUCH reporting\n  Input: ad7877 - implement specified chip select behavior\n  Input: hp680_ts_input - use cancel_delayed_work_sync()\n  Input: mousedev - correct lockdep annotation\n  Input: ads7846 - switch to using threaded IRQ\n  Input: serio - support multiple child devices per single parent\n  Input: synaptics - simplify pass-through port handling\n  Input: add ROHM BU21013 touch panel controller support\n  Input: omap4-keypad - wake-up on events \u0026 long presses\n  Input: omap4-keypad - fix interrupt line configuration\n  Input: omap4-keypad - SYSCONFIG register configuration\n  Input: omap4-keypad - use platform device helpers\n  ...\n"
    },
    {
      "commit": "49327ad2bbbaf1945d5ba431522201574219d150",
      "tree": "47beb374d0cfb77d401220f20e8cece4ce4469db",
      "parents": [
        "f9ce6eb5b6fa8cbcf0a0fb7c5f4203f94730fc52",
        "6521d0bf984ab1cc25795d312e21c438aea8b5d5"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Oct 24 22:11:17 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Oct 24 22:11:17 2010 -0700"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "092e0e7e520a1fca03e13c9f2d157432a8657ff2",
      "tree": "451897252c4c08c4b5a8ef535da156f1e817e80b",
      "parents": [
        "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
        "776c163b1b93c8dfa5edba885bc2bfbc2d228a5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "message": "Merge branch \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  vfs: make no_llseek the default\n  vfs: don\u0027t use BKL in default_llseek\n  llseek: automatically add .llseek fop\n  libfs: use generic_file_llseek for simple_attr\n  mac80211: disallow seeks in minstrel debug code\n  lirc: make chardev nonseekable\n  viotape: use noop_llseek\n  raw: use explicit llseek file operations\n  ibmasmfs: use generic_file_llseek\n  spufs: use llseek in all file operations\n  arm/omap: use generic_file_llseek in iommu_debug\n  lkdtm: use generic_file_llseek in debugfs\n  net/wireless: use generic_file_llseek in debugfs\n  drm: use noop_llseek\n"
    },
    {
      "commit": "888a6f77e0418b049f83d37547c209b904d30af4",
      "tree": "42cdb9f781d2177e6b380e69a66a27ec7705f51f",
      "parents": [
        "31b7eab27a314b153d8fa07ba9e9ec00a98141e1",
        "6506cf6ce68d78a5470a8360c965dafe8e4b78e3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:12 2010 -0700"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (52 commits)\n  sched: fix RCU lockdep splat from task_group()\n  rcu: using ACCESS_ONCE() to observe the jiffies_stall/rnp-\u003eqsmask value\n  sched: suppress RCU lockdep splat in task_fork_fair\n  net: suppress RCU lockdep false positive in sock_update_classid\n  rcu: move check from rcu_dereference_bh to rcu_read_lock_bh_held\n  rcu: Add advice to PROVE_RCU_REPEATEDLY kernel config parameter\n  rcu: Add tracing data to support queueing models\n  rcu: fix sparse errors in rcutorture.c\n  rcu: only one evaluation of arg in rcu_dereference_check() unless sparse\n  kernel: Remove undead ifdef CONFIG_DEBUG_LOCK_ALLOC\n  rcu: fix _oddness handling of verbose stall warnings\n  rcu: performance fixes to TINY_PREEMPT_RCU callback checking\n  rcu: upgrade stallwarn.txt documentation for CPU-bound RT processes\n  vhost: add __rcu annotations\n  rcu: add comment stating that list_empty() applies to RCU-protected lists\n  rcu: apply TINY_PREEMPT_RCU read-side speedup to TREE_PREEMPT_RCU\n  rcu: combine duplicate code, courtesy of CONFIG_PREEMPT_RCU\n  rcu: Upgrade srcu_read_lock() docbook about SRCU grace periods\n  rcu: document ways of stalling updates in low-memory situations\n  rcu: repair code-duplication FIXMEs\n  ...\n"
    },
    {
      "commit": "f9ce6eb5b6fa8cbcf0a0fb7c5f4203f94730fc52",
      "tree": "9bc3e516e458a7982e608c4dd0cb7cf3080dd6cc",
      "parents": [
        "0a74a1df3c13655b66b1908d76f2159654216326"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "zonque@gmail.com",
        "time": "Mon Oct 18 08:43:50 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Oct 18 08:45:08 2010 -0700"
      },
      "message": "Input: evdev - fix EVIOCSABS regression\n\n448cd16 (\"Input: evdev - rearrange ioctl handling\") broke EVIOCSABS by\nchecking for the wrong direction bit.\n\nSigned-off-by: Daniel Mack \u003czonque@gmail.com\u003e\nReported-by: Sven Neumann \u003cs.neumann@raumfeld.com\u003e\nTested-by: Sven Neumann \u003cs.neumann@raumfeld.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "0a74a1df3c13655b66b1908d76f2159654216326",
      "tree": "faaafb23d29b7675d04e6108fb117b01e74acbc7",
      "parents": [
        "ca047fedd89bbb4b79b61e0656a7b799e4e45e6d"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "zonque@gmail.com",
        "time": "Mon Oct 18 08:43:30 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Oct 18 08:45:02 2010 -0700"
      },
      "message": "Input: evdev - fix Ooops in EVIOCGABS/EVIOCSABS\n\nThis fixes a regression introduced by the dynamic allocation of absinfo\nfor input devices. We need to bail out early for input devices which\ndon\u0027t have absolute axis.\n\n[  929.664303] Pid: 2989, comm: input Not tainted 2.6.36-rc8+ #14 MS-7260/MS-7260\n[  929.664318] EIP: 0060:[\u003cc12bdc01\u003e] EFLAGS: 00010246 CPU: 0\n[  929.664331] EIP is at evdev_ioctl+0x4f8/0x59f\n[  929.664341] EAX: 00000040 EBX: 00000000 ECX: 00000006 EDX: f45a1efc\n[  929.664355] ESI: 00000000 EDI: f45a1efc EBP: f45a1f24 ESP: f45a1eb8\n[  929.664369]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068\n[  929.664402]  f470da74 f6a30e78 f462c240 00000018 bfe4a260 00000000 f45b06fc 00000000\n[  929.664429] \u003c0\u003e 000000c4 b769d000 c3544620 f470da74 f45b06fc f45b06fc f45a1f38 c107dd1f\n[  929.664458] \u003c0\u003e f4710b74 000000c4 00000000 00000000 00000000 0000029d 00000a74 f4710b74\n[  929.664500]  [\u003cc107dd1f\u003e] ? handle_mm_fault+0x2be/0x59a\n[  929.664513]  [\u003cc12bd709\u003e] ? evdev_ioctl+0x0/0x59f\n[  929.664524]  [\u003cc1099d30\u003e] ? do_vfs_ioctl+0x494/0x4d9\n[  929.664538]  [\u003cc10432a1\u003e] ? up_read+0x16/0x29\n[  929.664550]  [\u003cc101c818\u003e] ? do_page_fault+0x2ff/0x32d\n[  929.664564]  [\u003cc108d048\u003e] ? do_sys_open+0xc5/0xcf\n[  929.664575]  [\u003cc1099db6\u003e] ? sys_ioctl+0x41/0x61\n[  929.664587]  [\u003cc1002710\u003e] ? sysenter_do_call+0x12/0x36\n[  929.684570] ---[ end trace 11b83e923bd8f2bb ]---\n\nSigned-off-by: Daniel Mack \u003czonque@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "6038f373a3dc1f1c26496e60b6c40b164716f07e",
      "tree": "a0d3bbd026eea41b9fc36b8c722cbaf56cd9f825",
      "parents": [
        "1ec5584e3edf9c4bf2c88c846534d19cf986ba11"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Aug 15 18:52:59 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Oct 15 15:53:27 2010 +0200"
      },
      "message": "llseek: automatically add .llseek fop\n\nAll file_operations should get a .llseek operation so we can make\nnonseekable_open the default for future file operations without a\n.llseek pointer.\n\nThe three cases that we can automatically detect are no_llseek, seq_lseek\nand default_llseek. For cases where we can we can automatically prove that\nthe file offset is always ignored, we use noop_llseek, which maintains\nthe current behavior of not returning an error from a seek.\n\nNew drivers should normally not use noop_llseek but instead use no_llseek\nand call nonseekable_open at open time.  Existing drivers can be converted\nto do the same when the maintainer knows for certain that no user code\nrelies on calling seek on the device file.\n\nThe generated code is often incorrectly indented and right now contains\ncomments that clarify for each added line why a specific variant was\nchosen. In the version that gets submitted upstream, the comments will\nbe gone and I will manually fix the indentation, because there does not\nseem to be a way to do that using coccinelle.\n\nSome amount of new code is currently sitting in linux-next that should get\nthe same modifications, which I will do at the end of the merge window.\n\nMany thanks to Julia Lawall for helping me learn to write a semantic\npatch that does all this.\n\n\u003d\u003d\u003d\u003d\u003d begin semantic patch \u003d\u003d\u003d\u003d\u003d\n// This adds an llseek\u003d method to all file operations,\n// as a preparation for making no_llseek the default.\n//\n// The rules are\n// - use no_llseek explicitly if we do nonseekable_open\n// - use seq_lseek for sequential files\n// - use default_llseek if we know we access f_pos\n// - use noop_llseek if we know we don\u0027t access f_pos,\n//   but we still want to allow users to call lseek\n//\n@ open1 exists @\nidentifier nested_open;\n@@\nnested_open(...)\n{\n\u003c+...\nnonseekable_open(...)\n...+\u003e\n}\n\n@ open exists@\nidentifier open_f;\nidentifier i, f;\nidentifier open1.nested_open;\n@@\nint open_f(struct inode *i, struct file *f)\n{\n\u003c+...\n(\nnonseekable_open(...)\n|\nnested_open(...)\n)\n...+\u003e\n}\n\n@ read disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n   *off \u003d E\n|\n   *off +\u003d E\n|\n   func(..., off, ...)\n|\n   E \u003d *off\n)\n...+\u003e\n}\n\n@ read_no_fpos disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ write @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n  *off \u003d E\n|\n  *off +\u003d E\n|\n  func(..., off, ...)\n|\n  E \u003d *off\n)\n...+\u003e\n}\n\n@ write_no_fpos @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ fops0 @\nidentifier fops;\n@@\nstruct file_operations fops \u003d {\n ...\n};\n\n@ has_llseek depends on fops0 @\nidentifier fops0.fops;\nidentifier llseek_f;\n@@\nstruct file_operations fops \u003d {\n...\n .llseek \u003d llseek_f,\n...\n};\n\n@ has_read depends on fops0 @\nidentifier fops0.fops;\nidentifier read_f;\n@@\nstruct file_operations fops \u003d {\n...\n .read \u003d read_f,\n...\n};\n\n@ has_write depends on fops0 @\nidentifier fops0.fops;\nidentifier write_f;\n@@\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n...\n};\n\n@ has_open depends on fops0 @\nidentifier fops0.fops;\nidentifier open_f;\n@@\nstruct file_operations fops \u003d {\n...\n .open \u003d open_f,\n...\n};\n\n// use no_llseek if we call nonseekable_open\n////////////////////////////////////////////\n@ nonseekable1 depends on !has_llseek \u0026\u0026 has_open @\nidentifier fops0.fops;\nidentifier nso ~\u003d \"nonseekable_open\";\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d nso, ...\n+.llseek \u003d no_llseek, /* nonseekable */\n};\n\n@ nonseekable2 depends on !has_llseek @\nidentifier fops0.fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d open_f, ...\n+.llseek \u003d no_llseek, /* open uses nonseekable */\n};\n\n// use seq_lseek for sequential files\n/////////////////////////////////////\n@ seq depends on !has_llseek @\nidentifier fops0.fops;\nidentifier sr ~\u003d \"seq_read\";\n@@\nstruct file_operations fops \u003d {\n...  .read \u003d sr, ...\n+.llseek \u003d seq_lseek, /* we have seq_read */\n};\n\n// use default_llseek if there is a readdir\n///////////////////////////////////////////\n@ fops1 depends on !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier readdir_e;\n@@\n// any other fop is used that changes pos\nstruct file_operations fops \u003d {\n... .readdir \u003d readdir_e, ...\n+.llseek \u003d default_llseek, /* readdir is present */\n};\n\n// use default_llseek if at least one of read/write touches f_pos\n/////////////////////////////////////////////////////////////////\n@ fops2 depends on !fops1 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read.read_f;\n@@\n// read fops use offset\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d default_llseek, /* read accesses f_pos */\n};\n\n@ fops3 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+\t.llseek \u003d default_llseek, /* write accesses f_pos */\n};\n\n// Use noop_llseek if neither read nor write accesses f_pos\n///////////////////////////////////////////////////////////\n\n@ fops4 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !fops3 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\nidentifier write_no_fpos.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n .read \u003d read_f,\n...\n+.llseek \u003d noop_llseek, /* read and write both use no f_pos */\n};\n\n@ depends on has_write \u0026\u0026 !has_read \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write_no_fpos.write_f;\n@@\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+.llseek \u003d noop_llseek, /* write uses no f_pos */\n};\n\n@ depends on has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\n@@\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d noop_llseek, /* read uses no f_pos */\n};\n\n@ depends on !has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\n@@\nstruct file_operations fops \u003d {\n...\n+.llseek \u003d noop_llseek, /* no read or write fn */\n};\n\u003d\u003d\u003d\u003d\u003d End semantic patch \u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "8613e4c2872a87cc309a42de2c7091744dc54d0e",
      "tree": "75b6513268aca8b614f3b2a55421c7a07b4a9899",
      "parents": [
        "a4e6aad64735702256e4feaa4724eb776ca4e637"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Thu Sep 09 21:54:22 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Sep 09 22:00:50 2010 -0700"
      },
      "message": "Input: add support for large scancodes\n\nSeveral devices use a high number of bits for scancodes. One important\ngroup is the Remote Controllers. Some new protocols like RC-6 define a\nscancode space of 64 bits.\n\nThe current EVIO[CS]GKEYCODE ioctls allow replace the scancode/keycode\ntranslation tables, but it is limited to up to 32 bits for scancode.\n\nAlso, if userspace wants to clean the existing table, replacing it by\na new one, it needs to run a loop calling the ioctls over the entire\nsparse scancode space.\n\nTo solve those problems, this patch extends the ioctls to allow drivers\nhandle scancodes up to 32 bytes long (the length could be extended in\nthe future should such need arise) and allow userspace to query and set\nscancode to keycode mappings not only by scancode but also by index.\n\nCompatibility code were also added to handle the old format of\nEVIO[CS]GKEYCODE ioctls.\n\nFolded fixes by:\n- Dan Carpenter: locking fixes for the original implementation\n- Jarod Wilson: fix crash when setting keycode and wiring up get/set\n                handlers in original implementation.\n- Dmitry Torokhov: rework to consolidate old and new scancode handling,\n                   provide options to act either by index or scancode.\n\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Jarod Wilson \u003cjarod@redhat.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "2be85279281bafe7de808ca99de59af4fd474c49",
      "tree": "0d6a1f9268bc3cf5e466375dae97bb3de12f6f26",
      "parents": [
        "5b22216e11f717adc344abc7f97b42e03127c6c0"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Mar 04 15:50:28 2010 +0100"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Aug 19 17:18:01 2010 -0700"
      },
      "message": "input: __rcu annotations\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nAcked-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "448cd1664a573e69f54bfd32f3bb7220212b6cf5",
      "tree": "530ca61b1cd6205a79eecc6c04b6d0da70e07f40",
      "parents": [
        "d31b2865a4e8a9dd02f39e56c8fadb824c5e187b"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Aug 02 20:29:10 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Aug 02 20:30:44 2010 -0700"
      },
      "message": "Input: evdev - rearrange ioctl handling\n\nSplit ioctl handling into 3 separate sections: fixed-length ioctls,\nvariable-length ioctls and multi-number variable length handlers.\nThis reduces identation and makes the code a bit clearer.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "d31b2865a4e8a9dd02f39e56c8fadb824c5e187b",
      "tree": "cbe062757aa54c88c8e9ae2bf6ff87f791313c60",
      "parents": [
        "987a6c0298260b7aa40702b349282554d6180e4b"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "daniel@caiaq.de",
        "time": "Mon Aug 02 20:18:21 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Aug 02 20:30:04 2010 -0700"
      },
      "message": "Input: dynamically allocate ABS information\n\nAs all callers are now changed to only use the input_abs_*() access\nhelpers, switching over to dynamically allocated ABS information is\neasy. This reduces size of struct input_dev from 3152 to 1640 on\n64 bit architectures.\n\nSigned-off-by: Daniel Mack \u003cdaniel@caiaq.de\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "987a6c0298260b7aa40702b349282554d6180e4b",
      "tree": "29d0873435221a6d731267efc2412814440e4a28",
      "parents": [
        "7957e9c4d175cc065f4277211fcb7d784fcee860"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "daniel@caiaq.de",
        "time": "Mon Aug 02 20:15:17 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Aug 02 20:29:56 2010 -0700"
      },
      "message": "Input: switch to input_abs_*() access functions\n\nChange all call sites in drivers/input to not access the ABS axis\ninformation directly anymore. Make them use the access helpers instead.\n\nAlso use input_set_abs_params() when possible.\nDid some code refactoring as I was on it.\n\nSigned-off-by: Daniel Mack \u003cdaniel@caiaq.de\u003e\nCc: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "c18fb1396eb809dbc16e51da273a1789f9d799bf",
      "tree": "43a8f5a321dc625e4cf269a68ccd72fe3b93bcba",
      "parents": [
        "4d4bf995ea873cc213c5abc5402af46ef490b8fd"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Jul 15 23:28:42 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Jul 15 23:53:00 2010 -0700"
      },
      "message": "Input: evdev - signal that device is writable in evdev_poll()\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "20da92de8ec3c1d4ba7e5aca322d38b6ce634932",
      "tree": "2349309cc452763e649c75f94bf00c327376f8d2",
      "parents": [
        "72c8a94a585afea1f45aa8c4f6938ed6d05be57a"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Jul 15 23:27:36 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Jul 15 23:52:33 2010 -0700"
      },
      "message": "Input: change input handlers to use bool when possible\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "40d007e7df1dab17bf1ecf91e718218354d963d7",
      "tree": "d8c12e13e71f411b4f66aa44ec9b23935156e49d",
      "parents": [
        "a8aef622929bbba4d89498fb41dd445c14fae1f7"
      ],
      "author": {
        "name": "Henrik Rydberg",
        "email": "rydberg@euromail.se",
        "time": "Thu Jul 15 23:10:10 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Jul 15 23:52:03 2010 -0700"
      },
      "message": "Input: introduce MT event slots\n\nWith the rapidly increasing number of intelligent multi-contact and\nmulti-user devices, the need to send digested, filtered information\nfrom a set of different sources within the same device is imminent.\nThis patch adds the concept of slots to the MT protocol. The slots\nenumerate a set of identified sources, such that all MT events\ncan be passed independently and selectively per identified source.\n\nThe protocol works like this: Instead of sending a SYN_MT_REPORT\nevent immediately after the contact data, one sends an ABS_MT_SLOT\nevent immediately before the contact data. The input core will only\nemit events for slots with modified MT events. It is assumed that\nthe same slot is used for the duration of an initiated contact.\n\nAcked-by: Ping Cheng \u003cpingc@wacom.com\u003e\nAcked-by: Chase Douglas \u003cchase.douglas@canonical.com\u003e\nAcked-by: Rafi Rubin \u003crafi@seas.upenn.edu\u003e\nSigned-off-by: Henrik Rydberg \u003crydberg@euromail.se\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "e725a4945d6eedd400dd5d0ead293d980a2f76ec",
      "tree": "c484304f9b4298321d0aa82a6a119004fe290eea",
      "parents": [
        "6967b4d9de4a7cf3b00cd9a93981d3206d75a1d8"
      ],
      "author": {
        "name": "Henrik Rydberg",
        "email": "rydberg@euromail.se",
        "time": "Wed Jun 23 10:09:26 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Jun 23 13:05:27 2010 -0700"
      },
      "message": "Input: evdev - never leave the client buffer empty after write\n\nWhen the client buffer is very small and wraps around a lot, it may\nwell be that a write increases the head such that head \u003d\u003d tail. If\nthis happens between the point where a poll is triggered and the\nactual data is being read, there will be no data to read. This is\nconfusing to applications, which might end up closing the file.\n\nThis patch solves the problem by making sure the client buffer is\nnever empty after writing to it.\n\nSigned-off-by: Henrik Rydberg \u003crydberg@euromail.se\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "63a6404d8ae693e71ab27c4f9c4032aa29113e92",
      "tree": "f69345910b0eafc1149adb8e8926a131e1fbea3c",
      "parents": [
        "b58f7086d52c0ac6c879ee5aaf7c276e17768e5b"
      ],
      "author": {
        "name": "Henrik Rydberg",
        "email": "rydberg@euromail.se",
        "time": "Thu Jun 10 12:05:24 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Jun 23 13:05:25 2010 -0700"
      },
      "message": "Input: evdev - use driver hint to compute size of event buffer\n\nSome devices, in particular MT devices, produce a lot of data.  This\nmay lead to overflowing of the event queues in evdev driver, which\nby default are fairly small. Let the drivers hint the average number\nof events per packet generated by the device, and use that information\nwhen computing the buffer size evdev should use for the device.\n\nSigned-off-by: Henrik Rydberg \u003crydberg@euromail.se\u003e\nAcked-by: Chase Douglas \u003cchase.douglas@canonical.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "b58f7086d52c0ac6c879ee5aaf7c276e17768e5b",
      "tree": "b4dc1d1b516f36bdf5cda18af3a8a28d5706068a",
      "parents": [
        "4aaf504670e38da9cb929988cdce05648fa635a7"
      ],
      "author": {
        "name": "Henrik Rydberg",
        "email": "rydberg@euromail.se",
        "time": "Wed Jun 23 09:17:56 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Jun 23 13:04:42 2010 -0700"
      },
      "message": "Input: evdev - convert to dynamic event buffer\n\nAllocate the event buffer dynamically, and prepare to compute the\nbuffer size in a separate function. This patch defines the size\ncomputation to be identical to the current code, and does not contain\nany logical changes.\n\nSigned-off-by: Henrik Rydberg \u003crydberg@euromail.se\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "58b939959d228681208ba997595411fddc860849",
      "tree": "3bfa2df2c811e14698e066f093a6dd7d75f45672",
      "parents": [
        "ec62e1c8dd2f9b2a833b48d4a2f58f0c5e07384c"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Mar 08 22:37:10 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Mar 08 23:19:15 2010 -0800"
      },
      "message": "Input: scancode in get/set_keycodes should be unsigned\n\nThe HID layer has some scan codes of the form 0xffbc0000 for logitech\ndevices which do not work if scancode is typed as signed int, so we need\nto switch to unsigned it instead. While at it keycode being signed does\nnot make much sense either.\n\nAcked-by: Márton Németh \u003cnm127@freemail.hu\u003e\nAcked-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nAcked-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "3d7bbd4575cfb23e6ef7368fff1f7d7e198b7930",
      "tree": "acfffe2afc69e59d97c454c5b1429fd980e05b55",
      "parents": [
        "daf8a96b2d4a5d4d1d288831be43457c84c55a2f"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Feb 04 00:30:42 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Feb 04 00:31:44 2010 -0800"
      },
      "message": "Input: mark input interfaces as non-seekable\n\nSeeking does not make sense for input interfaces such as evdev and joydev\nso let\u0027s use nonseekable_open to mark them non-seekable.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "30a589fde0162aa4dac7c69803aeee8fbe8d1b82",
      "tree": "19cb0a9774daa4ad010ed5595ee1ac2ed590797b",
      "parents": [
        "0ef7a26af1278f7ec0b718148e88f01ba1953835"
      ],
      "author": {
        "name": "Adam Jackson",
        "email": "ajax@redhat.com",
        "time": "Tue Jan 05 17:56:04 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Jan 06 00:17:04 2010 -0800"
      },
      "message": "Input: evdev - be less aggressive about sending SIGIO notifies\n\nWhen using realtime signals, we\u0027ll enqueue one signal for every event.\nThis is unfortunate, because (for example) keyboard presses are three\nevents: key, msc scancode, and syn.  They\u0027ll be enqueued fast enough in\nkernel space that all three events will be ready to read by the time\nuserspace runs, so the first invocation of the signal handler will read\nall three events, but then the second two invocations still have to run\nto do no work.\n\nInstead, only send the SIGIO notification on syn events.  This is a\nslight abuse of SIGIO semantics, in principle it ought to fire as soon\nas any events are readable.  But it matches evdev semantics, which is\nmore important since SIGIO is rather vaguely defined to begin with.\n\nSigned-off-by: Adam Jackson \u003cajax@redhat.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "a99bbaf5ee6bad1aca0c88ea65ec6e5373e86184",
      "tree": "2b0314d68b9e0a76e8f4fb60865a1d56e138833a",
      "parents": [
        "5e5027bd26ed4df735d29e66cd5c1c9b5959a587"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Oct 04 16:11:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 04 15:05:10 2009 -0700"
      },
      "message": "headers: remove sched.h from poll.h\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f936601471d1454dacbd3b2a961fd4d883090aeb",
      "tree": "5ec6bf1a77ede0082484b8c7bd6ffbb438c3f84f",
      "parents": [
        "f0a14de2f82dd6aa13e04816da2091c7ed0f77cf"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "daniel@caiaq.de",
        "time": "Mon Jul 13 22:22:49 2009 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jul 13 22:24:29 2009 -0700"
      },
      "message": "Input: fix EVIOCGNAME/JSIOCGNAME regression\n\nCommit 3d5cb60e (\"Input: simplify name handling for certain input\nhandles\") introduced a regression for the EVIOCGNAME/JSIOCGNAME\nioctl.\n\nBefore this, patch, the platform device\u0027s name was given back to\nuserspace which was good to identify devices. After this patch, the\ndevice is (\"event%d\", minor) which is not descriptive at all.\n\nThis fixes the behaviour by taking dev-\u003ename.\n\nReported-by: Sven Neumann \u003cs.neumann@raumfeld.com\u003e\nSigned-off-by: Daniel Mack \u003cdaniel@caiaq.de\u003e\nReviewed-by: Thadeu Lima de Souza Cascardo \u003ccascardo@holoscopio.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "ec20a022aa24fc63d3ab59584cb1e5aa9a21d46c",
      "tree": "671086529e62fcb541fb03422010d1eeae09b00a",
      "parents": [
        "d7ed5d883c09c5474f842dcb148515dfaef2a567"
      ],
      "author": {
        "name": "Tero Saarni",
        "email": "tero.saarni@gmail.com",
        "time": "Wed Jun 10 23:27:24 2009 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Jun 19 22:55:17 2009 -0700"
      },
      "message": "Input: synaptics - add support for reporting x/y resolution\n\nSynaptics uses anisotropic coordinate system.  On some wide touchpads\nvertical resolution can be twice as high as horizontal which causes\nunequal sensitivity on x/y directions.  Add support for reading the\nresolution with EVIOCGABS ioctl.\n\nSigned-off-by: Tero Saarni \u003ctero.saarni@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "3d5cb60ef3042ac479dab82e5a945966a0d54d53",
      "tree": "08793f3c88b8d218fc934b3769bcc4e2aee993c9",
      "parents": [
        "7e044e056a6aa0dc695db50461d7b326fde15e8b"
      ],
      "author": {
        "name": "Thadeu Lima de Souza Cascardo",
        "email": "cascardo@holoscopio.com",
        "time": "Sat May 09 16:08:04 2009 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon May 11 00:11:43 2009 -0700"
      },
      "message": "Input: simplify name handling for certain input handles\n\nFor evdev, joydev and mousedev, instead of having a separate character array\nholding name of the handle, use struct devce\u0027s name which is the same.\n\nSigned-off-by: Thadeu Lima de Souza Cascardo \u003ccascardo@holoscopio.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "60aa49243d09afc873f082567d2e3c16634ced84",
      "tree": "bb7c8d9668b35a3aa4e90d0a62500ac9d3e67f7f",
      "parents": [
        "76398425bb06b07cc3a3b1ce169c67dc9d6874ed"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Sun Feb 01 14:52:56 2009 -0700"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Mar 16 08:34:35 2009 -0600"
      },
      "message": "Rationalize fasync return values\n\nMost fasync implementations do something like:\n\n     return fasync_helper(...);\n\nBut fasync_helper() will return a positive value at times - a feature used\nin at least one place.  Thus, a number of other drivers do:\n\n     err \u003d fasync_helper(...);\n     if (err \u003c 0)\n             return err;\n     return 0;\n\nIn the interests of consistency and more concise code, it makes sense to\nmap positive return values onto zero where -\u003efasync() is called.\n\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\n"
    },
    {
      "commit": "93b8eef1c098efbea2f1fc0be7e3c681f259a7e7",
      "tree": "462cc8c2bc07bbc825dab2a200891a28d8643329",
      "parents": [
        "a2d781fc8d9b16113dd9440107d73c0f21d7cbef",
        "929096fe9ff1f4b3645cf3919527ab47e8d5e17c"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Dec 20 04:54:54 2008 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Dec 20 04:54:54 2008 -0500"
      },
      "message": "Merge commit \u0027v2.6.28-rc9\u0027 into next\n"
    },
    {
      "commit": "233e70f4228e78eb2f80dc6650f65d3ae3dbf17c",
      "tree": "4e18fbe1851e6d2161b7f18265cb21f8a61e3ce7",
      "parents": [
        "3318a386e4ca68c76e0294363d29bdc46fcad670"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Fri Oct 31 23:28:30 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 01 09:49:46 2008 -0700"
      },
      "message": "saner FASYNC handling on file close\n\nAs it is, all instances of -\u003erelease() for files that have -\u003efasync()\nneed to remember to evict file from fasync lists; forgetting that\ncreates a hole and we actually have a bunch that *does* forget.\n\nSo let\u0027s keep our lives simple - let __fput() check FASYNC in\nfile-\u003ef_flags and call -\u003efasync() there if it\u0027s been set.  And lose that\ncrap in -\u003erelease() instances - leaving it there is still valid, but we\ndon\u0027t have to bother anymore.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a6c2490f010d9235b1424110c6f414460e41dfe1",
      "tree": "2c7d6773739791bfa0510e1ea27e88a3e5ab4cdb",
      "parents": [
        "dde4ac07263161264d089c7556d0295487787b77"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Thu Oct 30 00:07:50 2008 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Oct 30 09:29:05 2008 -0400"
      },
      "message": "Input: struct device - replace bus_id with dev_name(), dev_set_name()\n\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "2d56f3a32c0e62f99c043d2579840f9731fe5855",
      "tree": "3bf1539bbed43e5309dcfd634f202bb9ad0f11b2",
      "parents": [
        "49fdf6785fd660e18a1eb4588928f47e9fa29a9a"
      ],
      "author": {
        "name": "Philip Langdale",
        "email": "philipl@overt.org",
        "time": "Thu Oct 16 22:31:42 2008 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Oct 27 22:03:42 2008 -0400"
      },
      "message": "Input: refactor evdev 32bit compat to be shareable with uinput\n\nCurrently, evdev has working 32bit compatibility and uinput does not. uinput\nneeds the input_event code that evdev uses, so let\u0027s refactor it so it can\nbe shared.\n\n[dtor@mail.ru: add fix for force feedback compat issues]\nSigned-off-by: Philip Langdale \u003cphilipl@overt.org\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "c85e2031eb55381a5e2f0f66c2e1d62ecd58eb85",
      "tree": "e735cd01a23f2f3341e4f5adc341ae36fd169e39",
      "parents": [
        "0cc1fe2238e458ebe2d52f035ccc6f3d2ecc9ca1"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "Geert.Uytterhoeven@sonycom.com",
        "time": "Tue Aug 19 11:28:23 2008 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Aug 19 11:35:27 2008 -0400"
      },
      "message": "Input: evdev - fix printf() format for sizeof\n\ncommit f2afa7711f8585ffc088ba538b9a510e0d5dca12 (\"Input: paper over a bug in\nSynaptics X driver\") introduced a compiler warning on 64-bit platforms, as\nsizeof() returns a size_t, not an (unsigned) int:\n\n| drivers/input/evdev.c: In function \u0027handle_eviocgbit\u0027:\n| drivers/input/evdev.c:684: warning: format \u0027%d\u0027 expects type \u0027int\u0027, but argument 3 has type \u0027long unsigned int\u0027\n\nUse the proper `z\u0027 modifier for size_t, and make the printf() formats for the\nsizes unsigned while we\u0027re at it.\n\nSigned-off-by: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "f2afa7711f8585ffc088ba538b9a510e0d5dca12",
      "tree": "6f70bab8e58b23615e7b3505518b902d9407df80",
      "parents": [
        "5402a7349d26875f69c184badf87b88541b1cf6c"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Aug 08 11:46:53 2008 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Aug 08 14:54:59 2008 -0400"
      },
      "message": "Input: paper over a bug in Synaptics X driver\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "5402a7349d26875f69c184badf87b88541b1cf6c",
      "tree": "ff368dabc74cbd09dcb1687a622f8c4e9199f253",
      "parents": [
        "8e4ae1017a555662d698ea4616dcfe71b17d3732"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 05 11:42:42 2008 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Aug 08 11:54:58 2008 -0400"
      },
      "message": "Input: evdev - split EVIOCGBIT handlig into a separate function\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "f2278f31d6feb9036eaa79f2e8abcce850420abd",
      "tree": "85b6f3abd9f6e77c5073a8951e3ac5452bbabfb9",
      "parents": [
        "82547e9074a23d9d722a5f6053f4734566127da6"
      ],
      "author": {
        "name": "Adam Dawidowski",
        "email": "drake_ster@wp.pl",
        "time": "Mon Jun 02 01:08:10 2008 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jun 30 09:37:06 2008 -0400"
      },
      "message": "Input: fix force feedback upload issue in compat mode\n\nForce feedback upload of effects through the event device (ioctl\nEVIOCSFF) is not working in 32 bit applications running on 64-bit\nkernel due to the fact that struct ff_effect contains a pointer,\nresulting in the structure having different sizes in 64 and 32 bit\nprograms and causing difference in ioctl numbers.\n\n[dtor@mail.ru: refactor to keep all ugliness in evdev]\n\nSigned-off-by: Adam Dawidowski \u003cdrake_ster@wp.pl\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "a7097ff89c3204737a07eecbc83f9ae6002cc534",
      "tree": "11fe55cbfb3651fc57e59fc838d1e084f5e63749",
      "parents": [
        "399f486286f44d55c4fff0e9cc5d712f2b443489"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Apr 01 00:22:53 2008 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Apr 01 00:22:53 2008 -0400"
      },
      "message": "Input: make sure input interfaces pin parent input devices\n\nRecent driver core change causes references to parent devices being\ndropped early, at device_del() time, as opposed to when all children\nare freed. This causes oops in evdev with grabbed devices. Take the\nreference to the parent input device ourselves to ensure that it\nstays around long enough.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "eb08b6b973cb91311431c6eea3cc232b97152a84",
      "tree": "e5ee937a643f86302abaf72ff1fd09e381d445ec",
      "parents": [
        "d6e4218e28b75c4701a8c8d12e989de1dc97c182"
      ],
      "author": {
        "name": "Björn Steinbrink",
        "email": "B.Steinbrink@gmx.de",
        "time": "Sun Mar 30 20:42:59 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 30 14:47:49 2008 -0700"
      },
      "message": "evdev: Release eventual input device grabs when getting disconnected\n\nWhen getting disconnected we need to release eventual grabs on the\nunderlying input device as we also release the input device itself.\nOtherwise, we would try to release the grab when the client that\nrequested it closes its handle, accessing the input device which\nmight already be freed.\n\nSigned-off-by: Björn Steinbrink \u003cB.Steinbrink@gmx.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f4f37c8ec7d2491c8885c890ba74254b9adfbeee",
      "tree": "ecd4cb10af7fd7aa4fb02fe2a106608e9d64c3fe",
      "parents": [
        "554101e3e5f396b987c846332863a3fcdc87b1d6"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Nov 04 00:41:12 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jan 21 01:11:06 2008 -0500"
      },
      "message": "Input: Add proper locking when changing device\u0027s keymap\n\nTake dev-\u003eevent_lock to make sure that we don\u0027t race with input_event() and\nalso force key up event when removing a key from keymap table.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "7b19ada2ed3c1eccb9fe94d74b05e1428224663d",
      "tree": "a0c5975ce5236ff4023b92d431bd0a8fa321c6ce",
      "parents": [
        "d05be13bcc6ec615fb2e9556a9b85d52800669b6"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Thu Oct 18 23:40:32 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:42 2007 -0700"
      },
      "message": "get rid of input BIT* duplicate defines\n\nget rid of input BIT* duplicate defines\n\nuse newly global defined macros for input layer. Also remove includes of\ninput.h from non-input sources only for BIT macro definiton. Define the\nmacro temporarily in local manner, all those local definitons will be\nremoved further in this patchset (to not break bisecting).\nBIT macro will be globally defined (1\u003c\u003cx)\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: \u003cdtor@mail.ru\u003e\nAcked-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: \u003clenb@kernel.org\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nCc: \u003cperex@suse.cz\u003e\nAcked-by: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nCc: \u003cvernux@us.ibm.com\u003e\nCc: \u003cmalattia@linux.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "82ba56c273911f7eda79849cfa0fc2d2e5a3b75b",
      "tree": "1b169cbda51caed72440e1ff034780df5a4dda33",
      "parents": [
        "70093178b6eda34e4a4fb18cc4a48a9eacc01d98"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Oct 13 15:46:55 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Oct 13 15:46:55 2007 -0400"
      },
      "message": "Input: use full RCU API\n\nRT guys alerted me to the fact that in their tree spinlocks\nare preemptible and it is better to use full RCU API\n(rcu_read_lock()/rcu_read_unlock()) to be safe.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "b981d8b3f5e008ff10d993be633ad00564fc22cd",
      "tree": "e292dc07b22308912cf6a58354a608b9e5e8e1fd",
      "parents": [
        "b11d2127c4893a7315d1e16273bc8560049fa3ca",
        "2b9e0aae1d50e880c58d46788e5e3ebd89d75d62"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Oct 12 21:27:47 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Oct 12 21:27:47 2007 -0400"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\n\tdrivers/macintosh/adbhid.c\n"
    },
    {
      "commit": "064450140f1eab959bd0eca0245f449993216074",
      "tree": "ae8c7e238224b74e90f860129b1236c3eeedc470",
      "parents": [
        "1ea3abf7fbc39b3b543d7438159ba07b6411561c"
      ],
      "author": {
        "name": "Oliver Neukum",
        "email": "oliver@neukum.org",
        "time": "Fri Oct 12 14:18:40 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Oct 12 14:18:40 2007 -0400"
      },
      "message": "Input: fix open count handling in input interfaces\n\nIf input_open_device() fails we should not leave interfaces marked\nas  opened.\n\nSigned-off-by: Oliver Neukum \u003coneukum@suse.de\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "6addb1d6de1968b84852f54561cc9a999909b5a9",
      "tree": "568526cfdd11abb953cd69db2f7059c582ebe9d4",
      "parents": [
        "8006479c9b75fb6594a7b746af3d7f1fbb68f18f"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Aug 30 00:22:18 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Aug 30 00:22:18 2007 -0400"
      },
      "message": "Input: evdev - implement proper locking\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "293c5bd13f124c325f74f89ad26edf5612ce7235",
      "tree": "6de7ce919a10c58e29093776c02e61d7127ed12b",
      "parents": [
        "01754bbc692929e446e600f69b41013e554399a6"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Wed Jul 25 16:19:33 2007 +0100"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Tue Jul 31 21:35:21 2007 +0100"
      },
      "message": "[MIPS] Fixup secure computing stuff.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "9657d75c5f0f7d0a9cb507521d3ad1436aea28c9",
      "tree": "f6f4c357a64c7fed6720c8ebce0b183a6b9b720d",
      "parents": [
        "d63219a10126b878abbbffdf4c5bcf29ef756b7f"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Jun 14 23:32:24 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Tue Jul 10 00:35:17 2007 -0400"
      },
      "message": "Input: convert from class devices to standard devices\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "0b662c64840fb281e5948ab6f9d60f84817277d0",
      "tree": "169f6bf2c3c9f3a7a69b0ee3785cfcd866e12329",
      "parents": [
        "45efebf2492187e8915e2876c5bf6f3803b1c23f",
        "1dfa2812404c37d7571622195f907cea3331616c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jun 04 13:27:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jun 04 13:27:33 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:\n  Input: reduce raciness when input handlers disconnect\n  Input: ucb1x00 - do not access input_dev-\u003eprivate directly\n  Input: logips2pp - fix typo in Kconfig\n  Input: db9 - do not ignore dev2 module parameter\n"
    },
    {
      "commit": "1dfa2812404c37d7571622195f907cea3331616c",
      "tree": "2533af73ff0e1e4d24603967bd6cdc092973dce9",
      "parents": [
        "26be5a509af5f80c7012bd4f0478a94746c9c9d9"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Sun Jun 03 23:29:36 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Sun Jun 03 23:50:05 2007 -0400"
      },
      "message": "Input: reduce raciness when input handlers disconnect\n\nThere is a race between input handler\u0027s release() and disconnect()\nmethods: when input handler disconnects it wakes up all regular\nusers and then process to walk user list to wake up async. users.\nWhile disconnect() walks the list release() removes elements of\nthe same list causing oopses.\n\nWhile this is not a substibute for proper locking we can reduce\nodds of getting an oops if we wake up normal readers after walking\nthe list.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "bf61f8d357e5d71d74a3ca3be3cce52bf1a2c01a",
      "tree": "c27279afbee1b9927f992938587db09f061398f5",
      "parents": [
        "435b71be20f2ad3688acd94c05e968e029464d60"
      ],
      "author": {
        "name": "Kenichi Nagai",
        "email": "kenichi3.nagai@toshiba.co.jp",
        "time": "Fri May 11 01:12:15 2007 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 11 09:08:04 2007 -0700"
      },
      "message": "Input: evdev - fix overflow in compat_ioctl\n\nWhen exporting input device bitmaps via compat_ioctl on BIG_ENDIAN\nplatforms evdev calculates data size incorrectly. This causes buffer\noverflow if user specifies buffer smaller than maxlen.\n\nSigned-off-by: Kenichi Nagai \u003ckenichi3.nagai@toshiba.co.jp\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "393bfca19ecdce60a8d9a4d2577cac11ca924a25",
      "tree": "a609269ca3332b8f2f7b2b4a2c96f7d824c0e639",
      "parents": [
        "df6d3916f3b7b7e2067567a256dd4f0c1ea854a2",
        "ba0acb5ee318901646f82c134cca2e4de0c43934"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:51:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:51:43 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/dtor/input\n\n* master.kernel.org:/pub/scm/linux/kernel/git/dtor/input:\n  Input: move USB miscellaneous devices under drivers/input/misc\n  Input: move USB mice under drivers/input/mouse\n  Input: move USB gamepads under drivers/input/joystick\n  Input: move USB touchscreens under drivers/input/touchscreen\n  Input: move USB tablets under drivers/input/tablet\n  Input: i8042 - fix AUX port detection with some chips\n  Input: aaed2000_kbd - convert to use polldev library\n  Input: drivers/usb/input - usb_buffer_free() cleanup\n  Input: synaptics - don\u0027t complain about failed resets\n  Input: pull input.h into uinpit.h\n  Input: drivers/usb/input - fix sparse warnings (signedness)\n  Input: evdev - fix some sparse warnings (signedness, shadowing)\n  Input: drivers/joystick - fix various sparse warnings\n  Input: force feedback - make sure effect is present before playing\n"
    },
    {
      "commit": "e63340ae6b6205fef26b40a75673d1c9c0c8bb90",
      "tree": "8d3212705515edec73c3936bb9e23c71d34a7b41",
      "parents": [
        "04c9167f91e309c9c4ea982992aa08e83b2eb42e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue May 08 00:28:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:07 2007 -0700"
      },
      "message": "header cleaning: don\u0027t include smp_lock.h when not used\n\nRemove includes of \u003clinux/smp_lock.h\u003e where it is not used/needed.\nSuggested by Al Viro.\n\nBuilds cleanly on x86_64, i386, alpha, ia64, powerpc, sparc,\nsparc64, and arm (all 59 defconfigs).\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "334d0dd8b660557608142f0f77abc6812b48f08b",
      "tree": "9393a9aa099d7d42deda5f9f5054796c0c769be7",
      "parents": [
        "3f07d8796262f6aee135c8dd9a91210da9f888e4",
        "5b94f675f57e4ff16c8fda09088d7480a84dcd91"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Tue May 08 01:31:11 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Tue May 08 01:31:11 2007 -0400"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n"
    },
    {
      "commit": "a3d52136ee8f7399859f9a0824470fd49b1d1a00",
      "tree": "ac0fd3d1efc356029cbbc5e413f778f7231cd909",
      "parents": [
        "5b339915762d30b21995aa7263e74081f2f1110a",
        "84767d00a8fd54dd97866561f6e2ee246c8e1cdc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 18:13:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 18:16:12 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/dtor/input: (65 commits)\n  Input: gpio_keys - add support for switches (EV_SW)\n  Input: cobalt_btns - convert to use polldev library\n  Input: add skeleton for simple polled devices\n  Input: update some documentation\n  Input: wistron - fix typo in keymap for Acer TM610\n  Input: add input_set_capability() helper\n  Input: i8042 - add Fujitsu touchscreen/touchpad PNP IDs\n  Input: i8042 - add Panasonic CF-29 to nomux list\n  Input: lifebook - split into 2 devices\n  Input: lifebook - add signature of Panasonic CF-29\n  Input: lifebook - activate 6-byte protocol on select models\n  Input: lifebook - work properly on Panasonic CF-18\n  Input: cobalt buttons - separate device and driver registration\n  Input: ati_remote - make button repeat sensitivity configurable\n  Input: pxa27x - do not use deprecated SA_INTERRUPT flag\n  Input: ucb1400 - make delays configurable\n  Input: misc devices - switch to using input_dev-\u003edev.parent\n  Input: joysticks - switch to using input_dev-\u003edev.parent\n  Input: touchscreens - switch to using input_dev-\u003edev.parent\n  Input: mice - switch to using input_dev-\u003edev.parent\n  ...\n\nFixed up conflicts with core device model removal of \"struct subsystem\" manually.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce305b6a0815cae4288e77723f80fbc97f651f9a",
      "tree": "764dddec7f07b383ddafe4d46c41222deed34530",
      "parents": [
        "78167236e23bb3c80d2b35b693e578a6e56b1171"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu May 03 00:53:18 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu May 03 00:53:18 2007 -0400"
      },
      "message": "Input: evdev - fix some sparse warnings (signedness, shadowing)\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "823bccfc4002296ba88c3ad0f049e1abd8108d30",
      "tree": "5338ae0b32409446af4cd00c5107d9405d5bf0b6",
      "parents": [
        "2609e7b9bebfd433254c02538ba803dc516ff674"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 13 13:15:19 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed May 02 18:57:59 2007 -0700"
      },
      "message": "remove \"struct subsystem\" as it is no longer needed\n\nWe need to work on cleaning up the relationship between kobjects, ksets and\nktypes.  The removal of \u0027struct subsystem\u0027 is the first step of this,\nespecially as it is not really needed at all.\n\nThanks to Kay for fixing the bugs in this patch.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "d542ed82fdc72cf63549deec19e86ee4addf2499",
      "tree": "201c713b24a429d34272998ae3ecca87c937709a",
      "parents": [
        "d0ffb9be866519775da19c0a6790f5431c1a8dc6"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Apr 12 01:30:15 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Apr 12 01:30:15 2007 -0400"
      },
      "message": "Input: handlers - handle errors from input_open_device()\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "d0ffb9be866519775da19c0a6790f5431c1a8dc6",
      "tree": "0ded8723264a1e9e41f34ea1e05740496f317e6a",
      "parents": [
        "5b2a08262a8c952fef008154933953f083ca5766"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Apr 12 01:30:00 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Apr 12 01:30:00 2007 -0400"
      },
      "message": "Input: handlers - rename \u0027list\u0027 to \u0027client\u0027\n\nThe naming convention in input handlers was very confusing -\nclient stuctures were called lists, regular lists were also\ncalled lists making anyone looking at the code go mad.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "5b2a08262a8c952fef008154933953f083ca5766",
      "tree": "47fb54c30509a4c444613a1737a212ddda3bb05d",
      "parents": [
        "6e782584e0713ea89da151333e7fe754c8f40324"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Apr 12 01:29:46 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Apr 12 01:29:46 2007 -0400"
      },
      "message": "Input: rework handle creation code\n\n - consolidate code for binding handlers to a device\n - return error codes from handlers connect() methods back to input\n   core and log failures\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "c8e4c77277ca5db0c4ddbfb4bc628b8abad585b0",
      "tree": "07bebb34767c8c3bd0902d6c2be3f4819b30a7bf",
      "parents": [
        "55e3d9224b60df0fd2dc36bff9b538ce40fd9586"
      ],
      "author": {
        "name": "Marvin Raaijmakers",
        "email": "marvin_raaijmakers@linux-box.nl",
        "time": "Wed Mar 14 22:50:42 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Wed Mar 14 22:50:42 2007 -0400"
      },
      "message": "Input: add getkeycode and setkeycode methods\n\nAllow drivers to implement their own get and set keycode methods. This\nwill allow drivers to change their keymaps without allocating huge\ntables covering entire range of possible scancodes.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "4263cf0fac28122c8381b6f4f9441a43cd93c81f",
      "tree": "2abdac5c34cf584854677b33e5dcd0e343ee1611",
      "parents": [
        "68c2a1607cd6dd12427c9566b39756e92708713c"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Sep 14 01:32:39 2006 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Sep 14 01:32:39 2006 -0400"
      },
      "message": "Input: make input_register_handler() return error codes\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "66e66118837ed95a299328437c2d9fb4b5137352",
      "tree": "901c8b3ab9ab01b0363992b65689cafe797fcb25",
      "parents": [
        "5206c0d5ec514733dd098cf658d71327d199c7a0"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Sep 14 01:31:59 2006 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Sep 14 01:31:59 2006 -0400"
      },
      "message": "Input: constify input core\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "509ca1a9383601fdc5612d3d3ba5b981f6eb6c8b",
      "tree": "4d7b63c2b108510c11a89dc0ea45efe788fed779",
      "parents": [
        "806d41b756fecc1b13584e2b806b76d8934b1679"
      ],
      "author": {
        "name": "Anssi Hannula",
        "email": "anssi.hannula@gmail.com",
        "time": "Wed Jul 19 01:40:22 2006 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Wed Jul 19 01:40:22 2006 -0400"
      },
      "message": "Input: implement new force feedback interface\n\nImplement a new force feedback interface, in which all non-driver-specific\noperations are separated to a common module. This includes handling effect\ntype validations, locking, etc.\n\nThe effects are now file descriptor specific instead of the previous strange\nhalf-process half-fd specific behaviour. The effect memory of devices is not\nemptied if the root user opens and closes the device while another user is\nusing effects. This is a minor change and most likely no force feedback\naware programs are affected by this negatively.\n\nOtherwise the userspace interface is left unaltered.\n\nSigned-off-by: Anssi Hannula \u003canssi.hannula@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "0e739d28762e78c746cad8edd33223550a1c6a3f",
      "tree": "6fa695c3076b737b7b1848d81d75095400821e31",
      "parents": [
        "c7e8dc6ee6d59bf72f5478fa6355a27750e6c7d2"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Jul 06 00:22:43 2006 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Jul 06 00:22:43 2006 -0400"
      },
      "message": "Input: introduce input_inject_event() function\n\nCreate input_inject_event() function which is to be used by input\nhandlers as opposed to input_event() which is reserved for drivers\nimplementing input devices. The difference is that if device is\n\"grabbed\" by some process input_inject_event() will ignore events\nunless sent from the handle that is currently owns the device.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "e9c8862f19958846dd0c7b39d0f6216aad6c7bee",
      "tree": "667682c0dbbfd3678f79c06d59a17968f22cbfde",
      "parents": [
        "e340221acda6bc0bf05a0ff6e6114902c4307670"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Jul 06 00:20:47 2006 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Jul 06 00:20:47 2006 -0400"
      },
      "message": "Input: remove accept method from input_dev\n\nThis method used to enforce exclusive access to iforce devices,\nbut presenlty there are no known users of this method.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "1e0afb288e56d469ca1c583342bb9782d49333c6",
      "tree": "5d2f5d4ebc029a5361d66acebec3a8023ea05ad4",
      "parents": [
        "f60d2b111cd55c335c2b70e50d66a612d2b10856"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Mon Jun 26 01:48:47 2006 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Mon Jun 26 01:48:47 2006 -0400"
      },
      "message": "Input: fix formatting to better follow CodingStyle\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "75e1fcc0b18df0a65ab113198e9dc0e98999a08c",
      "tree": "3ac0d0d3120cbca4ee9734494e2c9a4e0775ac4f",
      "parents": [
        "ff7b86b82083f24b8637dff1528c7101c18c7f39"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Jun 23 02:05:12 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:02 2006 -0700"
      },
      "message": "[PATCH] vfs: add lock owner argument to flush operation\n\nPass the POSIX lock owner ID to the flush operation.\n\nThis is useful for filesystems which don\u0027t want to store any locking state\nin inode-\u003ei_flock but want to handle locking/unlocking POSIX locks\ninternally.  FUSE is one such filesystem but I think it possible that some\nnetwork filesystems would need this also.\n\nAlso add a flag to indicate that a POSIX locking request was generated by\nclose(), so filesystems using the above feature won\u0027t send an extra locking\nrequest in this case.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "08791e5cf62b6952ca32106aebb79b6066005de4",
      "tree": "7cb1f7bfdb2b31bbc8d504be2245df8f21a28574",
      "parents": [
        "89c9b4805a525bdd4c6e7529d06292f60ac837fc"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Sat Apr 29 01:13:21 2006 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Sat Apr 29 01:13:21 2006 -0400"
      },
      "message": "Input: ressurect EVIOCGREP and EVIOCSREP\n\nWhile writing to an event device allows to set repeat rate for an\nindividual input device there is no way to retrieve current settings\nso we need to ressurect EVIOCGREP. Also ressurect EVIOCSREP so we\nhave a symmetrical interface.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "b39787a972042ded183343b177d9c595b5704575",
      "tree": "ff0336c45ff4f8bbb3e64af5cc16bcfe75fbb54b",
      "parents": [
        "493a7e0d5614c30e1f3e56d59ab774300a2609f2"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Tue Mar 14 00:09:16 2006 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Tue Mar 14 00:09:16 2006 -0500"
      },
      "message": "Input: use kzalloc() throughout the code\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "6450578f32cdca587ae5f148e2118b2fcc36bb11",
      "tree": "91ad424aae66d72fc370dc624fca3f42d830675b",
      "parents": [
        "ab03591db110e8d195d381a68692eb37da981cdf"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Thu Jan 12 01:06:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jan 12 09:08:58 2006 -0800"
      },
      "message": "[PATCH] ia64: task_pt_regs()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bf2fcc6fdfe4f4e92bb74f062c0a1be189f3a561",
      "tree": "0bcc33f681c7e8ce6596c9323d4a1026ede84994",
      "parents": [
        "2966387b481a11a90a7bed6600fc17b4253f6980"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jan 11 22:44:06 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 19:04:53 2006 -0800"
      },
      "message": "[PATCH] x86_64: Implement is_compat_task the right way\n\nBy setting a flag during a 32bit system call only\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b9abaa3fb7328851bdeaad19e694048f0ff71d9a",
      "tree": "de56cda929b837c6b2e421b57c723939ec7df5da",
      "parents": [
        "8995b161eb142b843094dd614b80e4cce1d66352",
        "736ce43295682d060f2b93624b4a339f9af6aab1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 07 11:29:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 07 11:29:51 2006 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n"
    },
    {
      "commit": "347a8dc3b815f0c0fa62a1df075184ffe4cbdcf1",
      "tree": "a6ec76690127e87fe6efa42b6238caadd6c07e7b",
      "parents": [
        "9bbc8346fb21fad3f678220b067450e436e45dbf"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Fri Jan 06 00:19:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:53 2006 -0800"
      },
      "message": "[PATCH] s390: cleanup Kconfig\n\nSanitize some s390 Kconfig options.  We have ARCH_S390, ARCH_S390X,\nARCH_S390_31, 64BIT, S390_SUPPORT and COMPAT.  Replace these 6 options by\nS390, 64BIT and COMPAT.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3a51f7c40437077ac4a463307e9a4ae6b78755a8",
      "tree": "a28ce7937a2ac917bed4c1993da4c21a1dffb4d4",
      "parents": [
        "e4f5c82a92c2a546a16af1614114eec19120e40a"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Sun Dec 11 12:40:37 2005 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Sun Dec 11 12:40:37 2005 -0500"
      },
      "message": "Input: evdev - consolidate compat and regular code\n\nCompat and normal code mirror each other and are hard to maintain.\nWhen EV_SW was added compat_ioctl case was missed. Here is my attempt\nat consolidating the code.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "7972720aaa044d0bca40e2e1d4c176076a9f0e00",
      "tree": "fc465e331364e6c158c74a06230d2294346b4e14",
      "parents": [
        "e0be618d1e8ed0a1a94ee14025ec5e3022d2ec5b"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Mon Oct 31 01:29:37 2005 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Mon Oct 31 01:29:37 2005 -0500"
      },
      "message": "Input: evdev - allow querying SW state from compat ioctl\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "e0be618d1e8ed0a1a94ee14025ec5e3022d2ec5b",
      "tree": "fbd011fe489e46fe7a80f3edc38f79dded153ab2",
      "parents": [
        "e2f2e58e7968f8446b1078a20a18bf8ea12b4fbc"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Mon Oct 31 01:29:23 2005 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Mon Oct 31 01:29:23 2005 -0500"
      },
      "message": "Input: evdev - allow querying EV_SW bits from compat_ioctl\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "c9bcd582dfeec845b83bc948a430c9958bf839e6",
      "tree": "d17bffdfc868aa355ebd9cc56d1eeb481c0b80d8",
      "parents": [
        "ea9f240bd819f9299703283e5326da606bbb4b05"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 27 22:25:43 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 28 09:52:55 2005 -0700"
      },
      "message": "[PATCH] INPUT: Create symlinks for backwards compatibility\n\nThis creates symlinks in /sys/class/input/ to the nested class devices\nto help userspace cope with the nesting.\n\nUnfortunatly udev still needs to be updated as it can\u0027t handle symlinks\nproperly here :(\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "ea9f240bd819f9299703283e5326da606bbb4b05",
      "tree": "68b83a2a093a332c8fda8dfc695c73ebe084b014",
      "parents": [
        "b0fdfebb205fcbf394c3db39679a766b8fc4f07d"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 27 22:25:43 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 28 09:52:55 2005 -0700"
      },
      "message": "[PATCH] INPUT: rename input_dev_class to input_class to be correct.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "967ca692161d8c4e894932599592af8d62c0a895",
      "tree": "d1cb14bddd9484c0f9e58e9dd52881f172e235b9",
      "parents": [
        "23d50901617c2a8bdef509279a42d2e90f523db9"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 27 22:25:43 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 28 09:52:54 2005 -0700"
      },
      "message": "[PATCH] INPUT: move the input class devices under their new input_dev devices\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "4f00469c16b86a3dd6ed66b28c605c8430d58eeb",
      "tree": "2129fe4c1914c69d2f5acdd07c112a92a6b59339",
      "parents": [
        "74be227f728ed68bfc270153665b43fc1f0fa845"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Thu Sep 15 02:01:38 2005 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 28 09:52:52 2005 -0700"
      },
      "message": "[PATCH] Input: kill devfs references\n\nInput: remove references to devfs from input subsystem\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "53f4654272df7c51064825024340554b39c9efba",
      "tree": "e3e7b82a6bb0040ffbd267b250be2720704b98f2",
      "parents": [
        "51d172d5f3a193e4b8f76179b2e55d7a36b94117"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 27 22:25:43 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 28 09:52:52 2005 -0700"
      },
      "message": "[PATCH] Driver Core: fix up all callers of class_device_create()\n\nThe previous patch adding the ability to nest struct class_device\nchanged the paramaters to the call class_device_create().  This patch\nfixes up all in-kernel users of the function.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "d344c5e0856ad03278d8700b503762dbc8b86e12",
      "tree": "a6d893a643470a3c2580a58f3228a55fa1fd1d82",
      "parents": [
        "010988e888a0abbe7118635c1b33d049caae6b29",
        "87fc767b832ef5a681a0ff9d203c3289bc3be2bf"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Fri Sep 09 20:14:47 2005 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Fri Sep 09 20:14:47 2005 -0500"
      },
      "message": "Manual merge with Linus\n"
    },
    {
      "commit": "01703597ead8194b46932ba2bcda897e872e91e0",
      "tree": "d9340c623f7d489bc8a003920e5facb3c5d86ffa",
      "parents": [
        "21b29229086bcaf14c02b160c253095f3bb95f99"
      ],
      "author": {
        "name": "viro@ZenIV.linux.org.uk",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Fri Sep 09 20:29:12 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 14:05:54 2005 -0700"
      },
      "message": "[PATCH] trivial __user annotations (evdev)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3158106685acac8f8d4e74a17b974f160fe77c0b",
      "tree": "7712eb16eb543b5247f90b41647d08ff0a05e663",
      "parents": [
        "41b1bce80b43f7c6a6c64006b2abe3a8d52ab120"
      ],
      "author": {
        "name": "Richard Purdie",
        "email": "rpurdie@rpsys.net",
        "time": "Tue Sep 06 15:19:06 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:54 2005 -0700"
      },
      "message": "[PATCH] Input: Add a new switch event type\n\nThe corgi keyboard has need of a switch event type with slightly type to the\ninput system as recommended by the input maintainer.\n\nSigned-off-by: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Vojtech Pavlik \u003cvojtech@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "59df6bbf386d8f26870b28307d0e4f06d631685f",
      "tree": "37e6fc9afe4455defde14f307999692a080eded1",
      "parents": [
        "6fe7f2578fb4903af79abeb29bb9b9ab5eace1b5"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Sat Sep 03 15:56:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:06:08 2005 -0700"
      },
      "message": "[PATCH] mips: kludge envdev to build for 64-bit MIPS with 32-bit compat\n\nExtend the compat mode kludgeology in envdev to cover MIPS as well.\n\nOr why we should need something like is_compat_task() ...\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Vojtech Pavlik \u003cvojtech@suse.cz\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor_core@ameritech.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4cee99564db7f65a6f88e4b752da52768cde3802",
      "tree": "6c355494c3c399d2c1fc2d746171f434ded907e4",
      "parents": [
        "d2b5ffca73594e4046f405e3ef2438ce41f76fb2"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "ijc@hellion.org.uk",
        "time": "Sun Sep 04 01:41:14 2005 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Sun Sep 04 01:41:14 2005 -0500"
      },
      "message": "Input: fix checking whether new keycode fits size-wise\n\nWhen dev-\u003ekeycodesize \u003d\u003d sizeof(int) the old code produces\nincorrect result.\n\nSigned-off-by: Ian Campbell \u003cijc@hellion.org.uk\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "5ac7ba3ff599d66ffde182676f2e4fbcac61a2fe",
      "tree": "5c8e25dc2797cb0e063c38afda2dbbf292e34bd3",
      "parents": [
        "463a4f76a79bce00ca8964e0b2ebf7f10f376965"
      ],
      "author": {
        "name": "Vojtech Pavlik",
        "email": "vojtech@suse.cz",
        "time": "Sun Jul 24 00:50:03 2005 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Sun Jul 24 00:50:03 2005 -0500"
      },
      "message": "Input: check keycodesize when adjusting keymaps\n\nWhen changing key mappings we need to make sure that the new\nkeycode value can be stored in dev-\u003ekeycodesize bytes.\n\nSigned-off-by: Vojtech Pavlik \u003cvojtech@suse.cz\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "3e0777b8fa96f7073ed5d13d3bc1d573b766bef9",
      "tree": "3849e8457dd8f038ab7da025c708e275b43ea9c1",
      "parents": [
        "a94130e00038ebeb2f66901a4a4a9e05a03051c1",
        "e5119885f00874453e837e3407014b73de2f4741"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Mon Jun 27 14:47:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Mon Jun 27 14:47:31 2005 -0700"
      },
      "message": "Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/dtor/input.git manually\n\nSome manual fixups required due to clashes with the PF_FREEZE cleanups.\n"
    },
    {
      "commit": "1235686f6e67cf30c460eb77d90a6cb4be57b92f",
      "tree": "c7ef368a38c8e0c64e09d9e0e8a2a93392a1732c",
      "parents": [
        "7fe845d11ad1b4aac098d40c55275569e143c483"
      ],
      "author": {
        "name": "gregkh@suse.de",
        "email": "gregkh@suse.de",
        "time": "Tue Mar 15 14:26:30 2005 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:04 2005 -0700"
      },
      "message": "[PATCH] INPUT: move to use the new class code, instead of class_simple\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "41e979f822b34e789560ae2752f26f4a018f5d7e",
      "tree": "607585d10827bc59976c971a912cb0f2b17bfd71",
      "parents": [
        "bef3768d8fdee7e1f1488e7017937eb4bf5797a2"
      ],
      "author": {
        "name": "Vojtech Pavlik",
        "email": "vojtech@suse.cz",
        "time": "Sun May 29 02:30:15 2005 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Sun May 29 02:30:15 2005 -0500"
      },
      "message": "Input: Make EVIOSCSABS work in evdev.\n\nSigned-off-by: Vojtech Pavlik \u003cvojtech@suse.cz\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    }
  ],
  "next": "b0f71c996849539ac68ebab5edbd208bb9c0646c"
}
