)]}'
{
  "commit": "064b53dbcc977dbf2753a67c2b8fc1c061d74f21",
  "tree": "39efa08fb7b0b7991bbfc4772f4fc3de0e8d11fa",
  "parents": [
    "1248d636122e4ec9d7802b850904e3bb48a0da23"
  ],
  "author": {
    "name": "John W. Linville",
    "email": "linville@tuxdriver.com",
    "time": "Wed Jul 27 10:19:44 2005 -0400"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@suse.de",
    "time": "Thu Sep 08 14:57:24 2005 -0700"
  },
  "message": "[PATCH] PCI: restore BAR values after D3hot-\u003eD0 for devices that need it\n\nSome PCI devices (e.g. 3c905B, 3c556B) lose all configuration\n(including BARs) when transitioning from D3hot-\u003eD0.  This leaves such\na device in an inaccessible state.  The patch below causes the BARs\nto be restored when enabling such a device, so that its driver will\nbe able to access it.\n\nThe patch also adds pci_restore_bars as a new global symbol, and adds a\ncorrepsonding EXPORT_SYMBOL_GPL for that.\n\nSome firmware (e.g. Thinkpad T21) leaves devices in D3hot after a\n(re)boot.  Most drivers call pci_enable_device very early, so devices\nleft in D3hot that lose configuration during the D3hot-\u003eD0 transition\nwill be inaccessible to their drivers.\n\nDrivers could be modified to account for this, but it would\nbe difficult to know which drivers need modification.  This is\nespecially true since often many devices are covered by the same\ndriver.  It likely would be necessary to replicate code across dozens\nof drivers.\n\nThe patch below should trigger only when transitioning from D3hot-\u003eD0\n(or at boot), and only for devices that have the \"no soft reset\" bit\ncleared in the PM control register.  I believe it is safe to include\nthis patch as part of the PCI infrastructure.\n\nThe cleanest implementation of pci_restore_bars was to call\npci_update_resource.  Unfortunately, that does not currently exist\nfor the sparc64 architecture.  The patch below includes a null\nimplemenation of pci_update_resource for sparc64.\n\nSome have expressed interest in making general use of the the\npci_restore_bars function, so that has been exported to GPL licensed\nmodules.\n\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ec8bf4012c0c411b66505727387d38a57f43fdc3",
      "old_mode": 33188,
      "old_path": "arch/sparc64/kernel/pci.c",
      "new_id": "9c17591c2a796933c9225e97976b4b201234c0b0",
      "new_mode": 33188,
      "new_path": "arch/sparc64/kernel/pci.c"
    },
    {
      "type": "modify",
      "old_id": "c62d2f04339714cbf5380aa68dbdddf4aaba46c0",
      "old_mode": 33188,
      "old_path": "drivers/pci/pci.c",
      "new_id": "93ec158d06c109af63d695b6ac921e0df5a3a67c",
      "new_mode": 33188,
      "new_path": "drivers/pci/pci.c"
    },
    {
      "type": "modify",
      "old_id": "5598b4714f77ac2efaf0f545e404b4c9163c4fcf",
      "old_mode": 33188,
      "old_path": "drivers/pci/setup-res.c",
      "new_id": "362f93337a34023c55b4bb517818c558c1e60ac1",
      "new_mode": 33188,
      "new_path": "drivers/pci/setup-res.c"
    },
    {
      "type": "modify",
      "old_id": "830c1bae56cc3c46303efa77a6bbd998448010e1",
      "old_mode": 33188,
      "old_path": "include/linux/pci.h",
      "new_id": "8878ccff9e3c703436cfdcfe957b83da335594c9",
      "new_mode": 33188,
      "new_path": "include/linux/pci.h"
    },
    {
      "type": "modify",
      "old_id": "7dc391cad10dbd469350c7bafd3374edc3c14a03",
      "old_mode": 33188,
      "old_path": "include/linux/pci_regs.h",
      "new_id": "e2a089b051edddbc272b4673e18070fdb5f073b0",
      "new_mode": 33188,
      "new_path": "include/linux/pci_regs.h"
    }
  ]
}
