)]}'
{
  "commit": "ae636747146ea97efa18e04576acd3416e2514f5",
  "tree": "22e392df7126974c0ac4dc2fe516dc9e16a49873",
  "parents": [
    "8a96c052283e68fe91a6c657c175b39bfed80bed"
  ],
  "author": {
    "name": "Sarah Sharp",
    "email": "sarah.a.sharp@linux.intel.com",
    "time": "Wed Apr 29 19:02:31 2009 -0700"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@suse.de",
    "time": "Mon Jun 15 21:44:49 2009 -0700"
  },
  "message": "USB: xhci: URB cancellation support.\n\nAdd URB cancellation support to the xHCI host controller driver.  This\ncurrently supports cancellation for endpoints that do not have streams\nenabled.\n\nAn URB is represented by a number of Transaction Request Buffers (TRBs),\nthat are chained together to make one (or more) Transaction Descriptors\n(TDs) on an endpoint ring.  The ring is comprised of contiguous segments,\nlinked together with Link TRBs (which may or may not be chained into a TD).\n\nTo cancel an URB, we must stop the endpoint ring, make the hardware skip\nover the TDs in the URB (either by turning them into No-op TDs, or by\nmoving the hardware\u0027s ring dequeue pointer past the last TRB in the last\nTD), and then restart the ring.\n\nThere are times when we must drop the xHCI lock during this process, like\nwhen we need to complete cancelled URBs.  We must ensure that additional\nURBs can be marked as cancelled, and that new URBs can be enqueued (since\nthe URB completion handlers can do either).  The new endpoint ring\nvariables cancels_pending and state (which can only be modified while\nholding the xHCI lock) ensure that future cancellation and enqueueing do\nnot interrupt any pending cancellation code.\n\nTo facilitate cancellation, we must keep track of the starting ring\nsegment, first TRB, and last TRB for each URB.  We also need to keep track\nof the list of TDs that have been marked as cancelled, separate from the\nlist of TDs that are queued for this endpoint.  The new variables and\ncancellation list are stored in the xhci_td structure.\n\nSigned-off-by: Sarah Sharp \u003csarah.a.sharp@linux.intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e5fbdcdbf676ea5145c20fff6c620ebb6ce72fc5",
      "old_mode": 33188,
      "old_path": "drivers/usb/host/xhci-hcd.c",
      "new_id": "36e440ce88e58f053ce663428eb86af3f33f1fe4",
      "new_mode": 33188,
      "new_path": "drivers/usb/host/xhci-hcd.c"
    },
    {
      "type": "modify",
      "old_id": "617db9c37770c6ee13a59390165271eb53feb465",
      "old_mode": 33188,
      "old_path": "drivers/usb/host/xhci-mem.c",
      "new_id": "e81d10a653efc4b1447b046480a0c45236881f51",
      "new_mode": 33188,
      "new_path": "drivers/usb/host/xhci-mem.c"
    },
    {
      "type": "modify",
      "old_id": "c948288042e2cab7dfbbbdffb7b306915c317beb",
      "old_mode": 33188,
      "old_path": "drivers/usb/host/xhci-ring.c",
      "new_id": "f967a6df83c70a85252276ac407cb3313cf5cd4c",
      "new_mode": 33188,
      "new_path": "drivers/usb/host/xhci-ring.c"
    },
    {
      "type": "modify",
      "old_id": "06e07616631fc62d211f741386fc09f4dc263de2",
      "old_mode": 33188,
      "old_path": "drivers/usb/host/xhci.h",
      "new_id": "7b7103405c698b65ca9c7a5f909c1c25eab9d3dc",
      "new_mode": 33188,
      "new_path": "drivers/usb/host/xhci.h"
    }
  ]
}
