mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 05:39:54 -04:00
msm: venc: add support for boost for holi
For holi, boost is set as 15%. With the change, a level of 15% can be set to video firmware. Also ensure that the boost is set only when client has set the boost control. CRs-Fixed: 2810440 Change-Id: Ib4e4c5511c57daa78b405f8a92c2ee924b1cc1bd Signed-off-by: Vikash Garodia <vgarodia@codeaurora.org>
This commit is contained in:
parent
af73385543
commit
cc97f61b4b
2 changed files with 17 additions and 3 deletions
|
|
@ -1970,6 +1970,9 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl)
|
|||
case V4L2_CID_MPEG_VIDC_VIDEO_FULL_RANGE:
|
||||
inst->full_range = ctrl->val;
|
||||
break;
|
||||
case V4L2_CID_MPEG_VIDC_VENC_BITRATE_BOOST:
|
||||
inst->boost_enabled = true;
|
||||
break;
|
||||
case V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE:
|
||||
inst->entropy_mode = msm_comm_v4l2_to_hfi(
|
||||
V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE,
|
||||
|
|
@ -2010,7 +2013,6 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl)
|
|||
case V4L2_CID_MPEG_VIDEO_VBV_DELAY:
|
||||
case V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET:
|
||||
case V4L2_CID_MPEG_VIDC_VENC_BITRATE_SAVINGS:
|
||||
case V4L2_CID_MPEG_VIDC_VENC_BITRATE_BOOST:
|
||||
case V4L2_CID_MPEG_VIDC_VENC_QPRANGE_BOOST:
|
||||
case V4L2_CID_MPEG_VIDC_SUPERFRAME:
|
||||
s_vpr_h(sid, "Control set: ID : 0x%x Val : %d\n",
|
||||
|
|
@ -3493,12 +3495,14 @@ int msm_venc_set_bitrate_boost_margin(struct msm_vidc_inst *inst, u32 enable)
|
|||
struct v4l2_ctrl *ctrl = NULL;
|
||||
struct hfi_bitrate_boost_margin boost_margin;
|
||||
int minqp, maxqp;
|
||||
uint32_t vpu;
|
||||
|
||||
if (!inst || !inst->core) {
|
||||
d_vpr_e("%s: invalid params %pK\n", __func__, inst);
|
||||
return -EINVAL;
|
||||
}
|
||||
hdev = inst->core->device;
|
||||
vpu = inst->core->platform_data->vpu_ver;
|
||||
|
||||
if (!enable) {
|
||||
boost_margin.margin = 0;
|
||||
|
|
@ -3507,11 +3511,20 @@ int msm_venc_set_bitrate_boost_margin(struct msm_vidc_inst *inst, u32 enable)
|
|||
|
||||
ctrl = get_ctrl(inst, V4L2_CID_MPEG_VIDC_VENC_BITRATE_BOOST);
|
||||
|
||||
/* Mapped value to 0, 25 or 50*/
|
||||
/*
|
||||
* For certain SOC, default value should be 0 unless client enabled
|
||||
*/
|
||||
if (!inst->boost_enabled && vpu == VPU_VERSION_AR50_LITE) {
|
||||
ctrl->val = 0;
|
||||
update_ctrl(ctrl, 0, inst->sid);
|
||||
}
|
||||
/* Mapped value to 0, 15, 25 or 50*/
|
||||
if (ctrl->val >= 50)
|
||||
boost_margin.margin = 50;
|
||||
else
|
||||
else if (ctrl->val >= 25)
|
||||
boost_margin.margin = (u32)(ctrl->val/25) * 25;
|
||||
else
|
||||
boost_margin.margin = (u32)(ctrl->val/15) * 15;
|
||||
|
||||
setprop:
|
||||
s_vpr_h(inst->sid, "%s: %d\n", __func__, boost_margin.margin);
|
||||
|
|
|
|||
|
|
@ -589,6 +589,7 @@ struct msm_vidc_inst {
|
|||
u64 last_qbuf_time_ns;
|
||||
bool active;
|
||||
bool has_bframe;
|
||||
bool boost_enabled;
|
||||
bool boost_qp_enabled;
|
||||
u32 boost_min_qp;
|
||||
u32 boost_max_qp;
|
||||
|
|
|
|||
Loading…
Reference in a new issue