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

Commit 913f2fe4 authored by Kyle Yan's avatar Kyle Yan Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: vidc: Update Intra refresh handling" into msm-4.9

parents b8e6c792 abed16c9
Loading
Loading
Loading
Loading
+2 −10
Original line number Diff line number Diff line
@@ -1481,21 +1481,13 @@ int create_pkt_cmd_session_set_property(
		case HAL_INTRA_REFRESH_NONE:
			hfi->mode = HFI_INTRA_REFRESH_NONE;
			break;
		case HAL_INTRA_REFRESH_ADAPTIVE:
			hfi->mode = HFI_INTRA_REFRESH_ADAPTIVE;
			hfi->mbs = prop->air_mbs;
			break;
		case HAL_INTRA_REFRESH_CYCLIC:
			hfi->mode = HFI_INTRA_REFRESH_CYCLIC;
			hfi->mbs = prop->cir_mbs;
			break;
		case HAL_INTRA_REFRESH_CYCLIC_ADAPTIVE:
			hfi->mode = HFI_INTRA_REFRESH_CYCLIC_ADAPTIVE;
			hfi->mbs = prop->air_mbs;
			hfi->mbs = prop->ir_mbs;
			break;
		case HAL_INTRA_REFRESH_RANDOM:
			hfi->mode = HFI_INTRA_REFRESH_RANDOM;
			hfi->mbs = prop->air_mbs;
			hfi->mbs = prop->ir_mbs;
			break;
		default:
			dprintk(VIDC_ERR,
+11 −18
Original line number Diff line number Diff line
@@ -1646,38 +1646,31 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl)
		pdata = &enable;
		break;
	}
	case V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_MODE: {
		struct v4l2_ctrl *air_mbs, *air_ref = NULL, *cir_mbs = NULL;
		bool is_cont_intra_supported = false;

		air_mbs = TRY_GET_CTRL(V4L2_CID_MPEG_VIDC_VIDEO_IR_MBS);
	case V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_MODE:
	{
		struct v4l2_ctrl *ir_mbs;

		is_cont_intra_supported =
		(inst->fmts[CAPTURE_PORT].fourcc == V4L2_PIX_FMT_H264) ||
		(inst->fmts[CAPTURE_PORT].fourcc == V4L2_PIX_FMT_HEVC);
		ir_mbs = TRY_GET_CTRL(V4L2_CID_MPEG_VIDC_VIDEO_IR_MBS);

		property_id = HAL_PARAM_VENC_INTRA_REFRESH;

		intra_refresh.mode   = ctrl->val;
		intra_refresh.air_mbs = air_mbs->val;
		intra_refresh.air_ref = air_ref->val;
		intra_refresh.cir_mbs = cir_mbs->val;
		intra_refresh.ir_mbs = ir_mbs->val;

		pdata = &intra_refresh;
		break;
	}
	case V4L2_CID_MPEG_VIDC_VIDEO_IR_MBS: {
		struct v4l2_ctrl *ir_mode, *air_ref = NULL, *cir_mbs = NULL;
	case V4L2_CID_MPEG_VIDC_VIDEO_IR_MBS:
	{
		struct v4l2_ctrl *ir_mode;

		ir_mode = TRY_GET_CTRL(
				V4L2_CID_MPEG_VIDC_VIDEO_INTRA_REFRESH_MODE);

		property_id = HAL_PARAM_VENC_INTRA_REFRESH;

		intra_refresh.air_mbs = ctrl->val;
		intra_refresh.mode   = ir_mode->val;
		intra_refresh.air_ref = air_ref->val;
		intra_refresh.cir_mbs = cir_mbs->val;
		intra_refresh.ir_mbs = ctrl->val;

		pdata = &intra_refresh;
		break;
+1 −6
Original line number Diff line number Diff line
@@ -234,7 +234,6 @@ enum hal_property {
	HAL_PARAM_VENC_BITRATE_TYPE,
	HAL_PARAM_VENC_H264_PIC_ORDER_CNT,
	HAL_PARAM_VENC_LOW_LATENCY,
	HAL_PARAM_VENC_CONSTRAINED_INTRA_PRED,
	HAL_CONFIG_VENC_BLUR_RESOLUTION,
	HAL_PARAM_VENC_H264_TRANSFORM_8x8,
	HAL_PARAM_VENC_VIDEO_SIGNAL_INFO,
@@ -793,17 +792,13 @@ struct hal_operations {
enum hal_intra_refresh_mode {
	HAL_INTRA_REFRESH_NONE,
	HAL_INTRA_REFRESH_CYCLIC,
	HAL_INTRA_REFRESH_ADAPTIVE,
	HAL_INTRA_REFRESH_CYCLIC_ADAPTIVE,
	HAL_INTRA_REFRESH_RANDOM,
	HAL_UNUSED_INTRA = 0x10000000,
};

struct hal_intra_refresh {
	enum hal_intra_refresh_mode mode;
	u32 air_mbs;
	u32 air_ref;
	u32 cir_mbs;
	u32 ir_mbs;
};

enum hal_multi_slice {
+1 −3
Original line number Diff line number Diff line
@@ -454,9 +454,7 @@ struct hfi_frame_rate {

#define HFI_INTRA_REFRESH_NONE				(HFI_COMMON_BASE + 0x1)
#define HFI_INTRA_REFRESH_CYCLIC			(HFI_COMMON_BASE + 0x2)
#define HFI_INTRA_REFRESH_ADAPTIVE			(HFI_COMMON_BASE + 0x3)
#define HFI_INTRA_REFRESH_CYCLIC_ADAPTIVE	(HFI_COMMON_BASE + 0x4)
#define HFI_INTRA_REFRESH_RANDOM			(HFI_COMMON_BASE + 0x5)
#define HFI_INTRA_REFRESH_RANDOM			(HFI_COMMON_BASE + 0x3)

struct hfi_intra_refresh {
	u32 mode;