diff options
Diffstat (limited to 'drivers/usb/host/ehci-spear.c')
| -rw-r--r-- | drivers/usb/host/ehci-spear.c | 21 | 
1 files changed, 7 insertions, 14 deletions
diff --git a/drivers/usb/host/ehci-spear.c b/drivers/usb/host/ehci-spear.c index 1cf0adba3fc..1d59958ad0c 100644 --- a/drivers/usb/host/ehci-spear.c +++ b/drivers/usb/host/ehci-spear.c @@ -81,10 +81,9 @@ static int spear_ehci_hcd_drv_probe(struct platform_device *pdev)  	 * Since shared usb code relies on it, set it here for now.  	 * Once we have dma capability bindings this can go away.  	 */ -	if (!pdev->dev.dma_mask) -		pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask; -	if (!pdev->dev.coherent_dma_mask) -		pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); +	retval = dma_coerce_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)); +	if (retval) +		goto fail;  	usbh_clk = devm_clk_get(&pdev->dev, NULL);  	if (IS_ERR(usbh_clk)) { @@ -107,16 +106,9 @@ static int spear_ehci_hcd_drv_probe(struct platform_device *pdev)  	hcd->rsrc_start = res->start;  	hcd->rsrc_len = resource_size(res); -	if (!devm_request_mem_region(&pdev->dev, hcd->rsrc_start, hcd->rsrc_len, -				driver->description)) { -		retval = -EBUSY; -		goto err_put_hcd; -	} - -	hcd->regs = devm_ioremap(&pdev->dev, hcd->rsrc_start, hcd->rsrc_len); -	if (hcd->regs == NULL) { -		dev_dbg(&pdev->dev, "error mapping memory\n"); -		retval = -ENOMEM; +	hcd->regs = devm_ioremap_resource(&pdev->dev, res); +	if (IS_ERR(hcd->regs)) { +		retval = PTR_ERR(hcd->regs);  		goto err_put_hcd;  	} @@ -131,6 +123,7 @@ static int spear_ehci_hcd_drv_probe(struct platform_device *pdev)  	if (retval)  		goto err_stop_ehci; +	device_wakeup_enable(hcd->self.controller);  	return retval;  err_stop_ehci:  | 
