xref: /utopia/UTPA2-700.0.x/projects/tmplib/include/drvMVOP_v2.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
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 _MVOP_H_
79 #define _MVOP_H_
80 
81 #ifdef __cplusplus
82 extern "C"
83 {
84 #endif
85 
86 #include "MsTypes.h"
87 //******** ENUM DEFINITIONS ********//
88 typedef enum
89 {
90     E_MVOP_POOL_ID_INTERNAL = 0, // just for test, please refine.
91 } E_MVOP_POOL_ID;
92 
93 
94 typedef enum
95 {
96     //Main MVOP
97     E_MVOP_CMD_INIT,
98     E_MVOP_CMD_EXIT,
99     E_MVOP_CMD_ENABLE,
100     E_MVOP_CMD_SET_INPUTCFG,
101     E_MVOP_CMD_SET_OTPUTCFG,
102     E_MVOP_CMD_ENABLE_BLACK_BG,
103     E_MVOP_CMD_ENABLE_UV_SHIFT,
104     E_MVOP_CMD_SET_MONO_MODE,
105 
106     E_MVOP_CMD_GET_HSIZE,
107     E_MVOP_CMD_GET_VSIZE,
108     E_MVOP_CMD_GET_HSTART,
109     E_MVOP_CMD_GET_VSTART,
110     E_MVOP_CMD_GET_IS_INTERLACE,
111     E_MVOP_CMD_GET_IS_HDUPLICATE,
112     E_MVOP_CMD_GET_IS_ENABLE,
113     E_MVOP_CMD_GET_OUTPUT_TIMING,
114     E_MVOP_CMD_GET_LIBVER,
115     E_MVOP_CMD_CHECK_CAPABILITY,
116     E_MVOP_CMD_GET_MAX_HOFFSET,
117     E_MVOP_CMD_GET_MAX_VOFFSET,
118 
119     E_MVOP_CMD_SET_DBG_LEVEL,
120     E_MVOP_CMD_GET_INFO,
121     E_MVOP_CMD_GET_STATUS,
122     E_MVOP_CMD_SET_CLK,
123     E_MVOP_CMD_SET_PATTERN,
124     E_MVOP_CMD_SET_TILE_FORMAT,
125     E_MVOP_CMD_GET_DST_INFO,
126     E_MVOP_CMD_SET_FIXVTT,
127     E_MVOP_CMD_SET_MMIO_MAPBASE,
128     E_MVOP_CMD_MIU_SWITCH,
129     E_MVOP_CMD_SET_BASEADD,
130     E_MVOP_CMD_SEL_OP_FIELD,
131     E_MVOP_CMD_SET_REGSIZE_FROM_MVD,
132     E_MVOP_CMD_SET_START_POS,
133     E_MVOP_CMD_SET_IMAGE_WIDTH_HIGHT,
134     E_MVOP_CMD_SET_VOP_MIRROR_MODE,
135     E_MVOP_CMD_INV_OP_VS,
136     E_MVOP_CMD_FORCE_TOP,
137     E_MVOP_CMD_ENABLE_FREERUN_MODE,
138     E_MVOP_CMD_GET_BASE_ADD,
139 
140     //Sub MVOP
141     E_MVOP_CMD_SUB_INIT,
142     E_MVOP_CMD_SUB_EXIT,
143     E_MVOP_CMD_SUB_ENABLE,
144     E_MVOP_CMD_SUB_SET_INPUTCFG,
145     E_MVOP_CMD_SUB_SET_OTPUTCFG,
146 
147     E_MVOP_CMD_SUB_ENABLE_BLACK_BG,
148     E_MVOP_CMD_SUB_ENABLE_UV_SHIFT ,
149     E_MVOP_CMD_SUB_SET_MONO_MODE,
150     E_MVOP_CMD_SUB_GET_HSIZE,
151     E_MVOP_CMD_SUB_GET_VSIZE,
152     E_MVOP_CMD_SUB_GET_HSTART,
153     E_MVOP_CMD_SUB_GET_VSTART,
154     E_MVOP_CMD_SUB_GET_IS_INTERLACE,
155     E_MVOP_CMD_SUB_GET_IS_HDUPLICATE,
156     E_MVOP_CMD_SUB_GET_IS_ENABLE,
157     E_MVOP_CMD_SUB_GET_OUTPUT_TIMING,
158     E_MVOP_CMD_SUB_CHECK_CAPABILITY,
159     E_MVOP_CMD_SUB_GET_MAXHOFFSET,
160     E_MVOP_CMD_SUB_GET_MAXVOFFSET,
161     E_MVOP_CMD_SUB_SET_CLK,
162     E_MVOP_CMD_SUB_SET_PATTERN,
163     E_MVOP_CMD_SUB_SET_TILE_FORMAT,
164     E_MVOP_CMD_SUB_GET_DST_INFO,
165     E_MVOP_CMD_SUB_SET_FIXVTT,
166     E_MVOP_CMD_SUB_SET_MMIO_MAPBASE,
167     E_MVOP_CMD_SUB_MIU_SWITCH,
168     E_MVOP_CMD_SUB_SET_BASEADD,
169     E_MVOP_CMD_SUB_SET_VOP_MIRRORMODE,
170     E_MVOP_CMD_SUB_ENABLE_FREERUN_MODE,
171     E_MVOP_CMD_SUB_GET_BASEADD,
172 
173     //Third MVOP
174     E_MVOP_CMD_EX_INIT,
175     E_MVOP_CMD_EX_EXIT,
176     E_MVOP_CMD_EX_ENABLE,
177     E_MVOP_CMD_EX_SET_INPUTCFG,
178     E_MVOP_CMD_EX_SET_OTPUTCFG,
179 
180     E_MVOP_CMD_EX_SET_CLK,
181     E_MVOP_CMD_EX_SET_PATTERN,
182     E_MVOP_CMD_EX_SET_TILEFORMAT,
183     E_MVOP_CMD_EX_ENABLE_UV_SHIFT,
184     E_MVOP_CMD_EX_ENABLE_BLACK_BG,
185     E_MVOP_CMD_EX_SET_MONO_MODE,
186     E_MVOP_CMD_EX_SET_FIXVTT,
187     E_MVOP_CMD_EX_MIU_SWITCH,
188     E_MVOP_CMD_EX_SET_VOP_MIRRORMODE,
189     E_MVOP_CMD_EX_ENABLE_FREERUN_MODE,
190 
191     E_MVOP_CMD_EX_GET_OUTPUT_TIMING,
192     E_MVOP_CMD_EX_GET_IS_ENABLE,
193     E_MVOP_CMD_EX_GET_HSIZE,
194     E_MVOP_CMD_EX_GET_VSIZE,
195     E_MVOP_CMD_EX_GET_HSTART,
196     E_MVOP_CMD_EX_GET_VSTART,
197     E_MVOP_CMD_EX_GET_IS_INTERLACE,
198     E_MVOP_CMD_EX_GET_IS_HDUPLICATE,
199     E_MVOP_CMD_EX_GET_STATUS,
200     E_MVOP_CMD_EX_CHECK_CAPABILITY,
201     E_MVOP_CMD_EX_GET_DST_INFO,
202 
203     E_MVOP_CMD_SEND_BLUE_SCREEN,
204     E_MVOP_CMD_SET_COMMAND,
205     E_MVOP_CMD_GET_COMMAND,
206     E_MVOP_CMD_SET_FREQUENCY,
207 
208     E_MVOP_CMD_ENABLE_INTERRUPT,
209     E_MVOP_CMD_GET_INT_STATUS,
210     E_MVOP_CMD_SUB_ENABLE_INTERRUPT,
211     E_MVOP_CMD_SUB_GET_INT_STATUS,
212     E_MVOP_CMD_EX_ENABLE_INTERRUPT,
213     E_MVOP_CMD_EX_GET_INT_STATUS,
214 
215     //E_MVOP_CMD_SET_POWER_STATE,
216 
217     E_MVOP_CMD_NUM,
218     E_MVOP_CMD_MAX = E_MVOP_CMD_NUM,
219 } E_MVOP_IOCTL_CMDS;
220 
221 // Main MVOP
222 typedef struct
223 {
224     MS_BOOL bEnable;
225 } stMVOP_ENABLE,*pstMVOP_ENABLE;
226 
227 typedef struct
228 {
229     MVOP_InputSel in;
230     MVOP_InputCfg* pCfg;
231     MVOP_Result eRet;
232 } stMVOP_SET_INPUTCFG,*pstMVOP_SET_INPUTCFG;
233 
234 typedef struct
235 {
236     MVOP_VidStat *pstVideoStatus;
237     MS_BOOL bEnHDup;
238     MVOP_Result eRet;
239 } stMVOP_SET_OTPUTCFG,*pstMVOP_SET_OTPUTCFG;
240 
241 typedef struct
242 {
243     MS_BOOL bEnable;
244 } stMVOP_ENABLE_UV_SHIFT,*pstMVOP_ENABLE_UV_SHIFT;
245 
246 typedef struct
247 {
248     MS_BOOL bEnable;
249 } stMVOP_SET_MONO_MODE,*pstMVOP_SET_MONO_MODE;
250 
251 typedef struct
252 {
253     MS_U16 u16Ret;
254 } stMVOP_GET_HSIZE,*pstMVOP_GET_HSIZE;
255 
256 typedef struct
257 {
258     MS_U16 u16Ret;
259 } stMVOP_GET_VSIZE,*pstMVOP_GET_VSIZE;
260 
261 typedef struct
262 {
263     MS_U16 u16Ret;
264 } stMVOP_GET_HSTART,*pstMVOP_GET_HSTART;
265 
266 typedef struct
267 {
268     MS_U16 u16Ret;
269 } stMVOP_GET_VSTART,*pstMVOP_GET_VSTART;
270 
271 typedef struct
272 {
273     MS_BOOL bRet;
274 } stMVOP_GET_IS_INTERLACE, *pstMVOP_GET_IS_INTERLACE;
275 
276 typedef struct
277 {
278     MS_BOOL bRet;
279 } stMVOP_GET_IS_HDUPLICATE, *pstMVOP_GET_IS_HDUPLICATE;
280 
281 typedef struct
282 {
283     MS_BOOL* pbEnable;
284     MVOP_Result eRet;
285 } stMVOP_GET_IS_ENABLE, *pstMVOP_GET_IS_ENABLE;
286 
287 typedef struct
288 {
289     MVOP_Timing* pMVOPTiming;
290     MVOP_Result eRet;
291 } stMVOP_GET_OUTPUT_TIMING, *pstMVOP_GET_OUTPUT_TIMING;
292 
293 typedef struct
294 {
295     const MSIF_Version **ppVersion;
296     MVOP_Result eRet;
297 } stMVOP_GET_LIBVER,*pstMVOP_GET_LIBVER;
298 
299 typedef struct
300 {
301     MS_U16 u16HSize;
302     MS_U16 u16VSize;
303     MS_U16 u16Fps;
304     MVOP_Result bRet;
305 } stMVOP_CHECK_CAPABILITY,*pstMVOP_CHECK_CAPABILITY;
306 
307 typedef struct
308 {
309     MS_U16 u16HSize;
310     MS_U16 u16VSize;
311     MS_U16 u16Fps;
312     MS_U16 u16Ret;
313 } stMVOP_GET_MAX_HOFFSET, *pstMVOP_GET_MAX_HOFFSET;
314 
315 typedef struct
316 {
317     MS_U16 u16HSize;
318     MS_U16 u16VSize;
319     MS_U16 u16Fps;
320     MS_U16 u16Ret;
321 } stMVOP_GET_MAX_VOFFSET, *pstMVOP_GET_MAX_VOFFSET;
322 
323 typedef struct
324 {
325     MS_U8 level;
326 } stMVOP_SET_DBG_LEVEL,*pstMVOP_SET_DBG_LEVEL;
327 
328 typedef struct
329 {
330     const MVOP_DrvInfo* pRet;
331 } stMVOP_GET_INFO, *pstMVOP_GET_INFO;
332 
333 typedef struct
334 {
335     MVOP_DrvStatus *pMVOPStat;
336     MS_BOOL bRet;
337 } stMVOP_GET_STATUS, *pstMVOP_GET_STATUS;
338 
339 typedef struct
340 {
341     MS_BOOL bEnable;
342 } stMVOP_SET_CLK, *pstMVOP_SET_CLK;
343 
344 typedef struct
345 {
346     MVOP_Pattern enMVOPPattern;
347 } stMVOP_SET_PATTERN, *pstMVOP_SET_PATTERN;
348 
349 typedef struct
350 {
351     MVOP_TileFormat eTileFmt;
352     MS_BOOL bRet;
353 } stMVOP_SET_TILE_FORMAT, *pstMVOP_SET_TILE_FORMAT;
354 
355 typedef struct
356 {
357     MVOP_DST_DispInfo *pDstInfo;
358     MS_U32 u32SizeofDstInfo;
359     MS_BOOL bRet;
360 } stMVOP_GET_DST_INFO, *pstMVOP_GET_DST_INFO;
361 
362 typedef struct
363 {
364     MS_U16 u16FixVtt;
365     MS_BOOL bRet;
366 } stMVOP_SET_FIXVTT, *pstMVOP_SET_FIXVTT;
367 
368 typedef struct
369 {
370     MS_BOOL bRet;
371 } stMVOP_SET_MMIO_MAPBASE, *pstMVOP_SET_MMIO_MAPBASE;
372 
373 typedef struct
374 {
375     MS_U8 u8Miu;
376     MVOP_Result eRet;
377 } stMVOP_MIU_SWITCH, *pstMVOP_MIU_SWITCH;
378 
379 typedef struct
380 {
381     MS_PHY u32YOffset;
382     MS_PHY u32UVOffset;
383     MS_BOOL bProgressive;
384     MS_BOOL b422pack;
385     MS_BOOL bRet;
386 } stMVOP_SET_BASEADD, *pstMVOP_SET_BASEADD;
387 
388 typedef struct
389 {
390     MS_BOOL bEnable;
391 } stMVOP_SEL_OP_FIELD, *pstMVOP_SEL_OP_FIELD;
392 
393 typedef struct
394 {
395     MS_BOOL bEnable;
396 } stMVOP_SET_REGSIZE_FROM_MVD, *pstMVOP_SET_REGSIZE_FROM_MVD;
397 
398 typedef struct
399 {
400     MS_U16 u16Xpos;
401     MS_U16 u16Ypos;
402 } stMVOP_SET_START_POS, *pstMVOP_SET_START_POS;
403 
404 typedef struct
405 {
406     MS_U16 u16Width;
407     MS_U16 u16Height;
408     MS_BOOL bRet;
409 } stMVOP_SET_IMAGE_WIDTH_HIGHT, *pstMVOP_SET_IMAGE_WIDTH_HIGHT;
410 
411 typedef struct
412 {
413     MS_BOOL bEnable;
414     MVOP_DrvMirror eMirrorMode;
415 } stMVOP_SET_VOP_MIRROR_MODE, *pstMVOP_SET_VOP_MIRROR_MODE;
416 
417 typedef struct
418 {
419     MS_BOOL bEnable;
420 } stMVOP_INV_OP_VS, *pstMVOP_INV_OP_VS;
421 
422 typedef struct
423 {
424     MS_BOOL bEnable;
425 } stMVOP_FORCE_TOP, *pstMVOP_FORCE_TOP;
426 
427 typedef struct
428 {
429     MS_BOOL bEnable;
430     MS_BOOL bRet;
431 } stMVOP_ENABLE_FREERUN_MODE, *pstMVOP_ENABLE_FREERUN_MODE;
432 
433 typedef struct
434 {
435     MS_PHY* u32YOffset;
436     MS_PHY* u32UVOffset;
437 } stMVOP_GET_BASE_ADD, *pstMVOP_GET_BASE_ADD;
438 
439 // Sub MVOP
440 typedef struct
441 {
442     MS_BOOL bEnable;
443 } stMVOP_SUB_ENABLE,*pstMVOP_SUB_ENABLE;
444 
445 typedef struct
446 {
447     MVOP_InputSel in;
448     MVOP_InputCfg* pCfg;
449     MVOP_Result eRet;
450 } stMVOP_SUB_SET_INPUTCFG,*pstMVOP_SUB_SET_INPUTCFG;
451 
452 typedef struct
453 {
454     MVOP_VidStat *pstVideoStatus;
455     MS_BOOL bEnHDup;
456     MVOP_Result eRet;
457 } stMVOP_SUB_SET_OTPUTCFG,*pstMVOP_SUB_SET_OTPUTCFG;
458 
459 typedef struct
460 {
461     MS_BOOL bEnable;
462 } stMVOP_SUB_ENABLE_UV_SHIFT,*pstMVOP_SUB_ENABLE_UV_SHIFT;
463 
464 typedef struct
465 {
466     MS_BOOL bEnable;
467 } stMVOP_SUB_SET_MONO_MODE,*pstMVOP_SUB_SET_MONO_MODE;
468 
469 typedef struct
470 {
471     MVOP_DrvStatus *pMVOPStat;
472     MS_BOOL bRet;
473 } stMVOP_SUB_GET_STATUS, *pstMVOP_SUB_GET_STATUS;
474 
475 typedef struct
476 {
477     MS_U16 u16Ret;
478 } stMVOP_SUB_GET_HSIZE,*pstMVOP_SUB_GET_HSIZE;
479 
480 typedef struct
481 {
482     MS_U16 u16Ret;
483 } stMVOP_SUB_GET_VSIZE,*pstMVOP_SUB_GET_VSIZE;
484 
485 typedef struct
486 {
487     MS_U16 u16Ret;
488 } stMVOP_SUB_GET_HSTART,*pstMVOP_SUB_GET_HSTART;
489 
490 typedef struct
491 {
492     MS_U16 u16Ret;
493 } stMVOP_SUB_GET_VSTART,*pstMVOP_SUB_GET_VSTART;
494 
495 typedef struct
496 {
497     MS_BOOL bRet;
498 } stMVOP_SUB_GET_IS_INTERLACE, *pstMVOP_SUB_GET_IS_INTERLACE;
499 
500 typedef struct
501 {
502     MS_BOOL bRet;
503 } stMVOP_SUB_GET_IS_HDUPLICATE, *pstMVOP_SUB_GET_IS_HDUPLICATE;
504 
505 typedef struct
506 {
507     MS_BOOL* pbEnable;
508     MVOP_Result eRet;
509 } stMVOP_SUB_GET_IS_ENABLE, *pstMVOP_SUB_GET_IS_ENABLE;
510 
511 typedef struct
512 {
513     MVOP_Timing* pMVOPTiming;
514     MVOP_Result eRet;
515 } stMVOP_SUB_GET_OUTPUT_TIMING, *pstMVOP_SUB_GET_OUTPUT_TIMING;
516 
517 typedef struct
518 {
519     MS_U16 u16HSize;
520     MS_U16 u16VSize;
521     MS_U16 u16Fps;
522     MS_BOOL bRet;
523 } stMVOP_SUB_CHECK_CAPABILITY,*pstMVOP_SUB_CHECK_CAPABILITY;
524 
525 typedef struct
526 {
527     MS_U16 u16HSize;
528     MS_U16 u16VSize;
529     MS_U16 u16Fps;
530     MS_U16 u16Ret;
531 } stMVOP_SUB_GET_MAX_HOFFSET, *pstMVOP_SUB_GET_MAX_HOFFSET;
532 
533 typedef struct
534 {
535     MS_U16 u16HSize;
536     MS_U16 u16VSize;
537     MS_U16 u16Fps;
538     MS_U16 u16Ret;
539 } stMVOP_SUB_GET_MAX_VOFFSET, *pstMVOP_SUB_GET_MAX_VOFFSET;
540 
541 typedef struct
542 {
543     MS_BOOL bEnable;
544 } stMVOP_SUB_SET_CLK, *pstMVOP_SUB_SET_CLK;
545 
546 typedef struct
547 {
548     MVOP_Pattern enMVOPPattern;
549 } stMVOP_SUB_SET_PATTERN, *pstMVOP_SUB_SET_PATTERN;
550 
551 typedef struct
552 {
553     MVOP_TileFormat eTileFmt;
554     MS_BOOL bRet;
555 } stMVOP_SUB_SET_TILE_FORMAT, *pstMVOP_SUB_SET_TILE_FORMAT;
556 
557 typedef struct
558 {
559     MVOP_DST_DispInfo *pDstInfo;
560     MS_U32 u32SizeofDstInfo;
561     MS_BOOL bRet;
562 } stMVOP_SUB_GET_DST_INFO, *pstMVOP_SUB_GET_DST_INFO;
563 
564 typedef struct
565 {
566     MS_U16 u16FixVtt;
567     MS_BOOL bRet;
568 } stMVOP_SUB_SET_FIXVTT, *pstMVOP_SUB_SET_FIXVTT;
569 
570 typedef struct
571 {
572     MS_BOOL bRet;
573 } stMVOP_SUB_SET_MMIO_MAPBASE, *pstMVOP_SUB_SET_MMIO_MAPBASE;
574 
575 typedef struct
576 {
577     MS_U8 u8Miu;
578     MVOP_Result eRet;
579 } stMVOP_SUB_MIU_SWITCH, *pstMVOP_SUB_MIU_SWITCH;
580 
581 typedef struct
582 {
583     MS_PHY u32YOffset;
584     MS_PHY u32UVOffset;
585     MS_BOOL bProgressive;
586     MS_BOOL b422pack;
587     MS_BOOL bRet;
588 } stMVOP_SUB_SET_BASEADD, *pstMVOP_SUB_SET_BASEADD;
589 
590 typedef struct
591 {
592     MS_BOOL bEnable;
593     MVOP_DrvMirror eMirrorMode;
594 } stMVOP_SUB_SET_VOP_MIRROR_MODE, *pstMVOP_SUB_SET_VOP_MIRROR_MODE;
595 
596 typedef struct
597 {
598     MS_BOOL bEnable;
599     MS_BOOL bRet;
600 } stMVOP_SUB_ENABLE_FREERUN_MODE, *pstMVOP_SUB_ENABLE_FREERUN_MODE;
601 
602 typedef struct
603 {
604     MS_PHY* u32YOffset;
605     MS_PHY* u32UVOffset;
606 } stMVOP_SUB_GET_BASE_ADD, *pstMVOP_SUB_GET_BASE_ADD;
607 
608 // 3rd MVOP
609 typedef struct
610 {
611     MVOP_DevID eID;
612     MS_U32 u32InitParam;
613     MVOP_Result eRet;
614 } stMVOP_EX_INIT,*pstMVOP_EX_INIT;
615 
616 typedef struct
617 {
618     MVOP_DevID eID;
619     MS_U32 u32ExitParam;
620     MVOP_Result eRet;
621 } stMVOP_EX_EXIT,*pstMVOP_EX_EXIT;
622 
623 typedef struct
624 {
625     MVOP_DevID eID;
626     MS_BOOL bEnable;
627     MVOP_Result eRet;
628 } stMVOP_EX_ENABLE,*pstMVOP_EX_ENABLE;
629 
630 typedef struct
631 {
632     MVOP_DevID eID;
633     MVOP_InputSel in;
634     MVOP_InputCfg* pCfg;
635     MVOP_Result eRet;
636 } stMVOP_EX_SET_INPUTCFG,*pstMVOP_EX_SET_INPUTCFG;
637 
638 typedef struct
639 {
640     MVOP_DevID eID;
641     MVOP_VidStat *pstVideoStatus;
642     MS_BOOL bEnHDup;
643     MVOP_Result eRet;
644 } stMVOP_EX_SET_OTPUTCFG,*pstMVOP_EX_SET_OTPUTCFG;
645 
646 typedef struct
647 {
648     MVOP_DevID eID;
649     MS_BOOL bEnable;
650 } stMVOP_EX_SET_CLK, *pstMVOP_EX_SET_CLK;
651 
652 typedef struct
653 {
654     MVOP_DevID eID;
655     MVOP_Pattern enMVOPPattern;
656     MVOP_Result eRet;
657 } stMVOP_EX_SET_PATTERN, *pstMVOP_EX_SET_PATTERN;
658 
659 typedef struct
660 {
661     MVOP_DevID eID;
662     MVOP_TileFormat eTileFmt;
663     MVOP_Result eRet;
664 } stMVOP_EX_SET_TILE_FORMAT, *pstMVOP_EX_SET_TILE_FORMAT;
665 
666 typedef struct
667 {
668     MVOP_DevID eID;
669     MS_BOOL bEnable;
670     MVOP_Result eRet;
671 } stMVOP_EX_ENABLE_UV_SHIFT,*pstMVOP_EX_ENABLE_UV_SHIFT;
672 
673 typedef struct
674 {
675     MVOP_DevID eID;
676     MVOP_Result eRet;
677 } stMVOP_EX_ENABLE_BLACK_BG,*pstMVOP_EX_ENABLE_BLACK_BG;
678 
679 typedef struct
680 {
681     MVOP_DevID eID;
682     MS_BOOL bEnable;
683     MVOP_Result eRet;
684 } stMVOP_EX_SET_MONO_MODE,*pstMVOP_EX_SET_MONO_MODE;
685 
686 typedef struct
687 {
688     MVOP_DevID eID;
689     MS_U16 u16FixVtt;
690     MVOP_Result eRet;
691 } stMVOP_EX_SET_FIXVTT, *pstMVOP_EX_SET_FIXVTT;
692 
693 typedef struct
694 {
695     MVOP_DevID eID;
696     MS_U8 u8Miu;
697     MVOP_Result eRet;
698 } stMVOP_EX_MIU_SWITCH, *pstMVOP_EX_MIU_SWITCH;
699 
700 typedef struct
701 {
702     MVOP_DevID eID;
703     MS_BOOL bEnable;
704     MVOP_DrvMirror eMirrorMode;
705     MVOP_Result eRet;
706 } stMVOP_EX_SET_VOP_MIRROR_MODE, *pstMVOP_EX_SET_VOP_MIRROR_MODE;
707 
708 typedef struct
709 {
710     MVOP_DevID eID;
711     MS_BOOL bEnable;
712     MVOP_Result eRet;
713 } stMVOP_EX_ENABLE_FREERUN_MODE, *pstMVOP_EX_ENABLE_FREERUN_MODE;
714 
715 typedef struct
716 {
717     MVOP_DevID eID;
718     MVOP_Timing* pMVOPTiming;
719     MVOP_Result eRet;
720 } stMVOP_EX_GET_OUTPUT_TIMING, *pstMVOP_EX_GET_OUTPUT_TIMING;
721 
722 typedef struct
723 {
724     MVOP_DevID eID;
725     MS_BOOL* pbEnable;
726     MVOP_Result eRet;
727 } stMVOP_EX_GET_IS_ENABLE, *pstMVOP_EX_GET_IS_ENABLE;
728 
729 typedef struct
730 {
731     MVOP_DevID eID;
732     MS_U16 u16Ret;
733 } stMVOP_EX_GET_HSIZE,*pstMVOP_EX_GET_HSIZE;
734 
735 typedef struct
736 {
737     MVOP_DevID eID;
738     MS_U16 u16Ret;
739 } stMVOP_EX_GET_VSIZE,*pstMVOP_EX_GET_VSIZE;
740 
741 typedef struct
742 {
743     MVOP_DevID eID;
744     MS_U16 u16Ret;
745 } stMVOP_EX_GET_HSTART,*pstMVOP_EX_GET_HSTART;
746 
747 typedef struct
748 {
749     MVOP_DevID eID;
750     MS_U16 u16Ret;
751 } stMVOP_EX_GET_VSTART,*pstMVOP_EX_GET_VSTART;
752 
753 typedef struct
754 {
755     MVOP_DevID eID;
756     MS_BOOL bRet;
757 } stMVOP_EX_GET_IS_INTERLACE, *pstMVOP_EX_GET_IS_INTERLACE;
758 
759 typedef struct
760 {
761     MVOP_DevID eID;
762     MS_BOOL bRet;
763 } stMVOP_EX_GET_IS_HDUPLICATE, *pstMVOP_EX_GET_IS_HDUPLICATE;
764 
765 typedef struct
766 {
767     MVOP_DevID eID;
768     MVOP_DrvStatus *pMVOPStat;
769     MS_BOOL bRet;
770 } stMVOP_EX_GET_STATUS, *pstMVOP_EX_GET_STATUS;
771 
772 typedef struct
773 {
774     MVOP_DevID eID;
775     MS_U32 u32InParam;
776     MS_BOOL bRet;
777 } stMVOP_EX_CHECK_CAPABILITY,*pstMVOP_EX_CHECK_CAPABILITY;
778 
779 typedef struct
780 {
781     MVOP_DevID eID;
782     MVOP_DST_DispInfo *pDstInfo;
783     MS_U32 u32SizeofDstInfo;
784     MS_BOOL bRet;
785 } stMVOP_EX_GET_DST_INFO, *pstMVOP_EX_GET_DST_INFO;
786 
787 typedef struct
788 {
789     MS_U16 u16Width;
790     MS_U16 u16Height;
791     MVOP_Result eRet;
792 } stMVOP_SEND_BLUE_SCREEN, *pstMVOP_SEND_BLUE_SCREEN;
793 
794 typedef struct
795 {
796     MVOP_Handle* stHd;
797     MVOP_Command eCmd;
798     void* pPara;
799     MVOP_Result eRet;
800 } stMVOP_SET_COMMAND, *pstMVOP_SET_COMMAND;
801 
802 typedef struct
803 {
804     MVOP_Handle* stHd;
805     MVOP_Command eCmd;
806     void* pPara;
807     MS_U32 u32ParaSize;
808     MVOP_Result eRet;
809 } stMVOP_GET_COMMAND, *pstMVOP_GET_COMMAND;
810 
811 typedef struct
812 {
813     MVOP_FREQUENCY eFreq;
814 } stMVOP_SET_FREQUENCY, *pstMVOP_SET_FREQUENCY;
815 
816 typedef struct
817 {
818     MS_U8 eIntType;
819     MS_BOOL bRet;
820 } stMVOP_ENABLE_INTERRUPT, *pstMVOP_ENABLE_INTERRUPT;
821 
822 typedef struct
823 {
824     MS_U8 u8Ret;
825 } stMVOP_GET_INT_STATUS, *pstMVOP_GET_INT_STATUS;
826 
827 typedef struct
828 {
829     MS_U8 eIntType;
830     MS_BOOL bRet;
831 } stMVOP_SUB_ENABLE_INTERRUPT, *pstMVOP_SUB_ENABLE_INTERRUPT;
832 
833 typedef struct
834 {
835     MS_U8 u8Ret;
836 } stMVOP_SUB_GET_INT_STATUS, *pstMVOP_SUB_GET_INT_STATUS;
837 
838 typedef struct
839 {
840     MVOP_DevID eID;
841     MS_U8 eIntType;
842     MS_BOOL bRet;
843 } stMVOP_EX_ENABLE_INTERRUPT, *pstMVOP_EX_ENABLE_INTERRUPT;
844 
845 typedef struct
846 {
847     MVOP_DevID eID;
848     MS_U8 u8Ret;
849 } stMVOP_EX_GET_INT_STATUS, *pstMVOP_EX_GET_INT_STATUS;
850 
851 #if 0
852 typedef struct
853 {
854     EN_POWER_MODE u16PowerState;
855     MS_U32 u32Ret;
856 } stMVOP_SET_POWER_STATE, *pstMVOP_SET_POWER_STATE;
857 #endif
858 
859 // OBSOLETE STRUCT **END**, please avoid using these
860 
861 void MVOPRegisterToUtopia(FUtopiaOpen ModuleType);
862 MS_U32 MVOPOpen(void** ppInstance, MS_U32 u32ModuleVersion, void* pAttribute);
863 MS_U32 MVOPClose(void* pInstance);
864 MS_U32 MVOPIoctl(void* pInstance, MS_U32 u32Cmd, void* pArgs);
865 
866 #ifdef __cplusplus
867 }
868 #endif
869 
870 #undef _MVOP_H_
871 #endif //_mvop_H_
872