mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-04-21 23:27:45 +07:00
i2c: gpio: Use devm_gpio_request()
Use devm_gpio_request() to make cleanup paths simpler. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Reviewed-by: Violeta Menendez <violeta.menendez@codethink.co.uk> Reviewed-by: Ian Molton <ian.molton@codethink.co.uk> Tested-by: Violeta Menendez <violeta.menendez@codethink.co.uk> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
This commit is contained in:
parent
fa96faaa11
commit
a0682a3158
@ -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)
|
|||||||
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)
|
|||||||
? ", 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)
|
|||||||
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;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user