From: Mansur Alisha Shaik <man...@codeaurora.org>

[ Upstream commit eff5ce02e170125936c43ca96c7dc701a86681ed ]

As per current implementation, video driver is unvoting "videom-mem" path
for last video session during vdec_session_release().
While video playback when we try to suspend device, we see video clock
warnings since votes are already removed during vdec_session_release().

corrected this by putting dummy vote on "video-mem" after last video
session release and unvoting it during suspend.

suspend")

Fixes: 07f8f22a33a9e ("media: venus: core: remove CNOC voting while device
Signed-off-by: Mansur Alisha Shaik <man...@codeaurora.org>
Reviewed-by: Stephen Boyd <swb...@chromium.org>
Signed-off-by: Stanimir Varbanov <stanimir.varba...@linaro.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+hua...@kernel.org>
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 drivers/media/platform/qcom/venus/pm_helpers.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c 
b/drivers/media/platform/qcom/venus/pm_helpers.c
index a9538c2cc3c9d..2946547a0df4a 100644
--- a/drivers/media/platform/qcom/venus/pm_helpers.c
+++ b/drivers/media/platform/qcom/venus/pm_helpers.c
@@ -212,6 +212,16 @@ static int load_scale_bw(struct venus_core *core)
        }
        mutex_unlock(&core->lock);
 
+       /*
+        * keep minimum bandwidth vote for "video-mem" path,
+        * so that clks can be disabled during vdec_session_release().
+        * Actual bandwidth drop will be done during device supend
+        * so that device can power down without any warnings.
+        */
+
+       if (!total_avg && !total_peak)
+               total_avg = kbps_to_icc(1000);
+
        dev_dbg(core->dev, VDBGL "total: avg_bw: %u, peak_bw: %u\n",
                total_avg, total_peak);
 
-- 
2.27.0



Reply via email to