[PATCH v2 13/14] media: venus: Convert to use resource-managed OPP API

From: Dmitry Osipenko
Date: Thu Mar 11 2021 - 14:23:06 EST


From: Yangtao Li <tiny.windzz@xxxxxxxxx>

Use resource-managed OPP API to simplify code.

Signed-off-by: Yangtao Li <tiny.windzz@xxxxxxxxx>
Signed-off-by: Dmitry Osipenko <digetx@xxxxxxxxx>
---
drivers/media/platform/qcom/venus/pm_helpers.c | 18 +++---------------
1 file changed, 3 insertions(+), 15 deletions(-)

diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media/platform/qcom/venus/pm_helpers.c
index 43c4e3d9e281..14fa27f26a7d 100644
--- a/drivers/media/platform/qcom/venus/pm_helpers.c
+++ b/drivers/media/platform/qcom/venus/pm_helpers.c
@@ -860,45 +860,33 @@ static int core_get_v4(struct device *dev)
if (legacy_binding)
return 0;

- core->opp_table = dev_pm_opp_set_clkname(dev, "core");
+ core->opp_table = devm_pm_opp_set_clkname(dev, "core");
if (IS_ERR(core->opp_table))
return PTR_ERR(core->opp_table);

if (core->res->opp_pmdomain) {
- ret = dev_pm_opp_of_add_table(dev);
+ ret = devm_pm_opp_of_add_table(dev);
if (!ret) {
core->has_opp_table = true;
} else if (ret != -ENODEV) {
dev_err(dev, "invalid OPP table in device tree\n");
- dev_pm_opp_put_clkname(core->opp_table);
return ret;
}
}

ret = vcodec_domains_get(dev);
- if (ret) {
- if (core->has_opp_table)
- dev_pm_opp_of_remove_table(dev);
- dev_pm_opp_put_clkname(core->opp_table);
+ if (ret)
return ret;
- }

return 0;
}

static void core_put_v4(struct device *dev)
{
- struct venus_core *core = dev_get_drvdata(dev);
-
if (legacy_binding)
return;

vcodec_domains_put(dev);
-
- if (core->has_opp_table)
- dev_pm_opp_of_remove_table(dev);
- dev_pm_opp_put_clkname(core->opp_table);
-
}

static int core_power_v4(struct device *dev, int on)
--
2.29.2