diff options
Diffstat (limited to 'drivers/usb/cdns3/cdnsp-ring.c')
| -rw-r--r-- | drivers/usb/cdns3/cdnsp-ring.c | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/drivers/usb/cdns3/cdnsp-ring.c b/drivers/usb/cdns3/cdnsp-ring.c index fd06cb85c4ea..0758f171f73e 100644 --- a/drivers/usb/cdns3/cdnsp-ring.c +++ b/drivers/usb/cdns3/cdnsp-ring.c @@ -772,7 +772,9 @@ static int cdnsp_update_port_id(struct cdnsp_device *pdev, u32 port_id)  	}  	if (port_id != old_port) { -		cdnsp_disable_slot(pdev); +		if (pdev->slot_id) +			cdnsp_disable_slot(pdev); +  		pdev->active_port = port;  		cdnsp_enable_slot(pdev);  	} @@ -2483,7 +2485,8 @@ void cdnsp_queue_halt_endpoint(struct cdnsp_device *pdev, unsigned int ep_index)  {  	cdnsp_queue_command(pdev, 0, 0, 0, TRB_TYPE(TRB_HALT_ENDPOINT) |  			    SLOT_ID_FOR_TRB(pdev->slot_id) | -			    EP_ID_FOR_TRB(ep_index)); +			    EP_ID_FOR_TRB(ep_index) | +			    (!ep_index ? TRB_ESP : 0));  }  void cdnsp_force_header_wakeup(struct cdnsp_device *pdev, int intf_num) | 
