)]}'
{
  "commit": "2391dae3e36c19fe668c71eac2eb8344dbaaf46d",
  "tree": "ae8c1fa53fe67e3ccbb8c5097f6b5bda27b26959",
  "parents": [
    "cbcdd772ff43de58cc0d9de76ae9d05e2dd98bc0"
  ],
  "author": {
    "name": "Rafael J. Wysocki",
    "email": "rjw@sisk.pl",
    "time": "Sun Jul 01 12:07:33 2007 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Sun Jul 01 12:29:44 2007 -0700"
  },
  "message": "PM: introduce set_target method in pm_ops\n\nCommit 52ade9b3b97fd3bea42842a056fe0786c28d0555 changed the suspend code\nordering to execute pm_ops-\u003eprepare() after the device model per-device\n.suspend() calls in order to fix some ACPI-related issues.  Unfortunately, it\nbroke the at91 platform which assumed that pm_ops-\u003eprepare() would be called\nbefore suspending devices.\n\nat91 used pm_ops-\u003eprepare() to get notified of the target system sleep state,\nso that it could use this information while suspending devices.  However, with\nthe current suspend code ordering pm_ops-\u003eprepare() is called too late for\nthis purpose.  Thus, at91 needs an additional method in \u0027struct pm_ops\u0027 that\nwill be used for notifying the platform of the target system sleep state.\nMoreover, in the future such a method will also be needed by ACPI.\n\nThis patch adds the .set_target() method to \u0027struct pm_ops\u0027 and makes the\nsuspend code call it, if implemented, before executing the device model\nper-device .suspend() calls.  It also modifies the at91 code to use\npm_ops-\u003eset_target() instead of pm_ops-\u003eprepare().\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "47ff676aca5f07e8155a4380a5f9da99f05546a5",
      "old_mode": 33188,
      "old_path": "arch/arm/mach-at91/pm.c",
      "new_id": "ddf9184d561d2c82d4efe9e5a23ea07c6e62af35",
      "new_mode": 33188,
      "new_path": "arch/arm/mach-at91/pm.c"
    },
    {
      "type": "modify",
      "old_id": "87545e0f0b5814bdf6dc115165851b062a3df8b6",
      "old_mode": 33188,
      "old_path": "include/linux/pm.h",
      "new_id": "b2c4fde4e994934b21b4438090bec8f446d2e2e8",
      "new_mode": 33188,
      "new_path": "include/linux/pm.h"
    },
    {
      "type": "modify",
      "old_id": "8812985f30296cd01aab981337fcf90f95b14ff4",
      "old_mode": 33188,
      "old_path": "kernel/power/main.c",
      "new_id": "fc45ed22620f46c8a84341e51069892cab3e93fa",
      "new_mode": 33188,
      "new_path": "kernel/power/main.c"
    }
  ]
}
