/******************************************************************************/ /** * * @file drv_gfx.h * * @brief This file specifies the APIs provided to control GFX(Graphics Input) * * @note Copyright (c) 2013 S2 Technology Co., Ltd. \n * All rights reserved. * * @author * ******************************************************************************/ #ifndef __DRV_GFX_H__ #define __DRV_GFX_H__ /******************************************************************************* * Header include ******************************************************************************/ #include "drv_types.h" #include "drv_pq_external.h" typedef enum _DRV_GFX_YUV_TYPE { eGFX_YUV_444_10bit=0, eGFX_YUV_444_8bit, eGFX_YUV_422_10bit, eGFX_YUV_422_8bit, } DRV_GFX_YUV_TYPE; typedef enum _DRV_GFX_YCBCR_RANGE { eGFX_YCBCR_235=0, eGFX_YCBCR_255, eGFX_YCBCR_NONE, } DRV_GFX_YCBCR_RANGE; void DRV_GFX_Enable(BOOL fEnable); void DRV_GFX_Reset(BOOL fEnable); void DRV_GFX_SetYUVTypeAndChromaFilter(DRV_GFX_YUV_TYPE eType, BOOL fEnable); UINT8 DRV_GFX_GetYUVType(DRV_GFX_YUV_TYPE eType); void DRV_GFX_SetMem_Y_Offset(UINT32 offset); UINT32 DRV_GFX_GetMem_Y_Offset(void); void DRV_GFX_SetMem_Y_Size(UINT32 size); void DRV_GFX_SetMem_UV_Offset(UINT32 offset); void DRV_GFX_SetMem_UV_Size(UINT32 size); void DRV_GFX_SetMem_Motion_Offset(UINT32 offset); void DRV_GFX_SetMem_Motion_Size(UINT32 size); void DRV_GFX_SetMem_MBW_Offset(UINT32 offset); void DRV_GFX_SetMem_MBW_Size(UINT32 size); void DRV_GFX_SetMem_Pack_Width(UINT32 y_width,UINT32 uv_width, UINT32 mo_width, UINT32 mbw_width); void DRV_GFX_SetMem_Y_StartAddress(UINT32 f0, UINT32 f1, UINT32 f2, UINT32 f3); void DRV_GFX_SetMem_UV_StartAddress(UINT32 f0, UINT32 f1, UINT32 f2, UINT32 f3); void DRV_GFX_SetMem_MotionMBW_StartAddress(UINT32 f0); void DRV_GFX_SetRGB2YCbCrRange(DRV_GFX_YCBCR_RANGE eRange); void DRV_GFX_SetDither(BOOL fEnable); void DRV_GFX_SetMem_YUV888SizeAndPackwidth(UINT32 y_size, UINT32 uv_size, UINT32 y_width, UINT32 uv_width); void DRV_GFX_SetMem_LastNum(UINT32 y_lastnum, UINT32 uv_lastnum, UINT32 mo_lastnum, UINT32 mbw_lastnum); void DRV_GFX_SetMem_LastNum_8bit(UINT32 y_lastnum, UINT32 uv_lastnum); void DRV_GFX_SetMotionDataWrite(BOOL fEnable); void DRV_GFX_SetDoubleFrameBuffer(BOOL fEnable); void DRV_GFX_SetUseVDIAddressing(BOOL fEnable); void DRV_GFX_SetMem_420Format(BOOL fEnable); void DRV_GFX_SetY8bit(BOOL fEnable); void DRV_GFX_SetMem_Pack_LastPopOperaMode(BOOL fEnable); void DRV_GFX_SetMQThr(UINT32 nValue); void DRV_GFX_SetColorCross_Offset(UINT32 y_dat_offset, UINT32 y_cnt_offset, UINT32 c_dat_offset, UINT32 c_cnt_offset); void DRV_GFX_SetColorCross_Size(UINT32 y_dat_size, UINT32 y_cnt_size, UINT32 c_dat_size, UINT32 c_cnt_size); void DRV_GFX_SetColorCross_Width(UINT32 y_dat_width, UINT32 y_cnt_width, UINT32 c_dat_width, UINT32 c_cnt_width); void DRV_GFX_SetHsyncMode(UINT8 cMode); /** * @brief Control GFX RGB to YCbCr matrix reference HW orignal 601 matrix or SW setting * * This function control GFX RGB to YCbCr matrix * * @param uEnable : value 0 mean convert by 601 matrix(HW orignal design), 1 mean GFX matrix will reference GFX_RGB2YCBCR_MAT_A11 ~ GFX_RGB2YCBCR_MAT_A34 setting * * @return : n/a */ void DRV_GFX_SetRGB2YCbCrMatrixOpt(BOOL uEnable); /** * @brief Set parameter to the RGB to YCbCr matrix in GFX * * This function set parameter to the RGB to YCbCr matrix in GFX * * @param matrix coefficient * * @return : n/a */ void DRV_GFX_SetMatrix(CSC_SETTING* pRGB2YCCMatrix); /** * @brief Set GFX memory request opteration * * This function design to prevent current lint send request before previos line send last request * * @param uEnable = 0 to disable function, 1 to prevent current lint send request before previos line send last request * * @return : n/a */ void DRV_GFX_MemRequestOpt(BOOL uEnable); /** * @brief Set GFX Read/Write memory enable/disable * * This function design to control GFX read/write memory operation * * @param uEnable = 0 to disable GFX read/write memory operation, 0x3f to enable GFX read/write memory operation * * @return : n/a */ void DRV_GFX_MemReadWriteEnable(BOOL uEnable); #endif