1 #ifndef _TVE_PRIVATE_ 2 #define _TVE_PRIVATE_ 3 4 #include "drvTVEncoder.h" 5 #include "utopia_relation.h" 6 7 #define MAGIC_NUM 0x12345678 8 9 typedef const VE_DrvInfo * (*IOCTL_VE_GetInfo) (void); 10 typedef VE_Result (*IOCTL_VE_GetStatus) (VE_DrvStatus* pDrvStatus); 11 typedef void (*IOCTL_VE_SetDbgLevel) (MS_U16 level); 12 typedef void (*IOCTL_VE_SwitchInputSource) (PMS_Switch_VE_Src_Info pSwitchInfo); 13 typedef MS_SWITCH_VE_SRC_STATUS (*IOCTL_VE_SetInputSource) (PMS_VE_InputSrc_Info pInputSrcInfo); 14 typedef void (*IOCTL_VE_SwitchOuputDest) (PMS_Switch_VE_Dest_Info pSwitchInfo); 15 typedef void (*IOCTL_VE_SetOutputCtrl) (PMS_VE_Output_Ctrl pOutputCtrl); 16 typedef MS_BOOL (*IOCTL_VE_SetOutputVideoStd) (MS_VE_VIDEOSYS VideoSystem); 17 typedef void (*IOCTL_VE_SetMemoryBaseAddr) (MS_PHY phyMIUAddress, MS_U32 u32MIUSize); 18 typedef void (*IOCTL_VE_Init) (MS_PHY u32MIUAddress); 19 typedef MS_BOOL (*IOCTL_VE_Exit) (void); 20 typedef void (*IOCTL_VE_SetWSSData) (MS_BOOL bEn, MS_U16 u16WSSData); 21 typedef MS_U16 (*IOCTL_VE_GetWSSData) (void); 22 typedef void (*IOCTL_VE_SetMode) (MS_VE_Set_Mode_Type *pVESetMode); 23 typedef void (*IOCTL_VE_SetBlackScreen) (MS_BOOL bEn); 24 typedef MS_BOOL (*IOCTL_VE_IsBlackScreenEnabled) (void); 25 typedef void (*IOCTL_VE_SetTtxBuffer) (MS_PHY u32StartAddr, MS_U32 u32Size); 26 typedef MS_BOOL (*IOCTL_VE_GetTtxReadDoneStatus) (void); 27 typedef void (*IOCTL_VE_EnableCcSw) (MS_BOOL bEnable); 28 typedef void (*IOCTL_VE_SetCcRange) (MS_U16 odd_start, MS_U16 odd_end, MS_U16 even_start, MS_U16 enen_end); 29 typedef void (*IOCTL_VE_SendCcData) (MS_BOOL bIsOdd, MS_U16 data); 30 typedef void (*IOCTL_VE_set_display_window) (MS_VE_WINDOW_TYPE stDispWin); 31 typedef void (*IOCTL_VE_SetOSD) (MS_BOOL bEnable); 32 typedef void (*IOCTL_VE_SetRGBIn) (MS_BOOL bEnable); 33 typedef MS_VE_VIDEOSYS (*IOCTL_VE_Get_Output_Video_Std) (void); 34 typedef void (*IOCTL_VE_SetCaptureMode) (MS_BOOL bEnable); 35 typedef MS_BOOL (*IOCTL_VE_GetDstInfo) (MS_VE_DST_DispInfo *pDstInfo, MS_U32 u32SizeofDstInfo); 36 typedef void (*IOCTL_VE_Set_TestPattern) (MS_BOOL bEn); 37 typedef VE_Result (*IOCTL_VE_DisableRegWrite) (MS_BOOL bFlag); 38 typedef VE_Result (*IOCTL_VE_AdjustPositionBase) (MS_S32 s32WAddrAdjustment, MS_S32 s32RAddrAdjustment); 39 typedef VE_Result (*IOCTL_VE_Set_Customer_Scaling) (MS_VE_CusScalingInfo *pstVECusScalingInfo); 40 typedef void (*IOCTL_VE_InitVECapture) (PMS_VE_Output_CAPTURE pVECapture); 41 typedef MS_BOOL (*IOCTL_VE_EnaVECapture) (PMS_VE_VECAPTURESTATE pstVECapState); 42 typedef VE_Result (*IOCTL_VE_Adjust_FrameStart) (MS_VE_WINDOW_TYPE *stSrcWin,MS_S16 pixel_offset); 43 typedef MS_U32 (*IOCTL_TVE_SetPowerState) (EN_POWER_MODE u16PowerState); 44 typedef MS_BOOL (*IOCTL_VE_SetCusTable) (MS_VE_VIDEOSYS VideoSystem, MS_U8* pTbl); 45 typedef void (*IOCTL_VE_EnableCusTable) (MS_BOOL bEnable); 46 typedef VE_Result (*IOCTL_VE_SetFrameColor) (MS_U32 u32aRGB); 47 typedef VE_Result (*IOCTL_VE_Set_OSDLayer) (MS_VE_OSD_LAYER_SEL eVideoOSDLayer); 48 typedef MS_VE_OSD_LAYER_SEL (*IOCTL_VE_Get_OSDLayer) (void); 49 typedef VE_Result (*IOCTL_VE_Set_VideoAlpha) (MS_U8 u8Val); 50 typedef VE_Result (*IOCTL_VE_Get_VideoAlpha) (MS_U8 *pu8Val); 51 typedef VE_Result (*IOCTL_VE_DCS_SetType) (MS_BOOL bEnable, MS_U32 eType); 52 typedef VE_Result (*IOCTL_VE_DCS_SetActivationKey) (MS_U8 *pu8ActivationKeyTbl, MS_U8 u8ActivationKeyTblSize); 53 typedef VE_Result (*IOCTL_VE_ReloadSetting) (void); 54 typedef MS_BOOL (*IOCTL_VE_GetConfig) (void* pInstance, MS_PHY *pMIUAddress); 55 56 57 typedef struct __attribute__((packed)) 58 { 59 MS_BOOL bInited_Drv; 60 MS_U32 u32Magic; 61 MS_PHY u32MIUAddress; 62 }TVENCODER_RESOURCE_PRIVATE; 63 64 typedef struct 65 { 66 //MS_BOOL bInited_Drv; 67 //IOCTL_TVENCODER_SETINPUTSRC fpTVESetInputSRC; 68 IOCTL_VE_GetInfo fpVE_GetInfo; 69 IOCTL_VE_GetStatus fpVE_GetStatus; 70 IOCTL_VE_SetDbgLevel fpVE_SetDbgLevel; 71 IOCTL_VE_SwitchInputSource fpVE_SwitchInputSource; 72 IOCTL_VE_SetInputSource fpVE_SetInputSource; 73 IOCTL_VE_SwitchOuputDest fpVE_SwitchOuputDest; 74 IOCTL_VE_SetOutputCtrl fpVE_SetOutputCtrl; 75 IOCTL_VE_SetOutputVideoStd fpVE_SetOutputVideoStd; 76 IOCTL_VE_SetMemoryBaseAddr fpVE_SetMemoryBaseAddr; 77 IOCTL_VE_Init fpVE_Init; 78 IOCTL_VE_Exit fpVE_Exit; 79 IOCTL_VE_SetWSSData fpVE_SetWSSData; 80 IOCTL_VE_GetWSSData fpVE_GetWSSData; 81 IOCTL_VE_SetMode fpVE_SetMode; 82 IOCTL_VE_SetBlackScreen fpVE_SetBlackScreen; 83 IOCTL_VE_IsBlackScreenEnabled fpVE_IsBlackScreenEnabled; 84 IOCTL_VE_SetTtxBuffer fpVE_SetTtxBuffer; 85 IOCTL_VE_GetTtxReadDoneStatus fpVE_GetTtxReadDoneStatus; 86 IOCTL_VE_EnableCcSw fpVE_EnableCcSw; 87 IOCTL_VE_SetCcRange fpVE_SetCcRange; 88 IOCTL_VE_SendCcData fpVE_SendCcData; 89 IOCTL_VE_set_display_window fpVE_set_display_window; 90 IOCTL_VE_SetOSD fpVE_SetOSD; 91 IOCTL_VE_SetRGBIn fpVE_SetRGBIn; 92 IOCTL_VE_Get_Output_Video_Std fpVE_Get_Output_Video_Std; 93 IOCTL_VE_SetCaptureMode fpVE_SetCaptureMode; 94 IOCTL_VE_GetDstInfo fpVE_GetDstInfo; 95 IOCTL_VE_Set_TestPattern fpVE_Set_TestPattern; 96 IOCTL_VE_DisableRegWrite fpVE_DisableRegWrite; 97 IOCTL_VE_AdjustPositionBase fpVE_AdjustPositionBase; 98 IOCTL_VE_Set_Customer_Scaling fpVE_Set_Customer_Scaling; 99 IOCTL_VE_InitVECapture fpVE_InitVECapture; 100 IOCTL_VE_EnaVECapture fpVE_EnaVECapture; 101 IOCTL_VE_Adjust_FrameStart fpVE_Adjust_FrameStart; 102 IOCTL_TVE_SetPowerState fpTVE_SetPowerState; 103 IOCTL_VE_SetCusTable fpVE_SetCusTable; 104 IOCTL_VE_EnableCusTable fpVE_EnableCusTable; 105 IOCTL_VE_SetFrameColor fpVE_SetFrameColor; 106 IOCTL_VE_Set_OSDLayer fpVE_Set_OSDLayer; 107 IOCTL_VE_Get_OSDLayer fpVE_Get_OSDLayer; 108 IOCTL_VE_Set_VideoAlpha fpVE_Set_VideoAlpha; 109 IOCTL_VE_Get_VideoAlpha fpVE_Get_VideoAlpha; 110 IOCTL_VE_DCS_SetType fpVE_DCS_SetType; 111 IOCTL_VE_DCS_SetActivationKey fpVE_DCS_SetActivationKey; 112 IOCTL_VE_ReloadSetting fpVE_ReloadSetting; 113 IOCTL_VE_GetConfig fpVE_GetConfig; 114 115 }TVENCODER_INSTANT_PRIVATE; 116 117 118 //////////////////////////////////////////////////////////////////////////////// 119 // Reduce driver code size 120 //////////////////////////////////////////////////////////////////////////////// 121 122 #define _MODULE_VE_U1_U2_RELATION \ 123 URELATION(fpVE_GetInfo,(IOCTL_VE_GetInfo)_MDrv_VE_GetInfo,MDrv_VE_GetInfo) \ 124 URELATION(fpVE_GetStatus,(IOCTL_VE_GetStatus)_MDrv_VE_GetStatus,MDrv_VE_GetStatus) \ 125 URELATION(fpVE_SetDbgLevel,(IOCTL_VE_SetDbgLevel)_MDrv_VE_SetDbgLevel,MDrv_VE_SetDbgLevel) \ 126 URELATION(fpVE_SwitchInputSource,(IOCTL_VE_SwitchInputSource)_MDrv_VE_SwitchInputSource,MDrv_VE_SwitchInputSource) \ 127 URELATION(fpVE_SetInputSource,(IOCTL_VE_SetInputSource)_MDrv_VE_SetInputSource,MDrv_VE_SetInputSource) \ 128 URELATION(fpVE_SwitchOuputDest,(IOCTL_VE_SwitchOuputDest)_MDrv_VE_SwitchOuputDest,MDrv_VE_SwitchOuputDest) \ 129 URELATION(fpVE_SetOutputCtrl,(IOCTL_VE_SetOutputCtrl)_MDrv_VE_SetOutputCtrl,MDrv_VE_SetOutputCtrl) \ 130 URELATION(fpVE_SetOutputVideoStd,(IOCTL_VE_SetOutputVideoStd)_MDrv_VE_SetOutputVideoStd,MDrv_VE_SetOutputVideoStd) \ 131 URELATION(fpVE_Init,(IOCTL_VE_Init)_MDrv_VE_Init,MDrv_VE_Init) \ 132 URELATION(fpVE_Exit,(IOCTL_VE_Exit)_MDrv_VE_Exit,MDrv_VE_Exit) \ 133 URELATION(fpVE_SetWSSData,(IOCTL_VE_SetWSSData)_MDrv_VE_SetWSSData,MDrv_VE_SetWSSData) \ 134 URELATION(fpVE_GetWSSData,(IOCTL_VE_GetWSSData)_MDrv_VE_GetWSSData,MDrv_VE_GetWSSData) \ 135 URELATION(fpVE_SetMode,(IOCTL_VE_SetMode)_MDrv_VE_SetMode,MDrv_VE_SetMode) \ 136 URELATION(fpVE_SetBlackScreen,(IOCTL_VE_SetBlackScreen)_MDrv_VE_SetBlackScreen,MDrv_VE_SetBlackScreen) \ 137 URELATION(fpVE_IsBlackScreenEnabled,(IOCTL_VE_IsBlackScreenEnabled)_MDrv_VE_IsBlackScreenEnabled,MDrv_VE_IsBlackScreenEnabled) \ 138 URELATION(fpVE_SetTtxBuffer,(IOCTL_VE_SetTtxBuffer)_MDrv_VE_SetTtxBuffer,MDrv_VE_SetTtxBuffer) \ 139 URELATION(fpVE_GetTtxReadDoneStatus,(IOCTL_VE_GetTtxReadDoneStatus)_MDrv_VE_GetTtxReadDoneStatus,MDrv_VE_GetTtxReadDoneStatus) \ 140 URELATION(fpVE_EnableCcSw,(IOCTL_VE_EnableCcSw)_MDrv_VE_EnableCcSw,MDrv_VE_EnableCcSw) \ 141 URELATION(fpVE_SetCcRange,(IOCTL_VE_SetCcRange)_MDrv_VE_SetCcRange,MDrv_VE_SetCcRange) \ 142 URELATION(fpVE_SendCcData,(IOCTL_VE_SendCcData)_MDrv_VE_SendCcData,MDrv_VE_SendCcData) \ 143 URELATION(fpVE_set_display_window,(IOCTL_VE_set_display_window)_MDrv_VE_set_display_window,MDrv_VE_set_display_window) \ 144 URELATION(fpVE_SetOSD,(IOCTL_VE_SetOSD)_MDrv_VE_SetOSD,MDrv_VE_SetOSD) \ 145 URELATION(fpVE_SetRGBIn,(IOCTL_VE_SetRGBIn)_MDrv_VE_SetRGBIn,MDrv_VE_SetRGBIn) \ 146 URELATION(fpVE_Get_Output_Video_Std,(IOCTL_VE_Get_Output_Video_Std)_MDrv_VE_Get_Output_Video_Std,MDrv_VE_Get_Output_Video_Std) \ 147 URELATION(fpVE_SetCaptureMode,(IOCTL_VE_SetCaptureMode)_MDrv_VE_SetCaptureMode,MDrv_VE_SetCaptureMode) \ 148 URELATION(fpVE_GetDstInfo,(IOCTL_VE_GetDstInfo)_MApi_VE_GetDstInfo,MApi_VE_GetDstInfo) \ 149 URELATION(fpVE_Set_TestPattern,(IOCTL_VE_Set_TestPattern)_MDrv_VE_Set_TestPattern,MDrv_VE_Set_TestPattern) \ 150 URELATION(fpVE_DisableRegWrite,(IOCTL_VE_DisableRegWrite)_MDrv_VE_DisableRegWrite,MDrv_VE_DisableRegWrite) \ 151 URELATION(fpVE_AdjustPositionBase,(IOCTL_VE_AdjustPositionBase)_MDrv_VE_AdjustPositionBase,MDrv_VE_AdjustPositionBase) \ 152 URELATION(fpVE_Set_Customer_Scaling,(IOCTL_VE_Set_Customer_Scaling)_MDrv_VE_Set_Customer_Scaling,MDrv_VE_Set_Customer_Scaling) \ 153 URELATION(fpVE_InitVECapture,(IOCTL_VE_InitVECapture)_MDrv_VE_InitVECapture,MDrv_VE_InitVECapture) \ 154 URELATION(fpVE_EnaVECapture,(IOCTL_VE_EnaVECapture)_MDrv_VE_EnaVECapture,MDrv_VE_EnaVECapture) \ 155 URELATION(fpVE_Adjust_FrameStart,(IOCTL_VE_Adjust_FrameStart)_MDrv_VE_Adjust_FrameStart,MDrv_VE_Adjust_FrameStart) \ 156 URELATION(fpTVE_SetPowerState,(IOCTL_TVE_SetPowerState)_MDrv_TVE_SetPowerState,MDrv_TVE_SetPowerState) \ 157 URELATION(fpVE_SetCusTable,(IOCTL_VE_SetCusTable)_MDrv_VE_SetCusTable,MDrv_VE_SetCusTable) \ 158 URELATION(fpVE_EnableCusTable,(IOCTL_VE_EnableCusTable)_MDrv_VE_EnableCusTable,MDrv_VE_EnableCusTable) \ 159 URELATION(fpVE_SetFrameColor,(IOCTL_VE_SetFrameColor)_MDrv_VE_SetFrameColor,MDrv_VE_SetFrameColor) \ 160 URELATION(fpVE_Set_OSDLayer,(IOCTL_VE_Set_OSDLayer)_MDrv_VE_Set_OSDLayer,MDrv_VE_Set_OSDLayer) \ 161 URELATION(fpVE_Get_OSDLayer,(IOCTL_VE_Get_OSDLayer)_MDrv_VE_Get_OSDLayer,MDrv_VE_Get_OSDLayer) \ 162 URELATION(fpVE_Set_VideoAlpha,(IOCTL_VE_Set_VideoAlpha)_MDrv_VE_Set_VideoAlpha,MDrv_VE_Set_VideoAlpha) \ 163 URELATION(fpVE_Get_VideoAlpha,(IOCTL_VE_Get_VideoAlpha)_MDrv_VE_Get_VideoAlpha,MDrv_VE_Get_VideoAlpha) \ 164 URELATION(fpVE_GetConfig,(IOCTL_VE_GetConfig)_MDrv_VE_GetConfig,MDrv_VE_GetConfig) 165 166 167 typedef struct 168 { 169 MS_U32 VE_Reg[2]; 170 }VE_REGS_SAVE_AREA; 171 const VE_DrvInfo * _MDrv_VE_GetInfo(void); 172 VE_Result _MDrv_VE_GetStatus(VE_DrvStatus* pDrvStatus); 173 void _MDrv_VE_SetDbgLevel(MS_U16 level); 174 void _MDrv_VE_SwitchInputSource(PMS_Switch_VE_Src_Info pSwitchInfo); 175 MS_SWITCH_VE_SRC_STATUS _MDrv_VE_SetInputSource(PMS_VE_InputSrc_Info pInputSrcInfo); 176 void _MDrv_VE_SwitchOuputDest(PMS_Switch_VE_Dest_Info pSwitchInfo); 177 void _MDrv_VE_SetOutputCtrl(PMS_VE_Output_Ctrl pOutputCtrl); 178 MS_BOOL _MDrv_VE_SetOutputVideoStd(MS_VE_VIDEOSYS VideoSystem); 179 void _MDrv_VE_SetMemoryBaseAddr(MS_PHY phyMIUAddress, MS_U32 u32MIUSize); 180 void _MDrv_VE_Init(MS_PHY u32MIUAddress); 181 MS_BOOL _MDrv_VE_Exit(void); 182 void _MDrv_VE_SetWSSData(MS_BOOL bEn, MS_U16 u16WSSData); 183 MS_U16 _MDrv_VE_GetWSSData(void); 184 void _MDrv_VE_SetMode(MS_VE_Set_Mode_Type *pVESetMode); 185 void _MDrv_VE_SetBlackScreen(MS_BOOL bEn); 186 MS_BOOL _MDrv_VE_IsBlackScreenEnabled(void); 187 void _MDrv_VE_SetTtxBuffer(MS_PHY u32StartAddr, MS_U32 u32Size); 188 MS_BOOL _MDrv_VE_GetTtxReadDoneStatus(void); 189 void _MDrv_VE_EnableCcSw(MS_BOOL bEnable); 190 void _MDrv_VE_SetCcRange(MS_U16 odd_start, MS_U16 odd_end, MS_U16 even_start, MS_U16 enen_end); 191 void _MDrv_VE_SendCcData(MS_BOOL bIsOdd, MS_U16 data); 192 void _MDrv_VE_set_display_window(MS_VE_WINDOW_TYPE stDispWin); 193 void _MDrv_VE_SetOSD(MS_BOOL bEnable); 194 void _MDrv_VE_SetRGBIn(MS_BOOL bEnable); 195 MS_VE_VIDEOSYS _MDrv_VE_Get_Output_Video_Std(void); 196 void _MDrv_VE_SetCaptureMode(MS_BOOL bEnable); 197 MS_BOOL _MApi_VE_GetDstInfo(MS_VE_DST_DispInfo *pDstInfo, MS_U32 u32SizeofDstInfo); 198 void _MDrv_VE_Set_TestPattern(MS_BOOL bEn); 199 VE_Result _MDrv_VE_DisableRegWrite(MS_BOOL bFlag); 200 VE_Result _MDrv_VE_AdjustPositionBase(MS_S32 s32WAddrAdjustment, MS_S32 s32RAddrAdjustment); 201 VE_Result _MDrv_VE_Set_Customer_Scaling(MS_VE_CusScalingInfo *pstVECusScalingInfo); 202 void _MDrv_VE_InitVECapture(PMS_VE_Output_CAPTURE pVECapture); 203 MS_BOOL _MDrv_VE_EnaVECapture(PMS_VE_VECAPTURESTATE pstVECapState); 204 VE_Result _MDrv_VE_Adjust_FrameStart(MS_VE_WINDOW_TYPE *stSrcWin,MS_S16 pixel_offset); 205 MS_U32 _MDrv_TVE_SetPowerState(EN_POWER_MODE u16PowerState); 206 207 MS_BOOL _MDrv_VE_SetCusTable(MS_VE_VIDEOSYS VideoSystem, MS_U8* pTbl); 208 void _MDrv_VE_EnableCusTable(MS_BOOL bEnable); 209 VE_Result _MDrv_VE_SetFrameColor(MS_U32 u32aRGB); 210 VE_Result _MDrv_VE_Set_OSDLayer(MS_VE_OSD_LAYER_SEL eVideoOSDLayer); 211 MS_VE_OSD_LAYER_SEL _MDrv_VE_Get_OSDLayer(void); 212 VE_Result _MDrv_VE_Set_VideoAlpha(MS_U8 u8Val); 213 VE_Result _MDrv_VE_Get_VideoAlpha(MS_U8 *pu8Val); 214 215 VE_Result _MDrv_VE_DCS_SetType(MS_BOOL bEnable, MS_U32 eType); 216 VE_Result _MDrv_VE_DCS_SetActivationKey(MS_U8 *pu8ActivationKeyTbl, MS_U8 u8ActivationKeyTblSize); 217 218 VE_Result _MDrv_VE_ReloadSetting(void); 219 220 MS_BOOL _MDrv_VE_GetConfig(void* pInstance, MS_PHY *pMIUAddress); 221 222 MS_U32 TVENCODEROpen(void** ppInstance, const void* const pAttribute); 223 MS_U32 TVENCODERClose(void* pInstance); 224 MS_U32 TVENCODERIoctl(void* pInstance, MS_U32 u32Cmd, void* pArgs); 225 226 #endif //_TVE_PRIVATE_ 227