|
@@ -127,29 +127,19 @@ static int __devinit ohci_platform_probe(struct platform_device *dev)
|
|
|
hcd->rsrc_start = res_mem->start;
|
|
|
hcd->rsrc_len = resource_size(res_mem);
|
|
|
|
|
|
- if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, hcd_name)) {
|
|
|
- dev_err(&dev->dev, "controller already in use");
|
|
|
- err = -EBUSY;
|
|
|
- goto err_put_hcd;
|
|
|
- }
|
|
|
-
|
|
|
- hcd->regs = ioremap_nocache(hcd->rsrc_start, hcd->rsrc_len);
|
|
|
+ hcd->regs = devm_request_and_ioremap(&dev->dev, res_mem);
|
|
|
if (!hcd->regs) {
|
|
|
err = -ENOMEM;
|
|
|
- goto err_release_region;
|
|
|
+ goto err_put_hcd;
|
|
|
}
|
|
|
err = usb_add_hcd(hcd, irq, IRQF_SHARED);
|
|
|
if (err)
|
|
|
- goto err_iounmap;
|
|
|
+ goto err_put_hcd;
|
|
|
|
|
|
platform_set_drvdata(dev, hcd);
|
|
|
|
|
|
return err;
|
|
|
|
|
|
-err_iounmap:
|
|
|
- iounmap(hcd->regs);
|
|
|
-err_release_region:
|
|
|
- release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
|
|
|
err_put_hcd:
|
|
|
usb_put_hcd(hcd);
|
|
|
err_power:
|
|
@@ -165,8 +155,6 @@ static int __devexit ohci_platform_remove(struct platform_device *dev)
|
|
|
struct usb_ohci_pdata *pdata = dev->dev.platform_data;
|
|
|
|
|
|
usb_remove_hcd(hcd);
|
|
|
- iounmap(hcd->regs);
|
|
|
- release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
|
|
|
usb_put_hcd(hcd);
|
|
|
platform_set_drvdata(dev, NULL);
|
|
|
|