usb: phy: msm: fix bug in probe()
authorDan Carpenter <dan.carpenter@oracle.com>
Mon, 19 May 2014 20:35:19 +0000 (23:35 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 23 May 2014 07:51:33 +0000 (16:51 +0900)
My previous patch introduced a bug which prevented this driver from
loading.  devm_ioremap_resource() has a call to
devm_request_mem_region() which will fail because the address space is
shared between this PHY driver and CI device controller driver.

Fixes: 10f0577aa5cb ('usb: phy: msm: change devm_ioremap() to devm_ioremap_resource()')
Reported-by:"Ivan T. Ivanov" <iivanov@mm-sol.com>
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/phy/phy-msm-usb.c

index 4f88174aede5ace7cabb2c0202cf00863a075466..ced34f39bdd47f29ddf308ad7d89f59af3e5b3ce 100644 (file)
@@ -1586,9 +1586,11 @@ static int msm_otg_probe(struct platform_device *pdev)
                                      np ? "alt_core" : "usb_hs_core_clk");
 
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       motg->regs = devm_ioremap_resource(&pdev->dev, res);
-       if (IS_ERR(motg->regs))
-               return PTR_ERR(motg->regs);
+       if (!res)
+               return -EINVAL;
+       motg->regs = devm_ioremap(&pdev->dev, res->start, resource_size(res));
+       if (!motg->regs)
+               return -ENOMEM;
 
        /*
         * NOTE: The PHYs can be multiplexed between the chipidea controller