blob: 97cb092f05ef57457924cfbedec4807f2355a171 [file] [log] [blame]
From c6789d28f10096a0f9db4c423ade8165d2bf2277 Mon Sep 17 00:00:00 2001
From: Fritz Koenig <frkoenig@chromium.org>
Date: Wed, 13 Jan 2021 00:26:16 +0000
Subject: [PATCH] FROMLIST: venus: Check for valid device instance
core->dev_dec and core-dev->enc are set up
by the corresponding vdec_probe and venc_probe.
If the probe fails, they will not be set
and so could be null when venus_sys_error_handler
is called.
Fixes: 43e221e485e5 ("media: venus: Rework recovery mechanism")
Signed-off-by: Fritz Koenig <frkoenig@chromium.org>
(am from https://lore.kernel.org/patchwork/patch/1364364/)
BUG=b:177328905
TEST=suspend_stress_test
Change-Id: I0ff12fec0c72a4311a092d272e27e419a7348fbd
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2625991
Tested-by: Fritz Koenig <frkoenig@chromium.org>
Auto-Submit: Fritz Koenig <frkoenig@chromium.org>
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
Commit-Queue: Fritz Koenig <frkoenig@chromium.org>
(cherry picked from commit ad39b429fe21351744f9b329b1e4014c4f1f8909)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2645563
Commit-Queue: Matthias Kaehlcke <mka@chromium.org>
Tested-by: Matthias Kaehlcke <mka@chromium.org>
Auto-Submit: Matthias Kaehlcke <mka@chromium.org>
Reviewed-by: Fritz Koenig <frkoenig@chromium.org>
---
drivers/media/platform/qcom/venus/core.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
index 91b15842c555..ae47b5888a67 100644
--- a/drivers/media/platform/qcom/venus/core.c
+++ b/drivers/media/platform/qcom/venus/core.c
@@ -100,7 +100,8 @@ static void venus_sys_error_handler(struct work_struct *work)
mutex_lock(&core->lock);
for (i = 0; i < max_attempts; i++) {
- if (!pm_runtime_active(core->dev_dec) && !pm_runtime_active(core->dev_enc))
+ if ((!core->dev_dec && !pm_runtime_active(core->dev_dec)) &&
+ (!core->dev_enc && !pm_runtime_active(core->dev_enc)))
break;
msleep(10);
}
--
2.32.0.93.g670b81a890-goog