)]}'
{
  "log": [
    {
      "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": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\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": "092e0e7e520a1fca03e13c9f2d157432a8657ff2",
      "tree": "451897252c4c08c4b5a8ef535da156f1e817e80b",
      "parents": [
        "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
        "776c163b1b93c8dfa5edba885bc2bfbc2d228a5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "message": "Merge branch \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  vfs: make no_llseek the default\n  vfs: don\u0027t use BKL in default_llseek\n  llseek: automatically add .llseek fop\n  libfs: use generic_file_llseek for simple_attr\n  mac80211: disallow seeks in minstrel debug code\n  lirc: make chardev nonseekable\n  viotape: use noop_llseek\n  raw: use explicit llseek file operations\n  ibmasmfs: use generic_file_llseek\n  spufs: use llseek in all file operations\n  arm/omap: use generic_file_llseek in iommu_debug\n  lkdtm: use generic_file_llseek in debugfs\n  net/wireless: use generic_file_llseek in debugfs\n  drm: use noop_llseek\n"
    },
    {
      "commit": "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": "d2520a426dc3033c00077e923a553fc6c98c7564",
      "tree": "2da6646f8a1a588692830e51dca61e716639dc14",
      "parents": [
        "38e7afe96c7c0ad900824911c61fdb04078033dc"
      ],
      "author": {
        "name": "Kenneth Waters",
        "email": "kwwaters@gmail.com",
        "time": "Tue Sep 21 00:58:23 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Sep 21 00:59:43 2010 -0700"
      },
      "message": "Input: joydev - fix JSIOCSAXMAP ioctl\n\nFixed JSIOCSAXMAP ioctl to update absmap, the map from hardware axis to\nevent axis in addition to abspam.  This fixes a regression introduced\nby 999b874f.\n\nSigned-off-by: Kenneth Waters \u003ckwwaters@gmail.com\u003e\nCc: stable@kernel.org\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": "81c2a3ba497835797332b517ebf2de7b7f2a7c80",
      "tree": "a7dee14c14bdf2a1d9a5aa99bf9625943ace70ba",
      "parents": [
        "a62f0d27b4196bad5e900d766b285feb7069cd16"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "daniel@caiaq.de",
        "time": "Thu May 20 22:52:58 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu May 20 23:05:28 2010 -0700"
      },
      "message": "Input: use ABS_CNT rather than (ABS_MAX + 1)\n\nSigned-off-by: Daniel Mack \u003cdaniel@caiaq.de\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "26a6931ba7656dc0ebebee615ba87db8a8e71f2b",
      "tree": "70ae2c1c9fdf8675d9a216ccfebf72921040bc7f",
      "parents": [
        "e938fbfd4a7ac829d48b767c4dc365535d5c4f97"
      ],
      "author": {
        "name": "Christoph Fritz",
        "email": "chf.fritz@googlemail.com",
        "time": "Sat Apr 24 21:41:05 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon May 03 23:51:28 2010 -0700"
      },
      "message": "Input: joydev - allow binding to button-only devices\n\nDance pads don\u0027t have an axis, so allow this kind of controllers\nto be used via legacy joystick interface.\n\nSigned-off-by: Christoph Fritz \u003cchf.fritz@googlemail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "3d7bbd4575cfb23e6ef7368fff1f7d7e198b7930",
      "tree": "acfffe2afc69e59d97c454c5b1429fd980e05b55",
      "parents": [
        "daf8a96b2d4a5d4d1d288831be43457c84c55a2f"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Feb 04 00:30:42 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Feb 04 00:31:44 2010 -0800"
      },
      "message": "Input: mark input interfaces as non-seekable\n\nSeeking does not make sense for input interfaces such as evdev and joydev\nso let\u0027s use nonseekable_open to mark them non-seekable.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "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": "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": "999b874f4aa39b7abf45662ff0900f943ddb2d02",
      "tree": "eff35a1a2622dc976319fd52dab12f6bbdc8d3a1",
      "parents": [
        "4b61bb575b1fb42ab1df228ae7812e5135f656da"
      ],
      "author": {
        "name": "Stephen Kitt",
        "email": "steve@sk2.org",
        "time": "Tue Aug 25 19:24:22 2009 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Aug 27 22:01:39 2009 -0700"
      },
      "message": "Input: joydev - validate axis/button maps before clobbering current ones\n\nUp to now axis and button map validation was done after the user-supplied\nvalues were copied over the driver\u0027s map. This patch copies the\nuser-supplied values into temporary buffers and validated them before\noverwriting the driver\u0027s permanent maps.\n\nAlso change JSIOCGBTNMAP and JSIOCGAXMAP to return number of bytes returned\nto userspace instead of 0.\n\nSigned-off-by: Stephen Kitt \u003csteve@sk2.org\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "ec8b4b7085605e801a7740a2c3c33256aebe249c",
      "tree": "84ac0a46fc34eb0619b4b01b2d1fbc059b5f83d5",
      "parents": [
        "d82f1c35348cebe2fb2d4a4d31ce0ab0769e3d93"
      ],
      "author": {
        "name": "Stephen Kitt",
        "email": "steve@sk2.org",
        "time": "Wed Aug 12 01:12:08 2009 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Aug 12 01:16:13 2009 -0700"
      },
      "message": "Input: joydev - decouple axis and button map ioctls from input constants\n\nThe KEY_MAX change in 2.6.28 changed the values of the JSIOCSBTNMAP and\nJSIOCGBTNMAP constants; software compiled with the old values no longer\nworks with kernels following 2.6.28, because the ioctl switch statement\nno longer matches the values given by the software. This patch handles\nthese ioctls independently of the length of data specified, and applies the\nsame treatment to JSIOCSAXMAP and JSIOCGAXMAP which currently depend on\nABS_MAX.\n\nSigned-off-by: Stephen Kitt \u003csteve@sk2.org\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "f936601471d1454dacbd3b2a961fd4d883090aeb",
      "tree": "5ec6bf1a77ede0082484b8c7bd6ffbb438c3f84f",
      "parents": [
        "f0a14de2f82dd6aa13e04816da2091c7ed0f77cf"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "daniel@caiaq.de",
        "time": "Mon Jul 13 22:22:49 2009 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jul 13 22:24:29 2009 -0700"
      },
      "message": "Input: fix EVIOCGNAME/JSIOCGNAME regression\n\nCommit 3d5cb60e (\"Input: simplify name handling for certain input\nhandles\") introduced a regression for the EVIOCGNAME/JSIOCGNAME\nioctl.\n\nBefore this, patch, the platform device\u0027s name was given back to\nuserspace which was good to identify devices. After this patch, the\ndevice is (\"event%d\", minor) which is not descriptive at all.\n\nThis fixes the behaviour by taking dev-\u003ename.\n\nReported-by: Sven Neumann \u003cs.neumann@raumfeld.com\u003e\nSigned-off-by: Daniel Mack \u003cdaniel@caiaq.de\u003e\nReviewed-by: Thadeu Lima de Souza Cascardo \u003ccascardo@holoscopio.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "4894e4aca82aca927d0404ce61f021f790de4b1e",
      "tree": "bbe0d083829f5858295298f188d885367cf4b1f6",
      "parents": [
        "05e882f890038c702a4f15d385135d03cf74ad48",
        "07a2039b8eb0af4ff464efd3dfd95de5c02648c6"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Jun 11 01:58:01 2009 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Jun 11 01:58:01 2009 -0700"
      },
      "message": "Merge commit \u0027v2.6.30\u0027 into next\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": "d07a9cba6be5c0e947afc1014b5a62182a86f1f1",
      "tree": "fb3731d66688687c7008a6f3fc39d34712e1305f",
      "parents": [
        "eacaad01b4e67336b5b3f4db6dc15ef92c64b47d"
      ],
      "author": {
        "name": "Tim Cole",
        "email": "tim.cole@canonical.com",
        "time": "Thu May 07 17:08:42 2009 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu May 07 19:04:03 2009 -0700"
      },
      "message": "Input: joydev - blacklist digitizers\n\nBTN_TOUCH is not set by the wacom driver which causes it to be handled by the\njoydev driver while the resulting device is broken. This causes problems with\napplications that try to use a joystick device.\n\nUbuntu BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/300143\n\nSigned-off-by: Tim Cole \u003ctim.cole@canonical.com\u003e\nSigned-off-by: Stefan Bader \u003cstefan.bader@canonical.com\u003e\nAcked-by: Tim Gardner \u003ctim.gardner@canonical.com\u003e\nAcked-by: Amit Kucheria \u003camit.kucheria@canonical.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": "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": "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": "b126207ccdfe492fbc339c18d4898b1b5353fc6b",
      "tree": "2ebc6d125d455cec87552ccd8ce2a3dc9e6e8242",
      "parents": [
        "464b241575f3700e14492e34f26bcd1794280f55"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Aug 30 00:22:32 2007 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Aug 30 00:22:32 2007 -0400"
      },
      "message": "Input: joydev - 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": "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": "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": "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": "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": "6f5eacfc1e9a12ffca10b4abe8e9fddf1997da6f",
      "tree": "92fa84a1b03f4378b63a347dc758b0de555a0d9f",
      "parents": [
        "6345fdfd190659a2316d18065871245e3a1e0f84"
      ],
      "author": {
        "name": "Tobias Klauser",
        "email": "tklauser@nuerscht.ch",
        "time": "Mon Jul 11 01:08:56 2005 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Mon Jul 11 01:08:56 2005 -0500"
      },
      "message": "Input: joydev - remove custom conversion from jiffies to msecs\n\nReplace the MSECS() macro with the jiffies_to_msecs() function provided\nin jiffies.h\n\nSigned-off-by: Tobias Klauser \u003ctklauser@nuerscht.ch\u003e\nSigned-off-by: Domen Puncer \u003cdomen@coderock.org\u003e\nSigned-off-by: Vojtech Pavlik \u003cvojtech@suse.cz\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "3e0777b8fa96f7073ed5d13d3bc1d573b766bef9",
      "tree": "3849e8457dd8f038ab7da025c708e275b43ea9c1",
      "parents": [
        "a94130e00038ebeb2f66901a4a4a9e05a03051c1",
        "e5119885f00874453e837e3407014b73de2f4741"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Mon Jun 27 14:47:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Mon Jun 27 14:47:31 2005 -0700"
      },
      "message": "Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/dtor/input.git manually\n\nSome manual fixups required due to clashes with the PF_FREEZE cleanups.\n"
    },
    {
      "commit": "1235686f6e67cf30c460eb77d90a6cb4be57b92f",
      "tree": "c7ef368a38c8e0c64e09d9e0e8a2a93392a1732c",
      "parents": [
        "7fe845d11ad1b4aac098d40c55275569e143c483"
      ],
      "author": {
        "name": "gregkh@suse.de",
        "email": "gregkh@suse.de",
        "time": "Tue Mar 15 14:26:30 2005 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:04 2005 -0700"
      },
      "message": "[PATCH] INPUT: move to use the new class code, instead of class_simple\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "024ac44c701d43f5e2d34bd6a35b2813a36e6010",
      "tree": "2f0cefd615ce72353e75536ac1067f549e7b5715",
      "parents": [
        "f23488b2ab1b447ea4ea3d00cdb0d322a73e7f7f"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Sun May 29 02:26:31 2005 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Sun May 29 02:26:31 2005 -0500"
      },
      "message": "Input: This patch implements compat_ioctl for joydev.\n\n       I\u0027ve tested it with a Logitech WingMan Rumblepad on an x86-64\n       machine, and on an ia32 machine to make sure I didn\u0027t break\n       anything.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Vojtech Pavlik \u003cvojtech@suse.cz\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "f24949e8e0b9bed223ad9a435bf37e91ee8d0db7",
      "tree": "2ce8db8615de5423204922c86bfd6cf821dee542",
      "parents": [
        "7741e9317137a7456baa9c09ad8308c80c23b8db"
      ],
      "author": {
        "name": "Vojtech Pavlik",
        "email": "vojtech@suse.cz",
        "time": "Sat May 28 02:11:49 2005 -0500"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor_core@ameritech.net",
        "time": "Sat May 28 02:11:49 2005 -0500"
      },
      "message": "Input: Fix button mapping in joydev - BTN_TRIGGER was being\n       mapped twice, resulting in it being the last (instead\n       of first) button on a joystick.\n\nSigned-off-by: Vojtech Pavlik \u003cvojtech@suse.cz\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\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"
    }
  ]
}
