summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwenchangliu <wenchangliu@google.com>2024-02-26 10:58:14 +0000
committerWen Chang Liu <wenchangliu@google.com>2024-02-29 06:29:17 +0000
commitbabea9209205361a46e20442fa6ef6733e6fa9e2 (patch)
tree4384d66fc5a444f92102f1db6d409104ce236b17
parent8609340a7ff318654cde355868c40d06d7713433 (diff)
downloadgs-babea9209205361a46e20442fa6ef6733e6fa9e2.tar.gz
media: mfc: skip idle suspend when mfc power is off
The idle worker timing issue still occur after we used del_timer_sync() for mfc_idle_timer. The reason still unknown and it is not easy to reproduce. To solve this issue I add an error handling that skip calling idle suspend function when mfc power is off. Bug: 325729612 Test: pause/resume/close all mfc components Change-Id: I343a487195c358d461833a6677319cf37bd98b02 Signed-off-by: wenchangliu <wenchangliu@google.com>
-rw-r--r--drivers/media/platform/exynos/mfc/mfc_core_pm.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/media/platform/exynos/mfc/mfc_core_pm.c b/drivers/media/platform/exynos/mfc/mfc_core_pm.c
index ed6bbb3c2..626c6704c 100644
--- a/drivers/media/platform/exynos/mfc/mfc_core_pm.c
+++ b/drivers/media/platform/exynos/mfc/mfc_core_pm.c
@@ -307,6 +307,11 @@ void mfc_core_pm_idle_suspend(struct mfc_core *core)
if ((core->sleep == 1) || !idle_suspend_enable)
return;
+ if (!mfc_core_pm_get_pwr_ref_cnt(core)) {
+ mfc_core_info("MFC core idle suspend is skipped since mfc is power off");
+ return;
+ }
+
mfc_perf_core_trace("sleep", 1);
mfc_core_debug(2, "MFC core idle suspend is called\n");