Commit 4bf27b70 authored by Vaishali Thakkar's avatar Vaishali Thakkar Committed by Chanwoo Choi

extcon: axp288: Convert to using managed resources

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: default avatarVaishali Thakkar <vthakkar1994@gmail.com>
Signed-off-by: default avatarChanwoo Choi <cw00.choi@samsung.com>
parent ff612f91
...@@ -309,7 +309,7 @@ static int axp288_extcon_probe(struct platform_device *pdev) ...@@ -309,7 +309,7 @@ static int axp288_extcon_probe(struct platform_device *pdev)
} }
/* Get otg transceiver phy */ /* 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)) { if (IS_ERR(info->otg)) {
dev_err(&pdev->dev, "failed to get otg transceiver\n"); dev_err(&pdev->dev, "failed to get otg transceiver\n");
return PTR_ERR(info->otg); return PTR_ERR(info->otg);
...@@ -318,11 +318,11 @@ static int axp288_extcon_probe(struct platform_device *pdev) ...@@ -318,11 +318,11 @@ static int axp288_extcon_probe(struct platform_device *pdev)
/* Set up gpio control for USB Mux */ /* Set up gpio control for USB Mux */
if (info->pdata->gpio_mux_cntl) { if (info->pdata->gpio_mux_cntl) {
gpio = desc_to_gpio(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) { if (ret < 0) {
dev_err(&pdev->dev, dev_err(&pdev->dev,
"failed to request the gpio=%d\n", gpio); "failed to request the gpio=%d\n", gpio);
goto gpio_req_failed; return ret;
} }
gpiod_direction_output(info->pdata->gpio_mux_cntl, gpiod_direction_output(info->pdata->gpio_mux_cntl,
EXTCON_GPIO_MUX_SEL_PMIC); EXTCON_GPIO_MUX_SEL_PMIC);
...@@ -335,7 +335,7 @@ static int axp288_extcon_probe(struct platform_device *pdev) ...@@ -335,7 +335,7 @@ static int axp288_extcon_probe(struct platform_device *pdev)
dev_err(&pdev->dev, dev_err(&pdev->dev,
"failed to get virtual interrupt=%d\n", pirq); "failed to get virtual interrupt=%d\n", pirq);
ret = info->irq[i]; ret = info->irq[i];
goto gpio_req_failed; return ret;
} }
ret = devm_request_threaded_irq(&pdev->dev, info->irq[i], ret = devm_request_threaded_irq(&pdev->dev, info->irq[i],
...@@ -345,7 +345,7 @@ static int axp288_extcon_probe(struct platform_device *pdev) ...@@ -345,7 +345,7 @@ static int axp288_extcon_probe(struct platform_device *pdev)
if (ret) { if (ret) {
dev_err(&pdev->dev, "failed to request interrupt=%d\n", dev_err(&pdev->dev, "failed to request interrupt=%d\n",
info->irq[i]); info->irq[i]);
goto gpio_req_failed; return ret;
} }
} }
...@@ -353,23 +353,10 @@ static int axp288_extcon_probe(struct platform_device *pdev) ...@@ -353,23 +353,10 @@ static int axp288_extcon_probe(struct platform_device *pdev)
axp288_extcon_enable_irq(info); axp288_extcon_enable_irq(info);
return 0; 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 = { static struct platform_driver axp288_extcon_driver = {
.probe = axp288_extcon_probe, .probe = axp288_extcon_probe,
.remove = axp288_extcon_remove,
.driver = { .driver = {
.name = "axp288_extcon", .name = "axp288_extcon",
}, },
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment