Commit a0682a31 authored by Jingoo Han's avatar Jingoo Han Committed by Wolfram Sang

i2c: gpio: Use devm_gpio_request()

Use devm_gpio_request() to make cleanup paths simpler.
Signed-off-by: default avatarJingoo Han <jg1.han@samsung.com>
Reviewed-by: default avatarVioleta Menendez <violeta.menendez@codethink.co.uk>
Reviewed-by: default avatarIan Molton <ian.molton@codethink.co.uk>
Tested-by: default avatarVioleta Menendez <violeta.menendez@codethink.co.uk>
Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
parent fa96faaa
...@@ -147,24 +147,22 @@ static int i2c_gpio_probe(struct platform_device *pdev) ...@@ -147,24 +147,22 @@ static int i2c_gpio_probe(struct platform_device *pdev)
scl_pin = pdata->scl_pin; scl_pin = pdata->scl_pin;
} }
ret = gpio_request(sda_pin, "sda"); ret = devm_gpio_request(&pdev->dev, sda_pin, "sda");
if (ret) { if (ret) {
if (ret == -EINVAL) if (ret == -EINVAL)
ret = -EPROBE_DEFER; /* Try again later */ ret = -EPROBE_DEFER; /* Try again later */
goto err_request_sda; return ret;
} }
ret = gpio_request(scl_pin, "scl"); ret = devm_gpio_request(&pdev->dev, scl_pin, "scl");
if (ret) { if (ret) {
if (ret == -EINVAL) if (ret == -EINVAL)
ret = -EPROBE_DEFER; /* Try again later */ ret = -EPROBE_DEFER; /* Try again later */
goto err_request_scl; return ret;
} }
priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
if (!priv) { if (!priv)
ret = -ENOMEM; return -ENOMEM;
goto err_add_bus;
}
adap = &priv->adap; adap = &priv->adap;
bit_data = &priv->bit_data; bit_data = &priv->bit_data;
pdata = &priv->pdata; pdata = &priv->pdata;
...@@ -225,7 +223,7 @@ static int i2c_gpio_probe(struct platform_device *pdev) ...@@ -225,7 +223,7 @@ static int i2c_gpio_probe(struct platform_device *pdev)
adap->nr = pdev->id; adap->nr = pdev->id;
ret = i2c_bit_add_numbered_bus(adap); ret = i2c_bit_add_numbered_bus(adap);
if (ret) if (ret)
goto err_add_bus; return ret;
platform_set_drvdata(pdev, priv); platform_set_drvdata(pdev, priv);
...@@ -235,13 +233,6 @@ static int i2c_gpio_probe(struct platform_device *pdev) ...@@ -235,13 +233,6 @@ static int i2c_gpio_probe(struct platform_device *pdev)
? ", no clock stretching" : ""); ? ", no clock stretching" : "");
return 0; return 0;
err_add_bus:
gpio_free(scl_pin);
err_request_scl:
gpio_free(sda_pin);
err_request_sda:
return ret;
} }
static int i2c_gpio_remove(struct platform_device *pdev) static int i2c_gpio_remove(struct platform_device *pdev)
...@@ -255,8 +246,6 @@ static int i2c_gpio_remove(struct platform_device *pdev) ...@@ -255,8 +246,6 @@ static int i2c_gpio_remove(struct platform_device *pdev)
pdata = &priv->pdata; pdata = &priv->pdata;
i2c_del_adapter(adap); i2c_del_adapter(adap);
gpio_free(pdata->scl_pin);
gpio_free(pdata->sda_pin);
return 0; return 0;
} }
......
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