)]}'
{
  "log": [
    {
      "commit": "0abc920116303e81702a38429a1b61a896e02b37",
      "tree": "69494f8249d1d55fac8a58ff2f67fc346ef52c16",
      "parents": [
        "109e941843893cb1b4f7bed24c615ba84ce00ff5"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Fri Mar 23 15:02:31 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:39 2012 -0700"
      },
      "message": "rtc: convert rtc i2c drivers to module_i2c_driver\n\nFactor out some boilerplate code for i2c driver registration into\nmodule_i2c_driver.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nCc: Piotr Ziecik \u003ckosmo@semihalf.com\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nCc: Scott Wood \u003cscottwood@freescale.com\u003e\nCc: Srikanth Srinivasan \u003csrikanth.srinivasan@freescale.com\u003e\nCc: Mike Rapoport \u003cmike@compulab.co.il\u003e\nCc: Sergey Lapin \u003cslapin@ossfans.org\u003e\nCc: Roman Fietze \u003croman.fietze@telemotive.de\u003e\nCc: Herbert Valerio Riedel \u003chvr@gnu.org\u003e\nCc: Alexander Bigga \u003cab@mycable.de\u003e\nCc: Dale Farnsworth \u003cdale@farnsworth.org\u003e\nCc: Gregory Hermant \u003cgregory.hermant@calao-systems.com\u003e\nCc: Wolfgang Grandegger \u003cwg@grandegger.com\u003e\nCc: Martyn Welch \u003cmartyn.welch@ge.com\u003e\nCc: Byron Bradley \u003cbyron.bbradley@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c3b79770e51ab1fd4201f3b54edf30113b9ce74f",
      "tree": "a37fa11f7341f765e66fa9091ea6a75e66431308",
      "parents": [
        "93b2ec0128c431148b216b8f7337c1a52131ef03"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Dec 12 13:57:52 2011 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Dec 13 12:26:24 2011 -0800"
      },
      "message": "rtc: m41t80: Workaround broken alarm functionality\n\nThe m41t80 driver can read and set the alarm, but it doesn\u0027t\nseem to have a functional alarm irq.\n\nThis causes failures when the generic core sees alarm functions,\nbut then cannot use them properly for things like UIE mode.\n\nDisabling the alarm functions allows proper error reporting,\nand possible fallback to emulated modes. Once someone fixes\nthe alarm irq functionality, this can be restored.\n\nCC: stable@kernel.org\nCC: Matt Turner \u003cmattst88@gmail.com\u003e\nCC: Nico Macrionitis \u003cacrux@cruxppc.org\u003e\nCC: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nReported-by: Matt Turner \u003cmattst88@gmail.com\u003e\nReported-by: Nico Macrionitis \u003cacrux@cruxppc.org\u003e\nTested-by: Nico Macrionitis \u003cacrux@cruxppc.org\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "a015dbc110a97ed3147546a9c914f18f71d798d0",
      "tree": "38ad9e7bbb8b37e352d1810a4b48167838615504",
      "parents": [
        "9a281a677c1dbf25943b5bc3225de21fcb4945ae"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri May 06 17:24:27 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri May 06 18:01:02 2011 -0700"
      },
      "message": "rtc: m41t80: Initialize clientdata before registering device\n\nCommit f44f7f96a20 (\"RTC: Initialize kernel state from RTC\") uncovered\nan issue in a number of RTC drivers, where the drivers call\nrtc_device_register before initializing the clientdata.\n\nThis frequently results in null pointer dereferences when the\nrtc_device_register immediately makes use of the rtc device, calling\nrtc_read_alarm.\n\nThe solution is to ensure the clientdata is initialized prior to registering\nthe rtc device.\n\nCC: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\nCC: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: rtc-linux@googlegroups.com\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "16380c153a69c3784d2afaddfe0a22f353046cf6",
      "tree": "e923f26334d999a1e456ca80c446fbf8b1c2eedd",
      "parents": [
        "ac54cd2bd5b4db4f1c03392d63daf355627ea180"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Feb 02 17:02:41 2011 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Feb 03 13:02:35 2011 -0800"
      },
      "message": "RTC: Convert rtc drivers to use the alarm_irq_enable method\n\nSome rtc drivers use the ioctl method instead of the alarm_irq_enable\nmethod for enabling alarm interupts. With the new virtualized RTC\nrework, its important for drivers to use the alarm_irq_enable instead.\n\nThis patch converts the drivers that use the AIE ioctl method to\nuse the alarm_irq_enable method. Other ioctl cmds are left untouched.\n\nI have not been able to test or even compile most of these drivers.\nAny help to make sure this change is correct would be appreciated!\n\nCC: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Marcelo Roberto Jimenez \u003cmroberto@cpti.cetuc.puc-rio.br\u003e\nReported-by: Marcelo Roberto Jimenez \u003cmroberto@cpti.cetuc.puc-rio.br\u003e\nTested-by: Marcelo Roberto Jimenez \u003cmroberto@cpti.cetuc.puc-rio.br\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\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": "613655fa39ff6957754fa8ceb8559980920eb8ee",
      "tree": "ad19600cb81207b24188683d7fc4ae88013339d1",
      "parents": [
        "609146fdb319cebce93be550938ab852f7bade90"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Jun 02 14:28:52 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue Oct 05 15:01:04 2010 +0200"
      },
      "message": "drivers: autoconvert trivial BKL users to private mutex\n\nAll these files use the big kernel lock in a trivial\nway to serialize their private file operations,\ntypically resulting from an earlier semi-automatic\npushdown from VFS.\n\nNone of these drivers appears to want to lock against\nother code, and they all use the BKL as the top-level\nlock in their file operations, meaning that there\nis no lock-order inversion problem.\n\nConsequently, we can remove the BKL completely,\nreplacing it with a per-file mutex in every case.\nUsing a scripted approach means we can avoid\ntypos.\n\nThese drivers do not seem to be under active\nmaintainance from my brief investigation. Apologies\nto those maintainers that I have missed.\n\nfile\u003d$1\nname\u003d$2\nif grep -q lock_kernel ${file} ; then\n    if grep -q \u0027include.*linux.mutex.h\u0027 ${file} ; then\n            sed -i \u0027/include.*\u003clinux\\/smp_lock.h\u003e/d\u0027 ${file}\n    else\n            sed -i \u0027s/include.*\u003clinux\\/smp_lock.h\u003e.*$/include \u003clinux\\/mutex.h\u003e/g\u0027 ${file}\n    fi\n    sed -i ${file} \\\n        -e \"/^#include.*linux.mutex.h/,$ {\n                1,/^\\(static\\|int\\|long\\)/ {\n                     /^\\(static\\|int\\|long\\)/istatic DEFINE_MUTEX(${name}_mutex);\n\n} }\"  \\\n    -e \"s/\\(un\\)*lock_kernel\\\u003e[ ]*()/mutex_\\1lock(\\\u0026${name}_mutex)/g\" \\\n    -e \u0027/[      ]*cycle_kernel_lock();/d\u0027\nelse\n    sed -i -e \u0027/include.*\\\u003csmp_lock.h\\\u003e/d\u0027 ${file}  \\\n                -e \u0027/cycle_kernel_lock()/d\u0027\nfi\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "408929bed7841686ce5fdd06366fb652cb653d6c",
      "tree": "74fae2c879d946169fa00edb683f8bf28531b078",
      "parents": [
        "ee3aebdd8f5f8eac41c25c80ceee3d728f920f3b"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Thu Sep 09 16:37:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:24 2010 -0700"
      },
      "message": "rtc: m41t80: do not use rtc_valid_tm in m41t80_rtc_read_alarm\n\nCommit b485fe5ea (\"rtc/m41t80: use rtc_valid_tm() to check returned tm\")\nadded rtc_valid_tm to m41t80_rtc_read_alarm() but it was wrong while the\nt-\u003etime does not contain complete date/time.\n\nThis patch also fixes a warning:\nwarning: passing argument 1 of \u0027rtc_valid_tm\u0027 from incompatible pointer type\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nCc: Wan ZongShun \u003cmcuos.com@gmail.com\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b485fe5ea1008db02abff9ef15be4f31b52df4f7",
      "tree": "46bfcbe847fd7c248fdb7048350f8293654fddcd",
      "parents": [
        "d6c7428f9c2b1df1356a21837301647cb4f76e60"
      ],
      "author": {
        "name": "Wan ZongShun",
        "email": "mcuos.com@gmail.com",
        "time": "Tue Aug 10 18:02:15 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:07 2010 -0700"
      },
      "message": "rtc/m41t80: use rtc_valid_tm() to check returned tm\n\nUse rtc_valid_tm() to check returned struct rtc_time *tm - it can avoid\nreturning wrong tm value.\n\nSigned-off-by: Wan ZongShun \u003cmcuos.com@gmail.com\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "09eeb1f5f4d9b52ab57820160dea6027bbea82a3",
      "tree": "877488d8daacd6b5e5f56c1ddde9f03ca7e79ac0",
      "parents": [
        "b627dbce6b5524c7c9032738bb60538999f45d41"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Wed May 26 14:44:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:56 2010 -0700"
      },
      "message": "rtc-m41t80: use nonseekable_open()\n\nUse nonseekable_open() for this since seeking is not supported anyway.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Gortmaker \u003cp_gortmaker@yahoo.com\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "55929332c92e5d34d65a8f784604c92677ea3e15",
      "tree": "555e922d470336d07ace32bb564ac5358379a3c4",
      "parents": [
        "703c631ebbcadcfd861d01e697fdda7c388fec9a"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue Apr 27 00:24:05 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon May 17 05:27:41 2010 +0200"
      },
      "message": "drivers: Push down BKL into various drivers\n\nThese are the last remaining device drivers using\nthe -\u003eioctl file operation in the drivers directory\n(except from v4l drivers).\n\n[fweisbec: drop i8k pushdown as it has been done from\nprocfs pushdown branch already]\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "f30281f4f7c2a0efcfeddad12277dfdada8f08a7",
      "tree": "01354ffba20643cdf0beb81dcb2b62def6320725",
      "parents": [
        "96615841e170f0108832e64a90d51b469573a472"
      ],
      "author": {
        "name": "Daniel Glockner",
        "email": "dg@emlix.com",
        "time": "Thu Apr 02 16:57:03 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:51 2009 -0700"
      },
      "message": "rtc: add m41t62 support to rtc-m41t80 driver\n\nCompared to the other supported chips, the m41t62 uses a different\nregister to set the square wave frequency.\n\nSigned-off-by: Daniel Glockner \u003cdg@emlix.com\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe20ba70abf7d6e5855c3dacc729490b3d0d077f",
      "tree": "918619427cc051d22cb38b44e94c7e65f29ee928",
      "parents": [
        "4110a0d6206bd175419cc5503f80cc296d184cbf"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Sat Oct 18 20:28:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:41 2008 -0700"
      },
      "message": "drivers/rtc/: use bcd2bin/bin2bcd\n\nChange drivers/rtc/ to use the new bcd2bin/bin2bcd functions instead of\nthe obsolete BCD_TO_BIN/BIN_TO_BCD/BCD2BIN/BIN2BCD macros.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d3a126fcf9df7dc59f1cc553c2fb2e668264e86c",
      "tree": "3e6359d3ad55bc0ecf585eed8ab0361f89889a92",
      "parents": [
        "03274572215a1dfc7c382ef9b18c562612b4d466"
      ],
      "author": {
        "name": "Steven A. Falco",
        "email": "sfalco@harris.com",
        "time": "Wed Oct 15 22:03:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:40 2008 -0700"
      },
      "message": "rtc: rtc-m41t80.c: add support for the ST M41T65 RTC\n\nAdd support for M41T65 Real Time Clock chip.\n\nThe main differences I see between the M41T65 and M41T80 are that:\n\n1) The M41T65 watchdog timer has three bits controlling resolution\n   (versus two for the M41T80).\n\n2) There is no register 0x13 for controlling square-wave output.\n\nSigned-off-by: Steven A. Falco \u003csfalco@harris.com\u003e\nAcked-by: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nCc: \"Maciej W. Rozycki\" \u003cmacro@linux-mips.org\u003e\nAcked-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4c228db0b30fa12d65ae7461ce29ed1f4da12c5b",
      "tree": "71642638de47ba369a620699687cc34575a8233a",
      "parents": [
        "35aa64f3a117a16c466f688f52ac3847b3b572e8"
      ],
      "author": {
        "name": "Maciej W. Rozycki",
        "email": "macro@linux-mips.org",
        "time": "Wed Jul 23 21:30:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:33 2008 -0700"
      },
      "message": "rtc: m41t80: use pr_info() as appropriate\n\nReplace printk(KERN_INFO ...) calls with appropriate pr_info(...)\nequivalents.\n\nSigned-off-by: Maciej W. Rozycki \u003cmacro@linux-mips.org\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nCc: Alexander Bigga \u003cab@mycable.de\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "35aa64f3a117a16c466f688f52ac3847b3b572e8",
      "tree": "a98673fd5c40fbbadffef0fe597badb0399d764a",
      "parents": [
        "aa55ddf340c9fa3f303ee16bbf35887e42c50304"
      ],
      "author": {
        "name": "Maciej W. Rozycki",
        "email": "macro@linux-mips.org",
        "time": "Wed Jul 23 21:30:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:33 2008 -0700"
      },
      "message": "rtc: m41t80: sort header inclusions for readability\n\nSort the header inclusions for readability.  No functional changes.\n\nSigned-off-by: Maciej W. Rozycki \u003cmacro@linux-mips.org\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nCc: Alexander Bigga \u003cab@mycable.de\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "41012735352e72b8a3f95521817dcad1b2986636",
      "tree": "32508a6e49a2abc2a932511e0e2a88066c44dd18",
      "parents": [
        "4333deee6b7a5a82afb9e700e76cb46e68fde68d"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue May 20 19:16:39 2008 +0200"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Wed Jul 02 15:06:24 2008 -0600"
      },
      "message": "rtc-rtc-m41t80: BKL pushdown\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "9fb1f68d40d9dd99fdbf65349c9c6af760e19e6e",
      "tree": "c7671ec24da86f084c0fc01d877f58d952cb5da8",
      "parents": [
        "417607d05f41dbe2acccdb7a298a81d30ba1d22b"
      ],
      "author": {
        "name": "Maciej W. Rozycki",
        "email": "macro@linux-mips.org",
        "time": "Mon May 12 14:02:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 13 08:02:26 2008 -0700"
      },
      "message": "rtc: m41t80: include \u003clinux/kernel.h\u003e for printk()\n\nThe driver uses printk(), but does not include \u003clinux/kernel.h\u003e -- add it.\n\nSigned-off-by: Maciej W. Rozycki \u003cmacro@linux-mips.org\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nCc: Alexander Bigga \u003cab@mycable.de\u003e\nCc: Wim Van Sebroeck \u003cwim@iguana.be\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "417607d05f41dbe2acccdb7a298a81d30ba1d22b",
      "tree": "8e9b8fd1140aa9876a76da235e3fcbd7e6519682",
      "parents": [
        "6c82c4150910dedd449194cb6d286b80478f3542"
      ],
      "author": {
        "name": "Maciej W. Rozycki",
        "email": "macro@linux-mips.org",
        "time": "Mon May 12 14:02:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 13 08:02:26 2008 -0700"
      },
      "message": "RTC/watchdog: M41T80: fix a potential use of unitialized data\n\nWatchdog handlers within the driver make use of \"save_client\" -- make sure it\nhas been initalized before the handlers are registered.\n\nSigned-off-by: Maciej W. Rozycki \u003cmacro@linux-mips.org\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nCc: Alexander Bigga \u003cab@mycable.de\u003e\nCc: Wim Van Sebroeck \u003cwim@iguana.be\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3760f736716f74bdc62a4ba5406934338da93eb2",
      "tree": "e28e22c6655dd62566f1b7a99f9354a31bf9d06e",
      "parents": [
        "d2653e92732bd3911feff6bee5e23dbf959381db"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Tue Apr 29 23:11:40 2008 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@hyperion.delvare",
        "time": "Tue Apr 29 23:11:40 2008 +0200"
      },
      "message": "i2c: Convert most new-style drivers to use module aliasing\n\nBased on earlier work by Jon Smirl and Jochen Friedrich.\n\nUpdate most new-style i2c drivers to use standard module aliasing\ninstead of the old driver_name/type driver matching scheme. I\u0027ve\nleft the video drivers apart (except for SoC camera drivers) as\nthey\u0027re a bit more diffcult to deal with, they\u0027ll have their own\npatch later.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Jon Smirl \u003cjonsmirl@gmail.com\u003e\nCc: Jochen Friedrich \u003cjochen@scram.de\u003e\n"
    },
    {
      "commit": "d2653e92732bd3911feff6bee5e23dbf959381db",
      "tree": "fd3a413bc150855a09de29b2d253b7dbeb2705ff",
      "parents": [
        "ee56d977423a58b53fd0fc1ef0aca0c9cb564c53"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Tue Apr 29 23:11:39 2008 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@hyperion.delvare",
        "time": "Tue Apr 29 23:11:39 2008 +0200"
      },
      "message": "i2c: Add support for device alias names\n\nBased on earlier work by Jon Smirl and Jochen Friedrich.\n\nThis patch allows new-style i2c chip drivers to have alias names using\nthe official kernel aliasing system and MODULE_DEVICE_TABLE(). At this\npoint, the old i2c driver binding scheme (driver_name/type) is still\nsupported.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Jochen Friedrich \u003cjochen@scram.de\u003e\nCc: Jon Smirl \u003cjonsmirl@gmail.com\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\n"
    },
    {
      "commit": "afe1ab4d577892822de2c8e803fbfaed6ec44ba3",
      "tree": "42ac29befcf9afe39bb2977a600560af86c3e51f",
      "parents": [
        "c661b078fd62abe06fd11fab4ac5e4eeafe26b6d"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Wed Aug 22 14:01:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Aug 22 19:52:45 2007 -0700"
      },
      "message": "correct name for rtc-m41t80\n\nThe new rtc-m41t80 driver name doesn\u0027t match its module name, which\nprevents it from properly hotplugging.  Since it\u0027s new, no platforms yet\ndepend on that name ...  so this patch fixes the driver name to match its\nmodule name, rather than going the other way around with a MODULE_ALIAS().\n\nNOTE: This sort of bug is a new thing to watch out for with new-style I2C\ndrivers; previously I2C couldn\u0027t hotplug.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nAcked-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "617780d290bd6eb2b260928c6acff5b7c6084154",
      "tree": "74738cadd5a79613b6c7fbc0187743a9fe4d2a6b",
      "parents": [
        "caaff562e0ba44a7991ee8322fa4a6891d939757"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Tue Jul 17 04:05:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:09 2007 -0700"
      },
      "message": "rtc: watchdog support for rtc-m41t80 driver\n\nAdd a watchdog driver interface to rtc-m41t80 driver.  This is derived from\nworks by Alexander Bigga \u003cab@mycable.de\u003e\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nSigned-off-by: Alexander Bigga \u003cab@mycable.de\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nAcked-by: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "caaff562e0ba44a7991ee8322fa4a6891d939757",
      "tree": "64be9b44b48c450613e395a7cc2c462f82cfc77a",
      "parents": [
        "5663c14b4f3e22aece38970f9765ceb090efbb8c"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Tue Jul 17 04:05:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:09 2007 -0700"
      },
      "message": "rtc: add rtc-m41t80 driver\n\nThis is a new-style i2c driver for ST M41T80 series RTC chip, derived from\nworks by Alexander Bigga \u003cab@mycable.de\u003e who wrote the original\nrtc-m41txx.c based on drivers/i2c/chips/m41t00.c driver.\n\nThis driver supports M41T8[0-4] and M41ST8[457].  The old m41t00 driver\nsupports M41T00, M41T81 and M41T85(M41ST85).  While the M41T00 chip is now\nsupported by rtc-ds1307 driver, this driver does not include support for\nthe chip.\n\n[akpm@linux-foundation.org: remove bogus `static\u0027]\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nSigned-off-by: Alexander Bigga \u003cab@mycable.de\u003e\nAcked-by: Mark A. Greer \u003cmgreer@mvista.com\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nAcked-by: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ]
}
