Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 300c8594 authored by Sowmya Pandiri's avatar Sowmya Pandiri
Browse files

msm: vidc: kill unsupported sessions



Unsupported sessions are not being killed when hardware
overload error occurs, so these sessions are not closed
inside video hardware resulting in max clients error
from video hardware for the following supported sessions.
Hence driver need to kill the unsupported sessions to
avoid max clients error for the supported sessions.

Change-Id: I37a839a59db3ec1a0e526730475fbe8b935ccede
Signed-off-by: default avatarMaheshwar Ajja <majja@codeaurora.org>
Signed-off-by: default avatarSowmya Pandiri <spandiri@codeaurora.org>
parent 66f4f85a
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -597,8 +597,8 @@ static void change_inst_state(struct msm_vidc_inst *inst,
	mutex_lock(&inst->lock);
	if (inst->state == MSM_VIDC_CORE_INVALID) {
		dprintk(VIDC_DBG,
			"Inst: %p is in bad state can't change state\n",
			inst);
			"Inst: %p is in bad state can't change state to %d\n",
			inst, state);
		goto exit;
	}
	dprintk(VIDC_DBG, "Moved inst: %p from state: %d to state: %d\n",
@@ -2298,6 +2298,7 @@ core_already_uninited:

int msm_comm_force_cleanup(struct msm_vidc_inst *inst)
{
	msm_comm_kill_session(inst);
	return msm_vidc_deinit_core(inst);
}

@@ -4489,6 +4490,7 @@ int msm_vidc_check_session_supported(struct msm_vidc_inst *inst)
	rc = msm_vidc_load_supported(inst);
	if (rc) {
		change_inst_state(inst, MSM_VIDC_CORE_INVALID);
		msm_comm_kill_session(inst);
		dprintk(VIDC_WARN,
			"%s: Hardware is overloaded\n", __func__);
		return rc;
@@ -4534,6 +4536,7 @@ int msm_vidc_check_session_supported(struct msm_vidc_inst *inst)
	}
	if (rc) {
		change_inst_state(inst, MSM_VIDC_CORE_INVALID);
		msm_comm_kill_session(inst);
		dprintk(VIDC_ERR,
			"%s: Resolution unsupported\n", __func__);
	}