diff options
| author | Abdulla Anam <abdullahanam@codeaurora.org> | 2016-06-09 13:48:01 +0530 |
|---|---|---|
| committer | Kyle Yan <kyan@codeaurora.org> | 2016-06-29 15:01:53 -0700 |
| commit | a0605c537e7d114081dd726fef625840df517812 (patch) | |
| tree | cf3e58fdd66d26b7d63510343462f3b361e8da3f | |
| parent | 9a3382024f60947b407d01fd0100faca503f5bee (diff) | |
msm: vidc: ensure venus is in power on before scaling clocks
It is to be ensured that venus is in power on state before scaling
clocks. When venus goes to power collapse, a resume can happen
either when driver writes some command to the command queue or any
response comes from firmware. So when client requests a particular
perf_level, venus is not resumed and scale clocks is called.
CRs-Fixed: 1000809
Change-Id: I2ac46c481065ada2b62a5eb248fbdf18f2b1a91f
Signed-off-by: Abdulla Anam <abdullahanam@codeaurora.org>
| -rw-r--r-- | drivers/media/platform/msm/vidc/venus_hfi.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/media/platform/msm/vidc/venus_hfi.c b/drivers/media/platform/msm/vidc/venus_hfi.c index fada1490dcfe..5525e35a029f 100644 --- a/drivers/media/platform/msm/vidc/venus_hfi.c +++ b/drivers/media/platform/msm/vidc/venus_hfi.c @@ -1531,9 +1531,16 @@ static int venus_hfi_scale_clocks(void *dev, int load, } mutex_lock(&device->lock); + + if (__resume(device)) { + dprintk(VIDC_ERR, "Resume from power collapse failed\n"); + rc = -ENODEV; + goto exit; + } + rc = __scale_clocks(device, load, data, instant_bitrate); +exit: mutex_unlock(&device->lock); - return rc; } |
