diff options
Diffstat (limited to 'drivers/usb/dwc3/core.c')
| -rw-r--r-- | drivers/usb/dwc3/core.c | 19 | 
1 files changed, 9 insertions, 10 deletions
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index 443e4fb9b8f..6aa09133998 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -241,6 +241,15 @@ static int __devinit dwc3_core_init(struct dwc3 *dwc)  	u32			reg;  	int			ret; +	reg = dwc3_readl(dwc->regs, DWC3_GSNPSID); +	/* This should read as U3 followed by revision number */ +	if ((reg & DWC3_GSNPSID_MASK) != 0x55330000) { +		dev_err(dwc->dev, "this is not a DesignWare USB3 DRD Core\n"); +		ret = -ENODEV; +		goto err0; +	} +	dwc->revision = reg & DWC3_GSNPSREV_MASK; +  	dwc3_core_soft_reset(dwc);  	/* issue device SoftReset too */ @@ -260,16 +269,6 @@ static int __devinit dwc3_core_init(struct dwc3 *dwc)  		cpu_relax();  	} while (true); -	reg = dwc3_readl(dwc->regs, DWC3_GSNPSID); -	/* This should read as U3 followed by revision number */ -	if ((reg & DWC3_GSNPSID_MASK) != 0x55330000) { -		dev_err(dwc->dev, "this is not a DesignWare USB3 DRD Core\n"); -		ret = -ENODEV; -		goto err0; -	} - -	dwc->revision = reg & DWC3_GSNPSREV_MASK; -  	ret = dwc3_alloc_event_buffers(dwc, DWC3_EVENT_BUFFERS_NUM,  			DWC3_EVENT_BUFFERS_SIZE);  	if (ret) {  |