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

Commit 54b92df6 authored by Saurabh Kothawade's avatar Saurabh Kothawade
Browse files

msm: vidc: Avoid recursion for operating rate



Currently, video driver updates value and range when
client sets control for operating rate. Range update
indirectly triggers set control, resulting in
recursion. The function for range update uses mutex and
its recursion results in deadlock.

CRs-Fixed: 2076840
Change-Id: I475c378a360729db8b207008c48b04c1d4d20b44
Signed-off-by: default avatarSaurabh Kothawade <skothawa@codeaurora.org>
parent 4d9a308b
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -1056,9 +1056,6 @@ int msm_vdec_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl)
			inst, inst->clk_data.operating_rate >> 16,
				ctrl->val >> 16);
		inst->clk_data.operating_rate = ctrl->val;

		msm_vidc_update_operating_rate(inst);

		break;
	default:
		break;
+0 −2
Original line number Diff line number Diff line
@@ -1748,8 +1748,6 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl)
				ctrl->val >> 16);
		inst->clk_data.operating_rate = ctrl->val;

		msm_vidc_update_operating_rate(inst);

		break;
	case V4L2_CID_MPEG_VIDC_VIDEO_VENC_BITRATE_TYPE:
	{
+0 −2
Original line number Diff line number Diff line
@@ -791,8 +791,6 @@ void msm_clock_data_reset(struct msm_vidc_inst *inst)

	msm_dcvs_print_dcvs_stats(dcvs);

	msm_vidc_update_operating_rate(inst);

	rc = msm_comm_scale_clocks_and_bus(inst);

	if (rc)