extcon: axp288: Convert to using managed resources
authorVaishali Thakkar <vthakkar1994@gmail.com>
Mon, 14 Sep 2015 17:49:35 +0000 (23:19 +0530)
committerChanwoo Choi <cw00.choi@samsung.com>
Tue, 29 Sep 2015 08:58:42 +0000 (17:58 +0900)
Use resource managed functions devm_usb_get_phy and
devm_gpio_request to make error path simpler. To be
compatible the change, various gotos are replaced
with direct returns and unnecessary label
gpio_req_failed is dropped.

Also, remove function axp288_extcon_remove as it is
now redundant.

Signed-off-by: Vaishali Thakkar <vthakkar1994@gmail.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
drivers/extcon/extcon-axp288.c

index ea962bc547b81c609d37ee5ca6a51f40c613bc1b..9668d6a94e382a8c4e301ecfce17d3b651d2135e 100644 (file)
@@ -309,7 +309,7 @@ static int axp288_extcon_probe(struct platform_device *pdev)
        }
 
        /* Get otg transceiver phy */
-       info->otg = usb_get_phy(USB_PHY_TYPE_USB2);
+       info->otg = devm_usb_get_phy(&pdev->dev, USB_PHY_TYPE_USB2);
        if (IS_ERR(info->otg)) {
                dev_err(&pdev->dev, "failed to get otg transceiver\n");
                return PTR_ERR(info->otg);
@@ -318,11 +318,11 @@ static int axp288_extcon_probe(struct platform_device *pdev)
        /* Set up gpio control for USB Mux */
        if (info->pdata->gpio_mux_cntl) {
                gpio = desc_to_gpio(info->pdata->gpio_mux_cntl);
-               ret = gpio_request(gpio, "USB_MUX");
+               ret = devm_gpio_request(&pdev->dev, gpio, "USB_MUX");
                if (ret < 0) {
                        dev_err(&pdev->dev,
                                "failed to request the gpio=%d\n", gpio);
-                       goto gpio_req_failed;
+                       return ret;
                }
                gpiod_direction_output(info->pdata->gpio_mux_cntl,
                                                EXTCON_GPIO_MUX_SEL_PMIC);
@@ -335,7 +335,7 @@ static int axp288_extcon_probe(struct platform_device *pdev)
                        dev_err(&pdev->dev,
                                "failed to get virtual interrupt=%d\n", pirq);
                        ret = info->irq[i];
-                       goto gpio_req_failed;
+                       return ret;
                }
 
                ret = devm_request_threaded_irq(&pdev->dev, info->irq[i],
@@ -345,7 +345,7 @@ static int axp288_extcon_probe(struct platform_device *pdev)
                if (ret) {
                        dev_err(&pdev->dev, "failed to request interrupt=%d\n",
                                                        info->irq[i]);
-                       goto gpio_req_failed;
+                       return ret;
                }
        }
 
@@ -353,23 +353,10 @@ static int axp288_extcon_probe(struct platform_device *pdev)
        axp288_extcon_enable_irq(info);
 
        return 0;
-
-gpio_req_failed:
-       usb_put_phy(info->otg);
-       return ret;
-}
-
-static int axp288_extcon_remove(struct platform_device *pdev)
-{
-       struct axp288_extcon_info *info = platform_get_drvdata(pdev);
-
-       usb_put_phy(info->otg);
-       return 0;
 }
 
 static struct platform_driver axp288_extcon_driver = {
        .probe = axp288_extcon_probe,
-       .remove = axp288_extcon_remove,
        .driver = {
                .name = "axp288_extcon",
        },