)]}'
{
  "log": [
    {
      "commit": "8c127f0717b438e6abc3d92d4ae248c4224b9dcb",
      "tree": "eed2a50bf743fabe68f1f59f1537de8e3f2548d1",
      "parents": [
        "b73077eb03f510a84b102fb97640e595a958403c"
      ],
      "author": {
        "name": "Hans Petter Selasky",
        "email": "hselasky@c2i.net",
        "time": "Wed May 25 09:24:32 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed May 25 09:24:58 2011 -0700"
      },
      "message": "Input: properly assign return value of clamp() macro.\n\n[dtor@mail.ru: added mousedev changes]\nSigned-off-by: Hans Petter Selasky \u003chselasky@c2i.net\u003e\nCc: stable@kernel.org\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "7cbbb758d3c93b24b45b169af55440d2e7d5b7f6",
      "tree": "2eda8bad7a0f92c67b2255e9076e892309e85011",
      "parents": [
        "1201e7e67634624aec89317cf308cd0d3d8d4770"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed May 11 15:38:10 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu May 12 08:28:57 2011 -0700"
      },
      "message": "Input: remove useless synchronize_rcu() calls\n\nThere is no need to call synchronize_rcu() after a list insertion,\nor a NULL-\u003eptr assignment.\n\nHowever, the reverse operations do need this call.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "da0c490115de026618a7fdcd886602da44392a50",
      "tree": "b61dae8d525fa765151adb8df5456a1e9880a773",
      "parents": [
        "4eb3c30b2e034b673df3e8f21b497e39f3911a02"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Nov 29 23:33:07 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Nov 30 23:10:26 2010 -0800"
      },
      "message": "Input: use pr_fmt and pr_\u003clevel\u003e\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "3a99c6319064af3f2e18eb929f638d555dbf7a62",
      "tree": "e611927f41142123dc8efed7e07a3a91151edb01",
      "parents": [
        "1dfd166e93f98892aa4427069a23ed73259983c8",
        "49327ad2bbbaf1945d5ba431522201574219d150"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 07:59:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 07:59:01 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (75 commits)\n  Input: wacom - specify Cinitq supported tools\n  Input: ab8500-ponkey - fix IRQ freeing in error path\n  Input: adp5588-keys - use more obvious i2c_device_id name string\n  Input: ad7877 - switch to using threaded IRQ\n  Input: ad7877 - use attribute group to control visibility of attributes\n  Input: serio - add support for PS2Mult multiplexer protocol\n  Input: wacom - properly enable runtime PM\n  Input: ad7877 - filter events where pressure is beyond the maximum\n  Input: ad7877 - implement EV_KEY:BTN_TOUCH reporting\n  Input: ad7877 - implement specified chip select behavior\n  Input: hp680_ts_input - use cancel_delayed_work_sync()\n  Input: mousedev - correct lockdep annotation\n  Input: ads7846 - switch to using threaded IRQ\n  Input: serio - support multiple child devices per single parent\n  Input: synaptics - simplify pass-through port handling\n  Input: add ROHM BU21013 touch panel controller support\n  Input: omap4-keypad - wake-up on events \u0026 long presses\n  Input: omap4-keypad - fix interrupt line configuration\n  Input: omap4-keypad - SYSCONFIG register configuration\n  Input: omap4-keypad - use platform device helpers\n  ...\n"
    },
    {
      "commit": "f74eef95e33a07379aa2b950c7f313cbfd55ebbe",
      "tree": "be9f959dc8ec4053ec6161e3c9049de91c474239",
      "parents": [
        "2991a1ca6e9b13b639a82c0eec0cbc191bf1f42f"
      ],
      "author": {
        "name": "Hitoshi Mitake",
        "email": "mitake@dcl.info.waseda.ac.jp",
        "time": "Wed Oct 13 11:35:40 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Oct 17 21:11:36 2010 -0700"
      },
      "message": "Input: mousedev - correct lockdep annotation\n\nWhen annotating mutex to avoid false lockdep reports we should not\nbe using MOUSEDEV_MIX as lock subclass but rather SINGLE_DEPTH_NESTING.\n\nSigned-off-by: Hitoshi Mitake \u003cmitake@dcl.info.waseda.ac.jp\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "6038f373a3dc1f1c26496e60b6c40b164716f07e",
      "tree": "a0d3bbd026eea41b9fc36b8c722cbaf56cd9f825",
      "parents": [
        "1ec5584e3edf9c4bf2c88c846534d19cf986ba11"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Aug 15 18:52:59 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Oct 15 15:53:27 2010 +0200"
      },
      "message": "llseek: automatically add .llseek fop\n\nAll file_operations should get a .llseek operation so we can make\nnonseekable_open the default for future file operations without a\n.llseek pointer.\n\nThe three cases that we can automatically detect are no_llseek, seq_lseek\nand default_llseek. For cases where we can we can automatically prove that\nthe file offset is always ignored, we use noop_llseek, which maintains\nthe current behavior of not returning an error from a seek.\n\nNew drivers should normally not use noop_llseek but instead use no_llseek\nand call nonseekable_open at open time.  Existing drivers can be converted\nto do the same when the maintainer knows for certain that no user code\nrelies on calling seek on the device file.\n\nThe generated code is often incorrectly indented and right now contains\ncomments that clarify for each added line why a specific variant was\nchosen. In the version that gets submitted upstream, the comments will\nbe gone and I will manually fix the indentation, because there does not\nseem to be a way to do that using coccinelle.\n\nSome amount of new code is currently sitting in linux-next that should get\nthe same modifications, which I will do at the end of the merge window.\n\nMany thanks to Julia Lawall for helping me learn to write a semantic\npatch that does all this.\n\n\u003d\u003d\u003d\u003d\u003d begin semantic patch \u003d\u003d\u003d\u003d\u003d\n// This adds an llseek\u003d method to all file operations,\n// as a preparation for making no_llseek the default.\n//\n// The rules are\n// - use no_llseek explicitly if we do nonseekable_open\n// - use seq_lseek for sequential files\n// - use default_llseek if we know we access f_pos\n// - use noop_llseek if we know we don\u0027t access f_pos,\n//   but we still want to allow users to call lseek\n//\n@ open1 exists @\nidentifier nested_open;\n@@\nnested_open(...)\n{\n\u003c+...\nnonseekable_open(...)\n...+\u003e\n}\n\n@ open exists@\nidentifier open_f;\nidentifier i, f;\nidentifier open1.nested_open;\n@@\nint open_f(struct inode *i, struct file *f)\n{\n\u003c+...\n(\nnonseekable_open(...)\n|\nnested_open(...)\n)\n...+\u003e\n}\n\n@ read disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n   *off \u003d E\n|\n   *off +\u003d E\n|\n   func(..., off, ...)\n|\n   E \u003d *off\n)\n...+\u003e\n}\n\n@ read_no_fpos disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ write @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n  *off \u003d E\n|\n  *off +\u003d E\n|\n  func(..., off, ...)\n|\n  E \u003d *off\n)\n...+\u003e\n}\n\n@ write_no_fpos @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ fops0 @\nidentifier fops;\n@@\nstruct file_operations fops \u003d {\n ...\n};\n\n@ has_llseek depends on fops0 @\nidentifier fops0.fops;\nidentifier llseek_f;\n@@\nstruct file_operations fops \u003d {\n...\n .llseek \u003d llseek_f,\n...\n};\n\n@ has_read depends on fops0 @\nidentifier fops0.fops;\nidentifier read_f;\n@@\nstruct file_operations fops \u003d {\n...\n .read \u003d read_f,\n...\n};\n\n@ has_write depends on fops0 @\nidentifier fops0.fops;\nidentifier write_f;\n@@\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n...\n};\n\n@ has_open depends on fops0 @\nidentifier fops0.fops;\nidentifier open_f;\n@@\nstruct file_operations fops \u003d {\n...\n .open \u003d open_f,\n...\n};\n\n// use no_llseek if we call nonseekable_open\n////////////////////////////////////////////\n@ nonseekable1 depends on !has_llseek \u0026\u0026 has_open @\nidentifier fops0.fops;\nidentifier nso ~\u003d \"nonseekable_open\";\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d nso, ...\n+.llseek \u003d no_llseek, /* nonseekable */\n};\n\n@ nonseekable2 depends on !has_llseek @\nidentifier fops0.fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d open_f, ...\n+.llseek \u003d no_llseek, /* open uses nonseekable */\n};\n\n// use seq_lseek for sequential files\n/////////////////////////////////////\n@ seq depends on !has_llseek @\nidentifier fops0.fops;\nidentifier sr ~\u003d \"seq_read\";\n@@\nstruct file_operations fops \u003d {\n...  .read \u003d sr, ...\n+.llseek \u003d seq_lseek, /* we have seq_read */\n};\n\n// use default_llseek if there is a readdir\n///////////////////////////////////////////\n@ fops1 depends on !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier readdir_e;\n@@\n// any other fop is used that changes pos\nstruct file_operations fops \u003d {\n... .readdir \u003d readdir_e, ...\n+.llseek \u003d default_llseek, /* readdir is present */\n};\n\n// use default_llseek if at least one of read/write touches f_pos\n/////////////////////////////////////////////////////////////////\n@ fops2 depends on !fops1 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read.read_f;\n@@\n// read fops use offset\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d default_llseek, /* read accesses f_pos */\n};\n\n@ fops3 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+\t.llseek \u003d default_llseek, /* write accesses f_pos */\n};\n\n// Use noop_llseek if neither read nor write accesses f_pos\n///////////////////////////////////////////////////////////\n\n@ fops4 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !fops3 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\nidentifier write_no_fpos.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n .read \u003d read_f,\n...\n+.llseek \u003d noop_llseek, /* read and write both use no f_pos */\n};\n\n@ depends on has_write \u0026\u0026 !has_read \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write_no_fpos.write_f;\n@@\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+.llseek \u003d noop_llseek, /* write uses no f_pos */\n};\n\n@ depends on has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\n@@\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d noop_llseek, /* read uses no f_pos */\n};\n\n@ depends on !has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\n@@\nstruct file_operations fops \u003d {\n...\n+.llseek \u003d noop_llseek, /* no read or write fn */\n};\n\u003d\u003d\u003d\u003d\u003d End semantic patch \u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "268ba5c05b82af575819bd719a2facb2a3169260",
      "tree": "8ce615e190e39bbc24e689e221a39390cc8d9fa7",
      "parents": [
        "8905aaafb4b5d9764c5b4b54c7d03eb41bb0a7e9"
      ],
      "author": {
        "name": "Christoph Fritz",
        "email": "chf.fritz@googlemail.com",
        "time": "Tue Aug 24 00:33:37 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Aug 25 07:50:44 2010 -0700"
      },
      "message": "Input: mousedev - fix regression of inverting axes\n\nIntroduced by 987a6c0298260b7aa40702b349282554d6180e4b a swap in max/min\ncalculation gets fixed by this patch.\n\nReported-by: Bruno Prémont \u003cbonbons@linux-vserver.org\u003e\nSigned-off-by: Christoph Fritz \u003cchf.fritz@googlemail.com\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": "4d4bf995ea873cc213c5abc5402af46ef490b8fd",
      "tree": "ae150da8d3053ce30f49509c8c030c6a9c53ccef",
      "parents": [
        "20da92de8ec3c1d4ba7e5aca322d38b6ce634932"
      ],
      "author": {
        "name": "Julien Moutinho",
        "email": "julm+linux@savines.alpes.fr.eu.org",
        "time": "Thu Jul 15 23:27:56 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Jul 15 23:52:52 2010 -0700"
      },
      "message": "Input: mousedev - signal that device is writable in mousedev_poll()\n\nThe Microsoft ImPS/2 mouse protocol being bidirectionnal (sic)\none may have to write in /dev/input/mice; and that works better\nif select() does not hang.\n\nSigned-off-by: Julien Moutinho \u003cjulm+linux@savines.alpes.fr.eu.org\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": "c90c6a885ac9827921e8f94f3ce4360ae11148f1",
      "tree": "52428d528bc08f41eb8758ceb5130e3c05ed5737",
      "parents": [
        "3dd1b39497b6820219581af16e6a8831a582bb3a"
      ],
      "author": {
        "name": "Thadeu Lima de Souza Cascardo",
        "email": "cascardo@holoscopio.com",
        "time": "Tue Mar 09 20:38:47 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 09 22:05:09 2010 -0800"
      },
      "message": "Input: mousedev - remove BKL\n\nThere\u0027s no need for BKL in mousedev, relevan protection is provided by\na private mutex.\n\nSigned-off-by: Thadeu Lima de Souza Cascardo \u003ccascardo@holoscopio.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\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": "3d5cb60ef3042ac479dab82e5a945966a0d54d53",
      "tree": "08793f3c88b8d218fc934b3769bcc4e2aee993c9",
      "parents": [
        "7e044e056a6aa0dc695db50461d7b326fde15e8b"
      ],
      "author": {
        "name": "Thadeu Lima de Souza Cascardo",
        "email": "cascardo@holoscopio.com",
        "time": "Sat May 09 16:08:04 2009 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon May 11 00:11:43 2009 -0700"
      },
      "message": "Input: simplify name handling for certain input handles\n\nFor evdev, joydev and mousedev, instead of having a separate character array\nholding name of the handle, use struct devce\u0027s name which is the same.\n\nSigned-off-by: Thadeu Lima de Souza Cascardo \u003ccascardo@holoscopio.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "60aa49243d09afc873f082567d2e3c16634ced84",
      "tree": "bb7c8d9668b35a3aa4e90d0a62500ac9d3e67f7f",
      "parents": [
        "76398425bb06b07cc3a3b1ce169c67dc9d6874ed"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Sun Feb 01 14:52:56 2009 -0700"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Mar 16 08:34:35 2009 -0600"
      },
      "message": "Rationalize fasync return values\n\nMost fasync implementations do something like:\n\n     return fasync_helper(...);\n\nBut fasync_helper() will return a positive value at times - a feature used\nin at least one place.  Thus, a number of other drivers do:\n\n     err \u003d fasync_helper(...);\n     if (err \u003c 0)\n             return err;\n     return 0;\n\nIn the interests of consistency and more concise code, it makes sense to\nmap positive return values onto zero where -\u003efasync() is called.\n\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\n"
    },
    {
      "commit": "93b8eef1c098efbea2f1fc0be7e3c681f259a7e7",
      "tree": "462cc8c2bc07bbc825dab2a200891a28d8643329",
      "parents": [
        "a2d781fc8d9b16113dd9440107d73c0f21d7cbef",
        "929096fe9ff1f4b3645cf3919527ab47e8d5e17c"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Dec 20 04:54:54 2008 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Dec 20 04:54:54 2008 -0500"
      },
      "message": "Merge commit \u0027v2.6.28-rc9\u0027 into next\n"
    },
    {
      "commit": "233e70f4228e78eb2f80dc6650f65d3ae3dbf17c",
      "tree": "4e18fbe1851e6d2161b7f18265cb21f8a61e3ce7",
      "parents": [
        "3318a386e4ca68c76e0294363d29bdc46fcad670"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Fri Oct 31 23:28:30 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 01 09:49:46 2008 -0700"
      },
      "message": "saner FASYNC handling on file close\n\nAs it is, all instances of -\u003erelease() for files that have -\u003efasync()\nneed to remember to evict file from fasync lists; forgetting that\ncreates a hole and we actually have a bunch that *does* forget.\n\nSo let\u0027s keep our lives simple - let __fput() check FASYNC in\nfile-\u003ef_flags and call -\u003efasync() there if it\u0027s been set.  And lose that\ncrap in -\u003erelease() instances - leaving it there is still valid, but we\ndon\u0027t have to bother anymore.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a6c2490f010d9235b1424110c6f414460e41dfe1",
      "tree": "2c7d6773739791bfa0510e1ea27e88a3e5ab4cdb",
      "parents": [
        "dde4ac07263161264d089c7556d0295487787b77"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Thu Oct 30 00:07:50 2008 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Oct 30 09:29:05 2008 -0400"
      },
      "message": "Input: struct device - replace bus_id with dev_name(), dev_set_name()\n\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "f9c8154f367d471f1af56742fe8534f8458adb98",
      "tree": "6625c2e4a82d5f772545ec606434d616a6ae3797",
      "parents": [
        "dca67e9d3db27b090259b696e1166615f40099e2"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue May 20 19:16:20 2008 +0200"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Wed Jul 02 15:06:23 2008 -0600"
      },
      "message": "mousedev: BKL pushdown\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "a7097ff89c3204737a07eecbc83f9ae6002cc534",
      "tree": "11fe55cbfb3651fc57e59fc838d1e084f5e63749",
      "parents": [
        "399f486286f44d55c4fff0e9cc5d712f2b443489"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Apr 01 00:22:53 2008 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Apr 01 00:22:53 2008 -0400"
      },
      "message": "Input: make sure input interfaces pin parent input devices\n\nRecent driver core change causes references to parent devices being\ndropped early, at device_del() time, as opposed to when all children\nare freed. This causes oops in evdev with grabbed devices. Take the\nreference to the parent input device ourselves to ensure that it\nstays around long enough.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "d182c10c842007984e12b3b816df2b10d997cc8e",
      "tree": "593894de1df858d77d86ca6601c0389944d0b4b0",
      "parents": [
        "e2c75391dd74173d4855e997c7c3754a6a9b7977"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Jan 30 16:33:40 2008 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Jan 30 16:33:40 2008 -0500"
      },
      "message": "Input: mousedev - use BIT_MASK instead of BIT\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "3b04a61107dfe46dbfc1796298b59ca3c0a09cd9",
      "tree": "71f292a7e6bf77dd5343575b60182fe94ffa3d7e",
      "parents": [
        "75570af1504141316c22dfb6796cd13bf5b11fd2"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Tue Nov 27 00:45:50 2007 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jan 21 01:11:07 2008 -0500"
      },
      "message": "Input: drop redundant includes of moduleparam.h\n\nDrop #include \u003clinux/moduleparam.h\u003e in files that also include\nlinux/module.h, since module.h includes moduleparam.h already.\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "6724f93463c332018e05f538a2ab3ce41eac0e8a",
      "tree": "68d4382ca8b8fd96b6b22f76db4336ee8804b38d",
      "parents": [
        "4ff891eb3d3dd6854f11d616c6397a0e403f4e88"
      ],
      "author": {
        "name": "Micah Parrish",
        "email": "micah.parrish@hp.com",
        "time": "Thu Jan 17 12:01:04 2008 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Jan 17 12:01:04 2008 -0500"
      },
      "message": "Input: mousedev - handle mice that use absolute coordinates\n\nDevices like the HP Integrated Remote Console Virtual Mouse, which are\nstandard equipment on all Proliant and Integrity servers, produce\nabsolute coordinates instead of relative coordinates.  This is done to\nsynchronize the position of the mouse cursor on the client desktop\nwith the mouse cursor position on the server.  Mousedev is not\ndesigned to pass those absolute events directly to X, but it can\ntranslate them into relative movements.  It currently does this for\ntablet like devices and touchpads.  This patch merely tells it to also\ninclude a device with ABS_X, ABS_Y, and mouse buttons in its list of\ndevices to process input for.\n\nThis patch enables the mouse pointer to move when using the remote\nconsole.\n\nSigned-off-by: Micah Parrish \u003cmicah.parrish@hp.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": "064450140f1eab959bd0eca0245f449993216074",
      "tree": "ae8c7e238224b74e90f860129b1236c3eeedc470",
      "parents": [
        "1ea3abf7fbc39b3b543d7438159ba07b6411561c"
      ],
      "author": {
        "name": "Oliver Neukum",
        "email": "oliver@neukum.org",
        "time": "Fri Oct 12 14:18:40 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Oct 12 14:18:40 2007 -0400"
      },
      "message": "Input: fix open count handling in input interfaces\n\nIf input_open_device() fails we should not leave interfaces marked\nas  opened.\n\nSigned-off-by: Oliver Neukum \u003coneukum@suse.de\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "464b241575f3700e14492e34f26bcd1794280f55",
      "tree": "acbc48b7b7d440b3224b56edcafb7170a33c42e8",
      "parents": [
        "6addb1d6de1968b84852f54561cc9a999909b5a9"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Aug 30 00:22:24 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Aug 30 00:22:24 2007 -0400"
      },
      "message": "Input: mousedev - implement proper locking\n\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": "0b662c64840fb281e5948ab6f9d60f84817277d0",
      "tree": "169f6bf2c3c9f3a7a69b0ee3785cfcd866e12329",
      "parents": [
        "45efebf2492187e8915e2876c5bf6f3803b1c23f",
        "1dfa2812404c37d7571622195f907cea3331616c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jun 04 13:27:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jun 04 13:27:33 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:\n  Input: reduce raciness when input handlers disconnect\n  Input: ucb1x00 - do not access input_dev-\u003eprivate directly\n  Input: logips2pp - fix typo in Kconfig\n  Input: db9 - do not ignore dev2 module parameter\n"
    },
    {
      "commit": "1dfa2812404c37d7571622195f907cea3331616c",
      "tree": "2533af73ff0e1e4d24603967bd6cdc092973dce9",
      "parents": [
        "26be5a509af5f80c7012bd4f0478a94746c9c9d9"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Sun Jun 03 23:29:36 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Sun Jun 03 23:50:05 2007 -0400"
      },
      "message": "Input: reduce raciness when input handlers disconnect\n\nThere is a race between input handler\u0027s release() and disconnect()\nmethods: when input handler disconnects it wakes up all regular\nusers and then process to walk user list to wake up async. users.\nWhile disconnect() walks the list release() removes elements of\nthe same list causing oopses.\n\nWhile this is not a substibute for proper locking we can reduce\nodds of getting an oops if we wake up normal readers after walking\nthe list.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "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": "a3d52136ee8f7399859f9a0824470fd49b1d1a00",
      "tree": "ac0fd3d1efc356029cbbc5e413f778f7231cd909",
      "parents": [
        "5b339915762d30b21995aa7263e74081f2f1110a",
        "84767d00a8fd54dd97866561f6e2ee246c8e1cdc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 18:13:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 18:16:12 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/dtor/input: (65 commits)\n  Input: gpio_keys - add support for switches (EV_SW)\n  Input: cobalt_btns - convert to use polldev library\n  Input: add skeleton for simple polled devices\n  Input: update some documentation\n  Input: wistron - fix typo in keymap for Acer TM610\n  Input: add input_set_capability() helper\n  Input: i8042 - add Fujitsu touchscreen/touchpad PNP IDs\n  Input: i8042 - add Panasonic CF-29 to nomux list\n  Input: lifebook - split into 2 devices\n  Input: lifebook - add signature of Panasonic CF-29\n  Input: lifebook - activate 6-byte protocol on select models\n  Input: lifebook - work properly on Panasonic CF-18\n  Input: cobalt buttons - separate device and driver registration\n  Input: ati_remote - make button repeat sensitivity configurable\n  Input: pxa27x - do not use deprecated SA_INTERRUPT flag\n  Input: ucb1400 - make delays configurable\n  Input: misc devices - switch to using input_dev-\u003edev.parent\n  Input: joysticks - switch to using input_dev-\u003edev.parent\n  Input: touchscreens - switch to using input_dev-\u003edev.parent\n  Input: mice - switch to using input_dev-\u003edev.parent\n  ...\n\nFixed up conflicts with core device model removal of \"struct subsystem\" manually.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "823bccfc4002296ba88c3ad0f049e1abd8108d30",
      "tree": "5338ae0b32409446af4cd00c5107d9405d5bf0b6",
      "parents": [
        "2609e7b9bebfd433254c02538ba803dc516ff674"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 13 13:15:19 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed May 02 18:57:59 2007 -0700"
      },
      "message": "remove \"struct subsystem\" as it is no longer needed\n\nWe need to work on cleaning up the relationship between kobjects, ksets and\nktypes.  The removal of \u0027struct subsystem\u0027 is the first step of this,\nespecially as it is not really needed at all.\n\nThanks to Kay for fixing the bugs in this patch.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "0d9d93c411c9351ba186f5ec910b10da7c1d9d14",
      "tree": "4c4752f0d4774d1cc3353facad0daba4c0de7285",
      "parents": [
        "f42649e84831efc69d5f621f1c36a39b4e384a99"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Apr 12 01:31:55 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Apr 12 01:31:55 2007 -0400"
      },
      "message": "Input: mousedev - fix sudden warps with touchpads\n\nPete Zaitcev reports that with his touchpad, if he lifts the finger\nand places it elsewhere, the pointer sometimes warps dramatically.\nThis happens because we don\u0027t store coordinates unless we detect a\ntouch so sometimes we have stale coordinates in queue (from where\nthe finger left the pad) and averaging makes cursor to jump across\nthe screen. The solution is to always store the latest coordinates.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "d542ed82fdc72cf63549deec19e86ee4addf2499",
      "tree": "201c713b24a429d34272998ae3ecca87c937709a",
      "parents": [
        "d0ffb9be866519775da19c0a6790f5431c1a8dc6"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Apr 12 01:30:15 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Apr 12 01:30:15 2007 -0400"
      },
      "message": "Input: handlers - handle errors from input_open_device()\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "d0ffb9be866519775da19c0a6790f5431c1a8dc6",
      "tree": "0ded8723264a1e9e41f34ea1e05740496f317e6a",
      "parents": [
        "5b2a08262a8c952fef008154933953f083ca5766"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Apr 12 01:30:00 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Apr 12 01:30:00 2007 -0400"
      },
      "message": "Input: handlers - rename \u0027list\u0027 to \u0027client\u0027\n\nThe naming convention in input handlers was very confusing -\nclient stuctures were called lists, regular lists were also\ncalled lists making anyone looking at the code go mad.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "5b2a08262a8c952fef008154933953f083ca5766",
      "tree": "47fb54c30509a4c444613a1737a212ddda3bb05d",
      "parents": [
        "6e782584e0713ea89da151333e7fe754c8f40324"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Apr 12 01:29:46 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Apr 12 01:29:46 2007 -0400"
      },
      "message": "Input: rework handle creation code\n\n - consolidate code for binding handlers to a device\n - return error codes from handlers connect() methods back to input\n   core and log failures\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "6c595fb12fa6c1fe382cc086fdade4acd93c643f",
      "tree": "5e7d9ccdfec99179e70fc45294bd81c7a781d2b4",
      "parents": [
        "5b44f1aaee7e3b24f6e21662d7fef1534111a2df"
      ],
      "author": {
        "name": "Marton Nemeth",
        "email": "nm127@freemail.hu",
        "time": "Fri Nov 17 01:06:54 2006 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Fri Nov 17 01:06:54 2006 -0500"
      },
      "message": "Input: mousedev - remap BTN_FORWARD from BTN_LEFT to BTN_MIDDLE\n\nIn mousedev the BTN_LEFT and BTN_FORWARD were mapped to mouse button 0,\ncausing that the user space program cannot distinguish between them through\n/dev/input/mice. All mice have BTN_LEFT, but not all have BTN_MIDDLE (e.g.\nClevo D410J laptop). Mapping BTN_FORWARD to mouse button 2 makes the\nBTN_FORWARD button useful on this laptop.\n\nSigned-off-by: Marton Nemeth \u003cnm127@freemail.hu\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "4263cf0fac28122c8381b6f4f9441a43cd93c81f",
      "tree": "2abdac5c34cf584854677b33e5dcd0e343ee1611",
      "parents": [
        "68c2a1607cd6dd12427c9566b39756e92708713c"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Sep 14 01:32:39 2006 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Sep 14 01:32:39 2006 -0400"
      },
      "message": "Input: make input_register_handler() return error codes\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "66e66118837ed95a299328437c2d9fb4b5137352",
      "tree": "901c8b3ab9ab01b0363992b65689cafe797fcb25",
      "parents": [
        "5206c0d5ec514733dd098cf658d71327d199c7a0"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Sep 14 01:31:59 2006 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Thu Sep 14 01:31:59 2006 -0400"
      },
      "message": "Input: constify input core\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "1e0afb288e56d469ca1c583342bb9782d49333c6",
      "tree": "5d2f5d4ebc029a5361d66acebec3a8023ea05ad4",
      "parents": [
        "f60d2b111cd55c335c2b70e50d66a612d2b10856"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Mon Jun 26 01:48:47 2006 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Mon Jun 26 01:48:47 2006 -0400"
      },
      "message": "Input: fix formatting to better follow CodingStyle\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "b39787a972042ded183343b177d9c595b5704575",
      "tree": "ff0336c45ff4f8bbb3e64af5cc16bcfe75fbb54b",
      "parents": [
        "493a7e0d5614c30e1f3e56d59ab774300a2609f2"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Tue Mar 14 00:09:16 2006 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Tue Mar 14 00:09:16 2006 -0500"
      },
      "message": "Input: use kzalloc() throughout the code\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "74570d413cbb5cede06a0183a91d3006f134bf6b",
      "tree": "aef81bc8688bcc932019a7a380958de698c3d85b",
      "parents": [
        "5ae08f80ec5b2b08dd2f76a166140dd156fb31a1"
      ],
      "author": {
        "name": "Kimball Murray",
        "email": "kimball.murray@stratus.com",
        "time": "Sun Jan 29 21:50:59 2006 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Sun Jan 29 21:50:59 2006 -0500"
      },
      "message": "Input: mousedev - fix memory leak\n\nApparently, \"while true; do cat \u003c/dev/null \u003e/dev/input/mice; done\" causes\nan OOM in a short amount of time. Funny that nobody noticed, it actually\nis very easy to trigger just by switching between VT1 and VT7...\n\nSigned-off-by: Pete Zaitcev \u003czaitcev@redhat.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "84c12b2410ea3b88523270064222fbf505dbf15e",
      "tree": "7c72f2cd5409730b9e8aa861110e20c64ebc3c7e",
      "parents": [
        "3a51f7c40437077ac4a463307e9a4ae6b78755a8"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Sun Dec 11 12:41:03 2005 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Sun Dec 11 12:41:03 2005 -0500"
      },
      "message": "Input: mousedev - make module parameters visible in sysfs\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "c9bcd582dfeec845b83bc948a430c9958bf839e6",
      "tree": "d17bffdfc868aa355ebd9cc56d1eeb481c0b80d8",
      "parents": [
        "ea9f240bd819f9299703283e5326da606bbb4b05"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 27 22:25:43 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 28 09:52:55 2005 -0700"
      },
      "message": "[PATCH] INPUT: Create symlinks for backwards compatibility\n\nThis creates symlinks in /sys/class/input/ to the nested class devices\nto help userspace cope with the nesting.\n\nUnfortunatly udev still needs to be updated as it can\u0027t handle symlinks\nproperly here :(\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "ea9f240bd819f9299703283e5326da606bbb4b05",
      "tree": "68b83a2a093a332c8fda8dfc695c73ebe084b014",
      "parents": [
        "b0fdfebb205fcbf394c3db39679a766b8fc4f07d"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 27 22:25:43 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 28 09:52:55 2005 -0700"
      },
      "message": "[PATCH] INPUT: rename input_dev_class to input_class to be correct.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "967ca692161d8c4e894932599592af8d62c0a895",
      "tree": "d1cb14bddd9484c0f9e58e9dd52881f172e235b9",
      "parents": [
        "23d50901617c2a8bdef509279a42d2e90f523db9"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 27 22:25:43 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 28 09:52:54 2005 -0700"
      },
      "message": "[PATCH] INPUT: move the input class devices under their new input_dev devices\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "4f00469c16b86a3dd6ed66b28c605c8430d58eeb",
      "tree": "2129fe4c1914c69d2f5acdd07c112a92a6b59339",
      "parents": [
        "74be227f728ed68bfc270153665b43fc1f0fa845"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Thu Sep 15 02:01:38 2005 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 28 09:52:52 2005 -0700"
      },
      "message": "[PATCH] Input: kill devfs references\n\nInput: remove references to devfs from input subsystem\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "53f4654272df7c51064825024340554b39c9efba",
      "tree": "e3e7b82a6bb0040ffbd267b250be2720704b98f2",
      "parents": [
        "51d172d5f3a193e4b8f76179b2e55d7a36b94117"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 27 22:25:43 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 28 09:52:52 2005 -0700"
      },
      "message": "[PATCH] Driver Core: fix up all callers of class_device_create()\n\nThe previous patch adding the ability to nest struct class_device\nchanged the paramaters to the call class_device_create().  This patch\nfixes up all in-kernel users of the function.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "3e0777b8fa96f7073ed5d13d3bc1d573b766bef9",
      "tree": "3849e8457dd8f038ab7da025c708e275b43ea9c1",
      "parents": [
        "a94130e00038ebeb2f66901a4a4a9e05a03051c1",
        "e5119885f00874453e837e3407014b73de2f4741"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Mon Jun 27 14:47:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Mon Jun 27 14:47:31 2005 -0700"
      },
      "message": "Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/dtor/input.git manually\n\nSome manual fixups required due to clashes with the PF_FREEZE cleanups.\n"
    },
    {
      "commit": "1235686f6e67cf30c460eb77d90a6cb4be57b92f",
      "tree": "c7ef368a38c8e0c64e09d9e0e8a2a93392a1732c",
      "parents": [
        "7fe845d11ad1b4aac098d40c55275569e143c483"
      ],
      "author": {
        "name": "gregkh@suse.de",
        "email": "gregkh@suse.de",
        "time": "Tue Mar 15 14:26:30 2005 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:04 2005 -0700"
      },
      "message": "[PATCH] INPUT: move to use the new class code, instead of class_simple\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "8121152c1770ef1cd029030d51802c65c489950d",
      "tree": "11064cc56bc287d704f41cec59b56934331e31c7",
      "parents": [
        "e334016fc1735e491385e14157a0360cd85c321b"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Wed Jun 01 02:39:36 2005 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Wed Jun 01 02:39:36 2005 -0500"
      },
      "message": "Input: mousedev - do not wake up readers when receiving 0-motion\n       event.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "c1e4c8d3ee3300f363a52fd4cf3d90fdf5098f5a",
      "tree": "56f22aa02101434c13fa38e6729e45d92521c3d9",
      "parents": [
        "8bd7f125e2f217c8aa3dff005ae291c81246c340"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@suse.cz",
        "time": "Fri May 27 12:53:03 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat May 28 11:14:01 2005 -0700"
      },
      "message": "[PATCH] fix jumpy mouse cursor on console\n\nDo not send empty events to gpm.  (Keyboards are assumed to have scroll\nwheel these days, that makes them part-mouse.  That means typing on\nkeyboard generates empty mouse events).\n\nFrom: Dmitry Torokhov \u003cdtor_core@ameritech.net\u003e\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
