)]}'
{
  "log": [
    {
      "commit": "1b6bc32f0a7380102499deb6aa99a59e789efb33",
      "tree": "283ef829016d671e7be5a6f72c00fa59fbc9f842",
      "parents": [
        "bff7832dd6670dd0e215ce32d60b18f3825a6555"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Fri May 27 07:12:15 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:31:38 2011 -0400"
      },
      "message": "drivers/base: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required.\n\nMost of these files were implicitly getting EXPORT_SYMBOL via\ndevice.h which was including module.h, but that path will be broken\nsoon.\n\n[ with input from Stephen Rothwell \u003csfr@canb.auug.org.au\u003e ]\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "4e7e2a2008f5d8c49791c412849d5b0232d39bb3",
      "tree": "32c3fa2d5cefb388689cb795225022769bf7b413",
      "parents": [
        "8a9ea3237e7eb5c25f09e429ad242ae5a3d5ea22",
        "7cccbdc84487616c3dbe493b04bfa1f362f4bc56"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 13:57:45 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 13:57:45 2011 +0200"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://opensource.wolfsonmicro.com/regmap\n\n* \u0027for-linus\u0027 of git://opensource.wolfsonmicro.com/regmap: (62 commits)\n  mfd: Enable rbtree cache for wm831x devices\n  regmap: Support some block operations on cached devices\n  regmap: Allow caches for devices with no defaults\n  regmap: Ensure rbtree syncs registers set to zero properly\n  regmap: Allow rbtree to cache zero default values\n  regmap: Warn on raw I/O as well as bulk reads that bypass cache\n  regmap: Return a sensible error code if we fail to read the cache\n  regmap: Use bsearch() to search the register defaults\n  regmap: Fix doc comment\n  regmap: Optimize the lookup path to use binary search\n  regmap: Ensure we scream if we enable cache bypass/only at the same time\n  regmap: Implement regcache_cache_bypass helper function\n  regmap: Save/restore the bypass state upon syncing\n  regmap: Lock the sync path, ensure we use the lockless _regmap_write()\n  regmap: Fix apostrophe usage\n  regmap: Make _regmap_write() global\n  regmap: Fix lock used for regcache_cache_only()\n  regmap: Grab the lock in regcache_cache_only()\n  regmap: Modify map-\u003ecache_bypass directly\n  regmap: Fix regcache_sync generic implementation\n  ...\n"
    },
    {
      "commit": "de2d808f4de091321978d05a85ef0819e8f3561a",
      "tree": "d2b3d27de79f9cd7d7092a886c8a9479588a5428",
      "parents": [
        "8528bdd450d34687b380c0f87992d105bdf54ca3"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Oct 10 13:24:52 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Oct 13 11:41:54 2011 +0100"
      },
      "message": "regmap: Support some block operations on cached devices\n\nSupport raw reads if all the registers being read are volatile, the cache\nwill have no impact for tem.\n\nSupport bulk reads either directly (if all the registers are volatile) or\nby falling back to iterating over single register reads otherwise.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "8528bdd450d34687b380c0f87992d105bdf54ca3",
      "tree": "1a91b49ac3be49e677f438ab0608b7ec8ebd3c72",
      "parents": [
        "b03622a80d2206c4179d6a41a0dc5cfbdfc853ee"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Oct 09 13:13:58 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Oct 10 11:55:32 2011 +0100"
      },
      "message": "regmap: Allow caches for devices with no defaults\n\nWe only really need the defaults in order to cut down the number of\nregisters we sync and to satisfy reads while the device is powered off\nbut not all devices are going to need to do that (always on devices like\nPMICs being the prime example) so don\u0027t require those devices to supply\na default.  Instead only try to fall back to hardware defaults if the\ndriver told us to.\n\nDevices using LZO won\u0027t be able to instantiate with this, that will require\nsome updates in the LZO code to handle this case.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nAcked-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "b03622a80d2206c4179d6a41a0dc5cfbdfc853ee",
      "tree": "7f0e02bbddfd3930e3aabe553d9efb4c423c47fa",
      "parents": [
        "e42c5a9a4230c38ceba0a890b30a2d0dd9314bff"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Oct 09 12:54:25 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Oct 10 10:26:48 2011 +0100"
      },
      "message": "regmap: Ensure rbtree syncs registers set to zero properly\n\nSimplify the check for registers set at their default value by avoiding\npicking a default value in the case where we don\u0027t have one. Instead we\nonly compare the current value to the current value when we looked one\nup. This fixes the case where we don\u0027t have a default stored but the value\nwas set to zero when that isn\u0027t the chip default.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nAcked-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "e42c5a9a4230c38ceba0a890b30a2d0dd9314bff",
      "tree": "19fc12b745f2ff91a6a9dc29b6c2a3f5ffde1b99",
      "parents": [
        "04e016adcae28b65ddc9e756947fa1526a51c0b5"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Oct 09 14:30:02 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Oct 10 10:25:00 2011 +0100"
      },
      "message": "regmap: Allow rbtree to cache zero default values\n\nEnsure that when we start up in cache only mode we can store defaults of\nzero, otherwise if the hardware is unavailable we won\u0027t be able to read.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nAcked-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "04e016adcae28b65ddc9e756947fa1526a51c0b5",
      "tree": "f4068bbe3609ee83f6e0eb98bb71772b1c467ebe",
      "parents": [
        "6e6ace00a045251bd172b9b9c2379857bbff3dc7"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Oct 09 13:35:43 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Oct 10 10:24:33 2011 +0100"
      },
      "message": "regmap: Warn on raw I/O as well as bulk reads that bypass cache\n\nAs with the bulk reads we really should be able to make these play\nnicely with the cache but warn for now.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nAcked-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "6e6ace00a045251bd172b9b9c2379857bbff3dc7",
      "tree": "63a4d6686b3955ca16e7727883445209de67074b",
      "parents": [
        "f094fea68f0575286c55c06141cc89ffd0049024"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Oct 09 13:23:31 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Oct 10 10:24:03 2011 +0100"
      },
      "message": "regmap: Return a sensible error code if we fail to read the cache\n\nIf a register isn\u0027t cached then let callers know that so they can fall\nback or error handle appropriately.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nAcked-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "f094fea68f0575286c55c06141cc89ffd0049024",
      "tree": "6e6ff489fd8e445ff3b1e1a33e7488395d841e1b",
      "parents": [
        "0eef6b0415f58ed16aff95af8c92514ce5c01258"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Oct 04 22:05:47 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Oct 09 12:36:56 2011 +0100"
      },
      "message": "regmap: Use bsearch() to search the register defaults\n\nRather than open coding a binary search use the standard bsearch() using\nthe comparison function we\u0027re already using for sort() on insert. This\nfixes a lockup I was observing due to iterating on min \u003c\u003d max rather\nthan min \u003c max when we fail to look up.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nAcked-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "0eef6b0415f58ed16aff95af8c92514ce5c01258",
      "tree": "9b9340c9600b82b11619163faa71733f08e752f6",
      "parents": [
        "c08604b8ae72b4fa1843a76fc7b403ddec49f8f4"
      ],
      "author": {
        "name": "Dimitris Papastamos",
        "email": "dp@opensource.wolfsonmicro.com",
        "time": "Mon Oct 03 06:54:16 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Oct 03 11:50:53 2011 +0100"
      },
      "message": "regmap: Fix doc comment\n\nSigned-off-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "c08604b8ae72b4fa1843a76fc7b403ddec49f8f4",
      "tree": "64de79de1019dbc3fd7862693a245bb29bf25e4b",
      "parents": [
        "ac77a765cb6e3b5aa41c186ad9f37db7fdad7dbe"
      ],
      "author": {
        "name": "Dimitris Papastamos",
        "email": "dp@opensource.wolfsonmicro.com",
        "time": "Mon Oct 03 10:50:14 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Oct 03 11:50:53 2011 +0100"
      },
      "message": "regmap: Optimize the lookup path to use binary search\n\nSince there are more lookups than insertions in a typical\nscenario, optimize the linear search into a binary search.  For\nthis to work, we need to keep reg_defaults sorted upon\ninsertions, for now be lazy and use sort().\n\nSigned-off-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "ac77a765cb6e3b5aa41c186ad9f37db7fdad7dbe",
      "tree": "8a5c8df6dea4899dfff26eafe7027b1349be23a6",
      "parents": [
        "6eb0f5e0154facfe4f0acdb9f474cde773319efc"
      ],
      "author": {
        "name": "Dimitris Papastamos",
        "email": "dp@opensource.wolfsonmicro.com",
        "time": "Thu Sep 29 14:36:28 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Sep 30 13:57:47 2011 +0100"
      },
      "message": "regmap: Ensure we scream if we enable cache bypass/only at the same time\n\nSigned-off-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.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": "beb1a10f219ce720c13168203bd5ebe4ce7879e0",
      "tree": "99c7f842621284fcf9313a77f963ad4dfbd0a018",
      "parents": [
        "13753a9088af23c61e2f5c10a8f3ea136d8ebab5"
      ],
      "author": {
        "name": "Dimitris Papastamos",
        "email": "dp@opensource.wolfsonmicro.com",
        "time": "Thu Sep 29 14:36:26 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Sep 30 13:57:47 2011 +0100"
      },
      "message": "regmap: Save/restore the bypass state upon syncing\n\nSigned-off-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "13753a9088af23c61e2f5c10a8f3ea136d8ebab5",
      "tree": "44c7a109f98995800f55ffd8b0cf0cefca158caf",
      "parents": [
        "5fcd2560767cead8f0c741340e132c5417d9f73b"
      ],
      "author": {
        "name": "Dimitris Papastamos",
        "email": "dp@opensource.wolfsonmicro.com",
        "time": "Thu Sep 29 14:36:25 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Sep 30 13:57:47 2011 +0100"
      },
      "message": "regmap: Lock the sync path, ensure we use the lockless _regmap_write()\n\nSigned-off-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "5fcd2560767cead8f0c741340e132c5417d9f73b",
      "tree": "e27b776ee09d3d306614b718d21a9997dfb1a71c",
      "parents": [
        "4d2dc09538561eb8823c3c0072e6f5b868a5abe1"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Sep 29 15:24:54 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Sep 30 11:20:14 2011 +0100"
      },
      "message": "regmap: Fix apostrophe usage\n\nAn apostrophe does not mean \"look out, here comes an s!\".\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "4d2dc09538561eb8823c3c0072e6f5b868a5abe1",
      "tree": "2ff1ea9d4fd2180caebe80e95ed051e506b38436",
      "parents": [
        "2cd148f1599a425f0f3ac6753da96a1a1aa3ce76"
      ],
      "author": {
        "name": "Dimitris Papastamos",
        "email": "dp@opensource.wolfsonmicro.com",
        "time": "Thu Sep 29 10:39:07 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Sep 29 11:19:45 2011 +0100"
      },
      "message": "regmap: Make _regmap_write() global\n\nSigned-off-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "2cd148f1599a425f0f3ac6753da96a1a1aa3ce76",
      "tree": "9f0a980ca2839023d9f537c123730987c2f4e2f9",
      "parents": [
        "38f6916976f9e964748f097be3688e334fb60f3d"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Sep 29 10:40:55 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Sep 29 10:40:55 2011 +0100"
      },
      "message": "regmap: Fix lock used for regcache_cache_only()\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "38f6916976f9e964748f097be3688e334fb60f3d",
      "tree": "79b2bacf6db045d22a6127bb1b81fce48dedb511",
      "parents": [
        "ec8a365fe62c78a16268bd1d12dfbebc2b775991"
      ],
      "author": {
        "name": "Dimitris Papastamos",
        "email": "dp@opensource.wolfsonmicro.com",
        "time": "Wed Sep 28 11:43:45 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Sep 28 13:57:36 2011 +0100"
      },
      "message": "regmap: Grab the lock in regcache_cache_only()\n\nSigned-off-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "ec8a365fe62c78a16268bd1d12dfbebc2b775991",
      "tree": "11aafc8618736161bfbe6a189300aae3bcca707c",
      "parents": [
        "a40c282362419b8bccb75cea081992f535841085"
      ],
      "author": {
        "name": "Dimitris Papastamos",
        "email": "dp@opensource.wolfsonmicro.com",
        "time": "Wed Sep 28 11:43:42 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Sep 28 13:56:39 2011 +0100"
      },
      "message": "regmap: Modify map-\u003ecache_bypass directly\n\nIn preperation for the upcoming patches, modify map-\u003ecache_bypass\ndirectly.  The helper functions will grab an exclusive lock.  Because\nwe\u0027ll have acquired the same lock we need to avoid a deadlock.\n\nSigned-off-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "a40c282362419b8bccb75cea081992f535841085",
      "tree": "e254807a15a9a57328f88193275efac12e5db50f",
      "parents": [
        "3405addd220a0cf2e3a8ffb9051afe766e5f52e8"
      ],
      "author": {
        "name": "Dimitris Papastamos",
        "email": "dp@opensource.wolfsonmicro.com",
        "time": "Wed Sep 28 11:43:41 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Sep 28 13:56:39 2011 +0100"
      },
      "message": "regmap: Fix regcache_sync generic implementation\n\nWe want to use regmap_write() to actually write anything\nto the HW.\n\nSigned-off-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "3405addd220a0cf2e3a8ffb9051afe766e5f52e8",
      "tree": "ef19c5e5b155424fc50f131038eeb2abf27c7d24",
      "parents": [
        "c5713004b304e89c8c5117d8f226d5a1603571dc"
      ],
      "author": {
        "name": "Lars-Peter Clausen",
        "email": "lars@metafoo.de",
        "time": "Tue Sep 27 20:15:38 2011 +0200"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Sep 28 13:18:22 2011 +0100"
      },
      "message": "regmap: rbtree-cache: Move cached rbnode handling into lookup function\n\nMove the handling of the cached rbnode into regcache_rbtree_lookup. This allows\nus to remove of some duplicated code sections in regcache_rbtree_read and\nregcache_rbtree_write.\n\nSigned-off-by: Lars-Peter Clausen \u003clars@metafoo.de\u003e\nAcked-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "c5713004b304e89c8c5117d8f226d5a1603571dc",
      "tree": "dc33145c0b995e3f55cdc88565438c22b1bcbeec",
      "parents": [
        "954757d767a78bc4b863fa9ea703bd7f814c8a55"
      ],
      "author": {
        "name": "Lars-Peter Clausen",
        "email": "lars@metafoo.de",
        "time": "Tue Sep 27 20:15:37 2011 +0200"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Sep 28 13:18:11 2011 +0100"
      },
      "message": "regmap: regcache_rbtree_{set,get}_register: Use regcache_{set,get}_val\n\nUse regcache_{set,get}_val in regcache_rbtree_{set,get}_register instead of\nre-implementing its functionality.\n\nSigned-off-by: Lars-Peter Clausen \u003clars@metafoo.de\u003e\nAcked-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "954757d767a78bc4b863fa9ea703bd7f814c8a55",
      "tree": "cff3d871b42f24e57253b69e27388ad48e7ade4d",
      "parents": [
        "dfdc4448e078d06bdba0da52db7176437877788f"
      ],
      "author": {
        "name": "Dimitris Papastamos",
        "email": "dp@opensource.wolfsonmicro.com",
        "time": "Tue Sep 27 11:25:06 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Sep 27 20:06:38 2011 +0100"
      },
      "message": "regmap: Implement generic syncing functionality\n\nIn the absence of a sync callback, do it manually.  This of course\ncan\u0027t take advantange of the specific optimizations of each\ncache type but it will do well enough in most cases.\n\nSigned-off-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "dfdc4448e078d06bdba0da52db7176437877788f",
      "tree": "cb48f01e263a969601e6bd79eaf9638f1d1de59f",
      "parents": [
        "25ed1156ddf99f6d8feb87d0992b2ecb1fef667a"
      ],
      "author": {
        "name": "Dimitris Papastamos",
        "email": "dp@opensource.wolfsonmicro.com",
        "time": "Tue Sep 27 11:25:04 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Sep 27 13:27:09 2011 +0100"
      },
      "message": "regmap: Fix signed/unsigned comparison\n\nSigned-off-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "25ed1156ddf99f6d8feb87d0992b2ecb1fef667a",
      "tree": "e253bb262eaac0576f7f1f1a0b31e1a82128e660",
      "parents": [
        "523d9cfbb2094e095ff08a01c4eac10cc7d287c3"
      ],
      "author": {
        "name": "Dimitris Papastamos",
        "email": "dp@opensource.wolfsonmicro.com",
        "time": "Tue Sep 27 11:25:07 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Sep 27 13:27:09 2011 +0100"
      },
      "message": "regmap: Remove redundant member `word_size\u0027 from regcache_rbtree_node\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": "e7a6db30df42234bc0f7b9a0af402838e0f146b1",
      "tree": "bf949bc7aa1099cfa95b02be37d11cc6e372185d",
      "parents": [
        "5d1729e7f02f050c73b68ce0198f8e5c48e9608a"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Sep 19 16:08:03 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Sep 19 19:06:36 2011 +0100"
      },
      "message": "regmap: A cache type of _NONE behaves like a bypassed cache\n\nAvoid extra special casing by setting the cache_bypass flag when we\u0027re\nnot caching.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "5d1729e7f02f050c73b68ce0198f8e5c48e9608a",
      "tree": "dd570af616817e26d7ef8bd085d7cb9bb9cbf69b",
      "parents": [
        "593600890110c02eb471cf844649dee213870416"
      ],
      "author": {
        "name": "Dimitris Papastamos",
        "email": "dp@opensource.wolfsonmicro.com",
        "time": "Mon Sep 19 14:34:05 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Sep 19 19:06:35 2011 +0100"
      },
      "message": "regmap: Incorporate the regcache core into regmap\n\nThis patch incorporates the regcache core code into regmap.  All previous\npatches have been no-ops essentially up to this point.\n\nThe bulk read operation is not supported by regcache at the moment.  This\nwill be implemented incrementally.\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": "593600890110c02eb471cf844649dee213870416",
      "tree": "c696723995636b93ba7031d1ec7ad6169d7135f7",
      "parents": [
        "2cbbb579bcbe3e11baf1c59920dcd5a780b80447"
      ],
      "author": {
        "name": "Dimitris Papastamos",
        "email": "dp@opensource.wolfsonmicro.com",
        "time": "Mon Sep 19 14:34:04 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Sep 19 19:06:34 2011 +0100"
      },
      "message": "regmap: Add the regcache_sync trace event\n\nSigned-off-by: Dimitris Papastamos \u003cdp@opensource.wolfsonmicro.com\u003e\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": "9ba365438a532436ecd96a089fb29b01516bed33",
      "tree": "de42ed54a7c0ebab8ef121dca439515f13be4cfc",
      "parents": [
        "3d0283ebc8718f793a14971041b1c99afce714ac",
        "5204f5e3f5b3c706e52682590de5974a82ea54f9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 08 16:47:52 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 08 16:47:52 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://opensource.wolfsonmicro.com/regmap\n\n* \u0027for-linus\u0027 of git://opensource.wolfsonmicro.com/regmap:\n  regmap: Remove bitrotted module_put()s\n"
    },
    {
      "commit": "bbcf61ca8dcf093bd030a4dafb662b714676652d",
      "tree": "d90609aa9bc14e0f04105a17f5a3bd1b81cf1258",
      "parents": [
        "6f306441e97f8f9d27c43a536360fe221f675a71"
      ],
      "author": {
        "name": "Lars-Peter Clausen",
        "email": "lars@metafoo.de",
        "time": "Mon Sep 05 22:06:13 2011 +0200"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Sep 05 15:00:08 2011 -0700"
      },
      "message": "regmap: Make debugfs stubs static inline\n\nMake the debugfs stubs static inline to avoid future compilation issues due to\nduplicated symbols when CONFIG_DEBUG_FS\u003dn once internal.h is included by\nmultiple source files.\n\nSigned-off-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": "d813ae9a105219255c07d382059de831186c10d0",
      "tree": "51144b79a2ee1f3682ccc9a3976b7ad42a3634f3",
      "parents": [
        "5b457e3910251ef28712ba5d14adac8194bd5b2c"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Sep 05 08:13:07 2011 -0700"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Sep 05 10:58:31 2011 -0700"
      },
      "message": "regmap: Include the last register in debugfs output\n\nOff by one in the array iteration.\n\nReported-by: Jonathan Cameron \u003cjic23@cam.ac.uk\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": "a7ace561f1e3ebbf40ff20adde9968721a55ef0a",
      "tree": "31bbe1c68cf525d92ef41b6a1e6e119c0d304602",
      "parents": [
        "fec4fe26ec69cc63f56e649759b3c8bcc98016ea",
        "5204f5e3f5b3c706e52682590de5974a82ea54f9"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Sep 05 10:56:57 2011 -0700"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Sep 05 10:56:57 2011 -0700"
      },
      "message": "Merge branch \u0027regmap-linus\u0027 into regmap-next\n"
    },
    {
      "commit": "5204f5e3f5b3c706e52682590de5974a82ea54f9",
      "tree": "3ec502adf5640df58f5f799f1d242944e403d8f0",
      "parents": [
        "b33f9cbd67ba1a1c46879ec66467269f09cde8e5"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Sep 05 08:07:47 2011 -0700"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Sep 05 10:55:58 2011 -0700"
      },
      "message": "regmap: Remove bitrotted module_put()s\n\nThe conversion to per bus type registration functions means we don\u0027t need\nto do module_get()s to hold the bus types in memory (their users will link\nto them) so we removed all those calls. This left module_put() calls in\nthe cleanup paths which aren\u0027t needed and which cause unbalanced puts if\nwe ever try to unload anything.\n\nReported-by: Jonathan Cameron \u003cjic23@cam.ac.uk\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "b5ddbf465f3675b19c8f5528b4064cbf278a5c6f",
      "tree": "4895e714df5b29e73d4ad1e67051067c2cde88be",
      "parents": [
        "870d3be1249b1397395ed3164987397993a16d91"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Tue Aug 16 09:36:06 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 15 19:28:17 2011 -0700"
      },
      "message": "regmap: using module facilities requires module.h\n\nCommit b33f9cbd67ba (\"regmap: Specify a module license\") added a\nMODULES_LICENSE to this file without adding an include of module.h.\n\nmodule.h should have been included anyway, since this file has\nEXPORT_SYMBOLs as well.  With the pending module.h split up, this would\nprobably have caused build problems.\n\nCc: Stephen Warren \u003cswarren@nvidia.com\u003e\nCc: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "449e38427fe57a6120fecd1051981c89ee862b3d",
      "tree": "c8c7d4b24b799c6bf5f601776f7e1671b9a419cf",
      "parents": [
        "21f555445676e5c7d30bb9b3487cb183d02e45e3"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Aug 10 17:28:04 2011 +0900"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Aug 14 19:51:16 2011 +0900"
      },
      "message": "regmap: Provide access information via debugfs\n\nLet userspace know what the access map for the device is. This is helpful\nfor verifying that the access map is correctly configured and could also\nbe useful for programs that try to work with the data. File format is:\n\nregister: R W V P\n\nwhere R, W, V and P are \u0027y\u0027 or \u0027n\u0027 showing readable, writable, volatile\nand precious respectively.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "21f555445676e5c7d30bb9b3487cb183d02e45e3",
      "tree": "a8f18e1cb71364af81722652c19b8584fb856757",
      "parents": [
        "8de2f081ef8ee716663f916df9f2a7d015fa0dad"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Aug 10 17:15:31 2011 +0900"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Aug 14 19:51:14 2011 +0900"
      },
      "message": "regmap: Share some of the debugfs infrastructure ready for more files\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "8de2f081ef8ee716663f916df9f2a7d015fa0dad",
      "tree": "74319c3c14525f063754faab80406416b4a9f1dc",
      "parents": [
        "13c54137f7896928ced8e97708d409fa39c09e00"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Aug 10 17:14:41 2011 +0900"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Aug 14 19:51:11 2011 +0900"
      },
      "message": "regmap: Add functions to check for access on registers\n\nWe\u0027re going to be using these in quite a few places so factor out the\nreadable/writable/volatile/precious checks.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "13c54137f7896928ced8e97708d409fa39c09e00",
      "tree": "4e95e486cbfdb872917984e78484b15f2d84a20e",
      "parents": [
        "790923e56be795e14eaaeb3305cb4e171cd0a72f",
        "b33f9cbd67ba1a1c46879ec66467269f09cde8e5"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Aug 12 10:43:15 2011 +0900"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Aug 12 10:43:15 2011 +0900"
      },
      "message": "Merge branch \u0027regmap-linus\u0027 into regmap-next\n"
    },
    {
      "commit": "b33f9cbd67ba1a1c46879ec66467269f09cde8e5",
      "tree": "375e8146ff4fe6505a155020c3b60d353b1543e7",
      "parents": [
        "40c5cc263954444f5a76cbf25d408c42da480122"
      ],
      "author": {
        "name": "Stephen Warren",
        "email": "swarren@nvidia.com",
        "time": "Thu Aug 11 11:59:10 2011 -0600"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Aug 12 10:42:02 2011 +0900"
      },
      "message": "regmap: Specify a module license\n\nCONFIG_REGMAP_I2C/SPI are set to m when selected by a tristate config\noption that\u0027s set to m. The regmap modules don\u0027t specify a license, so\nfail to link to regmap_init at load time, since that is EXPORT_SYMBOL_GPL.\nFix this by specifying a license for the regmap modules.\n\nSigned-off-by: Stephen Warren \u003cswarren@nvidia.com\u003e\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": "cb3c2dcfa34072b785cf292ca0b66494496572b9",
      "tree": "68798d8a3e217529e5f9904e291766319ca79b9e",
      "parents": [
        "3d9ead7c06e51249a92eb710a892a66601bd7290"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Aug 09 16:47:42 2011 +0900"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Aug 10 00:26:38 2011 +0900"
      },
      "message": "regmap: Fix type of field width specifiers for x86_64\n\nx86_64 size_t is not an int but the printf format specifier for size_t\nshould be an int.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\n"
    },
    {
      "commit": "2efe1642b73e74604498175de032b8a604868fb7",
      "tree": "a84b4498d30ef5ea49391bfe687128a2dafd5623",
      "parents": [
        "31244e396fa9e4854cfd6dfe305983e77802c156"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Aug 08 15:41:46 2011 +0900"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Aug 08 15:57:35 2011 +0900"
      },
      "message": "regmap: Skip precious registers when dumping registers via debugfs\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "31244e396fa9e4854cfd6dfe305983e77802c156",
      "tree": "d2d9b4403802e8536e83304b3024352ba529f1fe",
      "parents": [
        "93de91245b66f20dd387c2745744950a11a5c436"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Jul 20 22:56:53 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Aug 08 15:57:00 2011 +0900"
      },
      "message": "regmap: Provide register map dump via debugfs\n\nCopy over the read parts of the ASoC debugfs implementation into regmap,\nallowing users to see what the register values the device has are at\nruntime. The implementation, especially the support for seeking, is\nmostly due to Dimitris Papastamos\u0027 work in ASoC.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "93de91245b66f20dd387c2745744950a11a5c436",
      "tree": "82601d13bfc2b4c678618bf55be0e05671299338",
      "parents": [
        "73304781274200c341996f65220d36b3cda8e217"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Jul 20 22:35:37 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Aug 08 15:56:50 2011 +0900"
      },
      "message": "regmap: Use a local header for API internals\n\nAllowing the implementation to be multi-file.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "73304781274200c341996f65220d36b3cda8e217",
      "tree": "3f5bb6f1b17b68392c360b9de15da756de274a0b",
      "parents": [
        "fb2736bbaee0e704a4f33912cf532597b2dc5b33"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Jul 24 11:46:20 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Aug 08 15:56:41 2011 +0900"
      },
      "message": "regmap: Implement writable register checks\n\nThis is mainly intended to be used by devices which can dynamically\nblock register writes at runtime, for other devices there is usually\nlimited value.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "fb2736bbaee0e704a4f33912cf532597b2dc5b33",
      "tree": "409629ad28230acd153d4b07c3e39d7afb324175",
      "parents": [
        "555fedacc366c4aaf48270da2504dfa97c41a130"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Jul 24 21:30:55 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Aug 08 15:56:16 2011 +0900"
      },
      "message": "regmap: Add basic tracepoints\n\nTrace single register reads and writes, plus start/stop tracepoints for\nthe actual I/O to see where we\u0027re spending time. This makes it easy to\nhave always on logging without overwhelming the logs and also lets us take\nadvantage of all the context and time information that the trace subsystem\ncollects for us.\n\nWe don\u0027t currently trace register values for bulk operations as this would\nadd complexity and overhead parsing the cooked data that\u0027s being worked\nwith.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "555fedacc366c4aaf48270da2504dfa97c41a130",
      "tree": "ae9b506b00233b0fee7d29c85b2db097e236d5e4",
      "parents": [
        "2547e201b3693f91d643fc0d21ef86171894b59b",
        "40c5cc263954444f5a76cbf25d408c42da480122",
        "18694886bddb2d4d905535a0149aeef3b5f9c936"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Aug 08 15:55:53 2011 +0900"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Aug 08 15:55:53 2011 +0900"
      },
      "message": "Merge branches \u0027regmap-linus\u0027 and \u0027regmap-interface\u0027 into regmap-next\n"
    },
    {
      "commit": "2547e201b3693f91d643fc0d21ef86171894b59b",
      "tree": "3ea3a75fbf29e95b341cdd4558bf3c6dd09cd585",
      "parents": [
        "322a8b034003c0d46d39af85bf24fee27b902f48"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Jul 20 21:47:22 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Aug 08 15:52:25 2011 +0900"
      },
      "message": "regmap: Just send the buffer directly for single register writes\n\nWhen doing a single register write we use work_buf for both the register\nand the value with the buffer formatted for sending directly to the device\nso we can just do a write() directly. This saves allocating a temporary\nbuffer if we can\u0027t do gather writes and is likely to be faster than doing\na gather write.\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": "40c5cc263954444f5a76cbf25d408c42da480122",
      "tree": "29b05a44f2953fd544c60949e18c1f78e39f9fcc",
      "parents": [
        "90923351d480fffd0d24646db83f6f8315eed0d9"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Jul 24 22:39:12 2011 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Jul 24 22:44:51 2011 +0100"
      },
      "message": "regmap: Fix bulk reads\n\nWe should be reading the number of bytes we were asked for, not the size\nof a single register.\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"
    }
  ]
}
