)]}'
{
  "log": [
    {
      "commit": "31b6ca0af758a88e5e769b48cc6dde037ee37b96",
      "tree": "e1968d7168affb25e33e2be2d1d102f94af98af0",
      "parents": [
        "56b85f32d530d09d6805488ad00775d4e0e3baab",
        "554738da71004d96e06fb75f4772dfc3b0f47810"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 14:45:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 14:45:47 2011 -0800"
      },
      "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: (58 commits)\n  Input: wacom_w8001 - support pen or touch only devices\n  Input: wacom_w8001 - use __set_bit to set keybits\n  Input: bu21013_ts - fix misuse of logical operation in place of bitop\n  Input: i8042 - add Acer Aspire 5100 to the Dritek list\n  Input: wacom - add support for digitizer in Lenovo W700\n  Input: psmouse - disable the synaptics extension on OLPC machines\n  Input: psmouse - fix up Synaptics comment\n  Input: synaptics - ignore bogus mt packet\n  Input: synaptics - add multi-finger and semi-mt support\n  Input: synaptics - report clickpad property\n  input: mt: Document interface updates\n  Input: fix double equality sign in uevent\n  Input: introduce device properties\n  hid: egalax: Add support for Wetab (726b)\n  Input: include MT library as source for kerneldoc\n  MAINTAINERS: Update input-mt entry\n  hid: egalax: Add support for Samsung NB30 netbook\n  hid: egalax: Document the new devices in Kconfig\n  hid: egalax: Add support for Wetab\n  hid: egalax: Convert to MT slots\n  ...\n\nFixed up trivial conflict in drivers/input/keyboard/Kconfig\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": "fcd3027abbbcc26248714eddae40af3fb3c8a82e",
      "tree": "123929b6feefb01b6ec020eea76701178137b790",
      "parents": [
        "85b7720039fc000b561c20fe2aaa3b54cddae4a7"
      ],
      "author": {
        "name": "Henrik Rydberg",
        "email": "rydberg@euromail.se",
        "time": "Sat Dec 18 20:28:26 2010 +0100"
      },
      "committer": {
        "name": "Henrik Rydberg",
        "email": "rydberg@euromail.se",
        "time": "Mon Dec 20 09:37:37 2010 +0100"
      },
      "message": "Input: fix double equality sign in uevent\n\nLooking at the uevent stream for input devices, all properties are on\nthe form \"A\u003dB\" except the bitmap values, which are on the form\n\"A\u003d\u003dB\". This bug has been around at least since 2007, and the input\nuevent code has been untouched since. The recent addition of device\nproperties suggests this is a good time for a remedy.\n\nAcked-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: Henrik Rydberg \u003crydberg@euromail.se\u003e\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": "67b989a0c17e34a7c2c095e58a2f3d1b4408e3cb",
      "tree": "c076d2f0b5d4ae8726a50206042d3e3a41620fe4",
      "parents": [
        "56a8bd6dcf81693e61a712097216904f3a4ab536",
        "69479f8da68f1930b2078b2ebf6533fb00339918"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Dec 16 09:17:48 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Dec 16 09:17:48 2010 -0800"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rydberg/input-mt into next\n\nConflicts:\n\tdrivers/input/Makefile\n"
    },
    {
      "commit": "47c78e891323513e9909729b44033e2c6649e2b7",
      "tree": "828e0da90418a890653ef2f0af3cf81714fe5c80",
      "parents": [
        "c8ddb2713c624f432fa5fe3c7ecffcdda46ea0d4"
      ],
      "author": {
        "name": "Henrik Rydberg",
        "email": "rydberg@euromail.se",
        "time": "Sat Nov 27 09:16:48 2010 +0100"
      },
      "committer": {
        "name": "Henrik Rydberg",
        "email": "rydberg@euromail.se",
        "time": "Thu Dec 16 10:39:57 2010 +0100"
      },
      "message": "input: mt: Break out slots handling\n\nIn preparation for common code to handle a larger set of MT slots\ndevices, move the slots handling over to a separate file.\n\nSigned-off-by: Henrik Rydberg \u003crydberg@euromail.se\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": "864ee6cb22fd64c1f4fba8ea3f390ffd8816b563",
      "tree": "74e41ec9b5ceb47ab9d704ece42d603df390370c",
      "parents": [
        "973d168de251d46605dc00d2c7f83848a5af9fb9",
        "de391d12500ede13faa7ecadbe900a8de1f76cfa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 19 10:31:04 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 19 10:31:04 2010 -0800"
      },
      "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: fix typo in keycode validation supporting large scancodes\n  Input: aiptek - tighten up permissions on sysfs attributes\n  Input: sysrq - pass along lone Alt + SysRq\n"
    },
    {
      "commit": "de391d12500ede13faa7ecadbe900a8de1f76cfa",
      "tree": "1eead92192ccd11aebe5b734767aebfeed5dd258",
      "parents": [
        "6f07d31e46639e4b1b23de6ee88c9e079a7bf32d"
      ],
      "author": {
        "name": "Mattia Dongili",
        "email": "malattia@linux.it",
        "time": "Thu Nov 18 09:06:43 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Nov 18 09:20:42 2010 -0800"
      },
      "message": "Input: fix typo in keycode validation supporting large scancodes\n\nCheck the input_keymap_entry keycode size (u32) instead of the device\u0027s\n(void*) when validating that keycode value can be stored in the keymap.\n\nFixes: https://bugzilla.kernel.org/show_bug.cgi?id\u003d22722\n\nSigned-off-by: Mattia Dongili \u003cmalattia@linux.it\u003e\nTested-by: Norbert Preining \u003cpreining@logic.at\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "451a3c24b0135bce54542009b5fde43846c7cf67",
      "tree": "f0fbbcc155aef2a1ffcb8aa593fe7a966d0e6900",
      "parents": [
        "55f6561c6941713ab5ae9180525b026dd40b7d14"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Nov 17 16:26:55 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 17 08:59:32 2010 -0800"
      },
      "message": "BKL: remove extraneous #include \u003csmp_lock.h\u003e\n\nThe big kernel lock has been removed from all these files at some point,\nleaving only the #include.\n\nRemove this too as a cleanup.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5fdbe44d033d059cc56c2803e6b4dbd8cb4e5e39",
      "tree": "18dcde03df9d44a7e91a20472449f1f95b57da25",
      "parents": [
        "17d01f28e160f8a9c9ecda2e335d0047ec9e7388"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Nov 08 21:51:25 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Nov 11 01:01:26 2010 -0800"
      },
      "message": "Input: do not pass injected events back to the originating handler\n\nSometimes input handlers (as opposed to input devices) have a need to\ninject (or re-inject) events back into input core. For example sysrq\nfilter may want to inject previously suppressed Alt-SysRq so that user\ncan take a screen print. In this case we do not want to pass such events\nback to the same same handler that injected them to avoid loops.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "b50b521694cb7093640879d3279b88d2873f6183",
      "tree": "c797834c252a2adfb3828ce4dfc91f4b49024bb8",
      "parents": [
        "95716c0decb2ed3ff94998b6390cc8f8d6d1e748"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Nov 03 11:02:31 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Nov 03 11:04:46 2010 -0700"
      },
      "message": "Input: export input_reset_device() for use in KGDB\n\nKGDB, much like the resume process, needs to be able to mark all keys that\nwere pressed at the time we dropped into the debuggers as \"released\", since\nit is unlikely that the keys stay pressed for the entire duration of the\ndebug session.\n\nAlso we need to make sure that input_reset_device() and input_dev_suspend()\nonly attempt to change state of currenlt opened devices since closed devices\nmay not be ready to accept IO requests.\n\nTested-by: Jason Wessel \u003cjason.wessel@windriver.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": "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": "144c0f8833d0458e4369a27a53aea8856c665c41",
      "tree": "fa0ee26cc25ea7deb2e5e11095ff77e115980bfa",
      "parents": [
        "eb54ddd4d78e62647b7096e4ada7389dbdf2cea7"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Sep 03 10:31:05 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Sep 05 12:15:14 2010 -0700"
      },
      "message": "Input: fix a few typos\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "ba4d695a90c9176fca8e45d6c872bbf4e8bed315",
      "tree": "48e9cefe52865fe5d1f24268081dc87139b3618f",
      "parents": [
        "2c4e9671edfef534e9726366707d64e63d44e7e6"
      ],
      "author": {
        "name": "Henrik Rydberg",
        "email": "rydberg@euromail.se",
        "time": "Sat Aug 28 21:33:50 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Aug 28 21:39:43 2010 -0700"
      },
      "message": "Input: MT - initialize slots to unused\n\nFor MT slots, the ABS_MT_TRACKING_ID determines whether a slot is in use,\nbut currently leaves initialization up to the drivers. This patch sets the\nslot state to unused upon creation.\n\nSigned-off-by: Henrik Rydberg \u003crydberg@euromail.se\u003e\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": "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": "fd6cf3dddfb06e8e06d62990c076c25211f79eec",
      "tree": "e72184f281da6b286481e115c35f15184d050d84",
      "parents": [
        "e22739d02a13bb2099084d135f90f4ac6b6d01e1"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Jul 14 00:25:21 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Jul 14 01:23:51 2010 -0700"
      },
      "message": "Input: fix signedness warning in input_set_keycode()\n\nThe dev-\u003egetkeycode() method expects unsigned argument.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "866d7d7b4a4e1d502b136bcc8af605091fe4c7b5",
      "tree": "770e175bfcea2de9156630c2c91611d8d4dad1b8",
      "parents": [
        "3eac5c7e44f35eb07f0ecb28ce60f15b2dda1932"
      ],
      "author": {
        "name": "Oliver Neukum",
        "email": "oliver@neukum.org",
        "time": "Thu Jul 01 09:01:50 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Jul 03 13:13:23 2010 -0700"
      },
      "message": "Input: release pressed keys when resuming device\n\nAs the kernel has no way to know whether a key was released\nwhile the system was asleep, keys need to be reported released\nas the system is resumed, lest autorepeat set in.\n\nSigned-off-by: Oliver Neukum \u003coneukum@suse.de\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "00eef7bd01c7598d195699983c5290d901df19ad",
      "tree": "14ba0178fc2c5e807282132e689236965b889e91",
      "parents": [
        "250541fca717a5c9b0d3710e737b2ca32ebb6fbc",
        "014f61504af276ba9d9544d8a7401d8f8526eb73"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 15 11:49:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 15 11:49:55 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:\n  Input: wacom - switch mode upon system resume\n  Revert \"Input: wacom - merge out and in prox events\"\n  Input: matrix_keypad - allow platform to disable key autorepeat\n  Input: ALPS - add signature for HP Pavilion dm3 laptops\n  Input: i8042 - spelling fix\n  Input: sparse-keymap - implement safer freeing of the keymap\n  Input: update the status of the Multitouch X driver project\n  Input: clarify the no-finger event in multitouch protocol\n  Input: bcm5974 - retract efi-broken suspend_resume\n  Input: sparse-keymap - free the right keymap on error\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "2e2e3b96d98d5c17e9c09bc6088df3e182a71814",
      "tree": "0ed49ca3ee60a9deb465d8aa4894365bd8d3030d",
      "parents": [
        "13bad37b04c779d98983307a27f97e9caa36f9b1"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Mar 21 22:56:15 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Mar 21 23:00:51 2010 -0700"
      },
      "message": "Input: sparse-keymap - implement safer freeing of the keymap\n\nAllow calling sparse_keymap_free() before unregistering input device\nwhithout risk of racing with EVIOCGETKEYCODE and EVIOCSETKEYCODE.\nThis makes life of drivers writers easier.\n\nAcked-by: Yong Wang \u003cyong.y.wang@intel.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "2f2177c8dadbcb08c14f796ac983c5475eca1bd3",
      "tree": "719c9f14280ca717e1651653e892179fb304590a",
      "parents": [
        "77554b4d1fac6a66d4e624a6e36c020a4f5b6b64"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue Mar 09 20:38:48 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 09 22:05:57 2010 -0800"
      },
      "message": "Input: remove BKL, fix input_open_file() locking\n\nHolding the BKL in input_open_file seems pointless because it does not\nprotect against updates of input_table, and all open functions from the\nunderlying drivers have proper mutex locking.\n\nThis makes input_open_file take the input_mutex when accessing\nthe table and no lock when calling into the lower function.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Thadeu Lima de Souza Cascardo \u003ccascardo@holoscopio.com\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": "35858adbfca13678af99fb31618ef4428d6dedb0",
      "tree": "3336feaa61324486945816cb52c347733e7c0821",
      "parents": [
        "197d4db752e67160d79fed09968c2140376a80a3",
        "4b70858ba8d4537daf782defebe5f2ff80ccef2b"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Feb 28 23:55:20 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Feb 28 23:55:20 2010 -0800"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "0b7024ac4df5821347141c18e680b7166bc1cb20",
      "tree": "7a61e55e66bdd39351b3ec39ecef367588b47170",
      "parents": [
        "1e87a43080a259a0e9739377708ece163b08de8d"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Feb 02 21:08:26 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Feb 04 00:25:19 2010 -0800"
      },
      "message": "Input: add match() method to input hanlders\n\nGet rid of blacklist in input handler structure and instead allow\nhandlers to define their own match() method to perform fine-grained\nfiltering of supported devices.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "ef7995f4e46b1677f3eaaf547316e1a910b38dcb",
      "tree": "9d3fe13ae7a288f77dbc0e1b07813ce23f9106d3",
      "parents": [
        "45cdba4d376adfd30cfbda1b7d43110818d967cc"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Jan 29 23:59:12 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Jan 30 01:47:41 2010 -0800"
      },
      "message": "Input: implement input filters\n\nSometimes it is desirable to suppress certain events from reaching\ninput handlers and thus user space. One such example is Mac mouse\nbutton emulation code which catches certain key presses and converts\nthem into button clicks as if they were emitted by a virtual mouse.\nThe original key press events should be completely suppressed,\notherwise user space will be confused, and while keyboard driver\ndoes it on its own evdev is blissfully unaware of this arrangement.\n\nThis patch adds notion of \u0027filter\u0027 to the standard input handlers,\nwhich may flag event as filtered thus preventing it from reaching\nother input handlers. Filters don\u0027t (nor will they ever) have a\nnotion of priority relative to each other, input core will run all\nof them first and any one of them may mark event as filtered.\n\nThis patch is inspired by similar patch by Matthew Garret but the\nimplementation and intended usage are quite different.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "cb6ecf6f7afece066265e243657b0ac28150a7b2",
      "tree": "063906ad19c8bd9d1796312723f8e77b9b7ad5e7",
      "parents": [
        "93fb84b50fe03aabca8d9dea5d3ba521a07e8571"
      ],
      "author": {
        "name": "Henrik Rydberg",
        "email": "rydberg@euromail.se",
        "time": "Thu Jan 28 22:28:27 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Jan 28 22:32:45 2010 -0800"
      },
      "message": "Input: add the ABS_MT_PRESSURE event\n\nFor pressure-based multi-touch devices, a direct way to send sensor\nintensity data per finger is needed. This patch adds the ABS_MT_PRESSURE\nevent to the MT protocol.\n\nRequested-by: Yoonyoung Shim \u003cjy0922.shim@samsung.com\u003e\nRequested-by: Mika Kuoppala \u003cmika.kuoppala@nokia.com\u003e\nRequested-by: Peter Hutterer \u003cpeter.hutterer@who-t.net\u003e\nSigned-off-by: Henrik Rydberg \u003crydberg@euromail.se\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "7755726fe90a8b253659756e6de68c1a55aa427f",
      "tree": "a3523fa77e07854db3b8089e3066a55ea997060c",
      "parents": [
        "3bf127637e22ddf95e67e10a23c339cee3d52429",
        "92dcffb916d309aa01778bf8963a6932e4014d07"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Jan 21 23:55:25 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Jan 21 23:55:25 2010 -0800"
      },
      "message": "Merge commit \u0027v2.6.33-rc5\u0027 into next\n"
    },
    {
      "commit": "15e184afa83a45cf8bafdb9dc906b97a8fbc974f",
      "tree": "12207c7afbcd660bdb66f444f5b51d89fff0133f",
      "parents": [
        "e6edbdc52bc0755cbfe0721ca91d4fd87649bc13"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jan 11 00:05:43 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Jan 12 09:30:24 2010 -0800"
      },
      "message": "Input: add compat support for sysfs and /proc capabilities output\n\nInput core displays capabilities bitmasks in form of one or more longs printed\nin hex form and separated by spaces. Unfortunately it does not work well\nfor 32-bit applications running on 64-bit kernels since applications expect\nthat number is \"worth\" only 32 bits when kernel advances by 64 bits.\n\nFix that by ensuring that output produced for compat tasks uses 32-bit units.\n\nReported-and-tested-by: Michael Tokarev \u003cmjt@tls.msk.ru\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "92a3a58788790645c6143b5353ef065fd26110bb",
      "tree": "e84cffdd0198641ce02ae65c2449070b21710847",
      "parents": [
        "4f93df40859cf471774f6ef3ec7f2870c2e8e260"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Jan 05 17:56:01 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Jan 06 00:27:29 2010 -0800"
      },
      "message": "Input: cleanse capabilities bits before registering device\n\nTo avoid showing garbage in capability bits, zero out bitmasks absent\nfrom dev-\u003eevbit in case driver inadvertently leaves some garbage there.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "4f93df40859cf471774f6ef3ec7f2870c2e8e260",
      "tree": "78b7e983b5e6fb93319e1772ef529e8b0e763365",
      "parents": [
        "fc99ec6f4b6116305bca56a781b8b3b2ac054d27"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Jan 05 17:56:00 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Jan 06 00:26:20 2010 -0800"
      },
      "message": "Input: automatically reset KEY_RESERVED bit for all input devices\n\nKEY_RESERVED is not supposed to be reported to userspace but rather to\nmark unused entries in keymaps.\n\nAcked-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "df2d4637b0813e47ad12af3eacf6b5292c0fb164",
      "tree": "71401042b4fcc10bc72153f86a540ca20c19241b",
      "parents": [
        "010c33cc7907239ffc8f49f09ccb3dc6d84a0369"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Dec 11 21:57:31 2009 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Dec 11 23:48:49 2009 -0800"
      },
      "message": "Input: document use of input_event() function\n\nAcked-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "467832032cc07626880363efa8625719c16c04eb",
      "tree": "ee9a62c04f0b3106e412bc1b2dd1cea5566d5ca7",
      "parents": [
        "66d2a5952eab875f1286e04f738ef029afdaf013",
        "22763c5cf3690a681551162c15d34d935308c8d7"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Dec 02 23:38:13 2009 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Dec 02 23:38:13 2009 -0800"
      },
      "message": "Merge commit \u0027v2.6.32\u0027 into next\n"
    },
    {
      "commit": "66d2a5952eab875f1286e04f738ef029afdaf013",
      "tree": "6d30e807108ef7d2a56ec43271c45acc357df699",
      "parents": [
        "6ee88d713fb75ab191515f66edffa4e866386565"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Dec 01 21:54:35 2009 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Dec 01 21:57:48 2009 -0800"
      },
      "message": "Input: keyboard - fix lack of locking when traversing handler-\u003eh_list\n\nKeyboard handler should not attempt to traverse handler-\u003eh_list on\nits own, without any locking, otherwise it races with registering\nand unregistering of input handles which leads to crashes.\n\nIntroduce input_handler_for_each_handle() helper that allows safely\niterate over all handles attached to a particular handler and switch\nkeyboard handler to use it.\n\nReported-by: Jim Paradis \u003cjparadis@redhat.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "3cc96351799d3d82c3809aa6970ef537bc1af553",
      "tree": "ec2f833bfa9d112025b53e5d66b8ac95dec3d64d",
      "parents": [
        "bf3204cbff7d2606e758afb0994e8da6ae1c6c26"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Nov 12 23:19:05 2009 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Nov 12 23:20:35 2009 -0800"
      },
      "message": "Input: force LED reset on resume\n\nWe should be sending EV_LED event down to drivers upon resume even in cases\nwhen in-kernel state of the LED is off since device could come up with some\nleds turned on.\n\nReported-and-tested-by: Mikko Vinni \u003cmmvinni@yahoo.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "7a53c7f56bbfc9b0ef892e68f5cfae3d902544d1",
      "tree": "19dec256fc80ad06d631ece78b9eb68a457ce66b",
      "parents": [
        "e57130698fe3dd2b7d617d90bbf86474473cb40c",
        "012abeea669ea49636cf952d13298bb68654146a"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Nov 02 22:10:07 2009 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Nov 02 22:10:07 2009 -0800"
      },
      "message": "Merge commit \u0027v2.6.32-rc5\u0027 into for-linus\n"
    },
    {
      "commit": "be8db0b843d4eef193e996c3e31aabf15b2d7004",
      "tree": "5f07fdca273f11e280fd5c4dff1078c7c0b372a0",
      "parents": [
        "422b42fa79fa2825dc7b272ee8d52aa4bac37113",
        "3776989d2339c58ff8d8421e754603f186d7439b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 22 08:27:12 2009 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 22 08:27:12 2009 +0900"
      },
      "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: hp_sdc_rtc - fix test in hp_sdc_rtc_read_rt()\n  Input: atkbd - consolidate force release quirks for volume keys\n  Input: logips2pp - model 73 is actually TrackMan FX\n  Input: i8042 - add Sony Vaio VGN-FZ240E to the nomux list\n  Input: fix locking issue in /proc/bus/input/ handlers\n  Input: atkbd - postpone restoring LED/repeat rate at resume\n  Input: atkbd - restore resetting LED state at startup\n  Input: i8042 - make pnp_data_busted variable boolean instead of int\n  Input: synaptics - add another Protege M300 to rate blacklist\n"
    },
    {
      "commit": "1572ca2a842a839b78780d9074d2f140b31907cc",
      "tree": "1628fd4699c8bd685cef8d47906af7eee05efc7a",
      "parents": [
        "94dfb0d6334a281a979fe5bee187a3698a4dc176"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Oct 13 23:37:30 2009 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Oct 14 00:36:33 2009 -0700"
      },
      "message": "Input: fix locking issue in /proc/bus/input/ handlers\n\ninput_devices_seq_start() uses mutex_lock_interruptible() to acquire\nthe input_mutex, but doesn\u0027t properly handle the situation when the\ncall fails (for example due to interrupt). Instead of returning NULL\n(which indicates that there is no more data) we should return\nERR_PTR()-encoded error.\n\nWe also need explicit flag indicating whether input_mutex was acquired\nsince input_devices_seq_stop() is called whether input_devices_seq_start()\nwas successful or not.\n\nThe same applies to input_handlers_seq_start().\n\nReported-by: iceberg \u003cstrakh@ispras.ru\u003e\nReviewed-by: Jiri Kosina \u003cjkosina@suse.cz\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": "1c4115e595dec42aa0e81ba47ef46e35b34ed428",
      "tree": "89f61afcc135325d07f40a3bd2555d28c98a51a9",
      "parents": [
        "3ae91c21dd29e413f4111978152c14061f0984b0"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Oct 01 15:43:55 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 01 16:11:11 2009 -0700"
      },
      "message": "drivers/input/input.c: fix CONFIG_PM\u003dn warning\n\ndrivers/input/input.c:1277: warning: \u0027input_dev_reset\u0027 defined but not used\n\nAcked-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0dd52d0df02733dfc2d5f3824e41b96492305384",
      "tree": "4cfd84b7a66d71d83c624275d889136fb23a33c9",
      "parents": [
        "c37efa932598de5e30330a1414e34d9e082e0d9e",
        "fde1132374c9ba7da98a73b9a3c150dca6cf8502"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 15:39:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 15:39:36 2009 -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: add driver for Atmel AT42QT2160 Sensor Chip\n  Input: max7359 - use threaded IRQs\n  Input: add driver for Maxim MAX7359 key switch controller\n  Input: add driver for ADP5588 QWERTY I2C Keypad\n  Input: add touchscreen driver for MELFAS MCS-5000 controller\n  Input: add driver for OpenCores Keyboard Controller\n  Input: dm355evm_keys - remove dm355evm_keys_hardirq\n  Input: synaptics_i2c - switch to using __cancel_delayed_work()\n  Input: ad7879 - add support for AD7889\n  Input: atkbd - rely on input core to restore state on resume\n  Input: add generic suspend and resume for input devices\n  Input: libps2 - additional locking for i8042 ports\n"
    },
    {
      "commit": "e454cea20bdcff10ee698d11b8882662a0153a47",
      "tree": "f44581fe57787aef0a4f4dc00993a90ea8e688f6",
      "parents": [
        "78f28b7c555359c67c2a0d23f7436e915329421e"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Fri Sep 18 23:01:12 2009 +0200"
      },
      "committer": {
        "name": "Live-CD User",
        "email": "linux@linux.site",
        "time": "Sat Sep 19 12:50:38 2009 -0700"
      },
      "message": "Driver-Core: extend devnode callbacks to provide permissions\n\nThis allows subsytems to provide devtmpfs with non-default permissions\nfor the device node. Instead of the default mode of 0600, null, zero,\nrandom, urandom, full, tty, ptmx now have a mode of 0666, which allows\nnon-privileged processes to access standard device nodes in case no\nother userspace process applies the expected permissions.\n\nThis also fixes a wrong assignment in pktcdvd and a checkpatch.pl complain.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "ffd0db97196c1057f09c2ab42dd5b30e94e511d9",
      "tree": "5ac8654257d52612227c6eab1b32e13a71b9c54d",
      "parents": [
        "181d683d752c432635eda0f182ee71548c1f1820"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Sep 16 01:06:43 2009 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Sep 17 23:23:58 2009 -0700"
      },
      "message": "Input: add generic suspend and resume for input devices\n\nAutomatically turn off leds and sound effects as part of suspend\nprocess and restore led state, sounds and repeat rate at resume.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "a4dbd6740df0872cdf0a86841f75beec8381964d",
      "tree": "1093687845d89f8397d61e7df1ad8546a5a25225",
      "parents": [
        "5b2ea2f10dbb2fa91d8033993000f8664309395f"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Wed Jun 24 10:06:31 2009 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Sep 15 09:50:47 2009 -0700"
      },
      "message": "driver model: constify attribute groups\n\nLet attribute group vectors be declared \"const\".  We\u0027d\nlike to let most attribute metadata live in read-only\nsections... this is a start.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "aa5ed63e96656bb246a9439e06c7b67d455a5aa1",
      "tree": "4e32b4918279bdd1894e3080a5ee2b3350a65003",
      "parents": [
        "8a8bdcc7533b104d789d9bb3ed90da9352515e21"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Thu Apr 30 15:23:42 2009 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 15 21:30:26 2009 -0700"
      },
      "message": "Driver Core: input: add nodename for input drivers\n\nThis adds support to the input core to report the proper device name to\nuserspace for their devices.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "df391e0eda1e678add56a8e34226edf05d89af6a",
      "tree": "87d375cecc32a0784d42adb6b4e8b04fbf70dadb",
      "parents": [
        "705a76d2d22a2824f45f07d023a380293554e989"
      ],
      "author": {
        "name": "Henrik Rydberg",
        "email": "rydberg@euromail.se",
        "time": "Sat May 23 09:51:20 2009 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat May 23 09:53:18 2009 -0700"
      },
      "message": "Input: multitouch - add tracking ID to the protocol\n\nThere are a few multi-touch devices that support finger tracking\nwell in hardware, Stantum being the prime example. By exposing the\ntracking ID in the MT protocol, evdev bandwidth and cpu usage in\nuser space can be reduced.\n\nThis patch adds the ABS_MT_TRACKING_ID to the MT protocol.\n\nSigned-off-by: Henrik Rydberg \u003crydberg@euromail.se\u003e\nTested-by: Stéphane Chatty \u003cchatty@enac.fr\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "5e5ee686e3c0f8a3cbe9b75c2690326bf91af10d",
      "tree": "cfa1e26391f1252a8e47fe82cc2a76ef23e95502",
      "parents": [
        "61994a61bcedf328cb1d6e96c393fc91ce64563d"
      ],
      "author": {
        "name": "Henrik Rydberg",
        "email": "rydberg@euromail.se",
        "time": "Tue Apr 28 07:47:33 2009 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Apr 28 09:36:24 2009 -0700"
      },
      "message": "Input: add detailed multi-touch finger data report protocol\n\nIn order to utilize the full power of the new multi-touch devices, a\nway to report detailed finger data to user space is needed. This patch\nadds a multi-touch (MT) protocol which allows drivers to report details\nfor an arbitrary number of fingers.\n\nThe driver sends a SYN_MT_REPORT event via the input_mt_sync() function\nwhen a complete finger has been reported.\n\nIn order to stay compatible with existing applications, the data\nreported in a finger packet must not be recognized as single-touch\nevents. In addition, all finger data must bypass input filtering,\nsince subsequent events of the same type refer to different fingers.\n\nA set of ABS_MT events with the desired properties are defined. The\nevents are divided into categories, to allow for partial implementation.\nThe minimum set consists of ABS_MT_TOUCH_MAJOR, ABS_MT_POSITION_X and\nABS_MT_POSITION_Y, which allows for multiple fingers to be tracked.\nIf the device supports it, the ABS_MT_WIDTH_MAJOR may be used to provide\nthe size of the approaching finger. Anisotropy and direction may be\nspecified with ABS_MT_TOUCH_MINOR, ABS_MT_WIDTH_MINOR and\nABS_MT_ORIENTATION. Devices with more granular information may specify\ngeneral shapes as blobs, i.e., as a sequence of rectangular shapes\ngrouped together by a ABS_MT_BLOB_ID. Finally, the ABS_MT_TOOL_TYPE\nmay be used to specify whether the touching tool is a finger or a pen.\n\nSigned-off-by: Henrik Rydberg \u003crydberg@euromail.se\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "61994a61bcedf328cb1d6e96c393fc91ce64563d",
      "tree": "5f1dc5a2aa5413fc9a855d83ac643230333ad18d",
      "parents": [
        "4c57e379f4e318847dd06f60c7e1ff4d8bde1bdb"
      ],
      "author": {
        "name": "Henrik Rydberg",
        "email": "rydberg@euromail.se",
        "time": "Tue Apr 28 07:45:31 2009 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Apr 28 09:36:16 2009 -0700"
      },
      "message": "Input: allow certain EV_ABS events to bypass all filtering\n\nWith the upcoming multi-touch interface as an example, there is\na need to make certain that all reported events actually get passed\nto the event handler. This patch equips the input core with the\nability to bypass all filtering for certain EV_ABS events.\n\nSigned-off-by: Henrik Rydberg \u003crydberg@euromail.se\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "0c387ec88abf4f1ddfe8c3be10ea981bc447b406",
      "tree": "7510842a16aa54e3fec96aed2b3126109cda8d85",
      "parents": [
        "ba28f22e7cf16cb310bb491cbb3f7d0d5d1f5c5d",
        "3f3e7c6e139f704e2f48ea3b45ff7724a8d46456"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Apr 16 08:51:52 2009 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Apr 16 08:51:52 2009 -0700"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "b79e83bdd961ec9b862191c0df51aaeb3cb85664",
      "tree": "c8cb55afbc03e868d9ea013cafce559d10ff8e78",
      "parents": [
        "7c46e23681ebca23249806b379125cf72b7435b6"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Sat Apr 11 16:50:15 2009 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Apr 11 17:09:14 2009 -0700"
      },
      "message": "Input: remove unnecessary synchronize_rcu() call\n\nThere is no need to issue serialize_rcu() after adding a new handle\nto the list of handles associated with the device because new events\nwill \"see\" the new handle in the list immediately. Remove it so we\ncan boot a little bit faster.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "ba28f22e7cf16cb310bb491cbb3f7d0d5d1f5c5d",
      "tree": "6d58e91731385281436da191e82c56cd1627482f",
      "parents": [
        "577c9c456f0e1371cbade38eaf91ae8e8a308555",
        "59cc1dd97ca9ac0363ef2f770901fbd86e2b970a"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Apr 08 00:00:33 2009 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Apr 08 00:00:33 2009 -0700"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "99b76233803beab302123d243eea9e41149804f3",
      "tree": "398178210fe66845ccd6fa4258ba762a87e023ad",
      "parents": [
        "3dec7f59c370c7b58184d63293c3dc984d475840"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Mar 25 22:48:06 2009 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 31 01:14:44 2009 +0400"
      },
      "message": "proc 2/2: remove struct proc_dir_entry::owner\n\nSetting -\u003eowner as done currently (pde-\u003eowner \u003d THIS_MODULE) is racy\nas correctly noted at bug #12454. Someone can lookup entry with NULL\n-\u003eowner, thus not pinning enything, and release it later resulting\nin module refcount underflow.\n\nWe can keep -\u003eowner and supply it at registration time like -\u003eproc_fops\nand -\u003edata.\n\nBut this leaves -\u003eowner as easy-manipulative field (just one C assignment)\nand somebody will forget to unpin previous/pin current module when\nswitching -\u003eowner. -\u003eproc_fops is declared as \"const\" which should give\nsome thoughts.\n\n-\u003eread_proc/-\u003ewrite_proc were just fixed to not require -\u003eowner for\nprotection.\n\nrmmod\u0027ed directories will be empty and return \".\" and \"..\" -- no harm.\nAnd directories with tricky enough readdir and lookup shouldn\u0027t be modular.\nWe definitely don\u0027t want such modular code.\n\nRemoving -\u003eowner will also make PDE smaller.\n\nSo, let\u0027s nuke it.\n\nKudos to Jeff Layton for reminding about this, let\u0027s say, oversight.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12454\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "fa88661224946145819a904cef2ec7dd5c9c78bc",
      "tree": "96bf48261022a21a35c9278b7cea8c9752b061f9",
      "parents": [
        "d15c22e78674f9a5bc0de0932a43abe1aafae303"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Mar 04 00:52:20 2009 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Mar 08 16:34:55 2009 -0700"
      },
      "message": "Input: fix polling of /proc/bus/input/devices\n\nTested-by: Alessio Sangalli \u003calesan@manoweb.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "e7b5c1ef4d87426da0b689a0a4fa67edda02ea5c",
      "tree": "937c51ff46caa827092da1389e344fbfaeb90481",
      "parents": [
        "b0ee0d3eb31a163c958f2960906c44bcdfdc607b"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Jan 29 23:17:52 2009 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Jan 29 23:43:21 2009 -0800"
      },
      "message": "Input: stop autorepeat timer on key release\n\nWhenever you press and then release a key, the CPU wakes up\nthree times:\n * press\n * release\n * autorepeat timer exactly 250ms after press\n\nThe autorepeat timer has nothing to do, obviously, since you already\nhave released the key, so stop it on key release.\n\n[dtor@mail.ru: This changes autorepeat behavior a bit since we now stop\n autorepeat even if key that is being released is not the one that is\n being auto-repeated, but I believe the new behavior is better.]\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\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": "908cf4b925e419bc74f3297b2f0e51d6f8a81da2",
      "tree": "6c2da79366d4695a9c2560ab18259eca8a2a25b4",
      "parents": [
        "92c49890922d54cba4b1eadeb0b185773c2c9570",
        "14b395e35d1afdd8019d11b92e28041fad591b71"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jul 21 00:55:14 2008 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jul 21 00:55:14 2008 -0400"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 into next\n"
    },
    {
      "commit": "c98122828111d3eeb29bd2d51496e300b4e5356e",
      "tree": "6c50b27a2c5fcb96e3309e4f8c433ba43b6365ce",
      "parents": [
        "15439dd37f92f930ac7fc65a4f261834e4215bb0"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jun 02 01:02:40 2008 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jun 30 09:35:18 2008 -0400"
      },
      "message": "Input: don\u0027t reset sync flag when ignoring event\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "2edbf8537edc62c9b0ef75e7025d01e8b6a48707",
      "tree": "ce6127e2a663c91603bf08cbeab59602f16bea19",
      "parents": [
        "702e57d9ef7002f8d362faa6ddebc59e6d43fa05"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Thu May 15 10:37:16 2008 -0600"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Fri Jun 20 14:05:47 2008 -0600"
      },
      "message": "Input: cdev lock_kernel() pushdown\n\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\n"
    },
    {
      "commit": "c7705f3449c7edd5c1744871097f93977227afc4",
      "tree": "d2f121a4b1ae3ae458db76ec0210ea2172c31e5a",
      "parents": [
        "1b50221738108c438d5f25c7a043fb89e9e27044"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Apr 29 01:02:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:22 2008 -0700"
      },
      "message": "drivers: use non-racy method for proc entries creation (2)\n\nUse proc_create()/proc_create_data() to make sure that -\u003eproc_fops and -\u003edata\nbe setup before gluing PDE to main tree.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Peter Osterlund \u003cpetero2@telia.com\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nCc: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nCc: Bjorn Helgaas \u003cbjorn.helgaas@hp.com\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9c37066d888bf6e1b96ad12304971b3ddeabbad0",
      "tree": "87f39924be4d36b25918cf7a90eb0db7743cba99",
      "parents": [
        "5e971dce0b2f6896e02372512df0d1fb0bfe2d55"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Apr 29 01:01:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:18 2008 -0700"
      },
      "message": "proc: remove proc_bus\n\nRemove proc_bus export and variable itself. Using pathnames works fine\nand is slightly more understandable and greppable.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cec69c376be132a6afdc55b8090a389eaa3cd770",
      "tree": "ca4ae043dd0b8cec803bd06b8286d3111e1d5c1f",
      "parents": [
        "3f79b1e94002791a42837a46b5817e87a0ac0873"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@computergmbh.de",
        "time": "Thu Jan 31 00:43:32 2008 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Jan 31 00:43:32 2008 -0500"
      },
      "message": "Input: constify function pointer tables (seq_operations)\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@computergmbh.de\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "0c1efd365306c9b04df5abdd41e9b4dc721e84fb",
      "tree": "8afc12816fd08cb38e6651eb18c1645c1ae13278",
      "parents": [
        "3eaeb9c951d060fff71bcdc327eb48ee52ed1c0c"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jan 21 01:08:24 2008 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jan 21 01:11:08 2008 -0500"
      },
      "message": "Input: remove cdev from input_dev structure\n\nCdev field was obsolete and provided only for backward compatibility\nsince conversion of input core from class devices to regular devices.\nIt is time to remove it.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\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": "ed2fa4dd41adcac0b82dea029bfb7d856a899258",
      "tree": "a6d1dd5eb1641c6ab30dc5d2feac3d5910b15777",
      "parents": [
        "9fe4f2aadc3067e36f211f9d8a01634bbc4f7eb4"
      ],
      "author": {
        "name": "Richard Purdie",
        "email": "rpurdie@rpsys.net",
        "time": "Thu Jan 03 10:46:21 2008 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Jan 03 10:46:21 2008 -0500"
      },
      "message": "Input: pass EV_PWR events to event handlers\n\ninput_handle_event() used to pass EV_PWR events to event handlers\nbut no longer does so in 2.6.23. Modules to trigger power management\nevents based on input power events exist but rely on the EV_PWR events\nbeing passed to the input event handlers.\n\nSigned-off-by: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "22d1c398e852e7f0ace3482e662886386ef15725",
      "tree": "a369ec1b37589ebe530f6726b475e3c34b5678c8",
      "parents": [
        "35baef2afb6270ff731b4d766f0b163c3912304f"
      ],
      "author": {
        "name": "Dmitry Baryshkov",
        "email": "dbaryshkov@gmail.com",
        "time": "Fri Dec 14 01:21:03 2007 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Dec 14 01:21:03 2007 -0500"
      },
      "message": "Input: Handle EV_PWR type of input caps in input_set_capability.\n\nSigned-off-by: Dmitry Baryshkov \u003cdbaryshkov@gmail.com\u003e\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": "7eff2e7a8b65c25920207324e56611150eb1cd9a",
      "tree": "02a0eeba9d25d996233e30c18f258dfae0ae2139",
      "parents": [
        "8380770c842faef3001e44662953d64ad9a93663"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Tue Aug 14 15:15:12 2007 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:01 2007 -0700"
      },
      "message": "Driver core: change add_uevent_var to use a struct\n\nThis changes the uevent buffer functions to use a struct instead of a\nlong list of parameters. It does no longer require the caller to do the\nproper buffer termination and size accounting, which is currently wrong\nin some places. It fixes a known bug where parts of the uevent\nenvironment are overwritten because of wrong index calculations.\n\nMany thanks to Mathieu Desnoyers for finding bugs and improving the\nerror handling.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "8006479c9b75fb6594a7b746af3d7f1fbb68f18f",
      "tree": "1c1cd28f3fec192fa3e15f3042b4f087b43806d4",
      "parents": [
        "501cc54c4d2b0c2bbae1a6490b0e547be46fc09f"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Aug 30 00:22:11 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Aug 30 00:22:11 2007 -0400"
      },
      "message": "Input: implement proper locking in input core\n\nAlso add some kerneldoc documentation to input.h\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "ad5d972cdad41ab4d6bfb95f656e508707447c95",
      "tree": "63b3eb6b47ecd364b9d501696e5caeba2b6640bb",
      "parents": [
        "080c652d6d68e5524de800b32f0701f9c6834f23"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@sw.ru",
        "time": "Wed Jul 18 00:38:32 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Wed Jul 18 00:38:32 2007 -0400"
      },
      "message": "Input: switch to using seq_list_xxx helpers\n\nThis is essentially just a renaming of the existing functions\nas copies of seq_list_start() and seq_list_next() already existed\nin the input.c.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\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": "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": "534565f254490227e3bec20d50f387800960acd9",
      "tree": "7e4a8ec054f21e9d709e5dd25fb8a4a0673cc1bb",
      "parents": [
        "b9973954c5f3264a2afa6ec357adb542f4b76e06"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Wed Apr 25 00:53:18 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Wed Apr 25 00:53:18 2007 -0400"
      },
      "message": "Input: add input_set_capability() helper\n\nAdd input_set_capability() helper used to indicate that an input\ndevice supports a certain event without need to manipulate bitmaps\ndirectly.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "88a447a030bfec9f1e8666daf27d9d73c8c92448",
      "tree": "950840ba1271c2129d48692f4deab2fa661bd0a5",
      "parents": [
        "7791bdae71243050132ede7ea1558c828b69458f"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Apr 12 01:34:47 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Apr 12 01:34:47 2007 -0400"
      },
      "message": "Input: prepare to switching to struct device\n\nIn preparation to switching to struct device and class device\ngoing away provide an alias to allow drivers that create devices\nto use either input_dev-\u003ecdev.dev or input_dev-\u003edev.parent to\nput them into sysfs tree. The former will go away once conversion\nto struct device is complete.\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": "54f9e36cb83e7da17dc0596d365fe019a25c226f",
      "tree": "815be80fd0a7bbdb15349d2bbc30b557da3d7300",
      "parents": [
        "c8e4c77277ca5db0c4ddbfb4bc628b8abad585b0"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Fri Mar 16 00:57:25 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Fri Mar 16 00:57:25 2007 -0400"
      },
      "message": "Input: simplify input_free_device()\n\nNow that sysfs attributes that were marked for deletion can\u0027t access\ntheir devices we do not need to set name, phys and uniq to NULL.\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": "cb9def4dff9fe7e3d3114eba4e2d89f52265e22c",
      "tree": "c1b70080ee3c1f1b621c6f4573d9fe451e6c9c30",
      "parents": [
        "15e03ae811475c2beebfde18717935ee9ce64617"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Wed Mar 07 23:20:26 2007 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Wed Mar 07 23:20:26 2007 -0500"
      },
      "message": "Input: let driver core create class device attribute groups\n\nRely on device core to create attribute groups for input devices\ninstead of open-coding it.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "15e03ae811475c2beebfde18717935ee9ce64617",
      "tree": "c100e95b91e04408d14e16aa29b897001c77e9cf",
      "parents": [
        "bc413c9563db6d596e841b2756ed3fccc48de5c0"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Wed Mar 07 23:20:17 2007 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Wed Mar 07 23:20:17 2007 -0500"
      },
      "message": "Input: export \u0027uniq\u0027 in /proc/bus/input/devices\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "1efa770f8ef0bfe12cd004f2e1f75eefcd8699d3",
      "tree": "7131705511de28a8774d4fc67d2d4ae1277fc5b6",
      "parents": [
        "82dd9eff4bf3b17f5f511ae931a1f350c36ca9eb"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Sun Feb 18 01:40:37 2007 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Sun Feb 18 01:40:37 2007 -0500"
      },
      "message": "Input: do not lock device when showing name, phys and uniq\n\nNow that sysfs attributes return -ENODEV once driver requests their\nremoval we do not need to handle scenario when data is deleted from\nunder our feet and can simplify the code.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "cd354f1ae75e6466a7e31b727faede57a1f89ca5",
      "tree": "09a2da1672465fefbc7fe06ff4e6084f1dd14c6b",
      "parents": [
        "3fc605a2aa38899c12180ca311f1eeb61a6d867e"
      ],
      "author": {
        "name": "Tim Schmielau",
        "email": "tim@physik3.uni-rostock.de",
        "time": "Wed Feb 14 00:33:14 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 14 08:09:54 2007 -0800"
      },
      "message": "[PATCH] remove many unneeded #includes of sched.h\n\nAfter Al Viro (finally) succeeded in removing the sched.h #include in module.h\nrecently, it makes sense again to remove other superfluous sched.h includes.\nThere are quite a lot of files which include it but don\u0027t actually need\nanything defined in there.  Presumably these includes were once needed for\nmacros that used to live in sched.h, but moved to other header files in the\ncourse of cleaning it up.\n\nTo ease the pain, this time I did not fiddle with any header files and only\nremoved #includes from .c-files, which tend to cause less trouble.\n\nCompile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,\narm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,\nallmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all\nconfigs in arch/arm/configs on arm.  I also checked that no new warnings were\nintroduced by the patch (actually, some warnings are removed that were emitted\nby unnecessarily included header files).\n\nSigned-off-by: Tim Schmielau \u003ctim@physik3.uni-rostock.de\u003e\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b8693c0617e972fc0b2fd1ebf8de97e15b656c3",
      "tree": "3eb7dfbc8d5e4031e4992bdd566e211f5ada71f3",
      "parents": [
        "5dfe4c964a0dd7bb3a1d64a4166835a153146207"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Feb 12 00:55:32 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:45 2007 -0800"
      },
      "message": "[PATCH] mark struct file_operations const 3\n\nMany struct file_operations in the kernel can be \"const\".  Marking them const\nmoves these to the .rodata section, which avoids false sharing with potential\ndirty data.  In addition it\u0027ll catch accidental writes at compile time to\nthese shared resources.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1447190e39847cc2cc8a826e7061989c83ff4362",
      "tree": "22353af22bc854d8a203b3cb8a4281de607a48bd",
      "parents": [
        "b435fdcda126db42343b8055d04a0a27c229717b"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Nov 02 23:26:55 2006 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Nov 02 23:26:55 2006 -0500"
      },
      "message": "Input: add comments to input_{allocate|free}_device()\n\nHopefully this will stop people from using input_free_device()\nincorrectly.\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": "68c2a1607cd6dd12427c9566b39756e92708713c",
      "tree": "c3fc9a44a66f90bbdb08426886f14c664dfbaffc",
      "parents": [
        "655816e49867082d13ece0da31d76e12cc0de4a5"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Sep 14 01:32:28 2006 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Sep 14 01:32:28 2006 -0400"
      },
      "message": "Input: remove cruft that was needed for transition to sysfs\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "655816e49867082d13ece0da31d76e12cc0de4a5",
      "tree": "6217dd7134def6cccdc90d41491c87c32591a2f4",
      "parents": [
        "66e66118837ed95a299328437c2d9fb4b5137352"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Sep 14 01:32:14 2006 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Sep 14 01:32:14 2006 -0400"
      },
      "message": "Input: fix input module refcounting\n\nNow that input_free_device is basically an alias for input_put_device\nwe need to acquire a reference to input module right when we allocate\ndevice because input_dev_release releases reference to input module\nunconditionally.\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": "6d2750c167d47a97936cf4415165205f945c08f8",
      "tree": "9f07d5e0fe6c3145f250b36e789e367cdca73e75",
      "parents": [
        "e38de678f6b19be3e46a678ec4deeaa7fa0fc140"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Sun Sep 10 21:56:06 2006 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Sun Sep 10 21:56:06 2006 -0400"
      },
      "message": "Input: send key up events at disconnect\n\nEmit key up events for all pressed keys/buttons when disconnecting\nan input device. Cures \"stuck\" enter key effect when unloading\nkeyboard module.\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": "b6d786dbe6fc19b51edd6cf6de84fd65b702c800",
      "tree": "999b39ed26d3c51278d469f5ea7c1d5a7b49eaaa",
      "parents": [
        "cb78623517ca08a035a3f69c0ca6d68a0123e649"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Wed Jul 19 01:08:51 2006 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Wed Jul 19 01:08:51 2006 -0400"
      },
      "message": "Input: add missing handler-\u003estart() call\n\nThe start() method need to be called every time we create\na new handle. This includes not only registering new devices\nbut also when registering new handlers.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "a2b2ed2ce20ae6c335a27ae5bf8580f385014e70",
      "tree": "ca0ba68a0dd8dfc1e737cc41ca686d91e269aa0a",
      "parents": [
        "b53174fb5a0e47a19e10b8ef74ab0c12a19f92dc"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sat Jul 15 01:17:38 2006 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Sat Jul 15 01:17:38 2006 -0400"
      },
      "message": "Input: fix list iteration in input_release_device()\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\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": "c7e8dc6ee6d59bf72f5478fa6355a27750e6c7d2",
      "tree": "fb728aee7806ed08f23cb6e24749d3ce6030bb21",
      "parents": [
        "e9c8862f19958846dd0c7b39d0f6216aad6c7bee"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Jul 06 00:21:03 2006 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Jul 06 00:21:03 2006 -0400"
      },
      "message": "Input: add start() method to input handlers\n\nThe new start() method is called immediately after connect() and also\nwhen \"grabbed\" device is released by its owner. This will allow input\nhandlers to re-synchronize state of once-grabbed device with the rest\nof devices.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    }
  ],
  "next": "e9c8862f19958846dd0c7b39d0f6216aad6c7bee"
}
