Merge "driver: video: Reset sequence change request property only during psc handling"
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

commit
aaab46d99b
@@ -504,9 +504,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = {
|
||||
1, V4L2_MPEG_MSM_VIDC_DISABLE,
|
||||
V4L2_CID_MPEG_VIDC_LOWLATENCY_REQUEST,
|
||||
HFI_PROP_SEQ_CHANGE_AT_SYNC_FRAME,
|
||||
CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED,
|
||||
{0}, {0},
|
||||
NULL, msm_vidc_set_seq_change_at_sync_frame},
|
||||
CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED},
|
||||
|
||||
{LTR_COUNT, ENC, H264|HEVC,
|
||||
0, 2, 1, 0,
|
||||
|
@@ -98,8 +98,7 @@ int msm_vidc_set_csc_custom_matrix(void *instance,
|
||||
enum msm_vidc_inst_capability_type cap_id);
|
||||
int msm_vidc_set_session_priority(void* instance,
|
||||
enum msm_vidc_inst_capability_type cap_id);
|
||||
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 msm_vidc_set_level(void *instance,
|
||||
enum msm_vidc_inst_capability_type cap_id);
|
||||
int msm_vidc_set_s32(void *instance,
|
||||
|
@@ -762,7 +762,7 @@ static int msm_vdec_set_output_properties(struct msm_vidc_inst *inst)
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
rc = msm_vidc_set_seq_change_at_sync_frame(inst, LOWLATENCY_MODE);
|
||||
rc = msm_vidc_set_seq_change_at_sync_frame(inst);
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
@@ -2044,6 +2044,10 @@ int msm_vdec_process_cmd(struct msm_vidc_inst *inst, u32 cmd)
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
rc = msm_vidc_set_seq_change_at_sync_frame(inst);
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
rc = venus_hfi_session_command(inst,
|
||||
HFI_CMD_RESUME,
|
||||
port,
|
||||
|
@@ -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);
|
||||
@@ -3615,8 +3623,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;
|
||||
@@ -3628,7 +3635,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