)]}'
{
  "log": [
    {
      "commit": "16db7f9095bf6bb394c9ddb64e738e64a0fea733",
      "tree": "f0dbba458595862bf25fd9d5ec6f83695960a298",
      "parents": [
        "75cb2e1d1a53e732ebc81e7c4fa781aa8d7a9619"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Mar 23 15:02:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:35 2012 -0700"
      },
      "message": "drivers/leds/leds-gpio.c: use linux/gpio.h rather than asm/gpio.h\n\nDirect usage of the asm include has long been deprecated by the\nintroduction of gpiolib.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "892a8843fbef07a7f2ab62d5f7ff5c16ea0903b0",
      "tree": "cddc55a75280ec2851e26f127acd2f05e9483cc1",
      "parents": [
        "e2c17bc6f717a8847df2a867caec6ba4fe85f3fc"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Tue Jan 10 15:09:24 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:48 2012 -0800"
      },
      "message": "leds: convert led platform drivers to module_platform_driver\n\nFactor out some boilerplate code for platform driver registration into\nmodule_platform_driver.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nAcked-by: Haojian Zhuang \u003chzhuang1@marvell.com\u003e\t\t[led-88pm860x.c]\nAcked-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Michael Hennerich \u003chennerich@blackfin.uclinux.org\u003e\nCc: Mike Rapoport \u003cmike@compulab.co.il\u003e\nCc: Guennadi Liakhovetski \u003cg.liakhovetski@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "32aaeffbd4a7457bf2f7448b33b5946ff2a960eb",
      "tree": "faf7ad871d87176423ff9ed1d1ba4d9c688fc23f",
      "parents": [
        "208bca0860406d16398145ddd950036a737c3c9d",
        "67b84999b1a8b1af5625b1eabe92146c5eb42932"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "message": "Merge branch \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\n* \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)\n  Revert \"tracing: Include module.h in define_trace.h\"\n  irq: don\u0027t put module.h into irq.h for tracking irqgen modules.\n  bluetooth: macroize two small inlines to avoid module.h\n  ip_vs.h: fix implicit use of module_get/module_put from module.h\n  nf_conntrack.h: fix up fallout from implicit moduleparam.h presence\n  include: replace linux/module.h with \"struct module\" wherever possible\n  include: convert various register fcns to macros to avoid include chaining\n  crypto.h: remove unused crypto_tfm_alg_modname() inline\n  uwb.h: fix implicit use of asm/page.h for PAGE_SIZE\n  pm_runtime.h: explicitly requires notifier.h\n  linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h\n  miscdevice.h: fix up implicit use of lists and types\n  stop_machine.h: fix implicit use of smp.h for smp_processor_id\n  of: fix implicit use of errno.h in include/linux/of.h\n  of_platform.h: delete needless include \u003clinux/module.h\u003e\n  acpi: remove module.h include from platform/aclinux.h\n  miscdevice.h: delete unnecessary inclusion of module.h\n  device_cgroup.h: delete needless include \u003clinux/module.h\u003e\n  net: sch_generic remove redundant use of \u003clinux/module.h\u003e\n  net: inet_timewait_sock doesnt need \u003clinux/module.h\u003e\n  ...\n\nFix up trivial conflicts (other header files, and  removal of the ab3550 mfd driver) in\n - drivers/media/dvb/frontends/dibx000_common.c\n - drivers/media/video/{mt9m111.c,ov6650.c}\n - drivers/mfd/ab3550-core.c\n - include/linux/dmaengine.h\n"
    },
    {
      "commit": "dabc69c24271bd6ac126e3dda4f2d72234da81df",
      "tree": "e2cf563d11e2391112dcfc2ae310425286435a87",
      "parents": [
        "93f539822ed60e18cd7fb417bff4efa1833af9f2"
      ],
      "author": {
        "name": "David Daney",
        "email": "david.daney@cavium.com",
        "time": "Mon Oct 31 17:12:17 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:55 2011 -0700"
      },
      "message": "drivers/leds/leds-gpio.c: use gpio_get_value_cansleep() when initializing\n\nI get the following warning:\n\n------------[ cut here ]------------\nWARNING: at drivers/gpio/gpiolib.c:1559 __gpio_get_value+0x90/0x98()\nModules linked in:\nCall Trace:\n[\u003cffffffff81440950\u003e] dump_stack+0x8/0x34\n[\u003cffffffff81141478\u003e] warn_slowpath_common+0x78/0xa0\n[\u003cffffffff812f0958\u003e] __gpio_get_value+0x90/0x98\n[\u003cffffffff81434f04\u003e] create_gpio_led+0xdc/0x194\n[\u003cffffffff8143524c\u003e] gpio_led_probe+0x290/0x36c\n[\u003cffffffff8130e8b0\u003e] driver_probe_device+0x78/0x1b0\n[\u003cffffffff8130eaa8\u003e] __driver_attach+0xc0/0xc8\n[\u003cffffffff8130d7ac\u003e] bus_for_each_dev+0x64/0xb0\n[\u003cffffffff8130e130\u003e] bus_add_driver+0x1c8/0x2a8\n[\u003cffffffff8130f100\u003e] driver_register+0x90/0x180\n[\u003cffffffff81100438\u003e] do_one_initcall+0x38/0x160\n\n---[ end trace ee38723fbefcd65c ]---\n\nMy GPIOs are on an I2C port expander, so we must use the *_cansleep()\nvariant of the GPIO functions.  This is was not being done in\ncreate_gpio_led().\n\nWe can change gpio_get_value() to gpio_get_value_cansleep() because it is\nonly called from the platform_driver probe function, which is a context\nwhere we can sleep.\n\nOnly tested on my gpio_cansleep() system, but it seems safe for all\nsystems.\n\nSigned-off-by: David Daney \u003cdavid.daney@cavium.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nAcked-by: Trent Piepho \u003ctpiepho@gmail.com\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54f4dedb5368fff81b722b551e2f15a75175d7b7",
      "tree": "c559dfd0743e4765e55ace1488a5c80f49c40d05",
      "parents": [
        "5d76fc219ce38a226314436563f6b9d405bb6db1"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Jul 03 13:56:03 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:31:49 2011 -0400"
      },
      "message": "drivers/leds: Add module.h to files using it implicitly\n\nA pending cleanup will mean that module.h won\u0027t be implicitly\neverywhere anymore.  Make sure the modular drivers in the leds\ndir are actually calling out for \u003cmodule.h\u003e explicitly in advance.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "2bcc7ed5b83b0a59c6976476e8788675038fb11b",
      "tree": "cac7dc8196f7a284763c926e60707cf34d005082",
      "parents": [
        "a3cc68c37897f0656489a0d853d6e342fc6f076b"
      ],
      "author": {
        "name": "Shawn Guo",
        "email": "shawn.guo@linaro.org",
        "time": "Tue May 31 16:23:43 2011 +0800"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Fri Jun 03 12:14:16 2011 -0600"
      },
      "message": "leds: remove config option LEDS_GPIO_PLATFORM from Kconfig\n\nSince the commit a314c5c0040aab51ebb1ecfd37a9198a91962243\n(leds/leds-gpio: merge platform_driver with of_platform_driver),\nthe config option LEDS_GPIO_PLATFORM becomes useless, so remove it.\n\nSigned-off-by: Shawn Guo \u003cshawn.guo@linaro.org\u003e\n[grant.likely: also remove LEDS_GPIO_OF for same reason]\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "a314c5c0040aab51ebb1ecfd37a9198a91962243",
      "tree": "66b1ed90d4c268629a62ff18dc81cd7d30deffba",
      "parents": [
        "4ebb24f707187196937607c60810d42f7112d7aa"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Tue Feb 22 20:06:04 2011 -0700"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Mon Feb 28 01:36:39 2011 -0700"
      },
      "message": "leds/leds-gpio: merge platform_driver with of_platform_driver\n\nBoth interfaces can be driven with the same driver, and\nof_platform_driver is getting removed.  This patch merges the two\ndriver registrations.\n\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "25672b9dde18b86e736b8138bcffbaf7158d160a",
      "tree": "1dc696c4c4be7538cd492ef59b1d1ac6d176487b",
      "parents": [
        "5991e154b2d09ad28af9dc7d3226b35dbbc052c3"
      ],
      "author": {
        "name": "Davidlohr Bueso",
        "email": "dave@gnu.org",
        "time": "Thu Nov 11 14:05:24 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 12 07:55:32 2010 -0800"
      },
      "message": "drivers/leds/leds-gpio.c: properly initialize return value\n\nIn the event that none of the configs are set (CONFIG_LEDS_GPIO_PLATFORM,\nCONFIG_LEDS_GPIO_OF, CONFIG_LEDS_GPIO_PLATFORM), we will return a bogus\nvalue when initializing the module.\n\nSigned-off-by: Davidlohr Bueso \u003cdave@gnu.org\u003e\nAcked-by: Richard Purdie \u003crpurdie@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2dc11581376829303b98eadb2de253bee065a56a",
      "tree": "dbce62559c822cd720d1819a50c488bfecdfa945",
      "parents": [
        "fc1caf6eafb30ea185720e29f7f5eccca61ecd60"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Fri Aug 06 09:25:50 2010 -0600"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Fri Aug 06 09:25:50 2010 -0600"
      },
      "message": "of/device: Replace struct of_device with struct platform_device\n\nof_device is just an alias for platform_device, so remove it entirely.  Also\nreplace to_of_device() with to_platform_device() and update comment blocks.\n\nThis patch was initially generated from the following semantic patch, and then\nedited by hand to pick up the bits that coccinelle didn\u0027t catch.\n\n@@\n@@\n-struct of_device\n+struct platform_device\n\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nReviewed-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5f8269da9c69dc3851f532af0d53693b521fdb91",
      "tree": "2fc3cf092676fdbe97ead0b67a5ddbd58c5fb9fe",
      "parents": [
        "37814fdc950281e9096a8b361a380edae237f486"
      ],
      "author": {
        "name": "Richard Purdie",
        "email": "rpurdie@linux.intel.com",
        "time": "Thu May 27 14:04:36 2010 +0100"
      },
      "committer": {
        "name": "Richard Purdie",
        "email": "rpurdie@linux.intel.com",
        "time": "Fri May 28 08:35:27 2010 +0100"
      },
      "message": "leds: Fix leds-gpio openfirmware compile issue\n\nFix a compile issue when openfirmware is enabled from commit\n2146325df2c2640059a9e064890c30c6e259b458.\n\nSigned-off-by: Richard Purdie \u003crpurdie@linux.intel.com\u003e\n"
    },
    {
      "commit": "2146325df2c2640059a9e064890c30c6e259b458",
      "tree": "022468b1246d7d795ee351b80404efd4b25b5610",
      "parents": [
        "14e40f644b020d473415342461b7c62e3bb5e312"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Sat May 22 20:54:55 2010 +1000"
      },
      "committer": {
        "name": "Richard Purdie",
        "email": "rpurdie@linux.intel.com",
        "time": "Wed May 26 13:07:55 2010 +0100"
      },
      "message": "leds: leds-gpio: Change blink_set callback to be able to turn off blinking\n\nThe leds-gpio blink_set() callback follows the same prototype as the\nmain leds subsystem blink_set() one.\n\nThe problem is that to stop blink, normally, a leds driver does it\nin the brightness_set() callback when asked to set a new fixed value.\n\nHowever, with leds-gpio, the platform has no hook to do so, as this\nlater callback results in a standard GPIO manipulation.\n\nThis changes the leds-gpio specific callback to take a new argument\nthat indicates whether the LED should be blinking or not and in what\nstate it should be set if not. We also update the dns323 platform\nwhich seems to be the only user of this so far.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@linux.intel.com\u003e\n"
    },
    {
      "commit": "4018294b53d1dae026880e45f174c1cc63b5d435",
      "tree": "6db3538eaf91b653381720a6d92f4f15634a93d0",
      "parents": [
        "597b9d1e44e9ba69f2454a5318bbe7a6d5e6930a"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Tue Apr 13 16:13:02 2010 -0700"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sat May 22 00:10:40 2010 -0600"
      },
      "message": "of: Remove duplicate fields from of_platform_driver\n\n.name, .match_table and .owner are duplicated in both of_platform_driver\nand device_driver.  This patch is a removes the extra copies from struct\nof_platform_driver and converts all users to the device_driver members.\n\nThis patch is a pretty mechanical change.  The usage model doesn\u0027t change\nand if any drivers have been missed, or if anything has been fixed up\nincorrectly, then it will fail with a compile time error, and the fixup\nwill be trivial.  This patch looks big and scary because it touches so\nmany files, but it should be pretty safe.\n\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: Sean MacLennan \u003csmaclennan@pikatech.com\u003e\n\n"
    },
    {
      "commit": "61c7a080a5a061c976988fd4b844dfb468dda255",
      "tree": "8cb492b73f2755c38a6164d770da34d5af6486a0",
      "parents": [
        "d12d42f744f805a9ccc33cd76f04b237cd83ce56"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Tue Apr 13 16:12:29 2010 -0700"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Tue May 18 16:10:44 2010 -0600"
      },
      "message": "of: Always use \u0027struct device.of_node\u0027 to get device node pointer.\n\nThe following structure elements duplicate the information in\n\u0027struct device.of_node\u0027 and so are being eliminated.  This patch\nmakes all readers of these elements use device.of_node instead.\n\n(struct of_device *)-\u003enode\n(struct dev_archdata *)-\u003eprom_node (sparc)\n(struct dev_archdata *)-\u003eof_node (powerpc \u0026 microblaze)\n\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "0493a4ff10959ff4c8e0d65efee25b7ffd4fa5db",
      "tree": "805d40439515577d647d825223e051514fdc9e5c",
      "parents": [
        "72dcd8d08aca4ac6154dc37243880ee306c7ea73"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "avorontsov@ru.mvista.com",
        "time": "Thu Mar 11 13:58:47 2010 -0800"
      },
      "committer": {
        "name": "Richard Purdie",
        "email": "rpurdie@linux.intel.com",
        "time": "Tue Mar 16 19:53:19 2010 +0000"
      },
      "message": "leds-gpio: fix default state handling on OF platforms\n\nThe driver wrongly sets default state for LEDs that don\u0027t specify\ndefault-state property.\n\nCurrently the driver handles default state this way:\n\nmemset(\u0026led, 0, sizeof(led));\nfor_each_child_of_node(np, child) {\n\tstate \u003d of_get_property(child, \"default-state\", NULL);\n\tif (state) {\n\t\tif (!strcmp(state, \"keep\"))\n\t\t\tled.default_state \u003d LEDS_GPIO_DEFSTATE_KEEP;\n\t\t...\n\t}\n\tret \u003d create_gpio_led(\u0026led, ...);\n}\n\nWhich means that all LEDs that do not specify default-state will inherit\nthe last value of the default-state property, which is wrong.\n\nThis patch fixes the issue by moving LED\u0027s template initialization into\nthe loop body.\n\nSigned-off-by: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@linux.intel.com\u003e\n"
    },
    {
      "commit": "0b4634fce1f3f7028421630260d54093276db490",
      "tree": "0925911860ea11673590846fffa55c1cd2d43fd7",
      "parents": [
        "716bdf1874647196ac16dd2a1ad359d88844795a"
      ],
      "author": {
        "name": "Dmitry Eremin-Solenikov",
        "email": "dbaryshkov@gmail.com",
        "time": "Mon Nov 16 01:48:32 2009 +0300"
      },
      "committer": {
        "name": "Richard Purdie",
        "email": "rpurdie@linux.intel.com",
        "time": "Mon Nov 16 11:50:42 2009 +0000"
      },
      "message": "leds-gpio: fix possible crash on OF device unbinding\n\nIf there are leds present in the OF tree, but the GPIOs for (some) of\nthem are unavailable, led_data doesn\u0027t get populated with correct\ndevices. Then, on device unbinding, one can crash the kernel.\n\nWorkaround this by setting led-\u003egpio to invalid value early.\n\nSigned-off-by: Dmitry Eremin-Solenikov \u003cdbaryshkov@gmail.com\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@linux.intel.com\u003e\n"
    },
    {
      "commit": "2fea09222ab48517d729a7fb4542092cf428f528",
      "tree": "4c69fd1ed88b7942ecceff0e0123320acf515c07",
      "parents": [
        "c746b5519a88b8803d43946ad06326ece4829116"
      ],
      "author": {
        "name": "Michal Simek",
        "email": "monstr@monstr.eu",
        "time": "Thu Aug 06 16:04:51 2009 -0700"
      },
      "committer": {
        "name": "Richard Purdie",
        "email": "rpurdie@linux.intel.com",
        "time": "Mon Sep 07 14:33:33 2009 +0100"
      },
      "message": "leds: gpio-leds: fix typographics fault\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Michal Simek \u003cmonstr@monstr.eu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@linux.intel.com\u003e\n"
    },
    {
      "commit": "ed88bae6918fa990cbfe47316bd0f790121aaf00",
      "tree": "eba5d14d9db0f7361f9684170f9dd6e43bf54646",
      "parents": [
        "5054d39e327f76df022163a2ebd02e444c5d65f9"
      ],
      "author": {
        "name": "Trent Piepho",
        "email": "xyzzy@speakeasy.org",
        "time": "Tue May 12 15:33:12 2009 -0700"
      },
      "committer": {
        "name": "Richard Purdie",
        "email": "rpurdie@linux.intel.com",
        "time": "Tue Jun 23 20:21:39 2009 +0100"
      },
      "message": "leds: Add options to have GPIO LEDs start on or keep their state\n\nThere already is a \"default-on\" trigger but there are problems with it.\n\nFor one, it\u0027s a inefficient way to do it and requires led trigger support\nto be compiled in.\n\nBut the real reason is that is produces a glitch on the LED.  The GPIO is\nallocate with the LED *off*, then *later* when the trigger runs it is\nturned back on.  If the LED was already on via the GPIO\u0027s reset default or\naction of the firmware, this produces a glitch where the LED goes from on\nto off to on.  While normally this is fast enough that it wouldn\u0027t be\nnoticeable to a human observer, there are still serious problems.\n\nOne is that there may be something else on the GPIO line, like a hardware\nalarm or watchdog, that is fast enough to notice the glitch.\n\nAnother is that the kernel may panic before the LED is turned back on, thus\nhanging with the LED in the wrong state.  This is not just speculation, but\nactually happened to me with an embedded system that has an LED which\nshould turn off when the kernel finishes booting, which was left in the\nincorrect state due to a bug in the OF LED binding code.\n\nWe also let GPIO LEDs get their initial value from whatever the current\nstate of the GPIO line is.  On some systems the LEDs are put into some\nstate by the firmware or hardware before Linux boots, and it is desired to\nhave them keep this state which is otherwise unknown to Linux.\n\nThis requires that the underlying GPIO driver support reading the value of\noutput GPIOs.  Some drivers support this and some do not.\n\nThe platform device binding gains a field in the platform data\n\"default_state\" that controls this.  There are three constants defined to\nselect from on, off, or keeping the current state.  The OpenFirmware\nbinding uses a property named \"default-state\" that can be set to \"on\",\n\"off\", or \"keep\".  The default if the property isn\u0027t present is off.\n\nSigned-off-by: Trent Piepho \u003cxyzzy@speakeasy.org\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\nAcked-by: Sean MacLennan \u003csmaclennan@pikatech.com\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@linux.intel.com\u003e\n"
    },
    {
      "commit": "7fd02170e25b3b60fc21cd7b64bf1ed42e6a7cbe",
      "tree": "9a4f0c8187f702027dc79f073df6f01ebb91bafe",
      "parents": [
        "8792f7cf4368f9bc337eee65851d8e7abbbf946c"
      ],
      "author": {
        "name": "Zhenwen Xu",
        "email": "helight.xu@gmail.com",
        "time": "Wed Jun 10 12:48:51 2009 -0700"
      },
      "committer": {
        "name": "Richard Purdie",
        "email": "rpurdie@linux.intel.com",
        "time": "Tue Jun 23 20:20:11 2009 +0100"
      },
      "message": "leds: leds-gpio - fix a section mismatch\n\nWARNING: drivers/leds/leds-gpio.o(.text+0x153): Section mismatch in reference from the function gpio_led_probe() to the function .devinit.text:create_gpio_led()\n\nThe function gpio_led_probe() references the function __devinit\ncreate_gpio_led().  This is often because gpio_led_probe lacks a __devinit\nannotation or the annotation of create_gpio_led is wrong.\n\nSigned-off-by: Zhenwen Xu \u003chelight.xu@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@linux.intel.com\u003e\n"
    },
    {
      "commit": "ac15e95090c2588ada4904c8c4ae8edd347acdf0",
      "tree": "1f39f501f87cc4719e934c22ae2b485b9d3a1622",
      "parents": [
        "577c9c456f0e1371cbade38eaf91ae8e8a308555"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Tue Apr 07 17:51:49 2009 -0700"
      },
      "committer": {
        "name": "Richard Purdie",
        "email": "rpurdie@linux.intel.com",
        "time": "Wed Apr 08 14:13:48 2009 +0100"
      },
      "message": "leds: just ignore invalid GPIOs in leds-gpio\n\nFix build problems with leds-gpio:\n\n  CC      drivers/leds/leds-gpio.o\ndrivers/leds/leds-gpio.c: In function \u0027create_gpio_led\u0027:\ndrivers/leds/leds-gpio.c:85: warning: \u0027return\u0027 with no value, in function returning non-void\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@linux.intel.com\u003e\n"
    },
    {
      "commit": "d379ee8acd0719736ee7f1d1ccc3b5765880eaf8",
      "tree": "f998ab138b72c5bd597b45ea28c04a3f92586f28",
      "parents": [
        "7fbc3a9b132e93b2ba1fd889c1ad8a4135731cc3"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Thu Mar 05 16:46:44 2009 -0800"
      },
      "committer": {
        "name": "Richard Purdie",
        "email": "rpurdie@linux.intel.com",
        "time": "Mon Apr 06 16:06:27 2009 +0100"
      },
      "message": "leds: just ignore invalid GPIOs in leds-gpio\n\nSometimes it\u0027s awkward to make sure that the array in the\nplatform_data handed to the leds-gpio driver has only valid\ndata ... some leds may not be always available, and coping\nwith that currently requires patching or rebuilding the array.\n\nThis patch fixes that by making it be OK to pass an invalid\nGPIO (such as \"-EINVAL\") ... such table entries are skipped.\n\n[rpurdie@linux.intel.com: adjusted to apply against other led tree changes]\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nTested-by: Diego Dompe \u003cdiego.dompe@ridgerun.com\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@linux.intel.com\u003e\n"
    },
    {
      "commit": "defb512d2576992c63ba1c18c24eea31cfeaa26e",
      "tree": "eb2ae7031d62073d452d55192167e66767e99faa",
      "parents": [
        "41c42ff5dbe29b7b826e6736f960959c76e7acf0"
      ],
      "author": {
        "name": "Richard Purdie",
        "email": "rpurdie@linux.intel.com",
        "time": "Tue Feb 17 15:04:07 2009 +0000"
      },
      "committer": {
        "name": "Richard Purdie",
        "email": "rpurdie@linux.intel.com",
        "time": "Mon Apr 06 16:06:26 2009 +0100"
      },
      "message": "leds: Add suspend/resume state flags to leds-gpio\n\nAdd an option to preserve LED state when suspending/resuming to the LED\ngpio driver. Based on a suggestion from Robert Jarzmik.\n\nTested-by: Robert Jarzmik \u003crobert.jarzmik@free.fr\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@linux.intel.com\u003e\n"
    },
    {
      "commit": "b2bdc3e7130001804f27e7c1254930143119f435",
      "tree": "389a878d3e427bdb424685e87d1eb9f04416b5e2",
      "parents": [
        "ac2dd0f110d5ab0359de7786e88e9971954ac7ee"
      ],
      "author": {
        "name": "Richard Purdie",
        "email": "rpurdie@linux.intel.com",
        "time": "Mon Feb 02 23:04:42 2009 +0000"
      },
      "committer": {
        "name": "Richard Purdie",
        "email": "rpurdie@linux.intel.com",
        "time": "Mon Apr 06 16:06:26 2009 +0100"
      },
      "message": "leds: Fix leds-gpio driver multiple module_init/exit usage\n\nYou can\u0027t have multiple module_init()/module_exit calls so resort to messy\nifdefs potentially pending some code refactoring.\n\nSigned-off-by: Richard Purdie \u003crpurdie@linux.intel.com\u003e\n"
    },
    {
      "commit": "a7d878af94b223013a48078e0c8c0a654c24a057",
      "tree": "65c288edc917ae01aec7bc14702e81ced8f6e916",
      "parents": [
        "0221c81b1b8eb0cbb6b30a0ced52ead32d2b4e4c"
      ],
      "author": {
        "name": "Trent Piepho",
        "email": "tpiepho@freescale.com",
        "time": "Sat Jan 10 17:26:01 2009 +0000"
      },
      "committer": {
        "name": "Richard Purdie",
        "email": "rpurdie@linux.intel.com",
        "time": "Mon Apr 06 16:06:25 2009 +0100"
      },
      "message": "leds: Add openfirmware platform device support\n\nAdd bindings to support LEDs defined as of_platform devices in addition to\nthe existing bindings for platform devices.\n\nNew options in Kconfig allow the platform binding code and/or the\nof_platform code to be turned on.  The of_platform code is of course only\navailable on archs that have OF support.\n\nThe existing probe and remove methods are refactored to use new functions\ncreate_gpio_led(), to create and register one led, and delete_gpio_led(),\nto unregister and free one led.  The new probe and remove methods for the\nof_platform driver can then share most of the common probe and remove code\nwith the platform driver.\n\nThe suspend and resume methods aren\u0027t shared, but they are very short.  The\nactual led driving code is the same for LEDs created by either binding.\n\nThe OF bindings are based on patch by Anton Vorontsov\n\u003cavorontsov@ru.mvista.com\u003e.  They have been extended to allow multiple LEDs\nper device.\n\nSigned-off-by: Trent Piepho \u003ctpiepho@freescale.com\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: Sean MacLennan \u003csmaclennan@pikatech.com\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@linux.intel.com\u003e\n"
    },
    {
      "commit": "859cb7f2a4244ea6da206d3fe9cc8a6810947a68",
      "tree": "3389fe6c191418d6acc30d84e11a0760608f7431",
      "parents": [
        "0081e8020ebd814a99e45720a10e869a54ee08a6"
      ],
      "author": {
        "name": "Richard Purdie",
        "email": "rpurdie@linux.intel.com",
        "time": "Thu Jan 08 17:55:03 2009 +0000"
      },
      "committer": {
        "name": "Richard Purdie",
        "email": "rpurdie@linux.intel.com",
        "time": "Thu Jan 08 17:55:03 2009 +0000"
      },
      "message": "leds: Add suspend/resume to the core class\n\nAdd suspend/resume to the core class and remove all the now unneeded\ncode from various drivers. Originally the class code couldn\u0027t support\nsuspend/resume but since class_device can there is no reason for\neach driver doing its own suspend/resume anymore.\n"
    },
    {
      "commit": "ca3259b3603539e72faacc6821050ee889a52103",
      "tree": "0c8e482b4354d2433046e86aabb6cb8e1db32162",
      "parents": [
        "4d404fd5c51772720e9c72aa3185bd5119bc6e69"
      ],
      "author": {
        "name": "Herbert Valerio Riedel",
        "email": "hvr@gnu.org",
        "time": "Sun Mar 09 23:48:25 2008 +0000"
      },
      "committer": {
        "name": "Richard Purdie",
        "email": "rpurdie@rpsys.net",
        "time": "Thu Apr 24 23:37:42 2008 +0100"
      },
      "message": "leds: enable support for blink_set() platform hook in leds-gpio\n\nEnhance leds-gpio to provide hardware-based led flashing by passing\nthrough the blink_set() call to a optionally set platform-specific\nfunction pointer.\n\nSigned-off-by: Herbert Valerio Riedel \u003chvr@gnu.org\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@rpsys.net\u003e\n"
    },
    {
      "commit": "3c4ded9715c05724939c9a4bd72555c2ade71d97",
      "tree": "cd1d98e77c75bbcbfa4922cb16970ec1aa6f4fbf",
      "parents": [
        "2b653e06ce2d70d21483f22ef1b1b63749c54223"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Tue Apr 15 14:34:30 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 15 19:35:40 2008 -0700"
      },
      "message": "leds: fix platform driver hotplug/coldplug\n\nSince 43cc71eed1250755986da4c0f9898f9a635cb3bf, the platform\nmodalias is prefixed with \"platform:\". Add MODULE_ALIAS() to the\nhotpluggable platform LED drivers, to re-enable auto loading.\n\n[dbrownell@users.sourceforge.net: more drivers, registration fixes]\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nAcked-by: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "306dd85c1d41e20a07d1e821e27f5df4927bb5e7",
      "tree": "a20f7b63be7b176700c40348a82eedcc8b6e8876",
      "parents": [
        "d95cbe6158a679d50e03787bb1dc21ff73dac372"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Thu Mar 27 00:59:02 2008 +0000"
      },
      "committer": {
        "name": "Richard Purdie",
        "email": "rpurdie@rpsys.net",
        "time": "Mon Mar 31 23:31:13 2008 +0100"
      },
      "message": "leds: Remove incorrect use of preempt_count() from leds-gpio\n\nIt appears that we can\u0027t just check to see if we\u0027re in a task\ncontext ... so instead of trying that, just make the relevant\nleds always schedule a little worklet.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@rpsys.net\u003e\n"
    },
    {
      "commit": "d95cbe6158a679d50e03787bb1dc21ff73dac372",
      "tree": "6a4e28ed398da5405e446c5b74e46bdc1f90746f",
      "parents": [
        "a9edadbf790d72adf6ebed476cb5caf7743e7e4a"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "Uwe.Kleine-Koenig@digi.com",
        "time": "Sun Mar 09 20:42:27 2008 +0000"
      },
      "committer": {
        "name": "Richard Purdie",
        "email": "rpurdie@rpsys.net",
        "time": "Mon Mar 31 23:31:13 2008 +0100"
      },
      "message": "leds: Fix potential leds-gpio oops\n\nCall gpio_cansleep only after gpio_request succeeded avoiding an\noops.\n\nSigned-off-by: Uwe Kleine-König \u003cUwe.Kleine-Koenig@digi.com\u003e\nAcked-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@rpsys.net\u003e\n"
    },
    {
      "commit": "2b7f1b8c8f4a8991dfeefc31844e15c642b6de2a",
      "tree": "ac6a11ae2960b695ac1241888216b04646992440",
      "parents": [
        "92e015cb31c0a312bf2e0e5b96aef76a8c57e645"
      ],
      "author": {
        "name": "Raphael Assenat",
        "email": "raph@8d.com",
        "time": "Sun Jan 13 22:55:18 2008 +0000"
      },
      "committer": {
        "name": "Richard Purdie",
        "email": "rpurdie@rpsys.net",
        "time": "Thu Feb 07 09:52:02 2008 +0000"
      },
      "message": "leds: Fix led-gpio active_low default brightness\n\nWhen gpio_direction_output() is called, led_dat-\u003eactive_low is used\nas default value. This means that the led will always be off by\ndefault. cdev.brightness should really have been set to LED_OFF\nunconditionally to reflect this behavior.\n\nSigned-off-by: Raphael Assenat \u003craph@8d.com\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@rpsys.net\u003e\n"
    },
    {
      "commit": "199fb21d520ac8c09de1f1288e667988815aa79a",
      "tree": "2bed812af4e398e9795023bea7e86f02bdcf93d6",
      "parents": [
        "c11eef21aa119a41fa210b9693f2346997885bcf"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Wed Oct 31 10:37:37 2007 +0100"
      },
      "committer": {
        "name": "Richard Purdie",
        "email": "rpurdie@rpsys.net",
        "time": "Mon Nov 05 21:54:41 2007 +0000"
      },
      "message": "leds: bugfixes for leds-gpio\n\nThree bugfixes to the leds-gpio driver, plus minor whitespace tweaks:\n\n - Do the INIT_WORK() before registering each LED, so if its trigger\n   becomes immediately active it can schedule work without oopsing..\n\n - Use normal registration, not platform_driver_probe(), so that\n   devices appearing \"late\" (hotplug type) can still be bound.\n\n - Mark the driver remove code as \"__devexit\", preventing oopses\n   when the underlying device is removed.\n\nThese issues came up when using this driver with some GPIO expanders\nliving on serial busses, which act unlike \"normal\" platform devices:\nthey can appear and vanish along with the serial bus driver.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@rpsys.net\u003e\n"
    },
    {
      "commit": "00852279af5ad26956bc7f4d0e86fdb40192e542",
      "tree": "8d8ef74de734d94c59ae2d83f19b446d4ef2ef73",
      "parents": [
        "22e03f3b58dfcca30f0c8de185022132459638d1"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Thu May 10 10:51:41 2007 +0100"
      },
      "committer": {
        "name": "Richard Purdie",
        "email": "rpurdie@rpsys.net",
        "time": "Mon Jul 16 01:15:50 2007 +0100"
      },
      "message": "leds: Teach leds-gpio to handle timer-unsafe GPIOs\n\nTeach the new leds-gpio driver that some GPIOs can\u0027t be accessed from\ntimer callbacks ... which is how all today\u0027s standard triggers use them.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@rpsys.net\u003e\n"
    },
    {
      "commit": "22e03f3b58dfcca30f0c8de185022132459638d1",
      "tree": "0597fa494d55f44191ec99b4bb34a937efcab0e7",
      "parents": [
        "8f41958bdd577731f7411c9605cfaa9db6766809"
      ],
      "author": {
        "name": "Raphael Assenat",
        "email": "raph@8d.com",
        "time": "Tue Feb 27 19:49:53 2007 +0000"
      },
      "committer": {
        "name": "Richard Purdie",
        "email": "rpurdie@rpsys.net",
        "time": "Mon Jul 16 01:15:50 2007 +0100"
      },
      "message": "leds: Add generic GPIO LED driver\n\nThis patch adds support for GPIO connected leds via the new GPIO framework.\n\nInformation about leds (gpio, polarity, name, default trigger) is passed\nto the driver via platform_data.\n\nSigned-off-by: Raphael Assenat \u003craph@8d.com\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@rpsys.net\u003e\n"
    }
  ]
}
