diff options
Diffstat (limited to 'drivers/usb/host/ohci-octeon.c')
| -rw-r--r-- | drivers/usb/host/ohci-octeon.c | 30 | 
1 files changed, 10 insertions, 20 deletions
diff --git a/drivers/usb/host/ohci-octeon.c b/drivers/usb/host/ohci-octeon.c index 342dc7e543b..15af8954085 100644 --- a/drivers/usb/host/ohci-octeon.c +++ b/drivers/usb/host/ohci-octeon.c @@ -127,8 +127,9 @@ static int ohci_octeon_drv_probe(struct platform_device *pdev)  	}  	/* Ohci is a 32-bit device. */ -	pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); -	pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask; +	ret = dma_coerce_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)); +	if (ret) +		return ret;  	hcd = usb_create_hcd(&ohci_octeon_hc_driver, &pdev->dev, "octeon");  	if (!hcd) @@ -137,20 +138,12 @@ static int ohci_octeon_drv_probe(struct platform_device *pdev)  	hcd->rsrc_start = res_mem->start;  	hcd->rsrc_len = resource_size(res_mem); -	if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, -				OCTEON_OHCI_HCD_NAME)) { -		dev_err(&pdev->dev, "request_mem_region failed\n"); -		ret = -EBUSY; +	reg_base = devm_ioremap_resource(&pdev->dev, res_mem); +	if (IS_ERR(reg_base)) { +		ret = PTR_ERR(reg_base);  		goto err1;  	} -	reg_base = ioremap(hcd->rsrc_start, hcd->rsrc_len); -	if (!reg_base) { -		dev_err(&pdev->dev, "ioremap failed\n"); -		ret = -ENOMEM; -		goto err2; -	} -  	ohci_octeon_hw_start();  	hcd->regs = reg_base; @@ -167,19 +160,18 @@ static int ohci_octeon_drv_probe(struct platform_device *pdev)  	ret = usb_add_hcd(hcd, irq, IRQF_SHARED);  	if (ret) {  		dev_dbg(&pdev->dev, "failed to add hcd with err %d\n", ret); -		goto err3; +		goto err2;  	} +	device_wakeup_enable(hcd->self.controller); +  	platform_set_drvdata(pdev, hcd);  	return 0; -err3: +err2:  	ohci_octeon_hw_stop(); -	iounmap(hcd->regs); -err2: -	release_mem_region(hcd->rsrc_start, hcd->rsrc_len);  err1:  	usb_put_hcd(hcd);  	return ret; @@ -192,8 +184,6 @@ static int ohci_octeon_drv_remove(struct platform_device *pdev)  	usb_remove_hcd(hcd);  	ohci_octeon_hw_stop(); -	iounmap(hcd->regs); -	release_mem_region(hcd->rsrc_start, hcd->rsrc_len);  	usb_put_hcd(hcd);  	return 0;  | 
