)]}'
{
  "commit": "884fa523ece82b5b3ada80a4209c381c019e9051",
  "tree": "ed831bafb196456ade779f055ef8ba6aa90383ed",
  "parents": [
    "cbec91b6fde7a12e1d0b09f64737919ac615c3d2"
  ],
  "author": {
    "name": "Sujit Reddy Thumma",
    "email": "sthumma@codeaurora.org",
    "time": "Thu Oct 11 17:17:03 2012 +0530"
  },
  "committer": {
    "name": "Sujit Reddy Thumma",
    "email": "sthumma@codeaurora.org",
    "time": "Mon Apr 29 10:24:56 2013 +0530"
  },
  "message": "mmc: core: Add load based clock scaling support\n\nThe SD3.0/eMMC4.5/SDIO3.0 cards can support clock rates upto\n200MHz (SDR104 or HS200 bus speed modes). For some workloads\nlike video playback it isn\u0027t necessary for these cards to run\nat such high speed. Running at lower frequency, say 50MHz, in\nsuch cases can still meet the deadlines for data transfers.\nScaling down the clock frequency dynamically has huge power\nsavings not only because the bus is running at lower frequency\nbut also has an advantage of scaling down the system core\nvoltage, if supported.\n\nProvide an ondemand clock scaling support similar to cpufreq\nondemand governor having two thresholds, up_threshold and\ndown_threshold to decide whether to increase the frequency or\nscale it down respectively. The sampling interval is in the\norder of milliseconds and should be chosen by host drivers that\nenable MMC_CAP2_CLK_SCALE capability to take advantage of clock\nscaling. The sampling interval mainly depends on the the clock\nswitching delays and hence a host driver decision. If sampling\ninterval is too low frequent switching of frequencies can lead\nto high power consumption and if sampling interval is too high,\nthe clock scaling logic would take long time to realize that the\nunderlying hardware (controller and card) is busy and scale up\nthe clocks.\n\nChange-Id: I22a5054beec41b0b66b3bf030ddfcf284de448b3\nSigned-off-by: Sujit Reddy Thumma \u003csthumma@codeaurora.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "881c7f270d190c32f8f59cc98c04815894969dd3",
      "old_mode": 33188,
      "old_path": "drivers/mmc/core/core.c",
      "new_id": "ac0497366246458c92ec5a5b39a59ec5c647c3f7",
      "new_mode": 33188,
      "new_path": "drivers/mmc/core/core.c"
    },
    {
      "type": "modify",
      "old_id": "de87e825b300402b671c0857ceadd98566dcb348",
      "old_mode": 33188,
      "old_path": "drivers/mmc/core/core.h",
      "new_id": "c85f5aa2d8920cb9ca406f031f5d2aeb54bd54b2",
      "new_mode": 33188,
      "new_path": "drivers/mmc/core/core.h"
    },
    {
      "type": "modify",
      "old_id": "850872d92e9f391d8da909d9593c225698c0327c",
      "old_mode": 33188,
      "old_path": "drivers/mmc/core/host.c",
      "new_id": "d30f10fd76399131f5bc317cf9f18e32f7dfdf71",
      "new_mode": 33188,
      "new_path": "drivers/mmc/core/host.c"
    },
    {
      "type": "modify",
      "old_id": "5a309bdd5a844afe7774526ab9f5d47399a4dd23",
      "old_mode": 33188,
      "old_path": "drivers/mmc/core/mmc.c",
      "new_id": "c300add9603255836edea0bfa6f86c45420f4a0d",
      "new_mode": 33188,
      "new_path": "drivers/mmc/core/mmc.c"
    },
    {
      "type": "modify",
      "old_id": "86619292130cc01432b77e57c38d877721d8bbb8",
      "old_mode": 33188,
      "old_path": "drivers/mmc/core/sd.c",
      "new_id": "318d590b09bc20aeb2decbf3e25e5632e07bd07e",
      "new_mode": 33188,
      "new_path": "drivers/mmc/core/sd.c"
    },
    {
      "type": "modify",
      "old_id": "c798cf926516ab7f2c040751407dd8510913c7bb",
      "old_mode": 33188,
      "old_path": "include/linux/mmc/host.h",
      "new_id": "6c43ec770e0027b4efd3e3f8f8104a2691edd7d3",
      "new_mode": 33188,
      "new_path": "include/linux/mmc/host.h"
    }
  ]
}
