1 //<MStar Software> 2 //****************************************************************************** 3 // MStar Software 4 // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved. 5 // All software, firmware and related documentation herein ("MStar Software") are 6 // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by 7 // law, including, but not limited to, copyright law and international treaties. 8 // Any use, modification, reproduction, retransmission, or republication of all 9 // or part of MStar Software is expressly prohibited, unless prior written 10 // permission has been granted by MStar. 11 // 12 // By accessing, browsing and/or using MStar Software, you acknowledge that you 13 // have read, understood, and agree, to be bound by below terms ("Terms") and to 14 // comply with all applicable laws and regulations 15 // 16 // 1. MStar shall retain any and all right, ownership and interest to MStar 17 // Software and any modification/derivatives thereof. 18 // No right, ownership, or interest to MStar Software and any 19 // modification/derivatives thereof is transferred to you under Terms. 20 // 21 // 2. You understand that MStar Software might include, incorporate or be 22 // supplied together with third party`s software and the use of MStar 23 // Software may require additional licenses from third parties. 24 // Therefore, you hereby agree it is your sole responsibility to separately 25 // obtain any and all third party right and license necessary for your use of 26 // such third party`s software. 27 // 28 // 3. MStar Software and any modification/derivatives thereof shall be deemed as 29 // MStar`s confidential information and you agree to keep MStar`s 30 // confidential information in strictest confidence and not disclose to any 31 // third party. 32 // 33 // 4. MStar Software is provided on an "AS IS" basis without warranties of any 34 // kind. Any warranties are hereby expressly disclaimed by MStar, including 35 // without limitation, any warranties of merchantability, non-infringement of 36 // intellectual property rights, fitness for a particular purpose, error free 37 // and in conformity with any international standard. You agree to waive any 38 // claim against MStar for any loss, damage, cost or expense that you may 39 // incur related to your use of MStar Software. 40 // In no event shall MStar be liable for any direct, indirect, incidental or 41 // consequential damages, including without limitation, lost of profit or 42 // revenues, lost or damage of data, and unauthorized system use. 43 // You agree that this Section 4 shall still apply without being affected 44 // even if MStar Software has been modified by MStar in accordance with your 45 // request or instruction for your use, except otherwise agreed by both 46 // parties in writing. 47 // 48 // 5. If requested, MStar may from time to time provide technical supports or 49 // services in relation with MStar Software to you for your use of 50 // MStar Software in conjunction with your or your customer`s product 51 // ("Services"). 52 // You understand and agree that, except otherwise agreed by both parties in 53 // writing, Services are provided on an "AS IS" basis and the warranty 54 // disclaimer set forth in Section 4 above shall apply. 55 // 56 // 6. Nothing contained herein shall be construed as by implication, estoppels 57 // or otherwise 58 // (a) conferring any license or right to use MStar name, trademark, service 59 // mark, symbol or any other identification; 60 // (b) obligating MStar or any of its affiliates to furnish any person, 61 // including without limitation, you and your customers, any assistance 62 // of any kind whatsoever, or any information; or 63 // (c) conferring any license or right under any intellectual property right. 64 // 65 // 7. These terms shall be governed by and construed in accordance with the laws 66 // of Taiwan, R.O.C., excluding its conflict of law rules. 67 // Any and all dispute arising out hereof or related hereto shall be finally 68 // settled by arbitration referred to the Chinese Arbitration Association, 69 // Taipei in accordance with the ROC Arbitration Law and the Arbitration 70 // Rules of the Association by three (3) arbitrators appointed in accordance 71 // with the said Rules. 72 // The place of arbitration shall be in Taipei, Taiwan and the language shall 73 // be English. 74 // The arbitration award shall be final and binding to both parties. 75 // 76 //****************************************************************************** 77 78 #ifndef _API_MVOP_PRIV_H_ 79 #define _API_MVOP_PRIV_H_ 80 81 82 //////////////////////////////////////////////////////////////////////////////// 83 // Header Files 84 //////////////////////////////////////////////////////////////////////////////// 85 #ifdef __cplusplus 86 extern "C" 87 { 88 #endif 89 90 typedef struct __attribute__((packed)) 91 { 92 MS_U32 Dummy; 93 }MVOP_RESOURCE_PRIVATE; 94 95 typedef void (*IOCTL_MVOP_INIT) (void*); 96 typedef void (*IOCTL_MVOP_EXIT) (void*); 97 typedef void (*IOCTL_MVOP_ENABLE) (void*, MS_BOOL); 98 typedef MVOP_Result (*IOCTL_MVOP_SETINPUTCFG) (void*, MVOP_InputSel, MVOP_InputCfg*); 99 typedef MVOP_Result (*IOCTL_MVOP_SETOTPUTCFG) (void*, MVOP_VidStat*, MS_BOOL); 100 typedef void (*IOCTL_MVOP_ENABLEBLACKBG) (void*); 101 typedef void (*IOCTL_MVOP_ENABLEUVSHIFT) (void*, MS_BOOL); 102 typedef void (*IOCTL_MVOP_SETMONOMODE) (void*, MS_BOOL); 103 104 typedef MS_U16 (*IOCTL_MVOP_GETHSIZE) (void*); 105 typedef MS_U16 (*IOCTL_MVOP_GETVSIZE) (void*); 106 typedef MS_U16 (*IOCTL_MVOP_GETHSTART) (void*); 107 typedef MS_U16 (*IOCTL_MVOP_GETVSTART) (void*); 108 typedef MS_BOOL (*IOCTL_MVOP_GETISINTERLACE) (void*); 109 typedef MS_BOOL (*IOCTL_MVOP_GETISHDUPLICATE) (void*); 110 typedef MVOP_Result (*IOCTL_MVOP_GETISENABLE) (void*, MS_BOOL*); 111 typedef MVOP_Result (*IOCTL_MVOP_GETOUTPUTTIMING) (void*, MVOP_Timing*); 112 typedef MVOP_Result (*IOCTL_MVOP_GETLIBVER) (void*, const MSIF_Version **); 113 typedef MS_BOOL (*IOCTL_MVOP_CHECKCAPABILITY) (void*, MS_U16, MS_U16, MS_U16); 114 typedef MS_U16 (*IOCTL_MVOP_GETMAXHOFFSET) (void*, MS_U16, MS_U16, MS_U16); 115 typedef MS_U16 (*IOCTL_MVOP_GETMAXVOFFSET) (void*, MS_U16, MS_U16, MS_U16); 116 117 typedef void (*IOCTL_MVOP_SETDBGLEVEL) (void*, MS_U8); 118 typedef const MVOP_DrvInfo* (*IOCTL_MVOP_GETINFO) (void*); 119 typedef MS_BOOL (*IOCTL_MVOP_GETSTATUS) (void*, MVOP_DrvStatus*); 120 typedef void (*IOCTL_MVOP_SETCLK) (void*, MS_BOOL); 121 typedef void (*IOCTL_MVOP_SETPATTERN) (void*, MVOP_Pattern); 122 typedef MS_BOOL (*IOCTL_MVOP_SETTILEFORMAT) (void*, MVOP_TileFormat); 123 typedef MS_BOOL (*IOCTL_MVOP_GETDSTINFO) (void*, MVOP_DST_DispInfo*, MS_U32); 124 typedef MS_BOOL (*IOCTL_MVOP_SETFIXVTT) (void*, MS_U16); 125 typedef MS_BOOL (*IOCTL_MVOP_SETMMIOMAPBASE) (void*); 126 typedef MVOP_Result (*IOCTL_MVOP_MIUSWITCH) (void*, MS_U8); 127 typedef MS_BOOL (*IOCTL_MVOP_SETBASEADD) (void*, MS_PHY, MS_PHY, MS_BOOL, MS_BOOL); 128 typedef void (*IOCTL_MVOP_SELOPFIELD) (void*, MS_BOOL); 129 typedef void (*IOCTL_MVOP_SETREGSIZEFROMMVD) (void*, MS_BOOL); 130 typedef void (*IOCTL_MVOP_SETSTARTPOS) (void*, MS_U16, MS_U16); 131 typedef MS_BOOL (*IOCTL_MVOP_SETIMAGEWIDTHHIGHT) (void*, MS_U16, MS_U16); 132 typedef void (*IOCTL_MVOP_SETVOPMIRRORMODE) (void*, MS_BOOL, MVOP_DrvMirror); 133 typedef void (*IOCTL_MVOP_INVOPVS) (void*, MS_BOOL); 134 typedef void (*IOCTL_MVOP_FORCETOP) (void*, MS_BOOL); 135 typedef MS_BOOL (*IOCTL_MVOP_ENABLEFREERUNMODE) (void*, MS_BOOL); 136 typedef void (*IOCTL_MVOP_GETBASEADD) (void*, MS_PHY*, MS_PHY*); 137 138 //Functions for Sub MVOP 139 //Basic control functions 140 typedef void (*IOCTL_MVOP_SUBINIT) (void*); 141 typedef void (*IOCTL_MVOP_SUBEXIT) (void*); 142 typedef void (*IOCTL_MVOP_SUBENABLE) (void*, MS_BOOL); 143 typedef MVOP_Result (*IOCTL_MVOP_SUBSETINPUTCFG) (void*, MVOP_InputSel, MVOP_InputCfg*); 144 typedef MVOP_Result (*IOCTL_MVOP_SUBSETOTPUTCFG) (void*, MVOP_VidStat *, MS_BOOL); 145 146 //Advanced control functions 147 typedef void (*IOCTL_MVOP_SUBENABLEBLACKBG) (void*); 148 typedef void (*IOCTL_MVOP_SUBENABLEUVSHIFT) (void*, MS_BOOL); 149 typedef void (*IOCTL_MVOP_SUBSETMONOMODE) (void*, MS_BOOL); 150 typedef MS_BOOL (*IOCTL_MVOP_SUBGETSTATUS) (void*, MVOP_DrvStatus*); 151 typedef MS_U16 (*IOCTL_MVOP_SUBGETHSIZE) (void*); 152 typedef MS_U16 (*IOCTL_MVOP_SUBGETVSIZE) (void*); 153 typedef MS_U16 (*IOCTL_MVOP_SUBGETHSTART) (void*); 154 typedef MS_U16 (*IOCTL_MVOP_SUBGETVSTART) (void*); 155 typedef MS_BOOL (*IOCTL_MVOP_SUBGETISINTERLACE) (void*); 156 typedef MS_BOOL (*IOCTL_MVOP_SUBGETISHDUPLICATE) (void*); 157 typedef MVOP_Result (*IOCTL_MVOP_SUBGETISENABLE) (void*, MS_BOOL*); 158 typedef MVOP_Result (*IOCTL_MVOP_SUBGETOUTPUTTIMING) (void*, MVOP_Timing*); 159 typedef MS_BOOL (*IOCTL_MVOP_SUBCHECKCAPABILITY) (void*, MS_U16, MS_U16, MS_U16); 160 typedef MS_U16 (*IOCTL_MVOP_SUBGETMAXHOFFSET) (void*, MS_U16, MS_U16, MS_U16); 161 typedef MS_U16 (*IOCTL_MVOP_SUBGETMAXVOFFSET) (void*, MS_U16, MS_U16, MS_U16); 162 typedef void (*IOCTL_MVOP_SUBSETCLK) (void*, MS_BOOL); 163 typedef void (*IOCTL_MVOP_SUBSETPATTERN) (void*, MVOP_Pattern); 164 typedef MS_BOOL (*IOCTL_MVOP_SUBSETTILEFORMAT) (void*, MVOP_TileFormat); 165 typedef MS_BOOL (*IOCTL_MVOP_SUBGETDSTINFO) (void*, MVOP_DST_DispInfo*, MS_U32); 166 typedef MS_BOOL (*IOCTL_MVOP_SUBSETFIXVTT) (void*, MS_U16); 167 typedef MS_BOOL (*IOCTL_MVOP_SUBSETMMIOMAPBASE) (void*); 168 typedef MVOP_Result (*IOCTL_MVOP_SUBMIUSWITCH) (void*, MS_U8); 169 typedef MS_BOOL (*IOCTL_MVOP_SUBSETBASEADD) (void*, MS_PHY, MS_PHY, MS_BOOL, MS_BOOL); 170 typedef void (*IOCTL_MVOP_SUBSETVOPMIRRORMODE) (void*, MS_BOOL, MVOP_DrvMirror); 171 typedef MS_BOOL (*IOCTL_MVOP_SUBENABLEFREERUNMODE) (void*, MS_BOOL); 172 typedef void (*IOCTL_MVOP_SUBGETBASEADD) (void*, MS_PHY*, MS_PHY*); 173 174 // { Functions for the 3rd MVOP 175 //Basic control functions 176 typedef MVOP_Result (*IOCTL_MVOP_EXINIT) (void*, MVOP_DevID, MS_U32); 177 typedef MVOP_Result (*IOCTL_MVOP_EXEXIT) (void*, MVOP_DevID, MS_U32); 178 typedef MVOP_Result (*IOCTL_MVOP_EXENABLE) (void*, MVOP_DevID, MS_BOOL); 179 typedef MVOP_Result (*IOCTL_MVOP_EXSETINPUTCFG) (void*, MVOP_DevID, MVOP_InputSel, MVOP_InputCfg*); 180 typedef MVOP_Result (*IOCTL_MVOP_EXSETOTPUTCFG) (void*, MVOP_DevID, MVOP_VidStat*, MS_BOOL); 181 182 //Advanced control functions 183 typedef void (*IOCTL_MVOP_EXSETCLK) (void*, MVOP_DevID, MS_BOOL); 184 typedef MVOP_Result (*IOCTL_MVOP_EXSETPATTERN) (void*, MVOP_DevID, MVOP_Pattern); 185 typedef MVOP_Result (*IOCTL_MVOP_EXSETTILEFORMAT) (void*, MVOP_DevID, MVOP_TileFormat); 186 typedef MVOP_Result (*IOCTL_MVOP_EXENABLEUVSHIFT) (void*, MVOP_DevID, MS_BOOL); 187 typedef MVOP_Result (*IOCTL_MVOP_EXENABLEBLACKBG) (void*, MVOP_DevID); 188 typedef MVOP_Result (*IOCTL_MVOP_EXSETMONOMODE) (void*, MVOP_DevID, MS_BOOL); 189 typedef MVOP_Result (*IOCTL_MVOP_EXSETFIXVTT) (void*, MVOP_DevID, MS_U16); 190 typedef MVOP_Result (*IOCTL_MVOP_EXMIUSWITCH) (void*, MVOP_DevID, MS_U8); 191 typedef MVOP_Result (*IOCTL_MVOP_EXSETVOPMIRRORMODE) (void*, MVOP_DevID, MS_BOOL, MVOP_DrvMirror); 192 typedef MVOP_Result (*IOCTL_MVOP_EXENABLEFREERUNMODE) (void*, MVOP_DevID, MS_BOOL); 193 194 // Query functions 195 typedef MVOP_Result (*IOCTL_MVOP_EXGETOUTPUTTIMING) (void*, MVOP_DevID, MVOP_Timing*); 196 typedef MVOP_Result (*IOCTL_MVOP_EXGETISENABLE) (void*, MVOP_DevID, MS_BOOL*); 197 typedef MS_U16 (*IOCTL_MVOP_EXGETHSIZE) (void*, MVOP_DevID); 198 typedef MS_U16 (*IOCTL_MVOP_EXGETVSIZE) (void*, MVOP_DevID); 199 typedef MS_U16 (*IOCTL_MVOP_EXGETHSTART) (void*, MVOP_DevID); 200 typedef MS_U16 (*IOCTL_MVOP_EXGETVSTART) (void*, MVOP_DevID); 201 typedef MS_BOOL (*IOCTL_MVOP_EXGETISINTERLACE) (void*, MVOP_DevID); 202 typedef MS_BOOL (*IOCTL_MVOP_EXGETISHDUPLICATE) (void*, MVOP_DevID); 203 typedef MS_BOOL (*IOCTL_MVOP_EXGETSTATUS) (void*, MVOP_DevID, MVOP_DrvStatus*); 204 typedef MS_BOOL (*IOCTL_MVOP_EXCHECKCAPABILITY) (void*, MVOP_DevID, MS_U32); 205 typedef MS_BOOL (*IOCTL_MVOP_EXGETDSTINFO) (void*, MVOP_DevID, MVOP_DST_DispInfo*, MS_U32); 206 207 typedef MVOP_Result (*IOCTL_MVOP_SENDBLUESCREEN) (void*, MS_U16, MS_U16); 208 typedef MVOP_Result (*IOCTL_MVOP_SETCOMMAND) (void*, MVOP_Handle*, MVOP_Command, void*); 209 typedef MVOP_Result (*IOCTL_MVOP_GETCOMMAND) (void*, MVOP_Handle*, MVOP_Command, void*, MS_U32); 210 typedef void (*IOCTL_MVOP_SETFREQUENCY) (void*, MVOP_FREQUENCY); 211 212 typedef MS_BOOL (*IOCTL_MVOP_ENABLEINTERRUPT) (void*, MS_U8); 213 typedef MS_U8 (*IOCTL_MVOP_GETINTSTATUS) (void*); 214 typedef MS_BOOL (*IOCTL_MVOP_SUBENABLEINTERRUPT) (void*, MVOP_IntType); 215 typedef MS_U8 (*IOCTL_MVOP_SUBGETINTSTATUS) (void*); 216 typedef MS_BOOL (*IOCTL_MVOP_EXENABLEINTERRUPT) (void*, MVOP_DevID, MVOP_IntType); 217 typedef MS_U8 (*IOCTL_MVOP_EXGETINTSTATUS) (void*, MVOP_DevID); 218 219 typedef MS_U32 (*IOCTL_MVOP_SETPOWERSTATE) (void*, EN_POWER_MODE); 220 typedef MS_U32 (*IOCTL_MVOP_SETPOWERSTATE_USERMODE) (void*, EN_POWER_MODE); 221 222 223 // OBSOLETE FUNCTION POINTER END 224 225 226 227 typedef struct 228 { 229 IOCTL_MVOP_INIT fpMVOP_Init; 230 IOCTL_MVOP_EXIT fpMVOP_Exit; 231 IOCTL_MVOP_ENABLE fpMVOP_Enable; 232 IOCTL_MVOP_SETINPUTCFG fpMVOP_SetInputCfg; 233 IOCTL_MVOP_SETOTPUTCFG fpMVOP_SetOutputCfg; 234 IOCTL_MVOP_ENABLEBLACKBG fpMVOP_EnableBlackBG; 235 IOCTL_MVOP_ENABLEUVSHIFT fpMVOP_EnableUVShift; 236 IOCTL_MVOP_SETMONOMODE fpMVOP_SetMonoMode; 237 238 IOCTL_MVOP_GETHSIZE fpMVOP_GetHSize; 239 IOCTL_MVOP_GETVSIZE fpMVOP_GetVSize; 240 IOCTL_MVOP_GETHSTART fpMVOP_GetHStart; 241 IOCTL_MVOP_GETVSTART fpMVOP_GetVStart; 242 IOCTL_MVOP_GETISINTERLACE fpMVOP_GetIsInterlace; 243 IOCTL_MVOP_GETISHDUPLICATE fpMVOP_GetIsHDuplicate; 244 IOCTL_MVOP_GETISENABLE fpMVOP_GetIsEnable; 245 IOCTL_MVOP_GETOUTPUTTIMING fpMVOP_GetOutputTiming; 246 IOCTL_MVOP_GETLIBVER fpMVOP_GetLibVer; 247 IOCTL_MVOP_CHECKCAPABILITY fpMVOP_CheckCapability; 248 IOCTL_MVOP_GETMAXHOFFSET fpMVOP_GetMaxHOffset; 249 IOCTL_MVOP_GETMAXVOFFSET fpMVOP_GetMaxVOffset; 250 251 IOCTL_MVOP_SETDBGLEVEL fpMVOP_SetDbgLevel; 252 IOCTL_MVOP_GETINFO fpMVOP_GetInfo; 253 IOCTL_MVOP_GETSTATUS fpMVOP_GetStatus; 254 IOCTL_MVOP_SETCLK fpMVOP_SetClk; 255 IOCTL_MVOP_SETPATTERN fpMVOP_SetPattern; 256 IOCTL_MVOP_SETTILEFORMAT fpMVOP_SetTileFormat; 257 IOCTL_MVOP_GETDSTINFO fpMVOP_GetDstInfo; 258 IOCTL_MVOP_SETFIXVTT fpMVOP_SetFixVtt; 259 IOCTL_MVOP_SETMMIOMAPBASE fpMVOP_SetMMIOMapBase; 260 IOCTL_MVOP_MIUSWITCH fpMVOP_MiuSwitch; 261 IOCTL_MVOP_SETBASEADD fpMVOP_SetBaseAdd; 262 IOCTL_MVOP_SELOPFIELD fpMVOP_SelOPField; 263 IOCTL_MVOP_SETREGSIZEFROMMVD fpMVOP_SetRegSizeFromMVD; 264 IOCTL_MVOP_SETSTARTPOS fpMVOP_SetStartPos; 265 IOCTL_MVOP_SETIMAGEWIDTHHIGHT fpMVOP_SetImageWidthHight; 266 IOCTL_MVOP_SETVOPMIRRORMODE fpMVOP_SetVOPMirrorMode; 267 IOCTL_MVOP_INVOPVS fpMVOP_InvOPVS; 268 IOCTL_MVOP_FORCETOP fpMVOP_ForceTop; 269 IOCTL_MVOP_ENABLEFREERUNMODE fpMVOP_EnableFreerunMode; 270 IOCTL_MVOP_GETBASEADD fpMVOP_GetBaseAdd; 271 272 //Sub MVOP 273 IOCTL_MVOP_SUBINIT fpMVOP_SubInit; 274 IOCTL_MVOP_SUBEXIT fpMVOP_SubExit; 275 IOCTL_MVOP_SUBENABLE fpMVOP_SubEnable; 276 IOCTL_MVOP_SUBSETINPUTCFG fpMVOP_SubSetInputCfg; 277 IOCTL_MVOP_SUBSETOTPUTCFG fpMVOP_SubSetOutputCfg; 278 279 IOCTL_MVOP_SUBENABLEBLACKBG fpMVOP_SubEnableBlackBG; 280 IOCTL_MVOP_SUBENABLEUVSHIFT fpMVOP_SubEnableUVShift; 281 IOCTL_MVOP_SUBSETMONOMODE fpMVOP_SubSetMonoMode; 282 IOCTL_MVOP_SUBGETSTATUS fpMVOP_SubGetStatus; 283 IOCTL_MVOP_SUBGETHSIZE fpMVOP_SubGetHSize; 284 IOCTL_MVOP_SUBGETVSIZE fpMVOP_SubGetVSize; 285 IOCTL_MVOP_SUBGETHSTART fpMVOP_SubGetHStart; 286 IOCTL_MVOP_SUBGETVSTART fpMVOP_SubGetVStart; 287 IOCTL_MVOP_SUBGETISINTERLACE fpMVOP_SubGetIsInterlace; 288 IOCTL_MVOP_SUBGETISHDUPLICATE fpMVOP_SubGetIsHDuplicate; 289 IOCTL_MVOP_SUBGETISENABLE fpMVOP_SubGetIsEnable; 290 IOCTL_MVOP_SUBGETOUTPUTTIMING fpMVOP_SubGetOutputTiming; 291 IOCTL_MVOP_SUBCHECKCAPABILITY fpMVOP_SubCheckCapability; 292 IOCTL_MVOP_SUBGETMAXHOFFSET fpMVOP_SubGetMaxHOffset; 293 IOCTL_MVOP_SUBGETMAXVOFFSET fpMVOP_SubGetMaxVOffset; 294 IOCTL_MVOP_SUBSETCLK fpMVOP_SubSetClk; 295 IOCTL_MVOP_SUBSETPATTERN fpMVOP_SubSetPattern; 296 IOCTL_MVOP_SUBSETTILEFORMAT fpMVOP_SubSetTileFormat; 297 IOCTL_MVOP_SUBGETDSTINFO fpMVOP_SubGetDstInfo; 298 IOCTL_MVOP_SUBSETFIXVTT fpMVOP_SubSetFixVtt; 299 IOCTL_MVOP_SUBSETMMIOMAPBASE fpMVOP_SubSetMMIOMapBase; 300 IOCTL_MVOP_SUBMIUSWITCH fpMVOP_SubMiuSwitch; 301 IOCTL_MVOP_SUBSETBASEADD fpMVOP_SubSetBaseAdd; 302 IOCTL_MVOP_SUBSETVOPMIRRORMODE fpMVOP_SubSetVOPMirrorMode; 303 IOCTL_MVOP_SUBENABLEFREERUNMODE fpMVOP_SubEnableFreerunMode; 304 IOCTL_MVOP_SUBGETBASEADD fpMVOP_SubGetBaseAdd; 305 306 //Third MVOP 307 IOCTL_MVOP_EXINIT fpMVOP_ExInit; 308 IOCTL_MVOP_EXEXIT fpMVOP_ExExit; 309 IOCTL_MVOP_EXENABLE fpMVOP_ExEnable; 310 IOCTL_MVOP_EXSETINPUTCFG fpMVOP_ExInputCfg; 311 IOCTL_MVOP_EXSETOTPUTCFG fpMVOP_ExOutputCfg; 312 313 IOCTL_MVOP_EXSETCLK fpMVOP_ExSetClk; 314 IOCTL_MVOP_EXSETPATTERN fpMVOP_ExSetPattern; 315 IOCTL_MVOP_EXSETTILEFORMAT fpMVOP_ExSetTileFormat; 316 IOCTL_MVOP_EXENABLEUVSHIFT fpMVOP_ExEnableUVShift; 317 IOCTL_MVOP_EXENABLEBLACKBG fpMVOP_ExEnableBlackBG; 318 IOCTL_MVOP_EXSETMONOMODE fpMVOP_ExSetMonoMode; 319 IOCTL_MVOP_EXSETFIXVTT fpMVOP_ExSetFixVtt; 320 IOCTL_MVOP_EXMIUSWITCH fpMVOP_ExMiuSwitch; 321 IOCTL_MVOP_EXSETVOPMIRRORMODE fpMVOP_ExSetVOPMirrorMode; 322 IOCTL_MVOP_EXENABLEFREERUNMODE fpMVOP_ExEnableFreerunMode; 323 324 IOCTL_MVOP_EXGETOUTPUTTIMING fpMVOP_ExGetOutputTiming; 325 IOCTL_MVOP_EXGETISENABLE fpMVOP_ExGetIsEnable; 326 IOCTL_MVOP_EXGETHSIZE fpMVOP_ExGetHSize; 327 IOCTL_MVOP_EXGETVSIZE fpMVOP_ExGetVSize; 328 IOCTL_MVOP_EXGETHSTART fpMVOP_ExGetHStart; 329 IOCTL_MVOP_EXGETVSTART fpMVOP_ExGetVStart; 330 IOCTL_MVOP_EXGETISINTERLACE fpMVOP_ExGetIsInterlace; 331 IOCTL_MVOP_EXGETISHDUPLICATE fpMVOP_ExGetIsHDuplicate; 332 IOCTL_MVOP_EXGETSTATUS fpMVOP_ExGetStatus; 333 IOCTL_MVOP_EXCHECKCAPABILITY fpMVOP_ExCheckCapability; 334 IOCTL_MVOP_EXGETDSTINFO fpMVOP_ExGetDstInfo; 335 336 IOCTL_MVOP_SENDBLUESCREEN fpMVOP_SendBlueScreen; 337 IOCTL_MVOP_SETCOMMAND fpMVOP_SetCommand; 338 IOCTL_MVOP_GETCOMMAND fpMVOP_GetCommand; 339 IOCTL_MVOP_SETFREQUENCY fpMVOP_SetFrequency; 340 341 IOCTL_MVOP_ENABLEINTERRUPT fpMVOP_EnableInterrupt; 342 IOCTL_MVOP_GETINTSTATUS fpMVOP_GetIntStatus; 343 IOCTL_MVOP_SUBENABLEINTERRUPT fpMVOP_SubEnableInterrupt; 344 IOCTL_MVOP_SUBGETINTSTATUS fpMVOP_SubGetIntStatus; 345 IOCTL_MVOP_EXENABLEINTERRUPT fpMVOP_ExEnableInterrupt; 346 IOCTL_MVOP_EXGETINTSTATUS fpMVOP_ExGetIntStatus; 347 348 IOCTL_MVOP_SETPOWERSTATE fpMVOP_SetPowerState_Kernel; 349 IOCTL_MVOP_SETPOWERSTATE_USERMODE fpMVOP_SetPowerState; 350 351 // OBSOLETE FUNCTION POINTER END 352 // avoid using these functions pointers!!!! 353 }MVOP_INSTANCE_PRIVATE; 354 355 //------------------------------------------------------------------------------------------------- 356 // Function and Variable 357 //------------------------------------------------------------------------------------------------- 358 void MDrv_MVOP_Init_V2 (void* pInstance); 359 void MDrv_MVOP_Exit_V2(void* pInstance); 360 void MDrv_MVOP_Enable_V2(void* pInstance, MS_BOOL bEnable); 361 MVOP_Result MDrv_MVOP_SetInputCfg_V2 (void* pInstance, MVOP_InputSel in, MVOP_InputCfg* pCfg); 362 MVOP_Result MDrv_MVOP_SetOutputCfg_V2(void* pInstance, MVOP_VidStat *pstVideoStatus, MS_BOOL bEnHDup); 363 void MDrv_MVOP_EnableBlackBG_V2 (void* pInstance); 364 void MDrv_MVOP_EnableUVShift_V2(void* pInstance, MS_BOOL bEnable); 365 void MDrv_MVOP_SetMonoMode_V2(void* pInstance, MS_BOOL bEnable); 366 367 MS_U16 MDrv_MVOP_GetHSize_V2(void* pInstance); 368 MS_U16 MDrv_MVOP_GetVSize_V2(void* pInstance); 369 MS_U16 MDrv_MVOP_GetHStart_V2(void* pInstance); 370 MS_U16 MDrv_MVOP_GetVStart_V2(void* pInstance); 371 MS_BOOL MDrv_MVOP_GetIsInterlace_V2(void* pInstance); 372 MS_BOOL MDrv_MVOP_GetIsHDuplicate_V2(void* pInstance); 373 MVOP_Result MDrv_MVOP_GetIsEnable_V2 ( void* pInstance, MS_BOOL* pbEnable ); 374 MVOP_Result MDrv_MVOP_GetOutputTiming_V2(void* pInstance, MVOP_Timing* pMVOPTiming); 375 MVOP_Result MDrv_MVOP_GetLibVer_V2(void* pInstance, const MSIF_Version **ppVersion); 376 MS_BOOL MDrv_MVOP_CheckCapability_V2(void* pInstance, MS_U16 u16HSize, MS_U16 u16VSize, MS_U16 u16Fps); 377 MS_U16 MDrv_MVOP_GetMaxHOffset_V2(void* pInstance, MS_U16 u16HSize, MS_U16 u16VSize, MS_U16 u16Fps); 378 MS_U16 MDrv_MVOP_GetMaxVOffset_V2(void* pInstance, MS_U16 u16HSize, MS_U16 u16VSize, MS_U16 u16Fps); 379 380 void MDrv_MVOP_SetDbgLevel_V2(void* pInstance, MS_U8 level); 381 const MVOP_DrvInfo* MDrv_MVOP_GetInfo_V2(void* pInstance); 382 MS_BOOL MDrv_MVOP_GetStatus_V2(void* pInstance, MVOP_DrvStatus *pMVOPStat); 383 void MDrv_MVOP_SetClk_V2 (void* pInstance, MS_BOOL bEnable ); 384 void MDrv_MVOP_SetPattern_V2(void* pInstance, MVOP_Pattern enMVOPPattern); 385 MS_BOOL MDrv_MVOP_SetTileFormat_V2(void* pInstance, MVOP_TileFormat eTileFmt); 386 MS_BOOL MDrv_MVOP_GetDstInfo_V2(void* pInstance, MVOP_DST_DispInfo *pDstInfo, MS_U32 u32SizeofDstInfo); 387 MS_BOOL MDrv_MVOP_SetFixVtt_V2(void* pInstance, MS_U16 u16FixVtt); 388 MS_BOOL MDrv_MVOP_SetMMIOMapBase_V2(void* pInstance); 389 MVOP_Result MDrv_MVOP_MiuSwitch_V2(void* pInstance, MS_U8 u8Miu); 390 MS_BOOL MDrv_MVOP_SetBaseAdd_V2(void* pInstance, MS_PHY u32YOffset, MS_PHY u32UVOffset, MS_BOOL bProgressive, MS_BOOL b422pack); 391 void MDrv_MVOP_SEL_OP_FIELD_V2(void* pInstance, MS_BOOL bEnable); 392 void MDrv_MVOP_SetRegSizeFromMVD_V2(void* pInstance, MS_BOOL bEnable); 393 void MDrv_MVOP_SetStartPos_V2(void* pInstance, MS_U16 u16Xpos ,MS_U16 u16Ypos); 394 MS_BOOL MDrv_MVOP_SetImageWidthHight_V2(void* pInstance, MS_U16 u16Width ,MS_U16 u16Height); 395 void MDrv_MVOP_SetVOPMirrorMode_V2(void* pInstance, MS_BOOL bEnable,MVOP_DrvMirror eMirrorMode); 396 void MDrv_MVOP_INV_OP_VS_V2(void* pInstance, MS_BOOL bEnable); 397 void MDrv_MVOP_FORCE_TOP_V2(void* pInstance, MS_BOOL bEnable); 398 MS_BOOL MDrv_MVOP_EnableFreerunMode_V2(void* pInstance, MS_BOOL bEnable); 399 void MDrv_MVOP_GetBaseAdd_V2(void* pInstance, MS_PHY* u32YOffset, MS_PHY* u32UVOffset); 400 401 //Functions for Sub MVOP 402 void MDrv_MVOP_SubInit_V2(void* pInstance); 403 void MDrv_MVOP_SubExit_V2(void* pInstance); 404 void MDrv_MVOP_SubEnable_V2(void* pInstance, MS_BOOL bEnable); 405 MVOP_Result MDrv_MVOP_SubSetInputCfg_V2 (void* pInstance, MVOP_InputSel in, MVOP_InputCfg* pCfg); 406 MVOP_Result MDrv_MVOP_SubSetOutputCfg_V2(void* pInstance, MVOP_VidStat *pstVideoStatus, MS_BOOL bEnHDup); 407 408 void MDrv_MVOP_SubEnableBlackBG_V2(void* pInstance); 409 void MDrv_MVOP_SubEnableUVShift_V2(void* pInstance, MS_BOOL bEnable); 410 void MDrv_MVOP_SubSetMonoMode_V2(void* pInstance, MS_BOOL bEnable); 411 MS_BOOL MDrv_MVOP_SubGetStatus_V2(void* pInstance, MVOP_DrvStatus *pMVOPStat); 412 MS_U16 MDrv_MVOP_SubGetHSize_V2(void* pInstance); 413 MS_U16 MDrv_MVOP_SubGetVSize_V2(void* pInstance); 414 MS_U16 MDrv_MVOP_SubGetHStart_V2(void* pInstance); 415 MS_U16 MDrv_MVOP_SubGetVStart_V2(void* pInstance); 416 MS_BOOL MDrv_MVOP_SubGetIsInterlace_V2(void* pInstance); 417 MS_BOOL MDrv_MVOP_SubGetIsHDuplicate_V2(void* pInstance); 418 MVOP_Result MDrv_MVOP_SubGetIsEnable_V2 (void* pInstance, MS_BOOL* pbEnable); 419 MVOP_Result MDrv_MVOP_SubGetOutputTiming_V2(void* pInstance, MVOP_Timing* pMVOPTiming); 420 MS_BOOL MDrv_MVOP_SubCheckCapability_V2(void* pInstance, MS_U16 u16HSize, MS_U16 u16VSize, MS_U16 u16Fps); 421 MS_U16 MDrv_MVOP_SubGetMaxHOffset_V2(void* pInstance, MS_U16 u16HSize, MS_U16 u16VSize, MS_U16 u16Fps); 422 MS_U16 MDrv_MVOP_SubGetMaxVOffset_V2(void* pInstance, MS_U16 u16HSize, MS_U16 u16VSize, MS_U16 u16Fps); 423 void MDrv_MVOP_SubSetClk_V2 (void* pInstance, MS_BOOL bEnable ); 424 void MDrv_MVOP_SubSetPattern_V2(void* pInstance, MVOP_Pattern enMVOPPattern); 425 MS_BOOL MDrv_MVOP_SubSetTileFormat_V2(void* pInstance, MVOP_TileFormat eTileFmt); 426 MS_BOOL MDrv_MVOP_SubGetDstInfo_V2(void* pInstance, MVOP_DST_DispInfo *pDstInfo, MS_U32 u32SizeofDstInfo); 427 MS_BOOL MDrv_MVOP_SubSetFixVtt_V2(void* pInstance, MS_U16 u16FixVtt); 428 MS_BOOL MDrv_MVOP_SubSetMMIOMapBase_V2(void* pInstance); 429 MVOP_Result MDrv_MVOP_SubMiuSwitch_V2(void* pInstance, MS_U8 u8Miu); 430 MS_BOOL MDrv_MVOP_SubSetBaseAdd_V2(void* pInstance, MS_PHY u32YOffset, MS_PHY u32UVOffset, MS_BOOL bProgressive, MS_BOOL b422pack); 431 void MDrv_MVOP_SubGetBaseAdd_V2(void* pInstance, MS_PHY* u32YOffset, MS_PHY* u32UVOffset); 432 void MDrv_MVOP_SubSetVOPMirrorMode_V2(void* pInstance, MS_BOOL bEnable, MVOP_DrvMirror eMirrorMode); 433 MS_BOOL MDrv_MVOP_SubEnableFreerunMode_V2(void* pInstance, MS_BOOL bEnable); 434 435 // { Functions for the 3rd MVOP 436 //Basic control functions 437 MVOP_Result MDrv_MVOP_EX_Init_V2(void* pInstance, MVOP_DevID eID, MS_U32 u32InitParam); 438 MVOP_Result MDrv_MVOP_EX_Exit_V2(void* pInstance, MVOP_DevID eID, MS_U32 u32ExitParam); 439 MVOP_Result MDrv_MVOP_EX_Enable_V2(void* pInstance, MVOP_DevID eID, MS_BOOL bEnable); 440 MVOP_Result MDrv_MVOP_EX_SetInputCfg_V2 (void* pInstance, MVOP_DevID eID, MVOP_InputSel in, MVOP_InputCfg* pCfg); 441 MVOP_Result MDrv_MVOP_EX_SetOutputCfg_V2(void* pInstance, MVOP_DevID eID, MVOP_VidStat *pstVideoStatus, MS_BOOL bEnHDup); 442 443 //Advanced control functions 444 void MDrv_MVOP_EX_SetClk_V2(void* pInstance, MVOP_DevID eID, MS_BOOL bEnable); 445 MVOP_Result MDrv_MVOP_EX_SetPattern_V2(void* pInstance, MVOP_DevID eID, MVOP_Pattern enMVOPPattern); 446 MVOP_Result MDrv_MVOP_EX_SetTileFormat_V2(void* pInstance, MVOP_DevID eID, MVOP_TileFormat eTileFmt); 447 MVOP_Result MDrv_MVOP_EX_EnableUVShift_V2(void* pInstance, MVOP_DevID eID, MS_BOOL bEnable); 448 MVOP_Result MDrv_MVOP_EX_EnableBlackBG_V2(void* pInstance, MVOP_DevID eID); 449 MVOP_Result MDrv_MVOP_EX_SetMonoMode_V2(void* pInstance, MVOP_DevID eID, MS_BOOL bEnable); 450 MVOP_Result MDrv_MVOP_EX_SetFixVtt_V2(void* pInstance, MVOP_DevID eID, MS_U16 u16FixVtt); 451 MVOP_Result MDrv_MVOP_EX_MiuSwitch_V2(void* pInstance, MVOP_DevID eID, MS_U8 u8Miu); 452 MVOP_Result MDrv_MVOP_EX_SetVOPMirrorMode_V2(void* pInstance, MVOP_DevID eID, MS_BOOL bEnable, MVOP_DrvMirror eMirrorMode); 453 MVOP_Result MDrv_MVOP_EX_EnableFreerunMode_V2(void* pInstance, MVOP_DevID eID, MS_BOOL bEnable); 454 455 // Query functions 456 MVOP_Result MDrv_MVOP_EX_GetOutputTiming_V2(void* pInstance, MVOP_DevID eID, MVOP_Timing* pMVOPTiming); 457 MVOP_Result MDrv_MVOP_EX_GetIsEnable_V2 (void* pInstance, MVOP_DevID eID, MS_BOOL* pbEnable); 458 MS_U16 MDrv_MVOP_EX_GetHStart_V2(void* pInstance, MVOP_DevID eID); 459 MS_U16 MDrv_MVOP_EX_GetVStart_V2(void* pInstance, MVOP_DevID eID); 460 MS_U16 MDrv_MVOP_EX_GetHSize_V2(void* pInstance, MVOP_DevID eID); 461 MS_U16 MDrv_MVOP_EX_GetVSize_V2(void* pInstance, MVOP_DevID eID); 462 MS_BOOL MDrv_MVOP_EX_GetIsInterlace_V2(void* pInstance, MVOP_DevID eID); 463 MS_BOOL MDrv_MVOP_EX_GetIsHDuplicate_V2(void* pInstance, MVOP_DevID eID); 464 MS_BOOL MDrv_MVOP_EX_GetStatus_V2(void* pInstance, MVOP_DevID eID, MVOP_DrvStatus *pMVOPStat); 465 MS_BOOL MDrv_MVOP_EX_CheckCapability_V2(void* pInstance, MVOP_DevID eID, MS_U32 u32InParam); 466 MS_BOOL MDrv_MVOP_EX_GetDstInfo_V2(void* pInstance, MVOP_DevID eID, MVOP_DST_DispInfo *pDstInfo, MS_U32 u32SizeofDstInfo); 467 // Functions for the 3rd MVOP } 468 469 MVOP_Result MDrv_MVOP_SendBlueScreen_V2(void* pInstance, MS_U16 u16Width, MS_U16 u16Height); 470 MVOP_Result MDrv_MVOP_SetCommand_V2(void* pInstance, MVOP_Handle* stHd, MVOP_Command eCmd, void* pPara); 471 MVOP_Result MDrv_MVOP_GetCommand_V2(void* pInstance, MVOP_Handle* stHd, MVOP_Command eCmd, void* pPara, MS_U32 u32ParaSize); 472 void MDrv_MVOP_SetFrequency_V2(void* pInstance, MVOP_FREQUENCY eFreq); 473 474 MS_BOOL MDrv_MVOP_EnableInterrupt_V2(void* pInstance, MS_U8 eIntType); 475 MS_U8 MDrv_MVOP_GetIntStatus_V2(void* pInstance); 476 MS_BOOL MDrv_MVOP_SubEnableInterrupt_V2(void* pInstance, MVOP_IntType eIntType); 477 MS_U8 MDrv_MVOP_SubGetIntStatus_V2(void* pInstance); 478 MS_BOOL MDrv_MVOP_EX_EnableInterrupt_V2(void* pInstance, MVOP_DevID eID, MVOP_IntType eIntType); 479 MS_U8 MDrv_MVOP_EX_GetIntStatus_V2(void* pInstance, MVOP_DevID eID); 480 MS_U32 MDrv_MVOP_SetPowerState_Kernel_V2(void* pInstance, EN_POWER_MODE u16PowerState); 481 MS_U32 MDrv_MVOP_SetPowerState_V2(void* pInstance, EN_POWER_MODE u16PowerState); 482 #ifdef CONFIG_UTOPIA_PROC_DBG_SUPPORT 483 void MDrv_MVOP_GetMVOPMdbInfo_V2(MS_U64 *u64ReqHdl); 484 #endif 485 486 // OBSOLETE FUNCTION POINTER END 487 488 #ifdef __cplusplus 489 } 490 #endif 491 492 #undef _API_MVOP_PRIV_H_ 493 #endif // _API_MVOP_PRIV_H_ 494