forked from Minki/linux
nvmem: mxs-ocotp: Use devm_add_action_or_reset() for cleanup
Use devm_add_action_or_reset() for cleanup to call clk_unprepare(), which can simplify the error handling in .probe, and .remove callback can be dropped. Signed-off-by: Anson Huang <Anson.Huang@nxp.com> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Link: https://lore.kernel.org/r/20200323150007.7487-5-srinivas.kandagatla@linaro.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
4bd5a15d93
commit
bbde5709ee
@ -130,6 +130,11 @@ static const struct of_device_id mxs_ocotp_match[] = {
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, mxs_ocotp_match);
|
||||
|
||||
static void mxs_ocotp_action(void *data)
|
||||
{
|
||||
clk_unprepare(data);
|
||||
}
|
||||
|
||||
static int mxs_ocotp_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct device *dev = &pdev->dev;
|
||||
@ -160,39 +165,26 @@ static int mxs_ocotp_probe(struct platform_device *pdev)
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = devm_add_action_or_reset(&pdev->dev, mxs_ocotp_action, otp->clk);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
data = match->data;
|
||||
|
||||
ocotp_config.size = data->size;
|
||||
ocotp_config.priv = otp;
|
||||
ocotp_config.dev = dev;
|
||||
otp->nvmem = devm_nvmem_register(dev, &ocotp_config);
|
||||
if (IS_ERR(otp->nvmem)) {
|
||||
ret = PTR_ERR(otp->nvmem);
|
||||
goto err_clk;
|
||||
}
|
||||
if (IS_ERR(otp->nvmem))
|
||||
return PTR_ERR(otp->nvmem);
|
||||
|
||||
platform_set_drvdata(pdev, otp);
|
||||
|
||||
return 0;
|
||||
|
||||
err_clk:
|
||||
clk_unprepare(otp->clk);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int mxs_ocotp_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct mxs_ocotp *otp = platform_get_drvdata(pdev);
|
||||
|
||||
clk_unprepare(otp->clk);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct platform_driver mxs_ocotp_driver = {
|
||||
.probe = mxs_ocotp_probe,
|
||||
.remove = mxs_ocotp_remove,
|
||||
.driver = {
|
||||
.name = "mxs-ocotp",
|
||||
.of_match_table = mxs_ocotp_match,
|
||||
|
Loading…
Reference in New Issue
Block a user