)]}'
{
  "commit": "fe31e69740eddc7316071ed5165fed6703c8cd12",
  "tree": "b58f193d7176bfe19ae975fec7ff42d7e242e359",
  "parents": [
    "99a0fadf561e1f553c08f0a29f8b2578f55dd5f0"
  ],
  "author": {
    "name": "Rafael J. Wysocki",
    "email": "rjw@sisk.pl",
    "time": "Sun Dec 19 15:57:16 2010 +0100"
  },
  "committer": {
    "name": "Jesse Barnes",
    "email": "jbarnes@virtuousgeek.org",
    "time": "Thu Dec 23 12:54:03 2010 -0800"
  },
  "message": "PCI/PCIe: Clear Root PME Status bits early during system resume\n\nI noticed that PCI Express PMEs don\u0027t work on my Toshiba Portege R500\nafter the system has been woken up from a sleep state by a PME\n(through Wake-on-LAN).  After some investigation it turned out that\nthe BIOS didn\u0027t clear the Root PME Status bit in the root port that\nreceived the wakeup PME and since the Requester ID was also set in\nthe port\u0027s Root Status register, any subsequent PMEs didn\u0027t trigger\ninterrupts.\n\nThis problem can be avoided by clearing the Root PME Status bits in\nall PCI Express root ports during early resume.  For this purpose,\nadd an early resume routine to the PCIe port driver and make this\ndriver be always registered, even if pci_ports_disable is set (in\nwhich case the driver\u0027s only function is to provide the early\nresume callback).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2f3c904072273fcdaf5c5a660405281720dff7aa",
      "old_mode": 33188,
      "old_path": "drivers/pci/pcie/pme.c",
      "new_id": "073f0308c6b219f6f1cbb4f7bed32d3d59a0f1ec",
      "new_mode": 33188,
      "new_path": "drivers/pci/pcie/pme.c"
    },
    {
      "type": "modify",
      "old_id": "7b5aba0a3291107a231a8b6ee6a90cacf0c4557c",
      "old_mode": 33188,
      "old_path": "drivers/pci/pcie/portdrv.h",
      "new_id": "8fcc03598b293b883b77ccc842e101a27871872f",
      "new_mode": 33188,
      "new_path": "drivers/pci/pcie/portdrv.h"
    },
    {
      "type": "modify",
      "old_id": "a9c222d79ebc5dc32cd6c4fad37f616ac291ff6a",
      "old_mode": 33188,
      "old_path": "drivers/pci/pcie/portdrv_core.c",
      "new_id": "5130d0d22390bba5266fdfb18a10cb7aa2dccb7d",
      "new_mode": 33188,
      "new_path": "drivers/pci/pcie/portdrv_core.c"
    },
    {
      "type": "modify",
      "old_id": "f9033e190fb62060e701ebf44b0eb1d3dfbefa90",
      "old_mode": 33188,
      "old_path": "drivers/pci/pcie/portdrv_pci.c",
      "new_id": "e0610bda1dea8ace0c03c202ff52e33a278036ff",
      "new_mode": 33188,
      "new_path": "drivers/pci/pcie/portdrv_pci.c"
    },
    {
      "type": "modify",
      "old_id": "d4f2c80a6c3e111fdbd105afa96f75e5140ae40c",
      "old_mode": 33188,
      "old_path": "include/linux/pci_regs.h",
      "new_id": "5b7e6b1ba54f4453deffe9291a0e4ab0ec412430",
      "new_mode": 33188,
      "new_path": "include/linux/pci_regs.h"
    }
  ]
}
