1f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park/*
2f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park * drivers/media/platform/s5p-mfc/s5p_mfc_opr_v6.h
3f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park *
4f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park * Header file for Samsung MFC (Multi Function Codec - FIMV) driver
5f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park * Contains declarations of hw related functions.
6f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park *
7f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park * Copyright (c) 2012 Samsung Electronics Co., Ltd.
8f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park *		http://www.samsung.com/
9f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park *
10f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park * This program is free software; you can redistribute it and/or modify
11f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park * it under the terms of the GNU General Public License version 2 as
12f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park * published by the Free Software Foundation.
13f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park */
14f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park
15f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park#ifndef S5P_MFC_OPR_V6_H_
16f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park#define S5P_MFC_OPR_V6_H_
17f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park
18f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park#include "s5p_mfc_common.h"
19f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park#include "s5p_mfc_opr.h"
20f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park
21f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park#define MFC_CTRL_MODE_CUSTOM	MFC_CTRL_MODE_SFR
22f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park
23f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park#define MB_WIDTH(x_size)		DIV_ROUND_UP(x_size, 16)
24f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park#define MB_HEIGHT(y_size)		DIV_ROUND_UP(y_size, 16)
25f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park#define S5P_MFC_DEC_MV_SIZE_V6(x, y)	(MB_WIDTH(x) * \
26f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park					(((MB_HEIGHT(y)+1)/2)*2) * 64 + 128)
27f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park
28f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park/* Definition */
29f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park#define ENC_MULTI_SLICE_MB_MAX		((1 << 30) - 1)
30f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park#define ENC_MULTI_SLICE_BIT_MIN		2800
31f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park#define ENC_INTRA_REFRESH_MB_MAX	((1 << 18) - 1)
32f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park#define ENC_VBV_BUF_SIZE_MAX		((1 << 30) - 1)
33f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park#define ENC_H264_LOOP_FILTER_AB_MIN	-12
34f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park#define ENC_H264_LOOP_FILTER_AB_MAX	12
35f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park#define ENC_H264_RC_FRAME_RATE_MAX	((1 << 16) - 1)
36f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park#define ENC_H263_RC_FRAME_RATE_MAX	((1 << 16) - 1)
37f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park#define ENC_H264_PROFILE_MAX		3
38f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park#define ENC_H264_LEVEL_MAX		42
39f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park#define ENC_MPEG4_VOP_TIME_RES_MAX	((1 << 16) - 1)
40f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park#define FRAME_DELTA_H264_H263		1
41f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park#define TIGHT_CBR_MAX			10
42f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park
43f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Parkstruct s5p_mfc_hw_ops *s5p_mfc_init_hw_ops_v6(void);
446a9c6f681257985468e4835bf9f911ec56482f02Kiran AVNDconst struct s5p_mfc_regs *s5p_mfc_init_regs_v6_plus(struct s5p_mfc_dev *dev);
45f96f3cfa0bb8f777fe877d7f881bf7ee58bd162aJeongtae Park#endif /* S5P_MFC_OPR_V6_H_ */
46