driver: video: Reset sequence change request property only during psc handling
Sequence change property would configure firmware to generate psc at every key frame. This property is configured based on low latency settings from the client. For cases, when client sets low latency from 1 to 0, the hardware would continue to run in direct mode (low latency mode). Since the sequence change property gets disabled, there would not be psc from firmware to change the mode to 2 stage. Hence the sequence change property to be reset only during psc handling. Change-Id: Ie8e17e44c921f036763f6f390397d4d812120e23 Signed-off-by: Vikash Garodia <vgarodia@codeaurora.org>
This commit is contained in:
@@ -808,6 +808,14 @@ int msm_v4l2_op_s_ctrl(struct v4l2_ctrl *ctrl)
|
||||
goto exit;
|
||||
}
|
||||
|
||||
if (ctrl->id == V4L2_CID_MPEG_VIDC_LOWLATENCY_REQUEST) {
|
||||
if (ctrl->val == V4L2_MPEG_MSM_VIDC_ENABLE) {
|
||||
rc = msm_vidc_set_seq_change_at_sync_frame(inst);
|
||||
if (rc)
|
||||
return rc;
|
||||
}
|
||||
}
|
||||
|
||||
exit:
|
||||
if (rc)
|
||||
msm_vidc_free_capabililty_list(inst, CHILD_LIST | FW_LIST);
|
||||
@@ -3619,8 +3627,7 @@ int msm_vidc_set_pipe(void *instance,
|
||||
return rc;
|
||||
}
|
||||
|
||||
int msm_vidc_set_seq_change_at_sync_frame(void* instance,
|
||||
enum msm_vidc_inst_capability_type cap_id)
|
||||
int msm_vidc_set_seq_change_at_sync_frame(void *instance)
|
||||
{
|
||||
int rc = 0;
|
||||
u32 payload;
|
||||
@@ -3632,7 +3639,7 @@ int msm_vidc_set_seq_change_at_sync_frame(void* instance,
|
||||
}
|
||||
|
||||
payload = inst->capabilities->cap[LOWLATENCY_MODE].value;
|
||||
rc = msm_vidc_packetize_control(inst, cap_id, HFI_PAYLOAD_U32,
|
||||
rc = msm_vidc_packetize_control(inst, LOWLATENCY_MODE, HFI_PAYLOAD_U32,
|
||||
&payload, sizeof(u32), __func__);
|
||||
if (rc)
|
||||
return rc;
|
||||
|
Reference in New Issue
Block a user