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

Commit 3cfce630 authored by Umesh Pandey's avatar Umesh Pandey
Browse files

msm:vidc: Driver-firmware interface changes



- Addition of reserved fields in qp_range structure.
- Support for UBWC stats in the driver-firmware interface files.
- TP10 and P010 color format have enum values aligned with 10 bit
  base enum values.
- MBAFF as a separate bitmask for interlace type flag.
- Removal of error detection code extradata.

CRs-Fixed: 1010707
Change-Id: I6ae973506df8c1a1f226afb011040771cf1a65c8
Signed-off-by: default avatarUmesh Pandey <umeshp@codeaurora.org>
parent e713c9df
Loading
Loading
Loading
Loading
+26 −3
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@
#define HFI_BUFFER_EXTRADATA_OUTPUT2 (HFI_OX_BASE + 0x4)
#define HFI_BUFFER_INTERNAL_SCRATCH_1 (HFI_OX_BASE + 0x5)
#define HFI_BUFFER_INTERNAL_SCRATCH_2 (HFI_OX_BASE + 0x6)
#define HFI_BUFFER_INTERNAL_RECON (HFI_OX_BASE + 0x9)

#define HFI_BUFFER_MODE_DYNAMIC (HFI_OX_BASE + 0x3)

@@ -84,6 +85,7 @@
#define HFI_EXTRADATA_FRAME_QP			0x0000000F
#define HFI_EXTRADATA_FRAME_BITS_INFO		0x00000010
#define HFI_EXTRADATA_VPX_COLORSPACE		0x00000014
#define HFI_EXTRADATA_UBWC_CR_STAT_INFO		0x00000019
#define HFI_EXTRADATA_MULTISLICE_INFO		0x7F100000
#define HFI_EXTRADATA_NUM_CONCEALED_MB		0x7F100001
#define HFI_EXTRADATA_INDEX					0x7F100002
@@ -119,6 +121,7 @@ struct hfi_extradata_header {
#define HFI_INTERLACE_INTERLEAVE_FRAME_BOTTOMFIELDFIRST	0x04
#define HFI_INTERLACE_FRAME_TOPFIELDFIRST				0x08
#define HFI_INTERLACE_FRAME_BOTTOMFIELDFIRST			0x10
#define HFI_INTERLACE_FRAME_MBAFF					0x20

#define HFI_PROPERTY_SYS_OX_START			\
	(HFI_DOMAIN_BASE_COMMON + HFI_ARCH_OX_OFFSET + 0x0000)
@@ -135,8 +138,6 @@ struct hfi_extradata_header {
	(HFI_PROPERTY_PARAM_OX_START + 0x006)
#define HFI_PROPERTY_PARAM_S3D_FRAME_PACKING_EXTRADATA	\
	(HFI_PROPERTY_PARAM_OX_START + 0x009)
#define HFI_PROPERTY_PARAM_ERR_DETECTION_CODE_EXTRADATA \
	(HFI_PROPERTY_PARAM_OX_START + 0x00A)
#define  HFI_PROPERTY_PARAM_BUFFER_SIZE_MINIMUM			\
	(HFI_PROPERTY_PARAM_OX_START + 0x00C)
#define HFI_PROPERTY_PARAM_SYNC_BASED_INTERRUPT			\
@@ -591,6 +592,21 @@ struct hfi_msg_session_flush_done_packet {
	u32 flush_type;
};

struct hfi_ubwc_cr_stats_info_type {
	u32 cr_stats_info0;
	u32 cr_stats_info1;
	u32 cr_stats_info2;
	u32 cr_stats_info3;
	u32 cr_stats_info4;
	u32 cr_stats_info5;
	u32 cr_stats_info6;
};

struct hfi_frame_cr_stats_type {
	u32 frame_index;
	struct hfi_ubwc_cr_stats_info_type ubwc_stats_info;
};

struct hfi_msg_session_empty_buffer_done_packet {
	u32 size;
	u32 packet_type;
@@ -601,6 +617,8 @@ struct hfi_msg_session_empty_buffer_done_packet {
	u32 input_tag;
	u32 packet_buffer;
	u32 extra_data_buffer;
	u32 flags;
	struct hfi_frame_cr_stats_type ubwc_cr_stats;
	u32 rgData[0];
};

@@ -761,6 +779,11 @@ struct hfi_extradata_interlace_video_payload {
	u32 format;
};

struct hfi_conceal_color_type {
	u32 value_8bit;
	u32 value_10bit;
};

struct hfi_extradata_num_concealed_mb_payload {
	u32 num_mb_concealed;
};
+9 −5
Original line number Diff line number Diff line
@@ -83,6 +83,7 @@
#define HFI_VIDEO_CODEC_VP9				0x00004000
#define HFI_VIDEO_CODEC_HEVC_HYBRID			0x80000000

#define HFI_PROFILE_UNKNOWN					0x00000000
#define HFI_H264_PROFILE_BASELINE			0x00000001
#define HFI_H264_PROFILE_MAIN				0x00000002
#define HFI_H264_PROFILE_HIGH				0x00000004
@@ -91,6 +92,7 @@
#define HFI_H264_PROFILE_CONSTRAINED_BASE	0x00000020
#define HFI_H264_PROFILE_CONSTRAINED_HIGH	0x00000040

#define HFI_LEVEL_UNKNOWN					0x00000000
#define HFI_H264_LEVEL_1					0x00000001
#define HFI_H264_LEVEL_1b					0x00000002
#define HFI_H264_LEVEL_11					0x00000004
@@ -250,7 +252,7 @@ struct hfi_buffer_info {
#define HFI_PROPERTY_PARAM_VENC_RATE_CONTROL				\
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x004)
#define  HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE		\
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x008)
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x009)
#define  HFI_PROPERTY_PARAM_VENC_OPEN_GOP                   \
	(HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x00C)
#define HFI_PROPERTY_PARAM_VENC_INTRA_REFRESH				\
@@ -537,11 +539,13 @@ struct hfi_quality_vs_speed {
struct hfi_quantization {
	u32 qp_packed;
	u32 layer_id;
	u32 reserved[4];
};

struct hfi_quantization_range {
	struct hfi_quantization min_qp;
	struct hfi_quantization max_qp;
	u32 reserved[4];
};

#define HFI_LTR_MODE_DISABLE	0x0
@@ -617,10 +621,10 @@ struct hfi_picture_type {
#define HFI_COLOR_FORMAT_YUV444				(HFI_COMMON_BASE + 0xE)
#define HFI_COLOR_FORMAT_RGBA8888			(HFI_COMMON_BASE + 0x10)

#define HFI_COLOR_FORMAT_P010						\
		(HFI_COLOR_FORMAT_10_BIT_BASE + HFI_COLOR_FORMAT_NV12)
#define HFI_COLOR_FORMAT_YUV420_TP10					\
		(HFI_COLOR_FORMAT_10_BIT_BASE + HFI_COLOR_FORMAT_NV12_4x4TILE)
		(HFI_COLOR_FORMAT_10_BIT_BASE + HFI_COLOR_FORMAT_NV12)
#define HFI_COLOR_FORMAT_P010					\
		(HFI_COLOR_FORMAT_10_BIT_BASE + HFI_COLOR_FORMAT_NV12 + 0x1)

#define HFI_COLOR_FORMAT_NV12_UBWC					\
		(HFI_COLOR_FORMAT_UBWC_BASE + HFI_COLOR_FORMAT_NV12)