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