)]}'
{
  "log": [
    {
      "commit": "250f6715a4112d6686670c5a62ceb9305da94616",
      "tree": "ee1c9b41ed1fed8174efb312421902f19c877e8c",
      "parents": [
        "11bcb32848ddb5ab28f09f142b625e2ba4d55c4c",
        "313162d0b83836e2f57e51b9b8650fb4b9c396ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:41:37 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:41:37 2012 -0700"
      },
      "message": "Merge tag \u0027device-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\nPull \u003clinux/device.h\u003e avoidance patches from Paul Gortmaker:\n \"Nearly every subsystem has some kind of header with a proto like:\n\n\tvoid foo(struct device *dev);\n\n  and yet there is no reason for most of these guys to care about the\n  sub fields within the device struct.  This allows us to significantly\n  reduce the scope of headers including headers.  For this instance, a\n  reduction of about 40% is achieved by replacing the include with the\n  simple fact that the device is some kind of a struct.\n\n  Unlike the much larger module.h cleanup, this one is simply two\n  commits.  One to fix the implicit \u003clinux/device.h\u003e users, and then one\n  to delete the device.h includes from the linux/include/ dir wherever\n  possible.\"\n\n* tag \u0027device-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:\n  device.h: audit and cleanup users in main include dir\n  device.h: cleanup users outside of linux/include (C files)\n"
    },
    {
      "commit": "313162d0b83836e2f57e51b9b8650fb4b9c396ea",
      "tree": "8f39f20515a924d392cf9a72db0918fda07a34c7",
      "parents": [
        "51990e825431089747f8896244b5c17d3a6423f1"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Jan 30 11:46:54 2012 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Fri Mar 16 10:38:24 2012 -0400"
      },
      "message": "device.h: audit and cleanup users in main include dir\n\nThe \u003clinux/device.h\u003e header includes a lot of stuff, and\nit in turn gets a lot of use just for the basic \"struct device\"\nwhich appears so often.\n\nClean up the users as follows:\n\n1) For those headers only needing \"struct device\" as a pointer\nin fcn args, replace the include with exactly that.\n\n2) For headers not really using anything from device.h, simply\ndelete the include altogether.\n\n3) For headers relying on getting device.h implicitly before\nbeing included themselves, now explicitly include device.h\n\n4) For files in which doing #1 or #2 uncovers an implicit\ndependency on some other header, fix by explicitly adding\nthe required header(s).\n\nAny C files that were implicitly relying on device.h to be\npresent have already been dealt with in advance.\n\nTotal removals from #1 and #2: 51.  Total additions coming\nfrom #3: 9.  Total other implicit dependencies from #4: 7.\n\nAs of 3.3-rc1, there were 110, so a net removal of 42 gives\nabout a 38% reduction in device.h presence in include/*\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "addfd8a09e1f434a73b3d87d36ef050c73511d2b",
      "tree": "22dd5a1f108dcd123797dbe9f5aa45e8d3faa492",
      "parents": [
        "eae4b51b21f7452b0b53a9848f48c02cb0fac336",
        "df00c79f78d8b0ad788daf689ea461ace9d0811f"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Mar 14 13:15:48 2012 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Mar 14 13:15:48 2012 +0000"
      },
      "message": "Merge remote-tracking branch \u0027regmap/topic/bulk\u0027 into regmap-next\n"
    },
    {
      "commit": "eae4b51b21f7452b0b53a9848f48c02cb0fac336",
      "tree": "20d54023bf32e061866c83565d44d694e2598ba5",
      "parents": [
        "4a6be7bb7474500a69f6d8f25899b8038491bdbb",
        "a6539c32949063c8147905512a83a98842c2d254"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Mar 14 13:15:03 2012 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Mar 14 13:15:03 2012 +0000"
      },
      "message": "Merge remote-tracking branch \u0027regmap/topic/introspection\u0027 into regmap-next\n\nSimple add/add conflict:\n\tdrivers/base/regmap/regmap.c\n"
    },
    {
      "commit": "4a6be7bb7474500a69f6d8f25899b8038491bdbb",
      "tree": "a2645b0f707fcf1ea94a9e7ef7a59b298fb5ecac",
      "parents": [
        "7d9aca39dcacd2b3f42e2e287162329f410f93e1",
        "f9353e70bcebd00cd182d946083afd7d8eddd259"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Mar 14 13:14:24 2012 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Mar 14 13:14:24 2012 +0000"
      },
      "message": "Merge remote-tracking branches \u0027regmap/topic/patch\u0027 and \u0027regmap/topic/sync\u0027 into regmap-next\n"
    },
    {
      "commit": "7d9aca39dcacd2b3f42e2e287162329f410f93e1",
      "tree": "2907b680b2b7625226f46d23d74ccc9c58ad0362",
      "parents": [
        "e1c1c69c8fc7656c33460c8e085ac0d0be22ac3b",
        "a0cc0209abb9fe2b9ab71aa41be70eddd0cbdd61"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Mar 14 13:13:25 2012 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Mar 14 13:13:25 2012 +0000"
      },
      "message": "Merge remote-tracking branch \u0027regmap/topic/drivers\u0027 into regmap-next\n\nResolved simple add/add conflicts:\n\tdrivers/base/regmap/internal.h\n\tdrivers/base/regmap/regmap.c\n"
    },
    {
      "commit": "e1c1c69c8fc7656c33460c8e085ac0d0be22ac3b",
      "tree": "3199753118adf26baf52841cb913afa77f549829",
      "parents": [
        "f5d6eba74b8aac7d4bf646c5445807aa6a247e6c",
        "c0eb46766d395da8d62148bda2e59bad5e6ee2f2"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Mar 14 13:12:33 2012 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Mar 14 13:12:33 2012 +0000"
      },
      "message": "Merge remote-tracking branches \u0027regmap/topic/core\u0027 and \u0027regmap/topic/devm\u0027 into regmap-next\n"
    },
    {
      "commit": "b83d2ff01376cf3799394693c0dd089f657bdf84",
      "tree": "d804b80e12534690488266405bde4f2879f00c63",
      "parents": [
        "994f5db65ef4b83db0321842bd43c6bc0a51f000"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Mar 11 11:49:17 2012 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Mar 11 11:49:17 2012 +0000"
      },
      "message": "regmap: Rejig struct declarations for stubbed API\n\nEnsure we have a forward declaration of struct regmap that isn\u0027t just\nthe return value of regmap_init() and make the definition of the\nregister defaults available.\n\nReported-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "a313f9f565d84f2fcc81c818a6b0baaae752a821",
      "tree": "1825ed690c13607fd707e2866c097b91e926af9f",
      "parents": [
        "5d5b7d4f80ed6e861c1c220fd57e3dad0912526e"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Feb 23 19:49:43 2012 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Mar 01 11:10:30 2012 +0000"
      },
      "message": "regmap: Add stub for regcache_sync_region()\n\nAdded on another branch.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "4d4cfd1656b5f6c88eae51c40741a695b108b006",
      "tree": "c20b71443a4643122523ccdb2a9034a389a52374",
      "parents": [
        "ac8d91c801905a061ca883dca427a5e19602a1e7"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Feb 23 20:53:37 2012 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Feb 24 14:52:41 2012 +0000"
      },
      "message": "regmap: Allow drivers to sync only part of the register cache\n\nProvide a regcache_sync_region() operation which allows drivers to\nwrite only part of the cache back to the hardware. This is intended\nfor use in cases like power domains or DSP memories where part of the\ndevice register map may be reset without fully resetting the device.\n\nFully supporting these devices is likely to require additional work to\nmake specific regions of the register map cache only while they are in\nreset, but this is enough for most devices.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "aca1e172a1096ed3785e0da01d82943b7562527c",
      "tree": "0826c140b4e31acd7f8546727498dd849f099ba6",
      "parents": [
        "3bf06a1ad9b147ca3a64b119d70c4a7c0ace3695",
        "2a14d7d9b7439fe62082a60a7f8983ccb463d134"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Feb 20 21:21:33 2012 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Feb 20 21:21:33 2012 +0000"
      },
      "message": "Merge branch \u0027topic/patch\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap into regmap-drivers\n"
    },
    {
      "commit": "a6539c32949063c8147905512a83a98842c2d254",
      "tree": "0eb2d7a118d3fc94b998bc6fe24239fcdefa4450",
      "parents": [
        "b01543dfe67bb1d191998e90d20534dc354de059"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Feb 17 14:20:14 2012 -0800"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Feb 20 21:17:08 2012 +0000"
      },
      "message": "regmap: Allow users to query the size of register values\n\nGeneric infrastructure based on top of regmap may want to operate on\nblocks of data and therefore find it useful to find the size of the\nregister values. Provide an accessor operation for this.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "9cde5fcd435fd929db7b0b486efb435cdb1ddca4",
      "tree": "e7749dc6c7ef6b8a3db06772f10dd0e8c02e0ddb",
      "parents": [
        "028a01e601487b5991b70dba506dfe87d83543f6"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Feb 17 14:49:51 2012 -0800"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Feb 17 14:51:15 2012 -0800"
      },
      "message": "regmap: Add stub regmap calls as a build crutch for infrastructure users\n\nMake life easier for subsystems which build infrastructure on top of the\nregmap API by providing stub definitions for most of the API so that users\ncan at least build even if the regmap API is not enabled without having to\nadd ifdefs if they don\u0027t want to.\n\nThese stubs are not expected to be useful and should never actually get\ncalled, they just exist so that we can link so there are WARN_ONCE()s in\nthe stubs.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "8eaeb21925563075ae036c2e5ba8d041b70e18fa",
      "tree": "165075722500d35cd6c6b459d2be638e491df718",
      "parents": [
        "c9157198417076c0c2664ba997e7b0217f61fcce"
      ],
      "author": {
        "name": "Laxman Dewangan",
        "email": "ldewangan@nvidia.com",
        "time": "Sun Feb 12 19:49:43 2012 +0530"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Feb 14 14:03:32 2012 -0800"
      },
      "message": "regmap: add regmap_bulk_write() for register write\n\nThe bulk_write() supports the data transfer to multi\nregister which takes the data into cpu_endianness format\nand does formatting of data to device format before\nsending to device.\nThe transfer can be completed in single transfer or multiple\ntransfer based on data formatting.\n\nSigned-off-by: Laxman Dewangan \u003cldewangan@nvidia.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "c0eb46766d395da8d62148bda2e59bad5e6ee2f2",
      "tree": "9b808ba04041f4f10d08b384b4ad8c608a86df4c",
      "parents": [
        "567e47935a7cddd8e823c73bb8ee0b2805cd4940"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Jan 30 19:56:52 2012 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Jan 30 21:06:43 2012 +0000"
      },
      "message": "regmap: Implement managed regmap_init()\n\nSave error handling and unwinding code in drivers by providing managed\nversions of the regmap init functions, simplifying usage.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "22f0d90a34827812413bb3fbeda6a2a79bb58423",
      "tree": "c54935a6e2637408da23aa261c81f89dffa0724e",
      "parents": [
        "dcd6c92267155e70a94b3927bce681ce74b80d1f"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sat Jan 21 12:01:14 2012 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Jan 23 14:01:18 2012 +0000"
      },
      "message": "regmap: Support register patch sets\n\nDevice manufacturers frequently provide register sequences, usually not\nfully documented, to be run at startup in order to provide better defaults\nfor devices (for example, improving performance in the light of silicon\nevaluation). Support such updates by allowing drivers to register update\nsets with the core. These updates will be written to the device immediately\nand will also be rewritten when the cache is synced.\n\nThe assumption is that the reason for resyncing the cache will always be\nthat the device has been powered off. If this turns out to not be the case\nthen a separate operation can be provided.\n\nCurrently the implementation only allows a single set of updates to be\nspecified for a device, this could be extended in future.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "82159ba8e6ef8c38e3e0452d90b4ff8da9e4b2c1",
      "tree": "2f488ebc125b24d6790afad633ec8be1e933be18",
      "parents": [
        "dcd6c92267155e70a94b3927bce681ce74b80d1f"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Jan 18 10:52:25 2012 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Jan 20 12:15:39 2012 +0000"
      },
      "message": "regmap: Add support for padding between register and address\n\nSome devices, especially those with high speed control interfaces, require\npadding between the register and the data. Support this in the regmap API\nby providing a pad_bits configuration parameter.\n\nOnly devices with integer byte counts are supported.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "681ba97d9fbff59f67c71f1d9a88ad0b8ef49d25",
      "tree": "a9f2719a6a283bdbca27167aa2803cd8ddae6930",
      "parents": [
        "8569d023a0db699c462337d471f7e92163142e37",
        "209a600623cf13a8168b2f6b83643db7825abb9a"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Dec 05 16:21:05 2011 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Dec 05 16:21:05 2011 +0000"
      },
      "message": "Merge branch \u0027regmap/irq\u0027 into regmap-next\n"
    },
    {
      "commit": "209a600623cf13a8168b2f6b83643db7825abb9a",
      "tree": "4e18c677d51bbdf6fc8771ca13b38c74431f1e4a",
      "parents": [
        "d23511f9590870effa5ace575b59aac18c47175f"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Dec 05 16:10:15 2011 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Dec 05 16:13:31 2011 +0000"
      },
      "message": "regmap: Add irq_base accessor to regmap_irq\n\nAllows devices to discover their own interrupt without having to remember\nit themselves.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "8569d023a0db699c462337d471f7e92163142e37",
      "tree": "7852eeafa7986edf03b2fab354b4ba2718ee44bd",
      "parents": [
        "bc7ee55633867909bb05e71f957a4d3c1aa1b488",
        "bf315173359b2f3b8b8ccca4264815e91f30be12"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Dec 05 13:18:50 2011 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Dec 05 13:18:50 2011 +0000"
      },
      "message": "Merge branch \u0027topic/cache\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap into regmap-next\n"
    },
    {
      "commit": "bf315173359b2f3b8b8ccca4264815e91f30be12",
      "tree": "eb922a86d595849df02c474e034c855d770abce0",
      "parents": [
        "50b776fc71c13663eb7434f634f2b796de5c9885"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sat Dec 03 17:06:20 2011 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Dec 05 13:17:36 2011 +0000"
      },
      "message": "regmap: Allow drivers to reinitialise the register cache at runtime\n\nSometimes the register map information may change in ways that drivers can\ndiscover at runtime. For example, new revisions of a device may add new\nregisters. Support runtime discovery by drivers by allowing the register\ncache to be reinitialised with a new function regmap_reinit_cache() which\ndiscards the existing cache and creates a new one.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "018690d33ecf4aa1eb1415e38c40e2b0b6c7808e",
      "tree": "3ae08fb9d199813840564fb392ebc9b4a5d8c230",
      "parents": [
        "c86845dc7b56be050b9e53b31079e8bd0a3dc279"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Nov 29 20:10:36 2011 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Nov 29 20:15:50 2011 +0000"
      },
      "message": "regmap: Allow regmap_update_bits() users to detect changes\n\nSome users of regmap_update_bits() would like to be able to tell their\nusers if they actually did an update so provide a variant which also\nreturns a flag indicating if an update took place. We could return a\ntristate in the return value of regmap_update_bits() but this makes the\nAPI more cumbersome to use and doesn\u0027t fit with the general zero for\nsuccess idiom we have.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "4c691664583ef6a91f9ed0e08a75fbd30a5ffd5c",
      "tree": "78f9234a8329352e1150ebc5409fe57171dff154",
      "parents": [
        "b44d48c1ccf70273a91b7d3a920b0b54c3cb314f"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Nov 18 16:53:00 2011 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Nov 20 20:56:34 2011 +0000"
      },
      "message": "regmap: Remove indexed cache type\n\nThere should be no situation where it offers any advantage over rbtree\nand there are no current users so remove the code for simplicity.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "720e4616e8fd85284ef1addd8b8d93d8415e8dbc",
      "tree": "7e168b437b5b4ecb1154186e3234fbdbf9c52b92",
      "parents": [
        "e5e3b8abeda1cf45f5a079458dbc267952694c7a"
      ],
      "author": {
        "name": "Lars-Peter Clausen",
        "email": "lars@metafoo.de",
        "time": "Wed Nov 16 16:28:17 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Nov 16 17:34:53 2011 +0000"
      },
      "message": "regmap: Make reg_config reg_defaults const\n\nThe reg_defaults field usually points to a static per driver array, which should\nnot be modified. Make requirement this explicit by making reg_defaults const.\nTo allow this the regcache_init code needs some minor changes. Previoulsy the\nreg_config was not available in regcache_init and regmap-\u003ereg_defaults was used\nto pass the default register set to regcache_init. Now that the reg_config is\navailable we can work on it directly.\n\nSigned-off-by: Lars-Peter Clausen \u003clars@metafoo.de\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "81bf58eb3c16302f19676e73dfe4d1832199c0ef",
      "tree": "529d42f058dbe903ae2400bdcf4c8e207654662f",
      "parents": [
        "b973aa3624a531c7d2b4d8d199142299488f573e",
        "f8beab2bb611d735767871e0e1a12dc6a0def7b1",
        "50b776fc71c13663eb7434f634f2b796de5c9885"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Nov 08 14:16:06 2011 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Nov 08 14:16:06 2011 +0000"
      },
      "message": "Merge branches \u0027regmap/irq\u0027 and \u0027regmap/cache\u0027 into regmap-next\n"
    },
    {
      "commit": "50b776fc71c13663eb7434f634f2b796de5c9885",
      "tree": "360e58b6b93e7142b9c02b7aa987a6c65e98f7a8",
      "parents": [
        "8ae0d7e8a918e9603748abe9b31984fc5d96abb3"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Nov 02 15:00:03 2011 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Nov 08 14:15:00 2011 +0000"
      },
      "message": "regmap: Rename LZO cache type to compressed\n\nUsers probably don\u0027t care about the specific compression algorithm and\nwe might want to use a different algorithm (snappy being the one I\u0027m\nthinking of right now) so update the public interface to have a more\ngeneric name.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "8ae0d7e8a918e9603748abe9b31984fc5d96abb3",
      "tree": "329564b9bdc3cac89a3ac1586c9e5812ab21bf1c",
      "parents": [
        "1ea6b8f48918282bdca0b32a34095504ee65bab5"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Oct 26 10:34:22 2011 +0200"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Nov 08 11:38:15 2011 +0000"
      },
      "message": "regmap: Track if the register cache is dirty and suppress unneeded syncs\n\nAllow drivers to optimise out the register cache sync if they didn\u0027t need\nto do one. If the hardware is desynced from the register cache (by power\nloss for example) then the driver should call regcache_mark_dirty() to\nlet the core know about this.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "f8beab2bb611d735767871e0e1a12dc6a0def7b1",
      "tree": "a30103e40ae9d4473025edad6a2b3a28e3133fb5",
      "parents": [
        "1ea6b8f48918282bdca0b32a34095504ee65bab5"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Oct 28 23:50:49 2011 +0200"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Nov 08 11:29:48 2011 +0000"
      },
      "message": "regmap: Add a reusable irq_chip for regmap based interrupt controllers\n\nThere seem to be lots of regmap-using devices with very similar interrupt\ncontrollers with a small bank of interrupt registers and mask registers\nwith an interrupt per bit. This won\u0027t cover everything but it\u0027s a good\nstart.\n\nEach chip supplies a base for the status registers, a base for the mask\nregisters, an optional base for writing acknowledgements (which may be the\nsame as the status registers) and an array of bits within each of these\nregister banks which indicate the interrupt.\n\nThere is an assumption that the bit for each interrupt will be the same\nin each of the register bank.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "de47725421ad5627a5c905f4e40bb844ebc06d29",
      "tree": "bc23b0405d4a79dcc866a8b2877f128ee0ea9ffc",
      "parents": [
        "eb5589a8f0dab7e29021344228856339e6a1249c"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Thu May 26 13:46:22 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:32:32 2011 -0400"
      },
      "message": "include: replace linux/module.h with \"struct module\" wherever possible\n\nThe \u003clinux/module.h\u003e pretty much brings in the kitchen sink along\nwith it, so it should be avoided wherever reasonably possible in\nterms of being included from other commonly used \u003clinux/something.h\u003e\nfiles, as it results in a measureable increase on compile times.\n\nThe worst culprit was probably device.h since it is used everywhere.\nThis file also had an implicit dependency/usage of mutex.h which was\nmasked by module.h, and is also fixed here at the same time.\n\nThere are over a dozen other headers that simply declare the\nstruct instead of pulling in the whole file, so follow their lead\nand simply make it a few more.\n\nMost of the implicit dependencies on module.h being present by\nthese headers pulling it in have been now weeded out, so we can\nfinally make this change with hopefully minimal breakage.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "6eb0f5e0154facfe4f0acdb9f474cde773319efc",
      "tree": "ef902b2751362a7ecd607a992bd4426a110d308b",
      "parents": [
        "beb1a10f219ce720c13168203bd5ebe4ce7879e0"
      ],
      "author": {
        "name": "Dimitris Papastamos",
        "email": "dp@opensource.wolfsonmicro.com",
        "time": "Thu Sep 29 14:36:27 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Sep 30 13:57:47 2011 +0100"
      },
      "message": "regmap: Implement regcache_cache_bypass helper function\n\nEnsure we\u0027ve got a function so users can enable/disable the\ncache bypass option.\n\nSigned-off-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "92afb286d744511f51a05f8acb6c111d05737617",
      "tree": "4453e7f7ba9b9bbc2ff8fbce64b2fe3a3b81f809",
      "parents": [
        "39a58439d6006c48941511276c0041f56352c529"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Sep 19 18:22:14 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Sep 19 19:06:37 2011 +0100"
      },
      "message": "regmap: Allow drivers to control cache_only flag\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "39a58439d6006c48941511276c0041f56352c529",
      "tree": "5d6efea9b021a71e4491e40763e0e90dd3dadfd9",
      "parents": [
        "e7a6db30df42234bc0f7b9a0af402838e0f146b1"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Sep 19 18:21:49 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Sep 19 19:06:36 2011 +0100"
      },
      "message": "regmap: Prototype regcache_sync()\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "2cbbb579bcbe3e11baf1c59920dcd5a780b80447",
      "tree": "43fca4dcf12a9d2c4690977096d88c873bef9100",
      "parents": [
        "28644c809f44498b8cd91d00b4cdb09e63b99843"
      ],
      "author": {
        "name": "Dimitris Papastamos",
        "email": "dp@opensource.wolfsonmicro.com",
        "time": "Mon Sep 19 14:34:03 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Sep 19 19:06:33 2011 +0100"
      },
      "message": "regmap: Add the LZO cache support\n\nThis patch adds support for LZO compression when storing the register\ncache.\n\nFor a typical device whose register map would normally occupy 25kB or 50kB\nby using the LZO compression technique, one can get down to ~5-7kB.  There\nmight be a performance penalty associated with each individual read/write\ndue to decompressing/compressing the underlying cache, however that should not\nbe noticeable.  These memory benefits depend on whether the target architecture\ncan get rid of the memory occupied by the original register defaults cache\nwhich is marked as __devinitconst.  Nevertheless there will be some memory\ngain even if the target architecture can\u0027t get rid of the original register\nmap, this should be around ~30-32kB instead of 50kB.\n\nSigned-off-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "28644c809f44498b8cd91d00b4cdb09e63b99843",
      "tree": "6a21cc679053956e00106cc31356a699ef70fca0",
      "parents": [
        "195af65ca92179ac2b524d35d732dc6fecec2744"
      ],
      "author": {
        "name": "Dimitris Papastamos",
        "email": "dp@opensource.wolfsonmicro.com",
        "time": "Mon Sep 19 14:34:02 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Sep 19 19:06:33 2011 +0100"
      },
      "message": "regmap: Add the rbtree cache support\n\nThis patch adds support for the rbtree cache compression type.\n\nEach rbnode manages a variable length block of registers.  There can be no\ntwo nodes with overlapping blocks.  Each block has a base register and a\ncurrently top register, all the other registers, if any, lie in between these\ntwo and in ascending order.\n\nThe reasoning behind the construction of this rbtree is simple.  In the\nsnd_soc_rbtree_cache_init() function, we iterate over the register defaults\nprovided by the regcache core.  For each register value that is non-zero we\ninsert it in the rbtree.  In order to determine in which rbnode we need\nto add the register, we first look if there is another register already\nadded that is adjacent to the one we are about to add.  If that is the case\nwe append it in that rbnode block, otherwise we create a new rbnode\nwith a single register in its block and add it to the tree.\n\nThere are various optimizations across the implementation to speed up lookups\nby caching the most recently used rbnode.\n\nSigned-off-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\nTested-by: Lars-Peter Clausen \u003clars@metafoo.de\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "195af65ca92179ac2b524d35d732dc6fecec2744",
      "tree": "af51cbe2b5d5f521993372bbad647293688e7654",
      "parents": [
        "9fabe24e9b1af84509b842731d2beaf85e66681e"
      ],
      "author": {
        "name": "Dimitris Papastamos",
        "email": "dp@opensource.wolfsonmicro.com",
        "time": "Mon Sep 19 14:34:01 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Sep 19 19:06:32 2011 +0100"
      },
      "message": "regmap: Add the indexed cache support\n\nThis is the simplest form of a cache available in regcache.  Any\nregisters whose default value is 0 are ignored.  If any of those\nregisters are modified in the future, they will be placed in the\ncache on demand.  The cache layout is essentially using the provided\nregister defaults by the regcache core directly and does not re-map\nit to another representation.\n\nSigned-off-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "9fabe24e9b1af84509b842731d2beaf85e66681e",
      "tree": "6ff64e0b6f42775925fdb3d396adce620a64e6f6",
      "parents": [
        "b9fb3f3e77cbd536b245db023091e3b7423adeba"
      ],
      "author": {
        "name": "Dimitris Papastamos",
        "email": "dp@opensource.wolfsonmicro.com",
        "time": "Mon Sep 19 14:34:00 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Sep 19 19:06:31 2011 +0100"
      },
      "message": "regmap: Introduce caching support\n\nThis patch introduces caching support for regmap.  The regcache API\nhas evolved essentially out of ASoC soc-cache so most of the actual\ncaching types (except LZO) have been tested in the past.\n\nThe purpose of regcache is to optimize in time and space the handling\nof register caches.  Time optimization is achieved by not having to go\nover a slow bus like I2C to read the value of a register, instead it is\ncached locally in memory and can be retrieved faster.  Regarding space\noptimization, some of the cache types are better at packing the caches,\nfor e.g. the rbtree and the LZO caches.  By doing this the sacrifice in\ntime still wins over doing I2C transactions.\n\nSigned-off-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\nTested-by: Lars-Peter Clausen \u003clars@metafoo.de\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "6f306441e97f8f9d27c43a536360fe221f675a71",
      "tree": "2b7b74cef26e9e5e4de46dad0862998ac896993f",
      "parents": [
        "d813ae9a105219255c07d382059de831186c10d0"
      ],
      "author": {
        "name": "Lars-Peter Clausen",
        "email": "lars@metafoo.de",
        "time": "Mon Sep 05 20:46:32 2011 +0200"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Sep 05 14:55:57 2011 -0700"
      },
      "message": "regmap: Add support for device specific write and read flag masks.\n\nSome buses like SPI have no standard notation of read or write operations.\nThe general scheme here is to set or clear specific bits in the register\naddress to indicate whether the operation is a read or write. We already\nsupport having a read flag mask per bus, but as there is no standard\nthe bits which need to be set or cleared differ between devices and vendors,\nthus we need a mechanism to specify them per device.\n\nThis patch adds two new entries to the regmap_config struct, read_flag_mask and\nwrite_flag_mask. These will be or\u0027ed onto the top byte when doing a read or\nwrite operation. If both masks are empty the device will fallback to the\nregmap_bus masks.\n\nSigned-off-by: Lars-Peter Clausen \u003clars@metafoo.de\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "5b457e3910251ef28712ba5d14adac8194bd5b2c",
      "tree": "6c16b40793551820607abd43aab82076433d52e3",
      "parents": [
        "a7ace561f1e3ebbf40ff20adde9968721a55ef0a"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Sep 05 08:12:05 2011 -0700"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Sep 05 10:57:04 2011 -0700"
      },
      "message": "regmap: Remove redundant owner field from the bus type struct\n\nNo longer used as users link directly with the bus types so the core\nmodule infrastructure does refcounting for us.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "ae130d22de8f8977cc3015bfafc09ff93744d92a",
      "tree": "3492fc5b1d5d32a297c8187a03fc414487e76c40",
      "parents": [
        "449e38427fe57a6120fecd1051981c89ee862b3d",
        "bd20eb541ebbb17a5e047cd20e74b9ccf19a4123"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Aug 21 12:55:20 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Aug 21 12:55:20 2011 +0100"
      },
      "message": "Merge branch \u0027regmap-interface\u0027 into regmap-next\n"
    },
    {
      "commit": "bd20eb541ebbb17a5e047cd20e74b9ccf19a4123",
      "tree": "51743ac99d54e15a5e5717db8984b29cb394047f",
      "parents": [
        "3566cc9d90e3f774cea47de6986c59a09090ce2b"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Aug 19 18:09:38 2011 +0900"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Aug 21 12:54:54 2011 +0100"
      },
      "message": "regmap: Allow drivers to specify register defaults\n\nIt is useful for the register cache code to be able to specify the\ndefault values for the device registers. The major use is when restoring\nthe register cache after suspend, knowing the register defaults allows\nus to skip registers that are at their default values when we resume which\ncan be a substantial win on larger modern devices. For some devices\n(mostly older ones) the hardware does not support readback so the only way we\ncan know the values is from code and so initializing the cache with default\nvalues makes it much easier for drivers work with read/modify/write\nupdates.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "790923e56be795e14eaaeb3305cb4e171cd0a72f",
      "tree": "778262685fbb373401a939679190177d92dbe482",
      "parents": [
        "cb3c2dcfa34072b785cf292ca0b66494496572b9"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Aug 09 10:41:37 2011 +0900"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Aug 10 00:26:38 2011 +0900"
      },
      "message": "regmap: Remove unused type and list fields from bus interface\n\nWe no longer enumerate the bus types, we rely on the driver telling us\nthis on init.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "3566cc9d90e3f774cea47de6986c59a09090ce2b",
      "tree": "50e61e3829a079e7342a05f27d9d9af3dad35d54",
      "parents": [
        "18694886bddb2d4d905535a0149aeef3b5f9c936"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Aug 09 10:23:22 2011 +0900"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Aug 09 10:25:06 2011 +0900"
      },
      "message": "regmap: Fix kerneldoc errors for regmap\n\nField names didn\u0027t match between the documentation and the code.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "18694886bddb2d4d905535a0149aeef3b5f9c936",
      "tree": "b18fb8477f049f1ad7b06022bf59a50f0201143d",
      "parents": [
        "2e2ae66df37a14c9b33889b243b0ae1352ada1dd"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Aug 08 15:40:22 2011 +0900"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Aug 08 15:47:05 2011 +0900"
      },
      "message": "regmap: Add precious registers to the driver interface\n\nSome devices are sensitive to reads on their registers, especially for\nthings like clear on read interrupt status registers. Avoid creating\nproblems with these with things like debugfs by allowing drivers to tell\nthe core about them. If a register is marked as precious then the core\nwill not internally generate any reads of it.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "2e2ae66df37a14c9b33889b243b0ae1352ada1dd",
      "tree": "35a73d673a94db5a68535e768651e99c9a224229",
      "parents": [
        "dd898b209577b83283bb62400c96426d7582e5a2"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Jul 20 22:33:39 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Aug 08 15:47:00 2011 +0900"
      },
      "message": "regmap: Allow devices to specify which registers are accessible\n\nThis is currently unused but we need to know which registers exist and\ntheir properties in order to implement diagnostics like register map\ndumps and the cache features.\n\nWe use callbacks partly because properties can vary at runtime (eg, through\naccess locks on registers) and partly because big switch statements are a\ngood compromise between readable code and small data size for providing\ninformation on big register maps.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "dd898b209577b83283bb62400c96426d7582e5a2",
      "tree": "2fb11efe2e29aab8ab6a092e887dc406e28d2979",
      "parents": [
        "322a8b034003c0d46d39af85bf24fee27b902f48"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Jul 20 22:28:58 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Aug 08 15:47:00 2011 +0900"
      },
      "message": "regmap: Add kerneldoc for struct regmap_config\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "a676f083068b08e676c557279effbd7f4d590812",
      "tree": "06161eab88e942cd6c4d672f51fbd9011018cb5d",
      "parents": [
        "9943fa300a5dcd4536e9a4aa5c09cf94e5e7b28c"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu May 12 11:42:10 2011 +0200"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sat Jul 23 07:56:59 2011 +0100"
      },
      "message": "regmap: Add SPI bus support\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nAcked-by: Liam Girdwood \u003clrg@ti.com\u003e\nAcked-by: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "9943fa300a5dcd4536e9a4aa5c09cf94e5e7b28c",
      "tree": "d846756bbc3feb9ffd8d3d2b6aa7ff876c39d367",
      "parents": [
        "b83a313bf2520183641cf485d68cc273323597d2"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Jun 20 19:02:29 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sat Jul 23 07:56:39 2011 +0100"
      },
      "message": "regmap: Add I2C bus support\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nAcked-by: Liam Girdwood \u003clrg@ti.com\u003e\nAcked-by: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "b83a313bf2520183641cf485d68cc273323597d2",
      "tree": "e478834902bba3d4c774804d55a88c9b50bca2c0",
      "parents": [
        "620917de59eeb934b9f8cf35cc2d95c1ac8ed0fc"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed May 11 19:59:58 2011 +0200"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sat Jul 23 07:56:03 2011 +0100"
      },
      "message": "regmap: Add generic non-memory mapped register access API\n\nThere are many places in the tree where we implement register access for\ndevices on non-memory mapped buses, especially I2C and SPI. Since hardware\ndesigners seem to have settled on a relatively consistent set of register\ninterfaces this can be effectively factored out into shared code.  There\nare a standard set of formats for marshalling data for exchange with the\ndevice, with the actual I/O mechanisms generally being simple byte\nstreams.\n\nWe create an abstraction for marshaling data into formats which can be\nsent on the control interfaces, and create a standard method for\nplugging in actual transport underneath that.\n\nThis is mostly a refactoring and renaming of the bottom level of the\nexisting code for sharing register I/O which we have in ASoC. A\nsubsequent patch in this series converts ASoC to use this.  The main\ndifference in interface is that reads return values by writing to a\nlocation provided by a pointer rather than in the return value, ensuring\nwe can use the full range of the type for register data.  We also use\nunsigned types rather than ints for the same reason.\n\nAs some of the devices can have very large register maps the existing\nASoC code also contains infrastructure for managing register caches.\nThis cache work will be moved over in a future stage to allow for\nseparate review, the current patch only deals with the physical I/O.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nAcked-by: Liam Girdwood \u003clrg@ti.com\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    }
  ]
}
