)]}'
{
  "commit": "2f60ba706bd9af84c4eab704243b262e69556f2e",
  "tree": "9e8b18893983e0dac392efa3642660c1c16ea17f",
  "parents": [
    "ed77134bfccf5e75b6cbadab268e559dbe6a4ebb"
  ],
  "author": {
    "name": "Rafael J. Wysocki",
    "email": "rjw@sisk.pl",
    "time": "Mon May 10 23:09:30 2010 +0200"
  },
  "committer": {
    "name": "Rafael J. Wysocki",
    "email": "rjw@sisk.pl",
    "time": "Mon May 10 23:09:30 2010 +0200"
  },
  "message": "i2c: Fix bus-level power management callbacks\n\nThere are three issues with the i2c bus type\u0027s power management\ncallbacks at the moment.  First, they don\u0027t include any hibernate\ncallbacks, although they should at least include the .restore()\ncallback (there\u0027s no guarantee that the driver will be present in\nmemory before loading the image kernel and we must restore the\npre-hibernation state of the device).  Second, the \"legacy\"\ncallbacks are not going to be invoked by the PM core since the bus\ntype\u0027s pm object is not NULL.  Finally, the system sleep PM\n(ie. suspend/resume) callbacks don\u0027t check if the device has been\nalready suspended at run time, in which case they should skip\nsuspending it.  Also, it looks like the i2c bus type can use the\ngeneric subsystem-level runtime PM callbacks.\n\nFor these reasons, rework the system sleep PM callbacks provided by\nthe i2c bus type to handle hibernation correctly and to invoke the\n\"legacy\" callbacks for drivers that provide them.  In addition to\nthat make the i2c bus type use the generic subsystem-level runtime\nPM callbacks.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nAcked-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c2258a51fe0ce3bb09055220c645602ab467c876",
      "old_mode": 33188,
      "old_path": "drivers/i2c/i2c-core.c",
      "new_id": "7c469a62c3c145b547d7c8948252b7ca9a51bde2",
      "new_mode": 33188,
      "new_path": "drivers/i2c/i2c-core.c"
    },
    {
      "type": "modify",
      "old_id": "b776db737244a114a8cbd257a255404b15e53155",
      "old_mode": 33188,
      "old_path": "include/linux/pm_runtime.h",
      "new_id": "6e81888c62225f99217ab356dd0f3c46a3a45715",
      "new_mode": 33188,
      "new_path": "include/linux/pm_runtime.h"
    }
  ]
}
