There could be race condition between h/w initiating sof (start of frames) and finishing port reset. This can cause hsic phy lockup, which results in enumeration failure. Avoid this race condition by: 1. Moving to the old enumeration sequence where set_address is initiated before get_device descriptor. This results in one port reset instead of two port resets. 2. Halt usb controller before initiating port reset and start it after port reset is complete. This is tricky because PORT_RESET bit automatically clears when h/w completes the reset and failure to start the controller within 3ms causes the peripheral device to suspend resulting in enumeration failure. Hence, after setting port reset bit forcefully drive strobe/data lines to reset using ulpi interface and once port reset is complete, disable forceful reset and start the controller in atomic context. CRs-fixed: 364458, 359930 Change-Id: I49a2eac8043eb3001956c7ee9ead2c3a901524db Signed-off-by: Vamsi Krishna <vskrishn@codeaurora.org>