usb: mdm_ctrl_bridge: Do not unlink URB upon cable disconnect
MDM control bridge driver unlinks the pending URBs when control bridge gets closed as a result of usb cable disconnect. Driver sends set_control_line_state request to MDM upon bridge close. Right after sending the setup request driver unlinks the pending URBs. In case if the URB is unlinked after setup stage is completed, status stage remains pending. This results in a control transfer stall. Similarly, when the bridge is reopened as a result of USB cable plug-in, the interrupt URB is not resubmitted, which can also lead to a QMI stall since the MDM is waiting indefinitely to send its response available notification. Fix these two potential stall conditions by not unlinking URBs upon cable disconnect; this will allow in-progress control transfers to finish gracefully and will also allow notification interrupts to always be handled. Unlinking of the URBs will happen during MDM device disconnect, instead of upon bridge close. (cherry picked from commit 77f79575ebe35f2ec329827290e7a67fb0e75286) CRs-Fixed: 419128,418478 Change-Id: I5474372d832de2fd49f17faf77e7e549e80566ad Signed-off-by:Hemant Kumar <hemantk@codeaurora.org> Signed-off-by:
Neha Pandey <nehap@codeaurora.org>
Loading
Please sign in to comment