summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbdulla Anam <abdullahanam@codeaurora.org>2016-07-11 20:35:09 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2016-07-18 22:22:58 -0700
commit8ce0856ed37de3f9bd3f12ffc3ff484b40eacb82 (patch)
treeaa70107a64484dd7eb7999e2aee533280b60ff03
parentc4873787c3ee5bbbf33082273cbce2f7c8dc16de (diff)
msm: vidc: check for venus_hfi_device state in resume
Now since resume is called to ensure venus is in power on state during scale clocks, an issue is seen when client responds to an error notification with stream_off. This causes scale clocks to be called which powers_on venus and enable regulators. But an earlier sys_error deinited all resources and hence a null pointer exception is seen causing kernel panic. CRs-Fixed: 1040026 Change-Id: Ibb660397f8e7e3e0cd0a5e672924925e605b2eb7 Signed-off-by: Abdulla Anam <abdullahanam@codeaurora.org>
-rw-r--r--drivers/media/platform/msm/vidc/venus_hfi.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/media/platform/msm/vidc/venus_hfi.c b/drivers/media/platform/msm/vidc/venus_hfi.c
index df4c99b50cd1..ac53b3bcb4ed 100644
--- a/drivers/media/platform/msm/vidc/venus_hfi.c
+++ b/drivers/media/platform/msm/vidc/venus_hfi.c
@@ -4249,6 +4249,9 @@ static inline int __resume(struct venus_hfi_device *device)
} else if (device->power_enabled) {
dprintk(VIDC_DBG, "Power is already enabled\n");
goto exit;
+ } else if (!__core_in_valid_state(device)) {
+ dprintk(VIDC_DBG, "venus_hfi_device in deinit state.");
+ return -EINVAL;
}
dprintk(VIDC_DBG, "Resuming from power collapse\n");