)]}'
{
  "log": [
    {
      "commit": "7e0fa1b5fa91d9aa456d102c273b2cf0f2e95d39",
      "tree": "e9292f18566fa2289227d2c207a48c798e952618",
      "parents": [
        "1df5c939f6d9dff7dfbe108d93133b9636baa607"
      ],
      "author": {
        "name": "Saravana Kannan",
        "email": "skannan@codeaurora.org",
        "time": "Tue May 15 13:43:42 2012 -0700"
      },
      "committer": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Tue May 15 22:42:10 2012 -0700"
      },
      "message": "clk: Fix CLK_SET_RATE_GATE flag validation in clk_set_rate().\n\nThe clk_set_rate() code shouldn\u0027t check the clock\u0027s enable count when\nvalidating CLK_SET_RATE_GATE flag since the enable count could change after\nthe validation. Similar to clk_set_parent(), it should instead check the\nprepare count. The prepare count should go to zero only when the end user\nexpects the clock to not be enabled in the future. Since the code already\ngrabs the prepare count before validation, it\u0027s not possible for prepare\ncount to change after validation and by association not possible for a well\nbehaving end user to enable the clock while the set rate is in progress.\n\nSigned-off-by: Saravana Kannan \u003cskannan@codeaurora.org\u003e\nReviewed-by: Richard Zhao \u003crichard.zhao@freescale.com\u003e\nSigned-off-by: Mike Turquette \u003cmturquette@linaro.org\u003e\n"
    },
    {
      "commit": "1df5c939f6d9dff7dfbe108d93133b9636baa607",
      "tree": "4c25ddb65ee1ec940342b54ed169c24f2a51d46f",
      "parents": [
        "98d9986cb8bf65f8316b45244fdafc1d12c303be"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Apr 18 09:07:12 2012 +0100"
      },
      "committer": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Tue May 15 12:02:39 2012 -0700"
      },
      "message": "clk: Provide dummy clk_unregister()\n\nWhile there\u0027s no actual implementation behind it having the call to use\nin drivers makes them feel neater from a driver author point of view. An\nactual implementation can wait for someone who needs to use the function\nin a real system.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n[mturquette@linaro.org: void return type instead of int -EINVAL]\nSigned-off-by: Mike Turquette \u003cmturquette@linaro.org\u003e\n"
    },
    {
      "commit": "d269b974e32c5dcf043acd07f9ad96e715019ffd",
      "tree": "32ba485eed35251017a45d361b88b098f9f6fd1f",
      "parents": [
        "63f5c3b2b18dcaca0fc8983b52a3f5d4d70a0590"
      ],
      "author": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Wed May 02 15:45:32 2012 -0700"
      },
      "committer": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Tue May 08 14:12:42 2012 -0700"
      },
      "message": "clk: remove COMMON_CLK_DISABLE_UNUSED\n\nExposing this option generates confusion and incorrect behavior for\nsingle-image builds across platforms.  Enable this behavior permanently.\n\nSigned-off-by: Mike Turquette \u003cmturquette@linaro.org\u003e\nAcked-by: Saravana Kannan \u003cskannan@codeaurora.org\u003e\n"
    },
    {
      "commit": "63f5c3b2b18dcaca0fc8983b52a3f5d4d70a0590",
      "tree": "966cda40bacfc4be9dfc7c3b13427d7661665c2e",
      "parents": [
        "7704addb60e274d4e98c69a02f7ebe3f77c6c3a4"
      ],
      "author": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Wed May 02 16:23:43 2012 -0700"
      },
      "committer": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Tue May 08 14:11:53 2012 -0700"
      },
      "message": "clk: prevent spurious parent rate propagation\n\nPatch \u0027clk: always pass parent_rate into .round_rate\u0027 made a subtle\nchange to the semantics of .round_rate.  It is now expected for the\nparent\u0027s rate to always be passed in, simplifying the implemenation of\nvarious .round_rate callback definitions.\n\nHowever the patch also introduced a bug in clk_calc_new_rates whereby a\nclock without the CLK_SET_RATE_PARENT flag set could still propagate a\nrate change up to a parent clock if the the .round_rate callback\nmodified the \u0026best_parent_rate value in any way.\n\nThis patch fixes the issue at the framework level (in\nclk_calc_new_rates) by specifically handling the case where the\nCLK_SET_RATE_PARENT flag is not set.\n\nSigned-off-by: Mike Turquette \u003cmturquette@linaro.org\u003e\nAcked-by: Sascha Hauer \u003cs.hauer@pengutronix.de\u003e\n"
    },
    {
      "commit": "0e1c03017549a9df513622b3f15ff38eb8d35a62",
      "tree": "f2fc7de20e598493916a27fbb7b6ba8104850a2f",
      "parents": [
        "0197b3ea0f66cd2a11417f58fe1812858ea77908"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@st.com",
        "time": "Wed Apr 11 16:03:42 2012 +0530"
      },
      "committer": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Tue May 01 18:13:38 2012 -0700"
      },
      "message": "clk: clk_set_rate() must fail if CLK_SET_RATE_GATE is set and clk is enabled\n\nThis is well documented but isn\u0027t implemented. clk_set_rate() must check if\nflags have CLK_SET_RATE_GATE bit set and is enabled too.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@st.com\u003e\nSigned-off-by: Mike Turquette \u003cmturquette@linaro.org\u003e\n"
    },
    {
      "commit": "0197b3ea0f66cd2a11417f58fe1812858ea77908",
      "tree": "73b49012db637bb7f7dad53ee2edf2c6d651ffda",
      "parents": [
        "e447c50e3af5dcad3075c80bd1bdc4e2024b8186"
      ],
      "author": {
        "name": "Saravana Kannan",
        "email": "skannan@codeaurora.org",
        "time": "Wed Apr 25 22:58:56 2012 -0700"
      },
      "committer": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Tue May 01 18:13:20 2012 -0700"
      },
      "message": "clk: Use a separate struct for holding init data.\n\nCreate a struct clk_init_data to hold all data that needs to be passed from\nthe platfrom specific driver to the common clock framework during clock\nregistration. Add a pointer to this struct inside clk_hw.\n\nThis has several advantages:\n* Completely hides struct clk from many clock platform drivers and static\n  clock initialization code that don\u0027t care for static initialization of\n  the struct clks.\n* For platforms that want to do complete static initialization, it removed\n  the need to directly mess with the struct clk\u0027s fields while still\n  allowing to statically allocate struct clk. This keeps the code more\n  future proof even if they include clk-private.h.\n* Simplifies the generic clk_register() function and allows adding optional\n  fields in the future without modifying the function signature.\n* Simplifies the static initialization of clocks on all platforms by\n  removing the need for forward delcarations or convoluted macros.\n\nSigned-off-by: Saravana Kannan \u003cskannan@codeaurora.org\u003e\n[mturquette@linaro.org: kept DEFINE_CLK_* macros and __clk_init]\nSigned-off-by: Mike Turquette \u003cmturquette@linaro.org\u003e\nCc: Andrew Lunn \u003candrew@lunn.ch\u003e\nCc: Rob Herring \u003crob.herring@calxeda.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Jeremy Kerr \u003cjeremy.kerr@canonical.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Arnd Bergman \u003carnd.bergmann@linaro.org\u003e\nCc: Paul Walmsley \u003cpaul@pwsan.com\u003e\nCc: Shawn Guo \u003cshawn.guo@freescale.com\u003e\nCc: Sascha Hauer \u003cs.hauer@pengutronix.de\u003e\nCc: Jamie Iles \u003cjamie@jamieiles.com\u003e\nCc: Richard Zhao \u003crichard.zhao@linaro.org\u003e\nCc: Saravana Kannan \u003cskannan@codeaurora.org\u003e\nCc: Magnus Damm \u003cmagnus.damm@gmail.com\u003e\nCc: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nCc: Linus Walleij \u003clinus.walleij@stericsson.com\u003e\nCc: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nCc: Amit Kucheria \u003camit.kucheria@linaro.org\u003e\nCc: Deepak Saxena \u003cdsaxena@linaro.org\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "1b2f99037a29d48d03ddd2fd0dc117888ec737f4",
      "tree": "e914fe01d0cda61112866d4db1e2e6b71d7db57d",
      "parents": [
        "182f9e8cd5e451911a37f121f942409205ede0d6"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@st.com",
        "time": "Tue Apr 17 16:45:38 2012 +0530"
      },
      "committer": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Tue Apr 24 16:37:41 2012 -0700"
      },
      "message": "clk: Don\u0027t set clk-\u003enew_rate twice\n\nif (!clk-\u003eops-\u003eround_rate \u0026\u0026 (clk-\u003eflags \u0026 CLK_SET_RATE_PARENT)) is true, then\nwe don\u0027t need to set clk-\u003enew_rate here, as we will call clk_calc_subtree()\nafterwards and it also sets clk-\u003enew_rate.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@st.com\u003e\nSigned-off-by: Mike Turquette \u003cmturquette@linaro.org\u003e\n"
    },
    {
      "commit": "f4d8af2e5ae6294d5e2220d3963def6f7ffc0873",
      "tree": "7a7d8a03f1c73d7148167ebd9fc2fceb2f8496cc",
      "parents": [
        "1c0035d710dd3bfa86d58f851b8737c7f11a9bbc"
      ],
      "author": {
        "name": "Shawn Guo",
        "email": "shawn.guo@linaro.org",
        "time": "Thu Apr 12 20:50:19 2012 +0800"
      },
      "committer": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Tue Apr 24 16:37:40 2012 -0700"
      },
      "message": "clk: propagate round_rate for CLK_SET_RATE_PARENT case\n\nNeed to propagate round_rate call for the clk that has no .round_rate\noperation but with flag CLK_SET_RATE_PARENT set.\n\nFor example, clk_mux is a clk with no .round_rate operation.  However,\nit could likely be in a clk_set_rate propagation path, saying it has\nparent clk who has .round_rate and .set_rate operations.\n\nSigned-off-by: Shawn Guo \u003cshawn.guo@linaro.org\u003e\nSigned-off-by: Mike Turquette \u003cmturquette@linaro.org\u003e\n"
    },
    {
      "commit": "1c0035d710dd3bfa86d58f851b8737c7f11a9bbc",
      "tree": "37ebd1a44c408aecf7df5331d2b5a32e81818baf",
      "parents": [
        "81536e072b54e30bbfd1a9a6b8094f7b3dd5321c"
      ],
      "author": {
        "name": "Shawn Guo",
        "email": "shawn.guo@linaro.org",
        "time": "Thu Apr 12 20:50:18 2012 +0800"
      },
      "committer": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Tue Apr 24 16:37:40 2012 -0700"
      },
      "message": "clk: pass parent_rate into .set_rate\n\nFor most of .set_rate implementation, parent_rate will be used, so just\nlike passing parent_rate into .recalc_rate, let\u0027s pass parent_rate into\n.set_rate too.\n\nIt also updates the kernel doc for .set_rate ops.\n\nSigned-off-by: Shawn Guo \u003cshawn.guo@linaro.org\u003e\nSigned-off-by: Mike Turquette \u003cmturquette@linaro.org\u003e\n"
    },
    {
      "commit": "81536e072b54e30bbfd1a9a6b8094f7b3dd5321c",
      "tree": "6c1f0df5e626ecf7c30368033478cdaf48b1b872",
      "parents": [
        "27d545915fd49cbe18a3877d82359896e9851efb"
      ],
      "author": {
        "name": "Shawn Guo",
        "email": "shawn.guo@linaro.org",
        "time": "Thu Apr 12 20:50:17 2012 +0800"
      },
      "committer": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Tue Apr 24 16:37:39 2012 -0700"
      },
      "message": "clk: always pass parent_rate into .round_rate\n\nThe parent_rate will likely be used by most .round_rate implementation\nno matter whether flag CLK_SET_RATE_PARENT is set or not, so let\u0027s\nalways pass parent_rate into .round_rate.\n\nSigned-off-by: Shawn Guo \u003cshawn.guo@linaro.org\u003e\nSigned-off-by: Mike Turquette \u003cmturquette@linaro.org\u003e\n"
    },
    {
      "commit": "d1302a36a7f1c33d1a8babc6a510e1401a5e5aed",
      "tree": "bcb0d5f659a762764b75720fdada09ac9c548886",
      "parents": [
        "d305fb78f31209596c9135d396a0d3af7ac86947"
      ],
      "author": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Thu Mar 29 14:30:40 2012 -0700"
      },
      "committer": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Tue Apr 24 16:37:39 2012 -0700"
      },
      "message": "clk: core: copy parent_names \u0026 return error codes\n\nThis patch cleans up clk_register and solves a few bugs by teaching\nclk_register and __clk_init to return error codes (instead of just NULL)\nto better align with the existing clk.h api.\n\nAlong with that change this patch also introduces a new behavior whereby\nclk_register copies the parent_names array, thus allowing platforms to\ndeclare their parent_names arrays as __initdata.\n\nSigned-off-by: Mike Turquette \u003cmturquette@linaro.org\u003e\n"
    },
    {
      "commit": "d305fb78f31209596c9135d396a0d3af7ac86947",
      "tree": "456b810cdd4c3081b465a387fb04a31fb9fce399",
      "parents": [
        "7e87aed965fa7a642fc299af96d370dad7b5b814"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Mar 21 20:01:20 2012 +0000"
      },
      "committer": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Tue Apr 24 16:37:39 2012 -0700"
      },
      "message": "clk: Constify parent name arrays\n\nDrivers should be able to declare their arrays of parent names as const\nso the APIs need to accept const arguments.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n[mturquette@linaro.org: constified gate]\nSigned-off-by: Mike Turquette \u003cmturquette@linaro.org\u003e\n"
    },
    {
      "commit": "34e44fe87437b6a5aad856f15f7a849e5fc137aa",
      "tree": "73b599e531184469cc3478033b82610afbe951f1",
      "parents": [
        "bffad66e31fe9d94cd096f2e4de7c683e1ae32ef"
      ],
      "author": {
        "name": "Rajendra Nayak",
        "email": "rnayak@ti.com",
        "time": "Mon Mar 26 19:01:48 2012 +0530"
      },
      "committer": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Tue Apr 24 16:37:39 2012 -0700"
      },
      "message": "clk: Make clk_get_rate() return 0 on error\n\nMost users of clk_get_rate() actually assume a non zero\nreturn value as a valid rate returned. Returing -EINVAL\nmight confuse such users, so make it instead return zero\non error.\n\nBesides the return value of clk_get_rate seems to be\n\u0027unsigned long\u0027.\n\nSigned-off-by: Rajendra nayak \u003crnayak@ti.com\u003e\nSigned-off-by: Mike Turquette \u003cmturquette@linaro.org\u003e\n"
    },
    {
      "commit": "d4d7e3ddc76c5ae3b4fbd15cb6f30aa78c28d788",
      "tree": "419f45ad3531d0f1031096f55125c59fa6d065af",
      "parents": [
        "7452b2191cd55fb3fd6ad65344466ddcdbe4676e"
      ],
      "author": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Mon Mar 26 16:15:52 2012 -0700"
      },
      "committer": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Tue Apr 24 16:37:38 2012 -0700"
      },
      "message": "clk: core: enforce clk_ops consistency\n\nDocumentation/clk.txt has some handsome ASCII art outlining which\nclk_ops are mandatory for a given clock, given the capability of the\nhardware.  Enforce those mandates with sanity checks in __clk_init.\n\nSigned-off-by: Mike Turquette \u003cmturquette@linaro.org\u003e\n"
    },
    {
      "commit": "7452b2191cd55fb3fd6ad65344466ddcdbe4676e",
      "tree": "5ce68dcf470dd0de7bac7d354ea7be10e52467d5",
      "parents": [
        "70d347e6cd0d2a7ecc023b44ef721bc2c2a38f22"
      ],
      "author": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Mon Mar 26 14:45:36 2012 -0700"
      },
      "committer": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Tue Apr 24 16:37:37 2012 -0700"
      },
      "message": "clk: core: clk_calc_new_rates handles NULL parents\n\nIt is possible to call clk_set_rate on a clock with a NULL parent.  One\nsuch example is an adjustable-rate root clock.  Ensure that\nclk_calc_new_rates does not dereference parent without checking first\nand also handle the corner cases gracefully.\n\nReported-by: Rajendra Nayak \u003crnayak@ti.com\u003e\nSigned-off-by: Mike Turquette \u003cmturquette@linaro.org\u003e\n"
    },
    {
      "commit": "70d347e6cd0d2a7ecc023b44ef721bc2c2a38f22",
      "tree": "96b23f9c9c07832aa430f94236c6d689e77feacc",
      "parents": [
        "5654dc94f872f823aa13941a8fdba69a3feca39c"
      ],
      "author": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Mon Mar 26 11:53:47 2012 -0700"
      },
      "committer": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Tue Apr 24 16:37:37 2012 -0700"
      },
      "message": "clk: core: remove dead code paths\n\nSome static inline dummy functions were left over from before the clock\ncore was consolidated from several C files down to one.  Remove them.\n\nReported-by: Shawn Guo \u003cshawn.guo@linaro.org\u003e\nSigned-off-by: Mike Turquette \u003cmturquette@linaro.org\u003e\n"
    },
    {
      "commit": "5654dc94f872f823aa13941a8fdba69a3feca39c",
      "tree": "26a6f75f8adafa596025ab81eb8cb48c1702bb3e",
      "parents": [
        "66f75a5d028beaf67c931435fdc3e7823125730c"
      ],
      "author": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Mon Mar 26 11:51:34 2012 -0700"
      },
      "committer": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Tue Apr 24 16:37:37 2012 -0700"
      },
      "message": "clk: core: correct clk_set_rate kerneldoc\n\nRemove old and misleading documentation from the previous clk_set_rate\nimplementaion.\n\nReported-by: Shawn Guo \u003cshawn.guo@linaro.org\u003e\nSigned-off-by: Mike Turquette \u003cmturquette@linaro.org\u003e\n"
    },
    {
      "commit": "b2476490ef11134b65544d8f062cff96c53e941b",
      "tree": "35e341ae635a5608f6bef748d174d1dd5dcf8f9d",
      "parents": [
        "69fe8a8e92ae6877167f222838bd0c92b35c7d72"
      ],
      "author": {
        "name": "Mike Turquette",
        "email": "mturquette@linaro.org",
        "time": "Thu Mar 15 23:11:19 2012 -0700"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Mar 16 20:35:01 2012 +0000"
      },
      "message": "clk: introduce the common clock framework\n\nThe common clock framework defines a common struct clk useful across\nmost platforms as well as an implementation of the clk api that drivers\ncan use safely for managing clocks.\n\nThe net result is consolidation of many different struct clk definitions\nand platform-specific clock framework implementations.\n\nThis patch introduces the common struct clk, struct clk_ops and an\nimplementation of the well-known clock api in include/clk/clk.h.\nPlatforms may define their own hardware-specific clock structure and\ntheir own clock operation callbacks, so long as it wraps an instance of\nstruct clk_hw.\n\nSee Documentation/clk.txt for more details.\n\nThis patch is based on the work of Jeremy Kerr, which in turn was based\non the work of Ben Herrenschmidt.\n\nSigned-off-by: Mike Turquette \u003cmturquette@linaro.org\u003e\nSigned-off-by: Mike Turquette \u003cmturquette@ti.com\u003e\nReviewed-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nTested-by: Andrew Lunn \u003candrew@lunn.ch\u003e\nReviewed-by: Rob Herring \u003crob.herring \u003cat\u003e calxeda.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Jeremy Kerr \u003cjeremy.kerr@canonical.com\u003e\nCc: Arnd Bergman \u003carnd.bergmann@linaro.org\u003e\nCc: Paul Walmsley \u003cpaul@pwsan.com\u003e\nCc: Shawn Guo \u003cshawn.guo@freescale.com\u003e\nCc: Sascha Hauer \u003cs.hauer@pengutronix.de\u003e\nCc: Richard Zhao \u003crichard.zhao@linaro.org\u003e\nCc: Saravana Kannan \u003cskannan@codeaurora.org\u003e\nCc: Magnus Damm \u003cmagnus.damm@gmail.com\u003e\nCc: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nCc: Linus Walleij \u003clinus.walleij@stericsson.com\u003e\nCc: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nCc: Amit Kucheria \u003camit.kucheria@linaro.org\u003e\nCc: Deepak Saxena \u003cdsaxena@linaro.org\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    }
  ]
}
