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

Commit b3ce6da5 authored by Saurabh Kothawade's avatar Saurabh Kothawade Committed by Gerrit - the friendly Code Review server
Browse files

msm: vidc: Adapt driver based on new firmware interface



Update following firmware interface
- Remove max number of B pictures
- Remove VUI info for bitstream restriction flag
- Add UBWC stats complexity number

CRs-Fixed: 2031681
Change-Id: I55dc31ac3899b92ac6e832212800cc99c72a8926
Signed-off-by: default avatarSaurabh Kothawade <skothawa@codeaurora.org>
parent fd8f40e6
Loading
Loading
Loading
Loading
+0 −12
Original line number Diff line number Diff line
@@ -1297,18 +1297,6 @@ int create_pkt_cmd_session_set_property(
			sizeof(struct hfi_quantization_range);
		break;
	}
	case HAL_PARAM_VENC_MAX_NUM_B_FRAMES:
	{
		struct hfi_max_num_b_frames *hfi;

		pkt->rg_property_data[0] =
			HFI_PROPERTY_PARAM_VENC_MAX_NUM_B_FRAMES;
		hfi = (struct hfi_max_num_b_frames *) &pkt->rg_property_data[1];
		memcpy(hfi, (struct hfi_max_num_b_frames *) pdata,
				sizeof(struct hfi_max_num_b_frames));
		pkt->size += sizeof(u32) + sizeof(struct hfi_max_num_b_frames);
		break;
	}
	case HAL_CONFIG_VENC_INTRA_PERIOD:
	{
		struct hfi_intra_period *hfi;
+0 −25
Original line number Diff line number Diff line
@@ -1244,7 +1244,6 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl)
	case V4L2_CID_MPEG_VIDC_VIDEO_NUM_P_FRAMES:
	{
		int num_p, num_b;
		u32 max_num_b_frames;

		temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDC_VIDEO_NUM_B_FRAMES);
		num_b = temp_ctrl->val;
@@ -1257,34 +1256,10 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl)
		else if (ctrl->id == V4L2_CID_MPEG_VIDC_VIDEO_NUM_B_FRAMES)
			num_b = ctrl->val;

		max_num_b_frames = num_b ? MAX_NUM_B_FRAMES : 0;
		property_id = HAL_PARAM_VENC_MAX_NUM_B_FRAMES;
		pdata = &max_num_b_frames;
		rc = call_hfi_op(hdev, session_set_property,
			(void *)inst->session, property_id, pdata);
		if (rc) {
			dprintk(VIDC_ERR,
				"Failed : Setprop MAX_NUM_B_FRAMES %d\n",
				rc);
			break;
		}

		property_id = HAL_CONFIG_VENC_INTRA_PERIOD;
		intra_period.pframes = num_p;
		intra_period.bframes = num_b;

		/*
		 *Incase firmware does not have B-Frame support,
		 *offload the b-frame count to p-frame to make up
		 *for the requested Intraperiod
		 */
		if (!inst->capability.bframe.max) {
			intra_period.pframes = num_p + num_b;
			intra_period.bframes = 0;
			dprintk(VIDC_DBG,
				"No bframe support, changing pframe from %d to %d\n",
				num_p, intra_period.pframes);
		}
		pdata = &intra_period;
		break;
	}
+1 −0
Original line number Diff line number Diff line
@@ -588,6 +588,7 @@ struct hfi_ubwc_cr_stats_info_type {
struct hfi_frame_cr_stats_type {
	u32 frame_index;
	struct hfi_ubwc_cr_stats_info_type ubwc_stats_info;
	u32 complexity_number;
};

struct hfi_msg_session_empty_buffer_done_packet {
+0 −6
Original line number Diff line number Diff line
@@ -191,7 +191,6 @@ enum hal_property {
	HAL_CONFIG_VENC_MAX_BITRATE,
	HAL_PARAM_VENC_H264_VUI_TIMING_INFO,
	HAL_PARAM_VENC_GENERATE_AUDNAL,
	HAL_PARAM_VENC_MAX_NUM_B_FRAMES,
	HAL_PARAM_BUFFER_ALLOC_MODE,
	HAL_PARAM_VDEC_FRAME_ASSEMBLY,
	HAL_PARAM_VENC_PRESERVE_TEXT_QUALITY,
@@ -818,10 +817,6 @@ struct hal_h264_vui_timing_info {
	u32 time_scale;
};

struct hal_h264_vui_bitstream_restrc {
	u32 enable;
};

struct hal_preserve_text_quality {
	u32 enable;
};
@@ -1018,7 +1013,6 @@ union hal_get_property {
	struct hal_multi_view_select multi_view_select;
	struct hal_timestamp_scale timestamp_scale;
	struct hal_h264_vui_timing_info h264_vui_timing_info;
	struct hal_h264_vui_bitstream_restrc h264_vui_bitstream_restrc;
	struct hal_preserve_text_quality preserve_text_quality;
	struct hal_buffer_info buffer_info;
	struct hal_buffer_alloc_mode buffer_alloc_mode;
+0 −6
Original line number Diff line number Diff line
@@ -276,8 +276,6 @@ struct hfi_buffer_info {
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x01D)
#define HFI_PROPERTY_PARAM_VENC_H264_VUI_TIMING_INFO	\
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x01E)
#define  HFI_PROPERTY_PARAM_VENC_MAX_NUM_B_FRAMES \
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x020)
#define HFI_PROPERTY_PARAM_VENC_LOW_LATENCY_MODE	\
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x022)
#define HFI_PROPERTY_PARAM_VENC_PRESERVE_TEXT_QUALITY \
@@ -465,10 +463,6 @@ struct hfi_operations_type {
	u32 flip;
};

struct hfi_max_num_b_frames {
	u32 max_num_b_frames;
};

struct hfi_conceal_color {
	u32 conceal_color;
};