)]}'
{
  "log": [
    {
      "commit": "a2b37efc4e2aa76a5be29bbde8a2cd1c9c9066bc",
      "tree": "0be4360b343ab037666d9b1d4ca326ef59e9615d",
      "parents": [
        "a31f68497e07f5fec7155bc07dc633fc6eaa0adb",
        "d2a5884a64161b524cc6749ee11b95d252e497f3"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Feb 14 17:11:09 2013 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Feb 14 17:11:09 2013 +0000"
      },
      "message": "Merge remote-tracking branch \u0027regmap/topic/no-bus\u0027 into regmap-next\n"
    },
    {
      "commit": "a31f68497e07f5fec7155bc07dc633fc6eaa0adb",
      "tree": "9324a5f1327a5a9dc0548dd21d5dcb569149a834",
      "parents": [
        "5dea215028686a67e815c32a54dc89fb3467ab05",
        "878ec67b3ac528a2b6d44055f049cdbb9cfda30c"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Feb 14 17:11:08 2013 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Feb 14 17:11:08 2013 +0000"
      },
      "message": "Merge remote-tracking branch \u0027regmap/topic/mmio\u0027 into regmap-next\n"
    },
    {
      "commit": "5dea215028686a67e815c32a54dc89fb3467ab05",
      "tree": "a00295f8c31e2c2b3ecfe397a3a792177e957cba",
      "parents": [
        "7798b582d31e92227ca457f93db320ad9654dada",
        "378e8ee2f842ccf5a14516741119468fc55b17f0"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Feb 14 17:11:08 2013 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Feb 14 17:11:08 2013 +0000"
      },
      "message": "Merge remote-tracking branch \u0027regmap/topic/irq\u0027 into regmap-next\n"
    },
    {
      "commit": "7798b582d31e92227ca457f93db320ad9654dada",
      "tree": "13ea398eb239df155bba350bdb0ba4db18df5dc3",
      "parents": [
        "43280026c842c44a8505a1b909378e62f754ecfe",
        "2ac902ce17f9dfa0d4d1f0818be147b5d2515fb7"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Feb 14 17:11:07 2013 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Feb 14 17:11:07 2013 +0000"
      },
      "message": "Merge remote-tracking branch \u0027regmap/topic/flat\u0027 into regmap-next\n"
    },
    {
      "commit": "878ec67b3ac528a2b6d44055f049cdbb9cfda30c",
      "tree": "e6907b938e9c77c84aed65f7a6f8b2d72f4eb0fd",
      "parents": [
        "836dc9e3fbbab0c30aa6e664417225f5c1fb1c39"
      ],
      "author": {
        "name": "Philipp Zabel",
        "email": "p.zabel@pengutronix.de",
        "time": "Thu Feb 14 17:39:08 2013 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Feb 14 16:40:28 2013 +0000"
      },
      "message": "regmap: mmio: add register clock support\n\nSome mmio devices have a dedicated interface clock that needs\nto be enabled to access their registers. This patch optionally\nenables a clock before accessing registers in the regmap_bus\ncallbacks.\n\nI added (devm_)regmap_init_mmio_clk variants of the init\nfunctions that have an added clk_id string parameter. This\nis passed to clk_get to request the clock from the clk\nframework.\n\nSigned-off-by: Philipp Zabel \u003cp.zabel@pengutronix.de\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "0d509f2b112b21411712f0bf789b372987967e49",
      "tree": "138bac0e613916bbf725f0ee1939080dfc4dbedb",
      "parents": [
        "07c320dc31d757b8cb59c64dab320215c929bf02"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Jan 27 22:07:38 2013 +0800"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Jan 29 12:14:52 2013 +0800"
      },
      "message": "regmap: Add asynchronous I/O support\n\nSome use cases like firmware download can transfer a lot of data in quick\nsuccession. With high speed buses these use cases can benefit from having\nmultiple transfers scheduled at once since this allows the bus to minimise\nthe delay between transfers.\n\nSupport this by adding regmap_raw_write_async(), allowing raw transfers to\nbe scheduled, and regmap_async_complete() to wait for them to finish.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "d2a5884a64161b524cc6749ee11b95d252e497f3",
      "tree": "cf94ee33306a752e68977324e9b990538b44f8ab",
      "parents": [
        "07c320dc31d757b8cb59c64dab320215c929bf02"
      ],
      "author": {
        "name": "Andrey Smirnov",
        "email": "andrew.smirnov@gmail.com",
        "time": "Sun Jan 27 10:49:05 2013 -0800"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Jan 29 11:42:49 2013 +0800"
      },
      "message": "regmap: Add \"no-bus\" option for regmap API\n\nThis commit adds provision for \"no-bus\" usage of the regmap API. In\nthis configuration user can provide API with two callbacks \u0027reg_read\u0027\nand \u0027reg_write\u0027 which are to be called when reads and writes to one of\ndevice\u0027s registers is performed. This is useful for devices that\nexpose registers but whose register access sequence does not fit the \u0027bus\u0027\nabstraction.\n\nSigned-off-by: Andrey Smirnov \u003candrew.smirnov@gmail.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "9442490a02867088bcd5ed6231fa3b35a733c2b8",
      "tree": "f086d7f0acc384c6765f80b85bf8541104252ed5",
      "parents": [
        "33be49324f7f3e9dff10d3d07a5c78ee82f8d54e"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Jan 04 16:35:07 2013 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Jan 04 20:53:44 2013 +0000"
      },
      "message": "regmap: irq: Support wake IRQ mask inversion\n\nSupport devices which have an enable rather than mask register for wake\nsources.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "2ac902ce17f9dfa0d4d1f0818be147b5d2515fb7",
      "tree": "20edcdd038f298fca0e39b658a40620e48ea1504",
      "parents": [
        "a49f0d1ea3ec94fc7cf33a7c36a16343b74bd565"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Dec 19 14:51:55 2012 +0000"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Jan 02 10:58:53 2013 +0000"
      },
      "message": "regmap: flat: Add flat cache type\n\nWhile for I2C and SPI devices the overhead of using rbtree for devices with\nonly one block of registers is negligible the same isn\u0027t always going to\nbe true for MMIO devices where the I/O costs are very much lower. Cater\nfor these devices by adding a simple flat array type for them where the\nlookups are simple array accesses, taking us right back to the original\nASoC cache implementation.\n\nThanks to Magnus Damm for the discussion which prompted this.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "8e24a6e696ebdc44513357ac00b6ee18f54e69f5",
      "tree": "82cc7ac9259a9f20159f9265aca52533b1cb3ca8",
      "parents": [
        "db760fbecd3d609098ef4121d7988ff2a5db15d1",
        "76aad392f75e6ce5be3f106554e16f7ff96543e5"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Dec 11 12:39:32 2012 +0900"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Dec 11 12:39:32 2012 +0900"
      },
      "message": "Merge remote-tracking branch \u0027regmap/topic/table\u0027 into regmap-next\n"
    },
    {
      "commit": "db760fbecd3d609098ef4121d7988ff2a5db15d1",
      "tree": "ff4d9bc553848e796f0b099343d7f640acf4fbcb",
      "parents": [
        "4d348e6e0a35cd1b40196a463f1159ae5d582770",
        "0d4529c534c1c664f25088eb5f5b4d7ce0ee2510"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Dec 11 12:39:30 2012 +0900"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Dec 11 12:39:30 2012 +0900"
      },
      "message": "Merge remote-tracking branch \u0027regmap/topic/lock\u0027 into regmap-next\n"
    },
    {
      "commit": "4d348e6e0a35cd1b40196a463f1159ae5d582770",
      "tree": "914c629a0f0ff6c3015c7afb0a4317df465c9246",
      "parents": [
        "bcf86687d676fa478c71201294b296126212f06c",
        "90f790d2dc96f5a61855ae65b90e30c40c893a20"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Dec 11 12:39:29 2012 +0900"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Dec 11 12:39:29 2012 +0900"
      },
      "message": "Merge remote-tracking branch \u0027regmap/topic/domain\u0027 into regmap-next\n"
    },
    {
      "commit": "76aad392f75e6ce5be3f106554e16f7ff96543e5",
      "tree": "00d1ef2dad497331dca8860e7ecc9474d0bab7b5",
      "parents": [
        "3afa24f7ad0a1ab5478f1e9a6c4df1acf52171d1"
      ],
      "author": {
        "name": "Davide Ciminaghi",
        "email": "ciminaghi@gnudd.com",
        "time": "Tue Nov 20 15:20:30 2012 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Nov 21 11:10:31 2012 +0900"
      },
      "message": "regmap: introduce tables for readable/writeable/volatile/precious checks\n\nMany of the regmap enabled drivers implementing one or more of the\nreadable, writeable, volatile and precious methods use the same code\npattern:\n\n\treturn ((reg \u003e\u003d X \u0026\u0026 reg \u003c\u003d Y) || (reg \u003e\u003d W \u0026\u0026 reg \u003c\u003d Z) || ...)\n\nSwitch to a data driven approach, using tables to describe\nreadable/writeable/volatile and precious registers ranges instead.\nThe table based check can still be overridden by passing the usual function\npointers via struct regmap_config.\n\nSigned-off-by: Davide Ciminaghi \u003cciminaghi@gnudd.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "3afa24f7ad0a1ab5478f1e9a6c4df1acf52171d1",
      "tree": "d8a4bebef173659a9f1605fec1c7eab06a016583",
      "parents": [
        "869e4a5f5848f6308cc5651d4bdc3e545d676b98",
        "0d4529c534c1c664f25088eb5f5b4d7ce0ee2510"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Nov 21 11:09:46 2012 +0900"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Nov 21 11:09:46 2012 +0900"
      },
      "message": "Merge branch \u0027topic/lock\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap into regmap-table\n"
    },
    {
      "commit": "0d4529c534c1c664f25088eb5f5b4d7ce0ee2510",
      "tree": "5b080ef0a319b90fbcb0ab4eb768aae54851915e",
      "parents": [
        "ddffeb8c4d0331609ef2581d84de4d763607bd37"
      ],
      "author": {
        "name": "Davide Ciminaghi",
        "email": "ciminaghi@gnudd.com",
        "time": "Tue Oct 16 15:56:59 2012 +0200"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Oct 17 16:52:02 2012 +0900"
      },
      "message": "regmap: make lock/unlock functions customizable\n\nIt is sometimes convenient for a regmap user to override the standard\nregmap lock/unlock functions with custom functions.\nFor instance this can be useful in case an already existing spinlock\nor mutex has to be used for locking a set of registers instead of the\ninternal regmap spinlock/mutex.\nNote that the fast_io field of struct regmap_bus is ignored in case\ncustom locking functions are used.\n\nSigned-off-by: Davide Ciminaghi \u003cciminaghi@gnudd.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "d058bb49618482f2eff0db57618c9a7352916dd5",
      "tree": "b7b4a88a8f3bcceb14856ba09ddfa5e81e8f8b39",
      "parents": [
        "061adc064adbbdd9eb127ab2e86b7a71f4ccaf2e"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Oct 03 12:40:47 2012 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Oct 15 09:59:59 2012 +0900"
      },
      "message": "regmap: Allow ranges to be named\n\nFor more useful diagnostics.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "e3549cd01347ef211d01353bdf2572b086574007",
      "tree": "6e80f8676713fc505ecd38295116ee6b5a5bdf82",
      "parents": [
        "ddffeb8c4d0331609ef2581d84de4d763607bd37"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Oct 02 20:17:15 2012 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Oct 15 09:59:59 2012 +0900"
      },
      "message": "regmap: Rename n_ranges to num_ranges\n\nThis makes things consistent with the rest of the API and is actually what\nthe documentation says. We don\u0027t currently have any in tree users so low\ncost.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "90f790d2dc96f5a61855ae65b90e30c40c893a20",
      "tree": "5d88bc300043bf8a9925569b43f4686961bcd4c2",
      "parents": [
        "ddffeb8c4d0331609ef2581d84de4d763607bd37"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Aug 20 21:45:05 2012 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Oct 15 09:49:23 2012 +0900"
      },
      "message": "regmap: irq: Allow users to retrieve the irq_domain\n\nThis is useful for integration with other subsystems, especially MFD,\nand provides an alternative API for users that request their own IRQs.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "36ac914ba2a5f1a14c5e0bf5d33bc20016d50940",
      "tree": "44535bd6b9ddab5abf4a354d6b3bbe46a1ab03a1",
      "parents": [
        "7a97637988c355646e730bcf0e6d548619112cdd"
      ],
      "author": {
        "name": "Xiaofan Tian",
        "email": "tianxf@marvell.com",
        "time": "Thu Aug 30 17:03:35 2012 +0800"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Aug 30 11:13:41 2012 -0700"
      },
      "message": "regmap: irq: Add mask invert flag for enable register\n\nCurrently, regmap will write 1 to mask_base to mask\nan interrupt and write 0 to unmask it.\n\nBut some chips do not have an interrupt mask register,\nand only have interrupt enable register.\nThen we should write 0 to disable interrupt and 1 to enable.\n\nSo add an mask_invert flag to handle this.\nIf it is not set, behavior is same as previous.\nIf set it to 1, the mask value will be inverted\nbefore written to mask_base\n\nSigned-off-by: Xiaofan Tian \u003ctianxf@marvell.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "0c00c50b41a9a6ee83eb16fb5c6c22e5115391b8",
      "tree": "12a30d730032a46fac0793fea2ba30ef900b4d4f",
      "parents": [
        "40052ca0c243d101cfadd65936f60ef81df10b02"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Jul 24 15:41:19 2012 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Aug 07 20:29:45 2012 +0100"
      },
      "message": "regmap: irq: Enable devices for runtime PM while handling interrupts\n\nSome devices need to have a runtime PM reference while handling interrupts\nto ensure that the register I/O is available. Support this with a flag in\nthe chip.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "38e23194e1c95e73819d25a63bcf94fe4709d4c5",
      "tree": "42a7d1e2f3778adcd13a4376ae9e0810ef6d387b",
      "parents": [
        "463351194d826af7ae97fff0ed6f0fe2a4fed615",
        "a43fd50dc99a5f65505f174eca5a421707d73b4c",
        "632a5b01db8cd4068a06f8a67720ea4f9b00d9b3"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Jul 22 19:26:07 2012 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Jul 22 19:26:07 2012 +0100"
      },
      "message": "Merge branches \u0027regmap-core\u0027, \u0027regmap-irq\u0027 and \u0027regmap-page\u0027 into regmap-next\n\nConflicts (trivial context stuff):\n\tdrivers/base/regmap/regmap.c\n\tinclude/linux/regmap.h\n"
    },
    {
      "commit": "6863ca6227598d15c372f1e03449bbb4cfbcca7f",
      "tree": "f665b666606afe35dcfe38899bd153412fed4771",
      "parents": [
        "fc3ebd788e894b4dd6c9524cb3874eeeb1e862d6"
      ],
      "author": {
        "name": "Krystian Garbaciak",
        "email": "krystian.garbaciak@diasemi.com",
        "time": "Fri Jun 15 11:23:56 2012 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Jun 17 21:34:18 2012 +0100"
      },
      "message": "regmap: Add support for register indirect addressing.\n\nDevices with register paging or indirectly accessed registers can configure\nregister mapping to map those on virtual address range. During access to\nvirtually mapped register range, indirect addressing is processed\nautomatically, in following steps:\n  1. selector for page or indirect register is updated (when needed);\n  2. register in data window is accessed.\n\nConfiguration should provide minimum and maximum register for virtual range,\ndetails of selector field for page selection, minimum and maximum register of\ndata window for indirect access.\n\nVirtual range registers are managed by cache as well as direct access\nregisters. In order to make indirect access more efficient, selector register\nshould be declared as non-volatile, if possible.\n\nstruct regmap_config is extended with the following:\nstruct regmap_range_cfg\t*ranges;\nunsigned int\t\tn_ranges;\n\n[Also reordered debugfs init to later on since the cleanup code was\nconflicting with the new cleanup code for ranges anyway -- broonie]\n\nSigned-off-by: Krystian Garbaciak \u003ckrystian.garbaciak@diasemi.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "bd3810a58ba9c16702450c643ea3c557668185db",
      "tree": "36f48d8f47afb10d0c89991c0a053c8191575db6",
      "parents": [
        "b026ddbbd25e3560c8d69beb96a5980d96c59b43"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Jun 13 14:29:16 2012 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Jun 13 16:37:43 2012 +0100"
      },
      "message": "regmap: Remove warning on stubbed dev_get_regmap()\n\nIt\u0027s perfectly sensible to ask if there\u0027s a regmap for a device which\ndoesn\u0027t have one so the stubbed version shouldn\u0027t complain, the caller\nshould be prepared for this.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "a43fd50dc99a5f65505f174eca5a421707d73b4c",
      "tree": "18292c81dca6e3511c30d148a09bbbed4871b2eb",
      "parents": [
        "bfd6185ddecc6e6f6bd654c053c307c9e49ca391"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Jun 05 14:34:03 2012 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Jun 05 14:38:20 2012 +0100"
      },
      "message": "regmap: Implement support for wake IRQs\n\nAllow chips to provide a bank of registers for controlling the wake state\nin a similar fashion to the masks and propagate the wake count to the\nparent interrupt controller.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "b026ddbbd25e3560c8d69beb96a5980d96c59b43",
      "tree": "fd3bf714e9cf31e8d995079d701893f634bbe884",
      "parents": [
        "6a55244e897d32952832a67cb35cfbfa3f722c50"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu May 31 21:01:46 2012 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Jun 03 13:16:51 2012 +0100"
      },
      "message": "regmap: Constify regmap_irq_chip\n\nWe should never be modifying it and it lets drivers declare it const.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "141eba2e006dd8145bed2e49fae3de5af65ab9b0",
      "tree": "d8891499689971466ac978719c45c33d408fd5c5",
      "parents": [
        "f8f5701bdaf9134b1f90e5044a82c66324d2073f"
      ],
      "author": {
        "name": "Stephen Warren",
        "email": "swarren@nvidia.com",
        "time": "Thu May 24 10:47:26 2012 -0600"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Jun 03 13:11:43 2012 +0100"
      },
      "message": "regmap: allow busses to request formatting with specific endianness\n\nAdd a field to struct regmap_bus that allows bus drivers to request that\nregister addresses and values be formatted with a specific endianness.\n\nThe default endianness is unchanged from current operation: Big.\n\nImplement native endian formatting/parsing for 16- and 32-bit values.\nThis will be enough to support regmap-mmio.c.\n\nSigned-off-by: Stephen Warren \u003cswarren@nvidia.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "022f926a2401c80ed36ebb48a1bffbac08f34d98",
      "tree": "7e39452a4312890ae6835f29ef87844467a5b2e0",
      "parents": [
        "4af8be67fd9989f4e63a8d1defc1895ed0f7d341"
      ],
      "author": {
        "name": "Graeme Gregory",
        "email": "gg@slimlogic.co.uk",
        "time": "Mon May 14 22:40:43 2012 +0900"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon May 14 17:40:05 2012 +0100"
      },
      "message": "regmap: add support for non contiguous status to regmap-irq\n\nIn some chips the IRQ status registers are not contiguous in the register\nmap but spaced at even spaces. This is an easy case to handle with minor\nchanges. It is assume for this purpose that the stride for status is\nequal to the stride for mask/ack registers as well.\n\nSigned-off-by: Graeme Gregory \u003cgg@slimlogic.co.uk\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "4af8be67fd9989f4e63a8d1defc1895ed0f7d341",
      "tree": "19059e119ba376ebd9b2e72fc135464552bd070d",
      "parents": [
        "06e65cb322f91dc20fbcfc1a7ee2fb105ecc417b"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun May 13 10:59:56 2012 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun May 13 19:25:59 2012 +0100"
      },
      "message": "regmap: Convert regmap_irq to use irq_domain\n\nThis gets us up to date with the recommended current kernel infrastructure\nand should transparently give us device tree interrupt bindings for any\ndevices using the framework. If an explicit IRQ mapping is passed in then\na legacy interrupt range is created, otherwise a simple linear mapping is\nused. Previously a mapping was mandatory so existing drivers should not\nbe affected.\n\nA function regmap_irq_get_virq() is provided to allow drivers to map\nindividual IRQs which should be used in preference to the existing\nregmap_irq_chip_get_base() which is only valid if a legacy IRQ range is\nprovided.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "06e65cb322f91dc20fbcfc1a7ee2fb105ecc417b",
      "tree": "d36f2924aebb6e3667422df0d46222443950f565",
      "parents": [
        "f298536728d02c19f11bda8d712ff61d767bab32",
        "25061d285747f20aafa4b50df1b0b5665fef29cd",
        "72b39f6f2b5a6b0beff14b80bed9756f151218a9",
        "2431d0a1d68aabefeee02b93971ee73e8b215697"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun May 13 19:20:47 2012 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun May 13 19:20:47 2012 +0100"
      },
      "message": "Merge branches \u0027regmap-core\u0027, \u0027regmap-stride\u0027, \u0027regmap-mmio\u0027 and \u0027regmap-irq\u0027 into regmap-next\n"
    },
    {
      "commit": "72b39f6f2b5a6b0beff14b80bed9756f151218a9",
      "tree": "c5e2688207b1c796413debfb1936ededf4493edc",
      "parents": [
        "851960ba7cb38a6a108d102e4c8b0ab702972e22"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue May 08 17:44:40 2012 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue May 08 18:19:15 2012 +0100"
      },
      "message": "regmap: Implement dev_get_regmap()\n\nUse devres to implement dev_get_regmap(). This should mean that in almost\nall cases devices wishing to take advantage of framework features based on\nregmap shouldn\u0027t need to explicitly pass the regmap into the framework.\nThis simplifies device setup a bit.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "2e33caf16f7a1903d226ef7f9f5ec6a234fee18e",
      "tree": "b557691a1197a035eee85df52d4eb05bcb9f02fb",
      "parents": [
        "56806555de5485d6786bf0f8df01b8ed9fc5d006"
      ],
      "author": {
        "name": "Ashish Jangam",
        "email": "ashish.jangam@kpitcummins.com",
        "time": "Mon Apr 30 23:23:40 2012 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Apr 30 23:29:56 2012 +0100"
      },
      "message": "regmap: Converts group operation into single read write operations\n\nSome devices does not support bulk read and write operations, for them\nwe have series of single write and read operations.\n\nSigned-off-by: Anthony Olech \u003cAnthony.Olech@diasemi.com\u003e\nSigned-off-by: Ashish Jangam \u003cashish.jangam@kpitcummins.com\u003e\n[Fixed coding style, don\u0027t check use_single_rw before assign --broonie ]\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "f01ee60fffa4dc6c77122121233a793f7f696e67",
      "tree": "5072955487b9e4c80f5c6f6454358d80e8f23a48",
      "parents": [
        "c0cc6fe1d09e3f1baecbdf8922473c8e7d3a5317"
      ],
      "author": {
        "name": "Stephen Warren",
        "email": "swarren@nvidia.com",
        "time": "Mon Apr 09 13:40:24 2012 -0600"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Apr 10 11:01:18 2012 +0100"
      },
      "message": "regmap: implement register striding\n\nregmap_config.reg_stride is introduced. All extant register addresses\nare a multiple of this value. Users of serial-oriented regmap busses will\ntypically set this to 1. Users of the MMIO regmap bus will typically set\nthis based on the value size of their registers, in bytes, so 4 for a\n32-bit register.\n\nThroughout the regmap code, actual register addresses are used. Wherever\nthe register address is used to index some array of values, the address\nis divided by the stride to determine the index, or vice-versa. Error-\nchecking is added to all entry-points for register address data to ensure\nthat register addresses actually satisfy the specified stride. The MMIO\nbus ensures that the specified stride is large enough for the register\nsize.\n\nSigned-off-by: Stephen Warren \u003cswarren@nvidia.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "c0cc6fe1d09e3f1baecbdf8922473c8e7d3a5317",
      "tree": "a6bf2909f55e940c907b77cbaed9914bb1dda655",
      "parents": [
        "0034102808e0dbbf3a2394b82b1bb40b5778de9e",
        "d939fb9a78b4743bc4bc3cc415894ed42050c5cc",
        "851960ba7cb38a6a108d102e4c8b0ab702972e22",
        "abec95adefaeb2229cb28de65f3d32cd149b9dd9"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Apr 10 11:01:07 2012 +0100"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Apr 10 11:01:07 2012 +0100"
      },
      "message": "Merge branches \u0027regmap-core\u0027, \u0027regmap-mmio\u0027 and \u0027regmap-naming\u0027 into regmap-stride\n"
    },
    {
      "commit": "d3c242e1f22f5dfed009296ee45ce896153f0b53",
      "tree": "074bd0d53a1439e7201639d0acdeeedf5b3f0232",
      "parents": [
        "dd775ae2549217d3ae09363e3edb305d0fa19928"
      ],
      "author": {
        "name": "Stephen Warren",
        "email": "swarren@nvidia.com",
        "time": "Wed Apr 04 15:48:29 2012 -0600"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Apr 10 10:31:41 2012 +0100"
      },
      "message": "regmap: allow regmap instances to be named\n\nSome devices have multiple separate register regions. Logically, one\nregmap would be created per region. One issue that prevents this is that\neach instance will attempt to create the same debugfs files. Avoid this\nby allowing regmaps to be named, and use the name to construct the\ndebugfs directory name.\n\nSigned-off-by: Stephen Warren \u003cswarren@nvidia.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "45f5ff8107a845854b1d1812ab1d9c5541f08b4d",
      "tree": "d0d532ba060e3f3db9c7e376d90d1fcb34035c04",
      "parents": [
        "bacdbe077342ecc9e7b3e374cc5a41995116706a"
      ],
      "author": {
        "name": "Stephen Warren",
        "email": "swarren@nvidia.com",
        "time": "Wed Apr 04 15:48:31 2012 -0600"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Apr 06 10:47:35 2012 +0100"
      },
      "message": "regmap: add MMIO bus support\n\nThis is a basic memory-mapped-IO bus for regmap. It has the following\nfeatures and limitations:\n\n* Registers themselves may be 8, 16, 32, or 64-bit. 64-bit is only\n  supported on 64-bit platforms.\n* Register offsets are limited to precisely 32-bit.\n* IO is performed using readl/writel, with no provision for using the\n  __raw_readl or readl_relaxed variants.\n\nSigned-off-by: Stephen Warren \u003cswarren@nvidia.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "bacdbe077342ecc9e7b3e374cc5a41995116706a",
      "tree": "b5cf9547a0ab4a7fba287a3d654d132869057afa",
      "parents": [
        "0135bbcc7a0cc056f0203ff839466236b8e3dc19"
      ],
      "author": {
        "name": "Stephen Warren",
        "email": "swarren@nvidia.com",
        "time": "Wed Apr 04 15:48:28 2012 -0600"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Apr 06 10:47:34 2012 +0100"
      },
      "message": "regmap: introduce fast_io busses, and use a spinlock for them\n\nSome bus types have very fast IO. For these, acquiring a mutex for every\nIO operation is a significant overhead. Allow busses to indicate their IO\nis fast, and enhance regmap to use a spinlock for those busses.\n\n[Currently limited to native endian registers -- broonie]\n\nSigned-off-by: Stephen Warren \u003cswarren@nvidia.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "commit": "0135bbcc7a0cc056f0203ff839466236b8e3dc19",
      "tree": "79f60f53754cfae8b9a5d9504502131d44ed3b14",
      "parents": [
        "dd775ae2549217d3ae09363e3edb305d0fa19928"
      ],
      "author": {
        "name": "Stephen Warren",
        "email": "swarren@nvidia.com",
        "time": "Wed Apr 04 15:48:30 2012 -0600"
      },
      "committer": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Apr 06 10:47:34 2012 +0100"
      },
      "message": "regmap: introduce explicit bus_context for bus callbacks\n\nThe only context needed by I2C and SPI bus definitions is the device\nitself; this can be converted to an i2c_client or spi_device in order\nto perform IO on the device. However, other bus types may need more\ncontext in order to perform IO. Enable this by having regmap_init accept\na bus_context parameter, and pass this to all bus callbacks. The\nexisting callbacks simply pass the struct device here. Future bus types\nmay pass something else.\n\nSigned-off-by: Stephen Warren \u003cswarren@nvidia.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n"
    },
    {
      "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"
    }
  ]
}
