Commit fc92b92a authored by Smitha T Murthy's avatar Smitha T Murthy Committed by Mauro Carvalho Chehab
Browse files

media: s5p-mfc: Add VP9 decoder support



Add support for codec definition and corresponding buffer
requirements for VP9 decoder.

Signed-off-by: default avatarSmitha T Murthy <smitha.t@samsung.com>
Reviewed-by: default avatarAndrzej Hajda <a.hajda@samsung.com>
Acked-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarSylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent c9fcd51c
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@
/* MFCv10 register definitions*/
#define S5P_FIMV_MFC_CLOCK_OFF_V10			0x7120
#define S5P_FIMV_MFC_STATE_V10				0x7124
#define S5P_FIMV_D_STATIC_BUFFER_ADDR_V10		0xF570
#define S5P_FIMV_D_STATIC_BUFFER_SIZE_V10		0xF574

/* MFCv10 Context buffer sizes */
#define MFC_CTX_BUF_SIZE_V10		(30 * SZ_1K)
@@ -33,8 +35,12 @@

/* MFCv10 codec defines*/
#define S5P_FIMV_CODEC_HEVC_DEC		17
#define S5P_FIMV_CODEC_VP9_DEC		18
#define S5P_FIMV_CODEC_HEVC_ENC         26

/* Decoder buffer size for MFC v10 */
#define DEC_VP9_STATIC_BUFFER_SIZE	20480

/* Encoder buffer size for MFC v10.0 */
#define ENC_V100_BASE_SIZE(x, y) \
	(((x + 3) * (y + 3) * 8) \
+3 −0
Original line number Diff line number Diff line
@@ -104,6 +104,9 @@ static int s5p_mfc_open_inst_cmd_v6(struct s5p_mfc_ctx *ctx)
	case S5P_MFC_CODEC_HEVC_DEC:
		codec_type = S5P_FIMV_CODEC_HEVC_DEC;
		break;
	case S5P_MFC_CODEC_VP9_DEC:
		codec_type = S5P_FIMV_CODEC_VP9_DEC;
		break;
	case S5P_MFC_CODEC_H264_ENC:
		codec_type = S5P_FIMV_CODEC_H264_ENC_V6;
		break;
+1 −0
Original line number Diff line number Diff line
@@ -73,6 +73,7 @@
#define S5P_MFC_CODEC_VC1RCV_DEC	6
#define S5P_MFC_CODEC_VP8_DEC		7
#define S5P_MFC_CODEC_HEVC_DEC		17
#define S5P_MFC_CODEC_VP9_DEC		18

#define S5P_MFC_CODEC_H264_ENC		20
#define S5P_MFC_CODEC_H264_MVC_ENC	21
+7 −0
Original line number Diff line number Diff line
@@ -151,6 +151,13 @@ static struct s5p_mfc_fmt formats[] = {
		.num_planes	= 1,
		.versions	= MFC_V10_BIT,
	},
	{
		.fourcc		= V4L2_PIX_FMT_VP9,
		.codec_mode	= S5P_FIMV_CODEC_VP9_DEC,
		.type		= MFC_FMT_DEC,
		.num_planes	= 1,
		.versions	= MFC_V10_BIT,
	},
};

#define NUM_FORMATS ARRAY_SIZE(formats)
+2 −0
Original line number Diff line number Diff line
@@ -170,6 +170,8 @@ struct s5p_mfc_regs {
	void __iomem *d_used_dpb_flag_upper;/* v7 and v8 */
	void __iomem *d_used_dpb_flag_lower;/* v7 and v8 */
	void __iomem *d_min_scratch_buffer_size; /* v10 */
	void __iomem *d_static_buffer_addr; /* v10 */
	void __iomem *d_static_buffer_size; /* v10 */

	/* encoder registers */
	void __iomem *e_frame_width;
Loading