xref: /utopia/UTPA2-700.0.x/modules/mvop/drv/mvop/MVOP_private.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
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