)]}'
{
  "log": [
    {
      "commit": "1e9c28599879040039f610c5b177e61ef65ff100",
      "tree": "308fea743fbadefa3ea9a88ff3ae51f6fe0c624a",
      "parents": [
        "0732f87761dbe417cb6e084b712d07e879e876ef"
      ],
      "author": {
        "name": "Baruch Siach",
        "email": "baruch@tkos.co.il",
        "time": "Thu Jun 18 16:48:58 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 19 16:46:03 2009 -0700"
      },
      "message": "gpio: driver for PrimeCell PL061 GPIO controller\n\nThis is a driver for the ARM PrimeCell PL061 GPIO AMBA peripheral.  The\ndriver is implemented using the gpiolib framework.\n\nThis driver also includes support for the use of the PL061 as an interrupt\ncontroller (secondary).\n\nSigned-off-by: Baruch Siach \u003cbaruch@tkos.co.il\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nAcked-by: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "10dfb54cd59a18786e43137a935277ca743bb54b",
      "tree": "51c95a93619bb515d5b59e01dcf390910204655b",
      "parents": [
        "1965d30356c1c65660ba3330927671cfe81acdd5"
      ],
      "author": {
        "name": "Nate Case",
        "email": "ncase@xes-inc.com",
        "time": "Wed Jun 17 16:26:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:44 2009 -0700"
      },
      "message": "gpio: pca953x: Add support for PCA9556\n\nPCA9556 is the software-compatible predecessor to the PCA9557, so add it\nto the supported I2C device ID table.\n\nSigned-off-by: Nate Case \u003cncase@xes-inc.com\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": "1965d30356c1c65660ba3330927671cfe81acdd5",
      "tree": "7690fe5353333aa3a21e0b77b69505a79d601ff7",
      "parents": [
        "de3483b071d9f75490f52c1be78434ac4eeccea5"
      ],
      "author": {
        "name": "Nate Case",
        "email": "ncase@xes-inc.com",
        "time": "Wed Jun 17 16:26:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:44 2009 -0700"
      },
      "message": "gpio: pca953x: Get platform_data from OpenFirmware\n\nOn OpenFirmware platforms, it makes the most sense to get platform_data\nfrom the device tree.  Make an attempt to translate OF node properties\ninto platform_data struct before bailing out.\n\nNote that the implementation approach taken differs from other device\ndrivers that make use of device tree information.  This is because I2C\nchips are already registered automatically by of_i2c, so we can get by\nwith a small translator function in the driver.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: kfree(NULL) is legal]\nSigned-off-by: Nate Case \u003cncase@xes-inc.com\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": "de3483b071d9f75490f52c1be78434ac4eeccea5",
      "tree": "d40c97fbf5b32071bf082212b3bf0cb1aa6a7a69",
      "parents": [
        "77906a546127e056dbdac618a7afb5b92d00c058"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Wed Jun 17 16:26:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:44 2009 -0700"
      },
      "message": "gpio: max7301: add missing __devexit marking\n\nThe remove member of the spi_driver max7301_driver uses __devexit_p(), so\nthe remove function itself should be marked with __devexit.  Even more so\nconsidering the probe function is marked with __devinit.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nAcked-by: Juergen Beisert \u003cj.beisert@pengutronix.de\u003e\nCc: Dmitry Baryshkov \u003cdbaryshkov@gmail.com\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": "77906a546127e056dbdac618a7afb5b92d00c058",
      "tree": "772f90419a217eb3e73483ba7309a9d85e928d51",
      "parents": [
        "7bfa58dd4ac8b07b28d4d48780fd44ee6215562b"
      ],
      "author": {
        "name": "Daniel Silverstone",
        "email": "dsilvers@simtec.co.uk",
        "time": "Wed Jun 17 16:26:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:44 2009 -0700"
      },
      "message": "pca953x: support GPIOLIB GPIO naming\n\nAdd support to the PCA953x driver to use the GPIOLIB naming facility for\nGPIOs.\n\nSigned-off-by: Daniel Silverstone \u003cdsilvers@simtec.co.uk\u003e\nCc: Ben Gardner \u003cbgardner@wabtec.com\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\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": "6fa612b56c575a5235568593eab4240c90608630",
      "tree": "288ff82b2dd6a6c278785ff34e52bc7bf348d284",
      "parents": [
        "873a2e89c5e32a5c72a9ece76fcb871358ae22d2"
      ],
      "author": {
        "name": "Michal Simek",
        "email": "monstr@monstr.eu",
        "time": "Mon May 11 15:49:12 2009 +0200"
      },
      "committer": {
        "name": "Michal Simek",
        "email": "monstr@monstr.eu",
        "time": "Thu May 21 15:56:04 2009 +0200"
      },
      "message": "microblaze: Kconfig: Enable drivers for Microblaze\n\nSigned-off-by: Michal Simek \u003cmonstr@monstr.eu\u003e\n"
    },
    {
      "commit": "811158b147a503fbdf9773224004ffd32002d1fe",
      "tree": "0a11dcfefe721bfc38ea9f1f4a238822dbae0dda",
      "parents": [
        "4e76c5ccd5ac9bd003467d3bb0f49b18572dd4cd",
        "b26e0ed4936b743b693a4cc1413561fa3e4eaf65"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 15:24:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 15:24:35 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (28 commits)\n  trivial: Update my email address\n  trivial: NULL noise: drivers/mtd/tests/mtd_*test.c\n  trivial: NULL noise: drivers/media/dvb/frontends/drx397xD_fw.h\n  trivial: Fix misspelling of \"Celsius\".\n  trivial: remove unused variable \u0027path\u0027 in alloc_file()\n  trivial: fix a pdlfush -\u003e pdflush typo in comment\n  trivial: jbd header comment typo fix for JBD_PARANOID_IOFAIL\n  trivial: wusb: Storage class should be before const qualifier\n  trivial: drivers/char/bsr.c: Storage class should be before const qualifier\n  trivial: h8300: Storage class should be before const qualifier\n  trivial: fix where cgroup documentation is not correctly referred to\n  trivial: Give the right path in Documentation example\n  trivial: MTD: remove EOL from MODULE_DESCRIPTION\n  trivial: Fix typo in bio_split()\u0027s documentation\n  trivial: PWM: fix of #endif comment\n  trivial: fix typos/grammar errors in Kconfig texts\n  trivial: Fix misspelling of firmware\n  trivial: cgroups: documentation typo and spelling corrections\n  trivial: Update contact info for Jochen Hein\n  trivial: fix typo \"resgister\" -\u003e \"register\"\n  ...\n"
    },
    {
      "commit": "8a0cecffeb52363a57257bbbbd58f4c4537a75bb",
      "tree": "ee7f754d49a2f2ad75b72ec59e90e6fa2c0753eb",
      "parents": [
        "926b663ce8215ba448960e1ff6e58b67a2c3b99b"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Thu Apr 02 16:57:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:51 2009 -0700"
      },
      "message": "gpio: gpio_{request,free}() now required (feature removal)\n\nWe want to phase out the GPIO \"autorequest\" mechanism in gpiolib and\nrequire all callers to use gpio_request().\n\n - Update feature-removal-schedule\n - Update the documentation now\n - Convert the relevant pr_warning() in gpiolib to a WARN()\n   so folk using this mechanism get a noisy stack dump\n\nSome drivers and board init code will probably need to change.\nImplementations not using gpiolib will still be fine; they are already\nrequired to implement gpio_{request,free}() stubs.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "926b663ce8215ba448960e1ff6e58b67a2c3b99b",
      "tree": "d60e6add2528b6a61968b0dc2db2f162bb157639",
      "parents": [
        "f30281f4f7c2a0efcfeddad12277dfdada8f08a7"
      ],
      "author": {
        "name": "Daniel Silverstone",
        "email": "dsilvers@simtec.co.uk",
        "time": "Thu Apr 02 16:57:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:51 2009 -0700"
      },
      "message": "gpiolib: allow GPIOs to be named\n\nAllow GPIOs in GPIOLIB chips to be named.  This name is then used when the\nGPIO is exported to sysfs, although it could be used elsewhere if deemed\nuseful.\n\nSigned-off-by: Daniel Silverstone \u003cdsilvers@simtec.co.uk\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": "692105b8ac5bcd75dc65f6a8f10bdbd0f0f34dcf",
      "tree": "e079cea0948d250e5411befe0c5cca7c97bcf860",
      "parents": [
        "877d03105d04b2c13e241130277fa69c8d2564f0"
      ],
      "author": {
        "name": "Matt LaPlante",
        "email": "kernel1@cyberdogtech.com",
        "time": "Mon Jan 26 11:12:25 2009 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 30 15:22:01 2009 +0200"
      },
      "message": "trivial: fix typos/grammar errors in Kconfig texts\n\nSigned-off-by: Matt LaPlante \u003ckernel1@cyberdogtech.com\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "3e274bd02b04064632492a86fe99d3b613c74d84",
      "tree": "c2c506dd6fa70f4ccd153cef76ed6650df0ed6a1",
      "parents": [
        "e537b2453ccf8884513201d6afcb62ca0763ecf0"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Tue Mar 24 16:38:23 2009 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Mar 24 16:38:23 2009 -0700"
      },
      "message": "gpio: struct device - replace bus_id with dev_name(), dev_set_name()\n\nCc: Michael Buesch \u003cmb@bu3sch.de\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\n"
    },
    {
      "commit": "7460db567bbca76bf087d1694d792a1a96bdaa26",
      "tree": "cb0da014bc604f11525d1e9d23b305b007914549",
      "parents": [
        "7bcc1bb1232de6efc0b85e0c7fe38e90b2436318"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@igel.co.jp",
        "time": "Thu Jan 29 14:25:12 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 29 18:04:43 2009 -0800"
      },
      "message": "gpiolib: fix request related issue\n\nFix request-already-requested handling in gpio_request().\n\nSigned-off-by: Magnus Damm \u003cdamm@igel.co.jp\u003e\nAcked-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a342d215c206d955fea55d778e3803b29ee41b60",
      "tree": "36e831878b6ed7e004d5f4e6c667b4053c756f83",
      "parents": [
        "5b96f1729064453e09805a387378e0644da1c937"
      ],
      "author": {
        "name": "Ben Dooks",
        "email": "ben-linux@fluff.org",
        "time": "Thu Jan 15 13:50:45 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 15 16:39:35 2009 -0800"
      },
      "message": "gpio: fix probe() error return in gpio driver probes\n\nA number of drivers in drivers/gpio return -ENODEV when confronted with\nmissing setup parameters such as the platform data.  However, returning\n-ENODEV causes the driver layer to silently ignore the driver as it\nassumes the probe did not find anything and was only speculative.\n\nTo make life easier to discern why a driver is not being attached, change\nto returning -EINVAL, which is a better description of the fact that the\ndriver data was not valid.\n\nAlso add a set of dev_dbg() statements to the error paths to provide an\nbetter explanation of the error as there may be more that one point in the\ndriver.\n\nSigned-off-by: Ben Dooks \u003cben-linux@fluff.org\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": "40d7ee5d162203b40b5f4fbb312ab016edddb97f",
      "tree": "432db33df85f7f244676127a189a828dfbf2877b",
      "parents": [
        "5fec8bdbf9a1c4df4ad3f20e52aa2d8caed490c8",
        "b8ac9fc0e8cda9f9776019c5b0464b0c6d2d4c90"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 17:02:07 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 17:02:07 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (60 commits)\n  uio: make uio_info\u0027s name and version const\n  UIO: Documentation for UIO ioport info handling\n  UIO: Pass information about ioports to userspace (V2)\n  UIO: uio_pdrv_genirq: allow custom irq_flags\n  UIO: use pci_ioremap_bar() in drivers/uio\n  arm: struct device - replace bus_id with dev_name(), dev_set_name()\n  libata: struct device - replace bus_id with dev_name(), dev_set_name()\n  avr: struct device - replace bus_id with dev_name(), dev_set_name()\n  block: struct device - replace bus_id with dev_name(), dev_set_name()\n  chris: struct device - replace bus_id with dev_name(), dev_set_name()\n  dmi: struct device - replace bus_id with dev_name(), dev_set_name()\n  gadget: struct device - replace bus_id with dev_name(), dev_set_name()\n  gpio: struct device - replace bus_id with dev_name(), dev_set_name()\n  gpu: struct device - replace bus_id with dev_name(), dev_set_name()\n  hwmon: struct device - replace bus_id with dev_name(), dev_set_name()\n  i2o: struct device - replace bus_id with dev_name(), dev_set_name()\n  IA64: struct device - replace bus_id with dev_name(), dev_set_name()\n  i7300_idle: struct device - replace bus_id with dev_name(), dev_set_name()\n  infiniband: struct device - replace bus_id with dev_name(), dev_set_name()\n  ISDN: struct device - replace bus_id with dev_name(), dev_set_name()\n  ...\n"
    },
    {
      "commit": "ab5dc372021def8f40b34761babecad0bf868b1c",
      "tree": "0ccc13782c79913e61d688f4f14522b249028d4a",
      "parents": [
        "cabb3fc4bd1628c37c37e054960eb3e4bf30dc26"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Tue Jan 06 14:42:27 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:25 2009 -0800"
      },
      "message": "gpio: pca953x handles more chips, i2c fault codes\n\nMinor updates to the pca953x GPIO expander driver: handle several more\ncompatible parts, and stop assuming that the I2C layer\u0027s return codes are\ngarbage (that\u0027s now been fixed).\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Eric Miao \u003ceric.miao@marvell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cabb3fc4bd1628c37c37e054960eb3e4bf30dc26",
      "tree": "db8acce21cc4c9762da5f815779ec702f5a59c0c",
      "parents": [
        "ba6c4033b9db22cb54e7e03dae5b624b7b0ffaf9"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Tue Jan 06 14:42:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:25 2009 -0800"
      },
      "message": "twl4030-gpio: cleanup debounce\n\nProvide a static debounce configuration mechanism for twl4030 GPIOs,\nreplacing the previous dynamic one.  The single user of that mechanism was\nfor MMC card detect debouncing.\n\nBoards can provide a bitmask saying which GPIOs to debounce (30 msec).\nIt\u0027s always enabled for pins with the MMC card-detect/VMMCx link active,\nso most boards won\u0027t need to set the debounce mask.\n\nThis is a net code shrink, including runtime footprint.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Tony Lindgren \u003ctony@atomide.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "14ab309d33efda7b78bad1d331fd1963ed3bd906",
      "tree": "a8a37c43836932c45c164cbbf2ea286e3237e65a",
      "parents": [
        "8f4bbd9f59a6ec0d96ae374ea2a46bfa90cc26e4"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Tue Jan 06 10:44:42 2009 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 06 10:44:42 2009 -0800"
      },
      "message": "gpio: struct device - replace bus_id with dev_name(), dev_set_name()\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "6e8ba729b6332f2a75572e02480936d2b51665aa",
      "tree": "1a705976c90e3160e1afe4e5669782316ff420f9",
      "parents": [
        "1c207f952a3a39f9d07a3e9de0cf6b9a9464eeaa"
      ],
      "author": {
        "name": "Jarkko Nikula",
        "email": "jarkko.nikula@nokia.com",
        "time": "Wed Nov 19 15:36:17 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:49:57 2008 -0800"
      },
      "message": "gpiolib: extend gpio label column width in debugfs file\n\nThere are already various drivers having bigger label than 12 bytes.  Most\nof them fit well under 20 bytes but make column width exact so that\noversized labels don\u0027t mess up output alignment.\n\nSigned-off-by: Jarkko Nikula \u003cjarkko.nikula@nokia.com\u003e\nAcked-by: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.26.x, 2.6.26.x, 2.6.27.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0bcb6069a6e1af5c114a2a8873ec43ada8933596",
      "tree": "aafddacd65951f2ed7995dc6183fe9256811ee29",
      "parents": [
        "e33c3b5e172e2e45456f42fba47227d48745543f"
      ],
      "author": {
        "name": "John Linn",
        "email": "john.linn@xilinx.com",
        "time": "Wed Nov 12 13:25:38 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:17:16 2008 -0800"
      },
      "message": "GPIO: add new Xilinx driver for powerpc\n\nThis driver supports the Xilinx XPS GPIO IP core which has the typical\nGPIO features.\n\nSigned-off-by: Kiran Sutariya \u003ckirans@xilinx.com\u003e\nSigned-off-by: John Linn \u003cjohn.linn@xilinx.com\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Kumar Gala \u003cgalak@gate.crashing.org\u003e\nCc: \"Grant Likely\" \u003cgrant.likely@secretlab.ca\u003e\nCc: \u003cavorontsov@ru.mvista.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e9d359471dfed51a1bdeaa484ee7dac0679d0a20",
      "tree": "5291c4f0af15e2b3adcd136cdb53562516f2e9dd",
      "parents": [
        "f96411ab73647ebf9485d77546c0c1f554bafcd7"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Mon Oct 20 23:51:46 2008 +0200"
      },
      "committer": {
        "name": "Samuel Ortiz",
        "email": "samuel@sortiz.org",
        "time": "Wed Oct 22 01:19:39 2008 +0200"
      },
      "message": "mfd: twl4030-gpio driver\n\nThis adds basic support for the GPIOs in the twl4030 power management\nchip.  That includes two open drain LED drivers, and the use of GPIO-0\n(and GPIO-1) as MMC/SD card detect switches which can control whether\nthe VMMC1 (and VMMC2) regulators are active.\n\nThis version of the code has a debounce call that will probably be\nreplaced before long, when a more generic interface exists.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Tony Lindgren \u003ctony@atomide.com\u003e\nSigned-off-by: Samuel Ortiz \u003csameo@openedhand.com\u003e\n"
    },
    {
      "commit": "9301975ec251bab1ad7cfcb84a688b26187e4e4a",
      "tree": "91e48be0bdc67cbcb75bc8a299a3dcf168e0a814",
      "parents": [
        "7110879cf2afbfb7af79675f5ff109e63d631c25",
        "dd3a1db900f2a215a7d7dd71b836e149a6cf5fed"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 13:22:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 13:23:01 2008 -0700"
      },
      "message": "Merge branch \u0027genirq-v28-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\nThis merges branches irq/genirq, irq/sparseirq-v4, timers/hpet-percpu\nand x86/uv.\n\nThe sparseirq branch is just preliminary groundwork: no sparse IRQs are\nactually implemented by this tree anymore - just the new APIs are added\nwhile keeping the old way intact as well (the new APIs map 1:1 to\nirq_desc[]).  The \u0027real\u0027 sparse IRQ support will then be a relatively\nsmall patch ontop of this - with a v2.6.29 merge target.\n\n* \u0027genirq-v28-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (178 commits)\n  genirq: improve include files\n  intr_remapping: fix typo\n  io_apic: make irq_mis_count available on 64-bit too\n  genirq: fix name space collisions of nr_irqs in arch/*\n  genirq: fix name space collision of nr_irqs in autoprobe.c\n  genirq: use iterators for irq_desc loops\n  proc: fixup irq iterator\n  genirq: add reverse iterator for irq_desc\n  x86: move ack_bad_irq() to irq.c\n  x86: unify show_interrupts() and proc helpers\n  x86: cleanup show_interrupts\n  genirq: cleanup the sparseirq modifications\n  genirq: remove artifacts from sparseirq removal\n  genirq: revert dynarray\n  genirq: remove irq_to_desc_alloc\n  genirq: remove sparse irq code\n  genirq: use inline function for irq_to_desc\n  genirq: consolidate nr_irqs and for_each_irq_desc()\n  x86: remove sparse irq from Kconfig\n  genirq: define nr_irqs for architectures with GENERIC_HARDIRQS\u003dn\n  ...\n"
    },
    {
      "commit": "978ccaa8ea5d8c7bf6b676209f2fc126eae6355b",
      "tree": "4d639469edbdb2df8ec364bae1719bd083bc04da",
      "parents": [
        "e3274e915061a65717454106301d4a5ea8f71783"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Sat Oct 18 20:27:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:36 2008 -0700"
      },
      "message": "gpiolib: fix oops in gpio_get_value_cansleep()\n\nWe can get the following oops from gpio_get_value_cansleep() when a GPIO\ncontroller doesn\u0027t provide a get() callback:\n\n Unable to handle kernel paging request for instruction fetch\n Faulting instruction address: 0x00000000\n Oops: Kernel access of bad area, sig: 11 [#1]\n [...]\n NIP [00000000] 0x0\n LR [c0182fb0] gpio_get_value_cansleep+0x40/0x50\n Call Trace:\n [c7b79e80] [c0183f28] gpio_value_show+0x5c/0x94\n [c7b79ea0] [c01a584c] dev_attr_show+0x30/0x7c\n [c7b79eb0] [c00d6b48] fill_read_buffer+0x68/0xe0\n [c7b79ed0] [c00d6c54] sysfs_read_file+0x94/0xbc\n [c7b79ef0] [c008f24c] vfs_read+0xb4/0x16c\n [c7b79f10] [c008f580] sys_read+0x4c/0x90\n [c7b79f40] [c0013a14] ret_from_syscall+0x0/0x38\n\nIt\u0027s OK to request the value of *any* GPIO; most GPIOs are bidirectional,\nso configuring them as outputs just enables an output driver and doesn\u0027t\ndisable the input logic.\n\nSo the problem is that gpio_get_value_cansleep() isn\u0027t making the same\nsanity check that gpio_get_value() does: making sure this GPIO isn\u0027t one\nof the atypical \"no input logic\" cases.\n\nReported-by: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.27.x, 2.6.26.x, 2.6.25.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e3274e915061a65717454106301d4a5ea8f71783",
      "tree": "e88cb4ef896fe2f4e38b58ed1b0d2f2e543c70cb",
      "parents": [
        "c8fc40cd345bfd88d8a98e7916909b9143502999"
      ],
      "author": {
        "name": "Steven A. Falco",
        "email": "sfalco@harris.com",
        "time": "Sat Oct 18 20:27:48 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:36 2008 -0700"
      },
      "message": "gpio: modify sysfs gpio export so that \"value\" displays as 0 or 1\n\ngpiolib can export GPIOs to userspace via sysfs.  This patch modifies the\ngpio_value_show() so that any non-zero value is explicitly printed as \"1\",\nrather than whatever numerical value the lower-level driver returns.\n\nSigned-off-by: Steve Falco \u003csfalco@harris.com\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "35e8bb5175c1a6ff6253f1a2acb30bfe52a2f500",
      "tree": "88a1e9695824f88efef3340fd53f8dbe576f5852",
      "parents": [
        "93a22f8b95756c53e80308820892119c910d2739"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Wed Oct 15 22:03:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:40 2008 -0700"
      },
      "message": "gpiolib: request/free hooks\n\nAdd a new internal mechanism to gpiolib to support low power\noperations by letting gpio_chip instances see when their GPIOs\nare in use.  When no GPIOs are active, chips may be able to\nenter lower powered runtime states by disabling clocks and/or\npower domains.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: \"Magnus Damm\" \u003cmagnus.damm@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": "0f6d504e73b49374c6093efe6aa60ab55058248a",
      "tree": "414c9e591ba23b2126bc9cad4e0efb1b60693b2d",
      "parents": [
        "2f8d11971b9f54362437ce70f4d1911f0996d542"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Wed Oct 15 22:03:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:40 2008 -0700"
      },
      "message": "gpiolib: gpio_to_irq() hooks\n\nAdd a new gpiolib mechanism: gpio_chip instances can provide mappings\nbetween their (input) GPIOs and any associated IRQs.  This makes it easier\nfor platforms to support IRQs that are provided by board-specific external\nchips instead of as part of their core (such as SOC-integrated GPIOs).\n\nAlso update the irq_to_gpio() description, saying to avoid it because it\u0027s\nnot always supported.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2f8d11971b9f54362437ce70f4d1911f0996d542",
      "tree": "48fb0df29994e976325761bd9e07ce107a96b6d5",
      "parents": [
        "3d599d1ca57f443e5c4ff5af1e69d90350082f77"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Wed Oct 15 22:03:13 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:40 2008 -0700"
      },
      "message": "gpio: i2c expanders use subsys_init\n\nMake the I2C external GPIO expander drivers register themselves at\nsubsys_initcall() time when they\u0027re statically linked.\n\nSOC-integrated GPIOs are available starting very early -- early in\narch_initcall() at latest, but often even before initcalls start to run --\nso this improves consistency, so more subsystems can rely on GPIOs in\ntheir own subsys_initcall() code.\n\n(This isn\u0027t a theoretical problem.  This is one of several patches needed\nto resolve oopsing observed when statically linking kernels on a DaVinci\nEVM.  Its pcf857x GPIOs needed to be available well before some other\ndrivers initialized.)\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3d599d1ca57f443e5c4ff5af1e69d90350082f77",
      "tree": "475b066c18f2b610d6a0ee0a6313237ce61afc4a",
      "parents": [
        "c557fa3e4c156b8713c177d9dde08920130bf551"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "ukleinek@informatik.uni-freiburg.de",
        "time": "Wed Oct 15 22:03:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:40 2008 -0700"
      },
      "message": "gpio_free might sleep, generic part\n\nAccording to the documentation gpio_free should only be called from task\ncontext only.  To make this more explicit add a might sleep to all\nimplementations.\n\nThis is the generic part which changes gpiolib and the fallback\nimplementation only.\n\nSigned-off-by: Uwe Kleine-König \u003cukleinek@informatik.uni-freiburg.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": "c557fa3e4c156b8713c177d9dde08920130bf551",
      "tree": "a79b6e702b0d76ba79c2204af527a0c193a68253",
      "parents": [
        "4fd5463c43d75ec919e27abdcfde1b199c19541e"
      ],
      "author": {
        "name": "Dmitry Baryshkov",
        "email": "dbaryshkov@gmail.com",
        "time": "Wed Oct 15 22:03:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:40 2008 -0700"
      },
      "message": "gpio: max7301: fix the race between chip addition and pins reconfiguration\n\nThere is a small race and code ugliness in max7301: pins are reconfigured\nafter the chip is registered.  Swap these calls so that the device is\nregistered in correct state.\n\nAlso this fixes the comile-time warning about unchecked gpiochip_remove.\n\nSigned-off-by: Dmitry Baryshkov \u003cdbaryshkov@gmail.com\u003e\nCc: Juergen Beisert \u003cj.beisert@pengutronix.de\u003e\nCc: Guennadi Liakhovetski \u003cg.liakhovetski@pengutronix.de\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\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": "673c0c00382ed807f09d94e806f3519ddeeb4f70",
      "tree": "005bccdee7f27660fd2c738fbe26635f019aae96",
      "parents": [
        "2bec19feabd53cba75e9dab0e79afbe868a37113"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Wed Oct 15 22:02:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:38 2008 -0700"
      },
      "message": "spi: core and gpio expanders use subsys_init\n\nMake the SPI external GPIO expander drivers register themselves at\nsubsys_initcall() time when they\u0027re statically linked, and make the SPI\ncore do its driver model initialization earlier so that\u0027s safe.\n\nSOC-integrated GPIOs are available starting very early -- often before\ninitcalls start to run, or earily in arch_initcall() at latest -- so this\nimproves consistency, letting more subsystems rely on GPIOs being usable\nby their own subsys_initcall() code.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08678b0841267c1d00d771fe01548d86043d065e",
      "tree": "7debb21f9e9a768ced43077f7376797a0c46f8c0",
      "parents": [
        "bfea1238beac9d306eeac081c67de5ca6aec4c7a"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Tue Aug 19 20:50:05 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:52:29 2008 +0200"
      },
      "message": "generic: sparse irqs: use irq_desc() together with dyn_array, instead of irq_desc[]\n\nadd CONFIG_HAVE_SPARSE_IRQ to for use condensed array.\nGet rid of irq_desc[] array assumptions.\n\nPreallocate 32 irq_desc, and irq_desc() will try to get more.\n\n( No change in functionality is expected anywhere, except the odd build\n  failure where we missed a code site or where a crossing commit itroduces\n  new irq_desc[] usage. )\n\nv2: according to Eric, change get_irq_desc() to irq_desc()\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bbcd6d543de335bf81e96477f46a60a8bf51039c",
      "tree": "86d592bfa308407ce357184ff9494e7d36939c6b",
      "parents": [
        "7444a72effa632fcd8edc566f880d96fe213c73b"
      ],
      "author": {
        "name": "Eric Miao",
        "email": "eric.miao@marvell.com",
        "time": "Fri Jul 25 01:46:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:30 2008 -0700"
      },
      "message": "gpio: max732x driver\n\nThis adds a driver supporting a family of I2C port expanders from Maxim,\nwhich includes the MAX7319 and MAX7320-7327 chips.\n\n[dbrownell@users.sourceforge.net: minor fixes]\nSigned-off-by: Jack Ren \u003cjack.ren@marvell.com\u003e\nSigned-off-by: Eric Miao \u003ceric.miao@marvell.com\u003e\nAcked-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7444a72effa632fcd8edc566f880d96fe213c73b",
      "tree": "89d3e70c22751a6b00091df2b4dce7202eb3b1f5",
      "parents": [
        "ff1d5c2f0268f4e32103536e2e65480b5b7b6530"
      ],
      "author": {
        "name": "Michael Buesch",
        "email": "mb@bu3sch.de",
        "time": "Fri Jul 25 01:46:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:30 2008 -0700"
      },
      "message": "gpiolib: allow user-selection\n\nThis patch adds functionality to the gpio-lib subsystem to make it\npossible to enable the gpio-lib code even if the architecture code didn\u0027t\nrequest to get it built in.\n\nThe archtitecture code does still need to implement the gpiolib accessor\nfunctions in its asm/gpio.h file.  This patch adds the implementations for\nx86 and PPC.\n\nWith these changes it is possible to run generic GPIO expansion cards on\nevery architecture that implements the trivial wrapper functions.  Support\nfor more architectures can easily be added.\n\nSigned-off-by: Michael Buesch \u003cmb@bu3sch.de\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Jesper Nilsson \u003cjesper.nilsson@axis.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Samuel Ortiz \u003csameo@openedhand.com\u003e\nCc: Kumar Gala \u003cgalak@gate.crashing.org\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff1d5c2f0268f4e32103536e2e65480b5b7b6530",
      "tree": "3f5e538b85c35eb73db07fb7a57dc8edc46968a4",
      "parents": [
        "8f1cc3b10e6ee0c5c7c8ed27f8771c4f252b4862"
      ],
      "author": {
        "name": "Michael Buesch",
        "email": "mb@bu3sch.de",
        "time": "Fri Jul 25 01:46:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:30 2008 -0700"
      },
      "message": "gpio: add bt8xxgpio driver\n\nThis adds the bt8xxgpio driver.  The purpose of the bt8xxgpio driver is to\nexport all of the 24 GPIO pins available on Brooktree 8xx chips to the\nkernel GPIO infrastructure.\n\nThis makes it possible to use a physically modified BT8xx card as\ncheap digital GPIO card.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Michael Buesch \u003cmb@bu3sch.de\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f1cc3b10e6ee0c5c7c8ed27f8771c4f252b4862",
      "tree": "a64611af44cf46aea2e2b145fad85042bb647a3d",
      "parents": [
        "d8f388d8dc8d4f36539dd37c1fff62cc404ea0fc"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Fri Jul 25 01:46:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:30 2008 -0700"
      },
      "message": "gpio: mcp23s08 handles multiple chips per chipselect\n\nTeach the mcp23s08 driver about a curious feature of these chips: up to\nfour of them can share the same chipselect, with the SPI signals wired in\nparallel, by matching two bits in the first protocol byte against two\naddress lines on the chip.\n\nThis is handled by three software changes:\n\n  * Platform data now holds an array of per-chip structs, not\n    just one chip\u0027s address and pullup configuration.\n\n  * Probe() and remove() now use another level of structure,\n    wrapping an instance of the original structure for each\n    mcp23s08 chip sharing that chipselect.\n\n  * The HAEN bit is set, so that the hardware address bits can no\n    longer be ignored (boot firmware may not have enabled them).\n\nThe \"one struct per chip\" preserves the guts of the current code,\nbut platform_data will need minor changes.\n\n    OLD:\n\t/* incorrect \"slave\" ID may not have mattered */\n\t.slave \u003d 3,\n\t.pullups \u003d BIT(3) | BIT(1) | BIT(0),\n\n    NEW:\n\t/* slave address _must_ match chip\u0027s wiring */\n\t.chip[3] \u003d {\n\t\t.is_present \u003d true,\n\t\t.pullups \u003d BIT(3) | BIT(1) | BIT(0),\n\t},\n\nThere\u0027s no change in how things _behave_ for spi_device nodes with a\nsingle mcp23s08 chip.  New multi-chip configurations assign GPIOs in\nsequence, without holes.  The spi_device just resembles a bigger\ncontroller, but internally it has multiple gpio_chip instances.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d8f388d8dc8d4f36539dd37c1fff62cc404ea0fc",
      "tree": "df8603775c889f29f8a03c77b9f7913bfd90d296",
      "parents": [
        "8b6dd986823a8d92ed9f54baa5cef8604d9d9d44"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Fri Jul 25 01:46:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:30 2008 -0700"
      },
      "message": "gpio: sysfs interface\n\nThis adds a simple sysfs interface for GPIOs.\n\n    /sys/class/gpio\n    \t/export ... asks the kernel to export a GPIO to userspace\n    \t/unexport ... to return a GPIO to the kernel\n        /gpioN ... for each exported GPIO #N\n\t    /value ... always readable, writes fail for input GPIOs\n\t    /direction ... r/w as: in, out (default low); write high, low\n\t/gpiochipN ... for each gpiochip; #N is its first GPIO\n\t    /base ... (r/o) same as N\n\t    /label ... (r/o) descriptive, not necessarily unique\n\t    /ngpio ... (r/o) number of GPIOs; numbered N .. N+(ngpio - 1)\n\nGPIOs claimed by kernel code may be exported by its owner using a new\ngpio_export() call, which should be most useful for driver debugging.\nSuch exports may optionally be done without a \"direction\" attribute.\n\nUserspace may ask to take over a GPIO by writing to a sysfs control file,\nhelping to cope with incomplete board support or other \"one-off\"\nrequirements that don\u0027t merit full kernel support:\n\n  echo 23 \u003e /sys/class/gpio/export\n\t... will gpio_request(23, \"sysfs\") and gpio_export(23);\n\tuse /sys/class/gpio/gpio-23/direction to (re)configure it,\n\twhen that GPIO can be used as both input and output.\n  echo 23 \u003e /sys/class/gpio/unexport\n\t... will gpio_free(23), when it was exported as above\n\nThe extra D-space footprint is a few hundred bytes, except for the sysfs\nresources associated with each exported GPIO.  The additional I-space\nfootprint is about two thirds of the current size of gpiolib (!).  Since\nno /dev node creation is involved, no \"udev\" support is needed.\n\nRelated changes:\n\n  * This adds a device pointer to \"struct gpio_chip\".  When GPIO\n    providers initialize that, sysfs gpio class devices become children of\n    that device instead of being \"virtual\" devices.\n\n  * The (few) gpio_chip providers which have such a device node have\n    been updated.\n\n  * Some gpio_chip drivers also needed to update their module \"owner\"\n    field ...  for which missing kerneldoc was added.\n\n  * Some gpio_chips don\u0027t support input GPIOs.  Those GPIOs are now\n    flagged appropriately when the chip is registered.\n\nBased on previous patches, and discussion both on and off LKML.\n\nA Documentation/ABI/testing/sysfs-gpio update is ready to submit once this\nmerges to mainline.\n\n[akpm@linux-foundation.org: a few maintenance build fixes]\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Guennadi Liakhovetski \u003cg.liakhovetski@pengutronix.de\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1673ad52bd9a3c747e596a76e65c55981ea651e3",
      "tree": "9e018b1d511a96f745fc870bfdf8bf53759c25ae",
      "parents": [
        "0c36ec31473593aa937ff04f3b3b630e81512734"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Mon Jul 21 14:21:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 22 09:59:41 2008 -0700"
      },
      "message": "gpio: pcf857x: add lock and handle more chips\n\nTwo small updates to the pcf857x driver: (a) the max732[89] chips are\nalso second sources for the pcf8574/a, and (b) add a mutex to prevent\ntrashing the cached state.  Adding the lock is effectively a bugfix,\nalthough it seems unlikely that anyone would have run into the issue it\nprotects against.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0c36ec31473593aa937ff04f3b3b630e81512734",
      "tree": "28afc1e7d6e0cf31f1ab2978a121e5f8cf504cc9",
      "parents": [
        "651910874633a75f4a726d44e449be0a56b4b2e0"
      ],
      "author": {
        "name": "Juergen Beisert",
        "email": "j.beisert@pengutronix.de",
        "time": "Mon Jul 21 14:21:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 22 09:59:40 2008 -0700"
      },
      "message": "gpio: gpio driver for max7301 SPI GPIO expander\n\nMaxim\u0027s MAX7301 is an SPI GPIO expander with 28 GPIOs.  Note: MAX7301\u0027s\ninterrupt feature is not supported yet.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[g.liakhovetski@pengutronix.de: Fix inaccuracies in comments, check spi_setup()\nreturn code, mask off high byte in max7301_read()]\nSigned-off-by: Juergen Beisert \u003cj.beisert@pengutronix.de\u003e\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@pengutronix.de\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7059d4b08eba2ad046395a04b02e34ca27304d8f",
      "tree": "47fbdbec332d2fea3b24f984f08237f92cdfcd2d",
      "parents": [
        "da9eac8990dc614ab4756f2a3d84870b675f1f1e"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Fri Jul 04 09:59:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 04 10:40:06 2008 -0700"
      },
      "message": "gpio: pca953x (i2c) handles max7310 too\n\nThe pca953x driver can handle another 8-bit I/O expander, the max7310.\nThis patch adds that chip to the list of supported IDs in that driver, and\nexpands the Kconfig helptext accordingly.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bff5fda972dc23bd1806a47c2098ae173585d013",
      "tree": "d26a3e5f18ee91b25dc4da7f1d1d0f022dd8d72d",
      "parents": [
        "1d1c1d9b557a12320174058d2d313ffb0f8611f4"
      ],
      "author": {
        "name": "Trent Piepho",
        "email": "xyzzy@speakeasy.org",
        "time": "Fri May 23 13:04:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 24 09:56:11 2008 -0700"
      },
      "message": "gpiolib: fix off by one errors\n\nThe last gpio belonging to a chip is chip-\u003ebase + chip-\u003engpios - 1.  Some\nplaces in the code, but not all, forgot the critical minus one.\n\nSigned-off-by: Trent Piepho \u003cxyzzy@speakeasy.org\u003e\nAcked-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d1c1d9b557a12320174058d2d313ffb0f8611f4",
      "tree": "ba4d9c9c1a32ae0ccf85c6c1787a79f19856d150",
      "parents": [
        "69292b342193d4068f6435660368ff98713d8164"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "12o3l@tiscali.nl",
        "time": "Fri May 23 13:04:43 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 24 09:56:11 2008 -0700"
      },
      "message": "gpio: mcp23s08 debug fix\n\nThe return value of mcp23s08_read_regs() can only be evaluated when signed\n\nSigned-off-by: Roel Kluin \u003c12o3l@tiscali.nl\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "69292b342193d4068f6435660368ff98713d8164",
      "tree": "798419bd4299bd28042c3893865f3b33eea7d562",
      "parents": [
        "da7978b0348d497688541e2d2f5739aa2a2c334f"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Fri May 23 13:04:42 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 24 09:56:11 2008 -0700"
      },
      "message": "gpio: pca953x driver handles pca9554 too\n\nTeach drivers/gpio/pca953x.c about PCA9554, another compatible chip.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f39e578172f30d3bdd4533465c7ec00db738eb9d",
      "tree": "6a3e4928f88ec2ed8300bebc85a506c6641b6e7a",
      "parents": [
        "868eb7a8539d3e8c494209be2b1f4084a274dfef"
      ],
      "author": {
        "name": "Will Newton",
        "email": "will.newton@gmail.com",
        "time": "Thu May 01 04:35:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:04:01 2008 -0700"
      },
      "message": "gpio: pca953x: add support for pca9555 I2C I/O expander\n\nAdd support for pca9555 I2C I/O expander.  As the comment suggests this part\nis software compatible with the pca9539.\n\nSigned-off-by: Will Newton \u003cwill.newton@imgtec.com\u003e\nCc: \"eric miao\" \u003ceric.miao@marvell.com\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": "145980a0b07520f0f82cc40999acc92b349ea40c",
      "tree": "48bc21442adcda4561b8f5356380cc168d059619",
      "parents": [
        "bdf4bbaaee3d4b8f555658333cbce1affe9070fb"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Apr 30 00:54:57 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:53 2008 -0700"
      },
      "message": "drivers: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Ben Dooks \u003cben-linux@fluff.org\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": "169b6a7a6e91e1ea32136681b475cbaf2074bf35",
      "tree": "bf29842528e61cb07c581e43acbe3619a25746ab",
      "parents": [
        "8d0aab2f16c4fa170f32e7a74a52cd0122bbafef"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "avorontsov@ru.mvista.com",
        "time": "Mon Apr 28 02:14:47 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:34 2008 -0700"
      },
      "message": "gpiochip_reserve()\n\nAdd a new function gpiochip_reserve() to reserve ranges of gpios that platform\ncode has pre-allocated.  That is, this marks gpio numbers which will be\nclaimed by drivers that haven\u0027t yet been loaded, and thus are not available\nfor dynamic gpio number allocation.\n\n[akpm@linux-foundation.org: remove unneeded __must_check]\n[david-b@pacbell.net: don\u0027t export gpiochip_reserve (section fix)]\nSigned-off-by: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d0aab2f16c4fa170f32e7a74a52cd0122bbafef",
      "tree": "c9e559489af8f2cbcceda8a323e4ac496114765a",
      "parents": [
        "e6de1808f8ebfeb7e49f3c5a30cb8f2032beb287"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "avorontsov@ru.mvista.com",
        "time": "Mon Apr 28 02:14:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:34 2008 -0700"
      },
      "message": "gpiolib: dynamic gpio number allocation\n\nIf gpio_chip-\u003ebase is negative during registration, gpiolib performs dynamic\nbase allocation.  This is useful for devices that aren\u0027t always present, such\nas GPIOs on hotplugged devices rather than mainboards.  (This behavior was\npreviously specified but not implemented.)\n\nTo avoid using any numbers that may have been explicitly assigned but not yet\nregistered, this dynamic allocation assigns GPIO numbers from the biggest\nnumber on down, instead of from the smallest on up.\n\nSigned-off-by: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e6de1808f8ebfeb7e49f3c5a30cb8f2032beb287",
      "tree": "2230ea8f384449c7785d636ab016af3b2aa20123",
      "parents": [
        "d72cbed0c486e3db8b56380635f8e845073ce63a"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@pengutronix.de",
        "time": "Mon Apr 28 02:14:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:34 2008 -0700"
      },
      "message": "gpio: define gpio_is_valid()\n\nIntroduce a gpio_is_valid() predicate; use it in gpiolib.\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@pengutronix.de\u003e\n    [ use inline function; follow the gpio_* naming convention;\n      work without gpiolib; all programming interfaces need docs ]\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d72cbed0c486e3db8b56380635f8e845073ce63a",
      "tree": "8739c1078f970a2acdb24fd3f2b94c68c89dd3b5",
      "parents": [
        "438d8908b379b6322fc3b28d45c9ebdddf58bc20"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@pengutronix.de",
        "time": "Mon Apr 28 02:14:45 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:34 2008 -0700"
      },
      "message": "gpiolib: i2c/spi drivers: handle rmmod better\n\nUse the newly introduced owner field in struct gpio_chip to protect the\ncurrent (small) set of non-SOC GPIO drivers from being unloaded while any of\ntheir GPIOs are in use.\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@pengutronix.de\u003e\n[ add mcp23s08 and pcf857x ]\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "438d8908b379b6322fc3b28d45c9ebdddf58bc20",
      "tree": "ce9439dc8c7e5d9e80f514751fb3b4ce4e414233",
      "parents": [
        "73fcdc9e15c27bb92595c611c8938a36645ea20d"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@pengutronix.de",
        "time": "Mon Apr 28 02:14:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:34 2008 -0700"
      },
      "message": "gpiolib: better rmmod infrastructure\n\nAs long as one or more GPIOs on a gpio chip are used its driver should not be\nunloaded.  The existing mechanism (gpiochip_remove failure) doesn\u0027t address\nthat, since rmmod can no longer be made to fail by having the cleanup code\nreport errors.  Module usecounts are the solution.\n\nAssuming standard \"initialize struct to zero\" policies, this change won\u0027t\naffect SOC platform drivers.  However, drivers for external chips (on I2C and\nSPI busses) should be updated if they can be built as modules.\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@pengutronix.de\u003e\n[ gpio_ensure_requested() needs to update module usecounts too ]\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "842078054da2d754c6b998b116d7c468abbfaaca",
      "tree": "e31e3d8bef79080c339f94a3a0e205774201e203",
      "parents": [
        "7be3dfec4724c51e890455fe48fe188ad7c18b88"
      ],
      "author": {
        "name": "Arnaud Patard",
        "email": "arnaud.patard@rtp-net.org",
        "time": "Mon Mar 10 11:43:48 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Mar 10 18:01:19 2008 -0700"
      },
      "message": "gpio/pca953x bugfix: mark as can_sleep\n\nThe pca953x driver is an I2C driver so gpio_chip-\u003ecan_sleep should be set.\nThis lets upper layers know they should use the gpio_*_cansleep() calls to\naccess values, and may not access them from nonsleeping contexts.\n\nSigned-off-by: Arnaud Patard \u003carnaud.patard@rtp-net.org\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nAcked-by: \"eric miao\" \u003ceric.y.miao@gmail.com\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f5e8ff483266e2913bd676d520f46b5675a18e7a",
      "tree": "54c0212d51fb53fb1f301530649dfcd5247bd8b3",
      "parents": [
        "f3dc3630f687aa4664b663143f69d99d83195c54"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@pengutronix.de",
        "time": "Wed Feb 06 01:39:04 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:15 2008 -0800"
      },
      "message": "gpio: handle pca953{4,5,6,7,8} too\n\nThis third part of an extension to support more pca953x chips updates the\nlogic to handle the smaller register widths used by the 4-bit and 8-bit parts,\nand to use the chip type to determine how many GPIOs it provides.\n\nAs long as we don\u0027t support interrupt and reset capabilities, those size\nissues are the only software-visible differences between these parts.\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@pengutronix.de\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f3dc3630f687aa4664b663143f69d99d83195c54",
      "tree": "928dd4c1b2ddc7970e6bfebe17911271e1417597",
      "parents": [
        "d1c057e31734426ba385e02291d97bdf06ba0c1d"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@pengutronix.de",
        "time": "Wed Feb 06 01:39:03 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:15 2008 -0800"
      },
      "message": "gpio: rename pca953x symbols\n\nThis second part of an extension to support more pca953x chips renames the C\nand Kconfig symbols.  All affected files were updated by sed, except for a\ncouple of obvious exceptions.  It also updates the Kconfig helptext.\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@pengutronix.de\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d1c057e31734426ba385e02291d97bdf06ba0c1d",
      "tree": "46d85c501626fdc8db60f30a7bc6c3c45eef89dd",
      "parents": [
        "ad8dc96e3b2c3e28854e0de4ab49351ed547b30c"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@pengutronix.de",
        "time": "Wed Feb 06 01:39:02 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:15 2008 -0800"
      },
      "message": "gpio: rename pca9539 driver\n\nFirst part of an extension to let the pca9539 driver support more chips,\nstarting with pca9534, pca9535, pca9536, pca9537, and pca9538.\n\nThis renames the files and modifies the Makefile.\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@pengutronix.de\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9e60fdcf0c2905d7a8fc4cb2b3711ea5c5acaae1",
      "tree": "c90417ab0e2079d0355ffb553985d9a0f2348bab",
      "parents": [
        "e58b9e2762a6ef99e20dba47aba21b911658541d"
      ],
      "author": {
        "name": "eric miao",
        "email": "eric.miao@marvell.com",
        "time": "Mon Feb 04 22:28:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:13 2008 -0800"
      },
      "message": "gpiolib: pca9539 i2c gpio expander support\n\nThis adds a new-style I2C driver with basic support for the sixteen bit\nPCA9539 GPIO expanders.  These chips have multiple registers, push-pull output\ndrivers, and (not supported in this patch) pin change interrupts.\n\nBoard-specific code must provide \"pca9539_platform_data\" with each chip\u0027s\n\"i2c_board_info\".  That provides the GPIO numbers to be used by that chip, and\ncallbacks for board-specific setup/teardown logic.\n\nDerived from drivers/i2c/chips/pca9539.c (which has no current known users).\nThis is faster and simpler; it uses 16-bit register access, and cache the\nOUTPUT and DIRECTION registers for fast access\n\nSigned-off-by: eric miao \u003ceric.miao@marvell.com\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nAcked-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Philipp Zabel \u003cphilipp.zabel@gmail.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ben Gardner \u003cbgardner@wabtec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e58b9e2762a6ef99e20dba47aba21b911658541d",
      "tree": "0097fbe262bb4d1944bfb3c9a922ec36b90851c5",
      "parents": [
        "15fae37d9f5f21571a9618d8353164b6ddfea6f6"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Mon Feb 04 22:28:25 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:13 2008 -0800"
      },
      "message": "mcp23s08 spi gpio expander support\n\nBasic driver for 8-bit SPI based MCP23S08 GPIO expander, without support for\nIRQs or the shared chipselect mechanism.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Eric Miao \u003ceric.miao@marvell.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Philipp Zabel \u003cphilipp.zabel@gmail.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ben Gardner \u003cbgardner@wabtec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "15fae37d9f5f21571a9618d8353164b6ddfea6f6",
      "tree": "13b4fb5479cf3a9522c6673cc6ccae20b6658e55",
      "parents": [
        "1c44f5f16fee880b294f8068354bfb9dddf1349b"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Mon Feb 04 22:28:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:13 2008 -0800"
      },
      "message": "gpiolib: pcf857x i2c gpio expander support\n\nThis is a new-style I2C driver for most common 8 and 16 bit I2C based\n\"quasi-bidirectional\" GPIO expanders: pcf8574 or pcf8575, and several\ncompatible models (mostly faster, supporting I2C at up to 1 MHz).\n\nThe driver exposes the GPIO signals using the platform-neutral GPIO\nprogramming interface, so they are easily accessed by other kernel code.  The\nlack of such a flexible kernel API has been a big factor in the proliferation\nof board-specific drivers for these chips...  stuff that rarely makes it\nupstream since it\u0027s so ugly.  This driver will let such boards use standard\ncalls.\n\nSince it\u0027s a new-style driver, these devices must be configured as part of\nboard-specific init.  That eliminates the need for error-prone manual\nconfiguration of module parameters, and makes compatibility with legacy\ndrivers (pcf8574.c, pc8575.c) for these chips easier (there\u0027s a clear\neither/or disjunction).\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nAcked-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Eric Miao \u003ceric.miao@marvell.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Philipp Zabel \u003cphilipp.zabel@gmail.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ben Gardner \u003cbgardner@wabtec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2876d08d86f22ce1f276fc29f6baec8b53e32c6",
      "tree": "d9d059fad208001edb58d9dff3ed6ad64c8e7407",
      "parents": [
        "a9c5fff542544c8595bb12efeb278a96d99386fc"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Mon Feb 04 22:28:20 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:12 2008 -0800"
      },
      "message": "gpiolib: add gpio provider infrastructure\n\nProvide new implementation infrastructure that platforms may choose to use\nwhen implementing the GPIO programming interface.  Platforms can update their\nGPIO support to use this.  In many cases the incremental cost to access a\nnon-inlined GPIO should be less than a dozen instructions, with the memory\ncost being about a page (total) of extra data and code.  The upside is:\n\n  * Providing two features which were \"want to have (but OK to defer)\" when\n    GPIO interfaces were first discussed in November 2006:\n\n    -\tA \"struct gpio_chip\" to plug in GPIOs that aren\u0027t directly supported\n\tby SOC platforms, but come from FPGAs or other multifunction devices\n\tusing conventional device registers (like UCB-1x00 or SM501 GPIOs,\n\tand southbridges in PCs with more open specs than usual).\n\n    -\tFull support for message-based GPIO expanders, where registers are\n\taccessed through sleeping I/O calls.  Previous support for these\n\t\"cansleep\" calls was just stubs.  (One example: the widely used\n\tpcf8574 I2C chips, with 8 GPIOs each.)\n\n  * Including a non-stub implementation of the gpio_{request,free}() calls,\n    making those calls much more useful.  The diagnostic labels are also\n    recorded given DEBUG_FS, so /sys/kernel/debug/gpio can show a snapshot\n    of all GPIOs known to this infrastructure.\n\nThe driver programming interfaces introduced in 2.6.21 do not change at all;\nthis infrastructure is entirely below those covers.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Eric Miao \u003ceric.miao@marvell.com\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Philipp Zabel \u003cphilipp.zabel@gmail.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ben Gardner \u003cbgardner@wabtec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a9c5fff542544c8595bb12efeb278a96d99386fc",
      "tree": "28683c259e73f2f74d140b29ac3a9c3c1491e7a3",
      "parents": [
        "99c84dbdc73d158a1ab955a4a5f74c18074796a3"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Mon Feb 04 22:28:17 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:12 2008 -0800"
      },
      "message": "gpiolib: add drivers/gpio directory\n\nAdd an empty drivers/gpio directory for gpiolib infrastructure and GPIO\nexpanders.  It will be populated by later patches.\n\nThis won\u0027t be the only place to hold such gpio_chip code.  Many external chips\nadd a few GPIOs as secondary functionality (such as MFD drivers) and platform\ncode frequently needs to closely integrate GPIO and IRQ support.\n\nThis is placed *early* in the build/link sequence since it\u0027s common for other\ndrivers to depend on GPIOs to do their work, so they must be initialized early\nin the device_initcall() sequence.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nAcked-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Eric Miao \u003ceric.miao@marvell.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Philipp Zabel \u003cphilipp.zabel@gmail.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ben Gardner \u003cbgardner@wabtec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ]
}
