|
@@ -138,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;
|
|
@@ -168,7 +160,7 @@ 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);
|
|
@@ -177,12 +169,9 @@ static int ohci_octeon_drv_probe(struct platform_device *pdev)
|
|
|
|
|
|
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;
|
|
@@ -195,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;
|