)]}'
{
  "commit": "e9df41c5c5899259541dc928872cad4d07b82076",
  "tree": "12bb0917eeecbe62b2b5d3dc576806c7f2728550",
  "parents": [
    "b0e396e3097ce4914c643bc3f0c2fe0098f551eb"
  ],
  "author": {
    "name": "Alan Stern",
    "email": "stern@rowland.harvard.edu",
    "time": "Wed Aug 08 11:48:02 2007 -0400"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@suse.de",
    "time": "Fri Oct 12 14:55:10 2007 -0700"
  },
  "message": "USB: make HCDs responsible for managing endpoint queues\n\nThis patch (as954) implements a suggestion of David Brownell\u0027s.  Now\nthe host controller drivers are responsible for linking and unlinking\nURBs to/from their endpoint queues.  This eliminates the possiblity of\nstrange situations where usbcore thinks an URB is linked but the HCD\nthinks it isn\u0027t.  It also means HCDs no longer have to check for URBs\nbeing dequeued before they were fully enqueued.\n\nIn addition to the core changes, this requires changing every host\ncontroller driver and the root-hub URB handler.  For the most part the\nrequired changes are fairly small; drivers have to call\nusb_hcd_link_urb_to_ep() in their urb_enqueue method,\nusb_hcd_check_unlink_urb() in their urb_dequeue method, and\nusb_hcd_unlink_urb_from_ep() before giving URBs back.  A few HCDs make\nmatters more complicated by the way they split up the flow of control.\n\nIn addition some method interfaces get changed.  The endpoint argument\nfor urb_enqueue is now redundant so it is removed.  The unlink status\nis required by usb_hcd_check_unlink_urb(), so it has been added to\nurb_dequeue.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCC: David Brownell \u003cdavid-b@pacbell.net\u003e\nCC: Olav Kongas \u003cok@artecdesign.ee\u003e\nCC: Tony Olech \u003ctony.olech@elandigitalsystems.com\u003e\nCC: Yoshihiro Shimoda \u003cshimoda.yoshihiro@renesas.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a5a46a55376be73f7d8e130b665b334fa7e4600b",
      "old_mode": 33188,
      "old_path": "drivers/usb/core/hcd.c",
      "new_id": "a853f63b9254d394387b6892d7e5b81cc87c13c9",
      "new_mode": 33188,
      "new_path": "drivers/usb/core/hcd.c"
    },
    {
      "type": "modify",
      "old_id": "8683142e70e1f63a35efb438171a6e1bd96e548f",
      "old_mode": 33188,
      "old_path": "drivers/usb/core/hcd.h",
      "new_id": "745be2566f62a3300eca567c23616c1f88fd791e",
      "new_mode": 33188,
      "new_path": "drivers/usb/core/hcd.h"
    },
    {
      "type": "modify",
      "old_id": "d008d1360a7aea6abf391da60a9a8eb0d5c8f5f2",
      "old_mode": 33188,
      "old_path": "drivers/usb/gadget/dummy_hcd.c",
      "new_id": "c441d10c087ef767b6d90e6b5937f99e1eea1de6",
      "new_mode": 33188,
      "new_path": "drivers/usb/gadget/dummy_hcd.c"
    },
    {
      "type": "modify",
      "old_id": "35cdba10411b3c09bf7a3e72b697cc0f0fef6931",
      "old_mode": 33188,
      "old_path": "drivers/usb/host/ehci-hcd.c",
      "new_id": "db00492588b6fa3d021e7286b05a5bfe2523d2e7",
      "new_mode": 33188,
      "new_path": "drivers/usb/host/ehci-hcd.c"
    },
    {
      "type": "modify",
      "old_id": "140bfa423e07d39b18815221723b5181654ebd15",
      "old_mode": 33188,
      "old_path": "drivers/usb/host/ehci-q.c",
      "new_id": "1da2de4d34edce8d4efee12626a0a1499ebab492",
      "new_mode": 33188,
      "new_path": "drivers/usb/host/ehci-q.c"
    },
    {
      "type": "modify",
      "old_id": "e682f2342ef826693678262c0eb7009c72fcecbe",
      "old_mode": 33188,
      "old_path": "drivers/usb/host/ehci-sched.c",
      "new_id": "8b267b3fd2bb42bda70f6a0ece65c13af7db192e",
      "new_mode": 33188,
      "new_path": "drivers/usb/host/ehci-sched.c"
    },
    {
      "type": "modify",
      "old_id": "5c851a36de722e36d67fb65128219213d95d0235",
      "old_mode": 33188,
      "old_path": "drivers/usb/host/isp116x-hcd.c",
      "new_id": "d5027dc75a57b475cfe7d7177e829a3aaf3a8e36",
      "new_mode": 33188,
      "new_path": "drivers/usb/host/isp116x-hcd.c"
    },
    {
      "type": "modify",
      "old_id": "d673cb9c36b155a025b9b0aa88c0baa7f70e4d9c",
      "old_mode": 33188,
      "old_path": "drivers/usb/host/ohci-hcd.c",
      "new_id": "6b06ab69938f52f6ae4ffee5f40df27c5966f65d",
      "new_mode": 33188,
      "new_path": "drivers/usb/host/ohci-hcd.c"
    },
    {
      "type": "modify",
      "old_id": "547d39be3eb992b3d7b9d35b5874f1f3c670b251",
      "old_mode": 33188,
      "old_path": "drivers/usb/host/ohci-q.c",
      "new_id": "889c0720743bf0be42aeea96f2e6c17adecbd0ec",
      "new_mode": 33188,
      "new_path": "drivers/usb/host/ohci-q.c"
    },
    {
      "type": "modify",
      "old_id": "40a1de4c256efafabc5ca528d97b6f6361413def",
      "old_mode": 33188,
      "old_path": "drivers/usb/host/r8a66597-hcd.c",
      "new_id": "94bb229df3bc56b3f19d83bdd75d90df7f976fdd",
      "new_mode": 33188,
      "new_path": "drivers/usb/host/r8a66597-hcd.c"
    },
    {
      "type": "modify",
      "old_id": "4cfa3ff2c993249045d2c08dd570156e22c3ce87",
      "old_mode": 33188,
      "old_path": "drivers/usb/host/sl811-hcd.c",
      "new_id": "3d3a63d002c536e499c0aa25098413a2569b4b50",
      "new_mode": 33188,
      "new_path": "drivers/usb/host/sl811-hcd.c"
    },
    {
      "type": "modify",
      "old_id": "598ad098aeeb703cb3d29fb468a4c7603236ee1f",
      "old_mode": 33188,
      "old_path": "drivers/usb/host/u132-hcd.c",
      "new_id": "c87660b5edc3443583375c1dcb202d5705c42584",
      "new_mode": 33188,
      "new_path": "drivers/usb/host/u132-hcd.c"
    },
    {
      "type": "modify",
      "old_id": "3bb908ca38e9c91ffd59df6e148608d23ab2d8f9",
      "old_mode": 33188,
      "old_path": "drivers/usb/host/uhci-q.c",
      "new_id": "bff200cb3d2e224cfe9300cfd28d73d593498308",
      "new_mode": 33188,
      "new_path": "drivers/usb/host/uhci-q.c"
    }
  ]
}
