)]}'
{
  "commit": "8e6edcb2caa638263600be246fe908d9f4b62040",
  "tree": "3a93726a7132a48d488289747990b565cce16d04",
  "parents": [
    "64b4861fcee2f4adbe81551643f2e5dd7d30d5c7"
  ],
  "author": {
    "name": "Vamsi Krishna",
    "email": "vskrishn@codeaurora.org",
    "time": "Wed Jun 20 18:08:50 2012 -0700"
  },
  "committer": {
    "name": "Vamsi Krishna",
    "email": "vskrishn@codeaurora.org",
    "time": "Tue Jun 26 12:52:44 2012 -0700"
  },
  "message": "usb: ehci: Avoid phy lockup due to SOFs during port reset\n\nThere could be race condition between h/w initiating sof\n(start of frames) and finishing port reset. This can\ncause hsic phy lockup, which results in enumeration failure.\nAvoid this race condition by:\n1. Moving to the old enumeration sequence where set_address is\ninitiated before get_device descriptor. This results in one\nport reset instead of two port resets.\n2. Halt usb controller before initiating port reset and start it after\nport reset is complete. This is tricky because PORT_RESET bit\nautomatically clears when h/w completes the reset and failure to\nstart the controller within 3ms causes the peripheral device to\nsuspend resulting in enumeration failure. Hence, after setting\nport reset bit forcefully drive strobe/data lines to reset using\nulpi interface and once port reset is complete, disable forceful\nreset and start the controller in atomic context.\n\nCRs-fixed: 364458, 359930\nChange-Id: I49a2eac8043eb3001956c7ee9ead2c3a901524db\nSigned-off-by: Vamsi Krishna \u003cvskrishn@codeaurora.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5dceb41ead3675c9e93833958731c297aac04bde",
      "old_mode": 33188,
      "old_path": "drivers/usb/core/hub.c",
      "new_id": "d97d5480d9309fd05265e601d3ae10f40b3a2daa",
      "new_mode": 33188,
      "new_path": "drivers/usb/core/hub.c"
    },
    {
      "type": "modify",
      "old_id": "caf86caf68f6c34085fe98fe7533813638d874b9",
      "old_mode": 33188,
      "old_path": "drivers/usb/host/ehci-hub.c",
      "new_id": "3098fbe16358e0cc30cc8cb3c38b86362f8ab614",
      "new_mode": 33188,
      "new_path": "drivers/usb/host/ehci-hub.c"
    },
    {
      "type": "modify",
      "old_id": "1c38bc90feee4021082ad4b4b18416996c0f3723",
      "old_mode": 33188,
      "old_path": "drivers/usb/host/ehci-msm-hsic.c",
      "new_id": "a95198ca3c2977fdd662126d9ecdae661f542b0a",
      "new_mode": 33188,
      "new_path": "drivers/usb/host/ehci-msm-hsic.c"
    },
    {
      "type": "modify",
      "old_id": "6afb70b2669652a7561253d556ff82b315d264b6",
      "old_mode": 33188,
      "old_path": "drivers/usb/host/ehci.h",
      "new_id": "5754170d11a7904c122c9eb5bc12284f1f2022ab",
      "new_mode": 33188,
      "new_path": "drivers/usb/host/ehci.h"
    },
    {
      "type": "modify",
      "old_id": "d9ec3326cd73e63251ad3480cac9d16bf5341b0a",
      "old_mode": 33188,
      "old_path": "include/linux/usb/hcd.h",
      "new_id": "eabe4e89e661ff6f30d152803af6bca2ad5f1526",
      "new_mode": 33188,
      "new_path": "include/linux/usb/hcd.h"
    }
  ]
}
