]> Pileus Git - ~andy/linux/blobdiff - drivers/usb/host/ehci-msm.c
Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[~andy/linux] / drivers / usb / host / ehci-msm.c
index 17dd9e94001ec679329b2492f6620b51b7ac373a..4af4dc5b618c5710bd4f6226361916763122ac53 100644 (file)
@@ -133,7 +133,7 @@ static int ehci_msm_probe(struct platform_device *pdev)
 
        hcd->rsrc_start = res->start;
        hcd->rsrc_len = resource_size(res);
-       hcd->regs = ioremap(hcd->rsrc_start, hcd->rsrc_len);
+       hcd->regs = devm_ioremap(&pdev->dev, hcd->rsrc_start, hcd->rsrc_len);
        if (!hcd->regs) {
                dev_err(&pdev->dev, "ioremap failed\n");
                ret = -ENOMEM;
@@ -145,17 +145,17 @@ static int ehci_msm_probe(struct platform_device *pdev)
         * powering up VBUS, mapping of registers address space and power
         * management.
         */
-       phy = usb_get_phy(USB_PHY_TYPE_USB2);
+       phy = devm_usb_get_phy(&pdev->dev, USB_PHY_TYPE_USB2);
        if (IS_ERR_OR_NULL(phy)) {
                dev_err(&pdev->dev, "unable to find transceiver\n");
                ret = -ENODEV;
-               goto unmap;
+               goto put_hcd;
        }
 
        ret = otg_set_host(phy->otg, &hcd->self);
        if (ret < 0) {
                dev_err(&pdev->dev, "unable to register with transceiver\n");
-               goto put_transceiver;
+               goto put_hcd;
        }
 
        device_init_wakeup(&pdev->dev, 1);
@@ -168,10 +168,6 @@ static int ehci_msm_probe(struct platform_device *pdev)
 
        return 0;
 
-put_transceiver:
-       usb_put_phy(phy);
-unmap:
-       iounmap(hcd->regs);
 put_hcd:
        usb_put_hcd(hcd);
 
@@ -187,7 +183,6 @@ static int __devexit ehci_msm_remove(struct platform_device *pdev)
        pm_runtime_set_suspended(&pdev->dev);
 
        otg_set_host(phy->otg, NULL);
-       usb_put_phy(phy);
 
        usb_put_hcd(hcd);