video: driver: follow vcodec power collapse seq for PC failure case

if PC fails for 10 times then video driver is treating that situation
as fatal and doing force core_deinit(), in this case firmware will not
follow vcodec power_collapse sequence and if there any pending
transaction from any session it will cause smmu_fault during next
firmware_boot sequence. Added change to perform vcodec power_collapse
from power_off_iris3_hardware() incase of core_deinit due to PC failure.

Change-Id: I45e32985d87b5cc882c4f96f77d1cabc796e6ba0
Signed-off-by: Govindaraj Rajagopal <quic_grajagop@quicinc.com>
Signed-off-by: Ankush Mitra <quic_ankumitr@quicinc.com>
This commit is contained in:
Ankush Mitra
2022-09-07 18:50:21 +05:30
committed by Gerrit - the friendly Code Review server
parent 78246c24fb
commit dc39a04e6e
5 changed files with 27 additions and 13 deletions

View File

@@ -4905,6 +4905,7 @@ int msm_vidc_core_init_wait(struct msm_vidc_core *core)
} else {
d_vpr_h("%s: sys init wait timedout. state %s\n",
__func__, core_state_name(core->state));
core->video_unresponsive = true;
rc = -EINVAL;
goto unlock;
}
@@ -4979,6 +4980,8 @@ int msm_vidc_inst_timeout(struct msm_vidc_inst *inst)
rc = -EINVAL;
goto unlock;
}
/* mark video hw unresponsive */
core->video_unresponsive = true;
/* call core deinit for a valid instance timeout case */
msm_vidc_core_deinit_locked(core, true);