)]}'
{
  "commit": "7538e3db6e015e890825fbd9f8659952896ddd5b",
  "tree": "01a6d8c97599474d9c5fc1ed0eb6f0addaec5652",
  "parents": [
    "6831c6edc7b272a08dd2a6c71bb183a48fe98ae6"
  ],
  "author": {
    "name": "Rafael J. Wysocki",
    "email": "rjw@sisk.pl",
    "time": "Wed Feb 16 21:53:17 2011 +0100"
  },
  "committer": {
    "name": "Rafael J. Wysocki",
    "email": "rjw@sisk.pl",
    "time": "Tue Mar 15 00:43:16 2011 +0100"
  },
  "message": "PM: Add support for device power domains\n\nThe platform bus type is often used to handle Systems-on-a-Chip (SoC)\nwhere all devices are represented by objects of type struct\nplatform_device.  In those cases the same \"platform\" device driver\nmay be used with multiple different system configurations, but the\nactions needed to put the devices it handles into a low-power state\nand back into the full-power state may depend on the design of the\ngiven SoC.  The driver, however, cannot possibly include all the\ninformation necessary for the power management of its device on all\nthe systems it is used with.  Moreover, the device hierarchy in its\ncurrent form also is not suitable for representing this kind of\ninformation.\n\nThe patch below attempts to address this problem by introducing\nobjects of type struct dev_power_domain that can be used for\nrepresenting power domains within a SoC.  Every struct\ndev_power_domain object provides a sets of device power\nmanagement callbacks that can be used to perform what\u0027s needed for\ndevice power management in addition to the operations carried out by\nthe device\u0027s driver and subsystem.\n\nNamely, if a struct dev_power_domain object is pointed to by the\npwr_domain field in a struct device, the callbacks provided by its\nops member will be executed in addition to the corresponding\ncallbacks provided by the device\u0027s subsystem and driver during all\npower transitions.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nTested-and-acked-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "dd9b49251db324b26038d07bc310006236fd745e",
      "old_mode": 33188,
      "old_path": "Documentation/power/devices.txt",
      "new_id": "df1a5cb10c4213a820807e3059e4abed57c6ee16",
      "new_mode": 33188,
      "new_path": "Documentation/power/devices.txt"
    },
    {
      "type": "modify",
      "old_id": "f7a75592375199292f75baf0a2960876c68aa607",
      "old_mode": 33188,
      "old_path": "drivers/base/power/main.c",
      "new_id": "05b989139b5434e7fe3e95340b59938d3fecda51",
      "new_mode": 33188,
      "new_path": "drivers/base/power/main.c"
    },
    {
      "type": "modify",
      "old_id": "42615b419dfb5bc4f30e0f6dfb2ad607015d95b7",
      "old_mode": 33188,
      "old_path": "drivers/base/power/runtime.c",
      "new_id": "25edc9a3a489375a4b57f2950ecf8c41d838b0c1",
      "new_mode": 33188,
      "new_path": "drivers/base/power/runtime.c"
    },
    {
      "type": "modify",
      "old_id": "1bf5cf0b45131015a857b0194a6b79f226e6dadd",
      "old_mode": 33188,
      "old_path": "include/linux/device.h",
      "new_id": "22e9a8a7e1bcaccb56c68602c0e2d60869d6f439",
      "new_mode": 33188,
      "new_path": "include/linux/device.h"
    },
    {
      "type": "modify",
      "old_id": "1f79c98f1e56687ad796b33ec72d867dc0850b70",
      "old_mode": 33188,
      "old_path": "include/linux/pm.h",
      "new_id": "6618216bb973a96f595cc2a0d3803586c84c1947",
      "new_mode": 33188,
      "new_path": "include/linux/pm.h"
    }
  ]
}
