diff options
Diffstat (limited to 'drivers/usb/chipidea/udc.c')
| -rw-r--r-- | drivers/usb/chipidea/udc.c | 5 | 
1 files changed, 4 insertions, 1 deletions
| diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c index f9ca5010f65b..3b8bf6daf7d0 100644 --- a/drivers/usb/chipidea/udc.c +++ b/drivers/usb/chipidea/udc.c @@ -1048,6 +1048,9 @@ isr_setup_status_complete(struct usb_ep *ep, struct usb_request *req)  	struct ci_hdrc *ci = req->context;  	unsigned long flags; +	if (req->status < 0) +		return; +  	if (ci->setaddr) {  		hw_usb_set_address(ci, ci->address);  		ci->setaddr = false; @@ -2152,7 +2155,7 @@ static void udc_id_switch_for_host(struct ci_hdrc *ci)  {  	/*  	 * host doesn't care B_SESSION_VALID event -	 * so clear and disbale BSV irq +	 * so clear and disable BSV irq  	 */  	if (ci->is_otg)  		hw_write_otgsc(ci, OTGSC_BSVIE | OTGSC_BSVIS, OTGSC_BSVIS); | 
