diff options
author | wenchangliu <wenchangliu@google.com> | 2024-02-26 10:58:14 +0000 |
---|---|---|
committer | Wen Chang Liu <wenchangliu@google.com> | 2024-02-29 06:29:17 +0000 |
commit | babea9209205361a46e20442fa6ef6733e6fa9e2 (patch) | |
tree | 4384d66fc5a444f92102f1db6d409104ce236b17 | |
parent | 8609340a7ff318654cde355868c40d06d7713433 (diff) | |
download | gs-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.c | 5 |
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"); |