)]}'
{
  "commit": "8bb54ab573ecd1b4fe2ed66416a8d99a86e65316",
  "tree": "36df75387a62923e3bd152f3c2ce16147be1828c",
  "parents": [
    "36e56a34586783c7986ce09d39db80b27c95ce24"
  ],
  "author": {
    "name": "Alan Stern",
    "email": "stern@rowland.harvard.edu",
    "time": "Sat Jul 01 22:08:49 2006 -0400"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@suse.de",
    "time": "Wed Sep 27 11:58:50 2006 -0700"
  },
  "message": "usbcore: add usb_device_driver definition\n\nThis patch (as732) adds a usb_device_driver structure, for representing\ndrivers that manage an entire USB device as opposed to just an\ninterface.  Support routines like usb_register_device_driver,\nusb_deregister_device_driver, usb_probe_device, and usb_unbind_device\nare also added.\n\nUnlike an earlier version of this patch, the new code is type-safe.  To\naccomplish this, the existing struct driver embedded in struct\nusb_driver had to be wrapped in an intermediate wrapper.  This enables\nthe core to tell at runtime whether a particular struct driver belongs\nto a device driver or to an interface driver.\n\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8dcf2cd0c569afb54c290516c2bd50016dd0b9f6",
      "old_mode": 33188,
      "old_path": "drivers/usb/core/driver.c",
      "new_id": "0d4b5dcee3abb5e7f0304f7e7e0540a71422c5f8",
      "new_mode": 33188,
      "new_path": "drivers/usb/core/driver.c"
    },
    {
      "type": "modify",
      "old_id": "7bab9769b34f536bdeb8b6b7c6df066ce3ddb789",
      "old_mode": 33188,
      "old_path": "drivers/usb/core/generic.c",
      "new_id": "fa6f34a12b4bfa0118958cc11b03aebb92d267ec",
      "new_mode": 33188,
      "new_path": "drivers/usb/core/generic.c"
    },
    {
      "type": "modify",
      "old_id": "0b8c67bcde6076f369452d37260d5349888a1e6e",
      "old_mode": 33188,
      "old_path": "drivers/usb/core/usb.c",
      "new_id": "6dfbc284369bb8893eb7545268e02eb2598a3fdd",
      "new_mode": 33188,
      "new_path": "drivers/usb/core/usb.c"
    },
    {
      "type": "modify",
      "old_id": "82d397a6f773c343dc10f5bfb0e457e757b322d5",
      "old_mode": 33188,
      "old_path": "drivers/usb/core/usb.h",
      "new_id": "1d25ccac783276f47fe7b9b26dd3025f356d1b70",
      "new_mode": 33188,
      "new_path": "drivers/usb/core/usb.h"
    },
    {
      "type": "modify",
      "old_id": "d2bd0c8e015408c0152fe7b9927ec2d5deda5100",
      "old_mode": 33188,
      "old_path": "include/linux/usb.h",
      "new_id": "b4ccce6d0982b88168d0b158b8ea9696d4b6e5f6",
      "new_mode": 33188,
      "new_path": "include/linux/usb.h"
    }
  ]
}
