[RFC PATCH V0 09/10] media: mtk-mdp3: revise error handling about get/probe MDP3

From: Moudy Ho
Date: Wed Jun 23 2021 - 03:36:22 EST


This patch is used for review before send upstream patch.
>From Alexandre Courbot's review comment: Independent from the main patch.
Revise error handling about get/probe MDP3 driver to make it stable.

Signed-off-by: Moudy Ho <moudy.ho@xxxxxxxxxxxx>
---
drivers/media/platform/mtk-mdp3/mtk-mdp3-core.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/media/platform/mtk-mdp3/mtk-mdp3-core.c b/drivers/media/platform/mtk-mdp3/mtk-mdp3-core.c
index eaf5b07e720f..207b55ace97b 100644
--- a/drivers/media/platform/mtk-mdp3/mtk-mdp3-core.c
+++ b/drivers/media/platform/mtk-mdp3/mtk-mdp3-core.c
@@ -40,9 +40,9 @@ struct platform_device *mdp_get_plat_device(struct platform_device *pdev)
}

mdp_pdev = of_find_device_by_node(mdp_node);
+ of_node_put(mdp_node);
if (WARN_ON(!mdp_pdev)) {
dev_err(dev, "mdp pdev failed\n");
- of_node_put(mdp_node);
return NULL;
}

@@ -113,7 +113,7 @@ static int mdp_probe(struct platform_device *pdev)
if (!mdp->job_wq) {
dev_err(dev, "Unable to create job workqueue\n");
ret = -ENOMEM;
- goto err_destroy_job_wq;
+ goto err_deinit_comp;
}

mdp->clock_wq = alloc_workqueue(MDP_MODULE_NAME "-clock", WQ_FREEZABLE,
@@ -121,7 +121,7 @@ static int mdp_probe(struct platform_device *pdev)
if (!mdp->clock_wq) {
dev_err(dev, "Unable to create clock workqueue\n");
ret = -ENOMEM;
- goto err_destroy_clock_wq;
+ goto err_destroy_job_wq;
}

mdp->scp = scp_get(pdev);
@@ -179,6 +179,8 @@ static int mdp_probe(struct platform_device *pdev)
destroy_workqueue(mdp->clock_wq);
err_destroy_job_wq:
destroy_workqueue(mdp->job_wq);
+err_deinit_comp:
+ mdp_component_deinit(mdp);
err_return:
dev_dbg(dev, "Errno %d\n", ret);
return ret;
--
2.18.0