]> Pileus Git - ~andy/linux/commitdiff
pinctrl: pxa3xx: Use devm_request_and_ioremap
authorAxel Lin <axel.lin@ingics.com>
Mon, 12 Nov 2012 06:45:50 +0000 (14:45 +0800)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 15 Nov 2012 10:21:45 +0000 (11:21 +0100)
Use managed resources API to simplify the code.
Also ensure we do request mem_region before ioremap.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-pxa3xx.c

index f14cd6ba4c0b7ffa8c8bfb75b474c585757d2e74..43e3dd058ddba104b75b9122e26b8355ee15e650 100644 (file)
@@ -173,7 +173,6 @@ int pxa3xx_pinctrl_register(struct platform_device *pdev,
 {
        struct pinctrl_desc *desc;
        struct resource *res;
-       int ret = 0;
 
        if (!info || !info->cputype)
                return -EINVAL;
@@ -190,21 +189,17 @@ int pxa3xx_pinctrl_register(struct platform_device *pdev,
                return -ENOENT;
        info->phy_base = res->start;
        info->phy_size = resource_size(res);
-       info->virt_base = ioremap(info->phy_base, info->phy_size);
+       info->virt_base = devm_request_and_ioremap(&pdev->dev, res);
        if (!info->virt_base)
                return -ENOMEM;
        info->pctrl = pinctrl_register(desc, &pdev->dev, info);
        if (!info->pctrl) {
                dev_err(&pdev->dev, "failed to register PXA pinmux driver\n");
-               ret = -EINVAL;
-               goto err;
+               return -EINVAL;
        }
        pinctrl_add_gpio_range(info->pctrl, &pxa3xx_pinctrl_gpio_range);
        platform_set_drvdata(pdev, info);
        return 0;
-err:
-       iounmap(info->virt_base);
-       return ret;
 }
 
 int pxa3xx_pinctrl_unregister(struct platform_device *pdev)
@@ -212,7 +207,6 @@ int pxa3xx_pinctrl_unregister(struct platform_device *pdev)
        struct pxa3xx_pinmux_info *info = platform_get_drvdata(pdev);
 
        pinctrl_unregister(info->pctrl);
-       iounmap(info->virt_base);
        platform_set_drvdata(pdev, NULL);
        return 0;
 }