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