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 //<MStar Software>
78*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
79*53ee8cc1Swenshuai.xi //
80*53ee8cc1Swenshuai.xi // Copyright (c) 2008-2009 MStar Semiconductor, Inc.
81*53ee8cc1Swenshuai.xi // All rights reserved.
82*53ee8cc1Swenshuai.xi //
83*53ee8cc1Swenshuai.xi // Unless otherwise stipulated in writing, any and all information contained
84*53ee8cc1Swenshuai.xi // herein regardless in any format shall remain the sole proprietary of
85*53ee8cc1Swenshuai.xi // MStar Semiconductor Inc. and be kept in strict confidence
86*53ee8cc1Swenshuai.xi // ("MStar Confidential Information") by the recipient.
87*53ee8cc1Swenshuai.xi // Any unauthorized act including without limitation unauthorized disclosure,
88*53ee8cc1Swenshuai.xi // copying, use, reproduction, sale, distribution, modification, disassembling,
89*53ee8cc1Swenshuai.xi // reverse engineering and compiling of the contents of MStar Confidential
90*53ee8cc1Swenshuai.xi // Information is unlawful and strictly prohibited. MStar hereby reserves the
91*53ee8cc1Swenshuai.xi // rights to any and all damages, losses, costs and expenses resulting therefrom.
92*53ee8cc1Swenshuai.xi //
93*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
94*53ee8cc1Swenshuai.xi
95*53ee8cc1Swenshuai.xi #include "MsTypes.h"
96*53ee8cc1Swenshuai.xi #ifndef MSOS_TYPE_LINUX_KERNEL
97*53ee8cc1Swenshuai.xi #include <stdio.h>
98*53ee8cc1Swenshuai.xi #include <string.h>
99*53ee8cc1Swenshuai.xi #endif
100*53ee8cc1Swenshuai.xi #include "MsDevice.h"
101*53ee8cc1Swenshuai.xi #include "utopia.h"
102*53ee8cc1Swenshuai.xi #include "utopia_dapi.h"
103*53ee8cc1Swenshuai.xi //#include "drvXC_IOPort.h" //apple ??????
104*53ee8cc1Swenshuai.xi #include "drvMVOP.h"
105*53ee8cc1Swenshuai.xi #include "MVOP_private.h"
106*53ee8cc1Swenshuai.xi #include "drvMVOP_v2.h"
107*53ee8cc1Swenshuai.xi
108*53ee8cc1Swenshuai.xi
109*53ee8cc1Swenshuai.xi // ========== Global definition ==========
110*53ee8cc1Swenshuai.xi void* pModuleMVOP = NULL;
111*53ee8cc1Swenshuai.xi
112*53ee8cc1Swenshuai.xi #ifdef CONFIG_UTOPIA_PROC_DBG_SUPPORT
MVOPMdbIoctl(MS_U32 u32Cmd,const void * const pArgs)113*53ee8cc1Swenshuai.xi MS_U32 MVOPMdbIoctl(MS_U32 u32Cmd, const void* const pArgs)
114*53ee8cc1Swenshuai.xi {
115*53ee8cc1Swenshuai.xi MDBCMD_CMDLINE_PARAMETER *paraCmdLine;
116*53ee8cc1Swenshuai.xi MDBCMD_GETINFO_PARAMETER *paraGetInfo;
117*53ee8cc1Swenshuai.xi switch(u32Cmd)
118*53ee8cc1Swenshuai.xi {
119*53ee8cc1Swenshuai.xi case MDBCMD_CMDLINE:
120*53ee8cc1Swenshuai.xi paraCmdLine = (MDBCMD_CMDLINE_PARAMETER *)pArgs;
121*53ee8cc1Swenshuai.xi break;
122*53ee8cc1Swenshuai.xi case MDBCMD_GETINFO:
123*53ee8cc1Swenshuai.xi paraGetInfo = (MDBCMD_GETINFO_PARAMETER *)pArgs;
124*53ee8cc1Swenshuai.xi //MVOP API?
125*53ee8cc1Swenshuai.xi MDrv_MVOP_GetMVOPMdbInfo_V2(paraGetInfo->u64ReqHdl);
126*53ee8cc1Swenshuai.xi break;
127*53ee8cc1Swenshuai.xi default:
128*53ee8cc1Swenshuai.xi break;
129*53ee8cc1Swenshuai.xi }
130*53ee8cc1Swenshuai.xi return 0;
131*53ee8cc1Swenshuai.xi }
132*53ee8cc1Swenshuai.xi #endif
133*53ee8cc1Swenshuai.xi
MVOPRegisterToUtopia(FUtopiaOpen ModuleType)134*53ee8cc1Swenshuai.xi void MVOPRegisterToUtopia(FUtopiaOpen ModuleType)
135*53ee8cc1Swenshuai.xi {
136*53ee8cc1Swenshuai.xi // 1. deal with module
137*53ee8cc1Swenshuai.xi UtopiaModuleCreate(MODULE_MVOP, 0, &pModuleMVOP); //MODULE_MVOP???? where
138*53ee8cc1Swenshuai.xi UtopiaModuleRegister(pModuleMVOP);
139*53ee8cc1Swenshuai.xi // register func for module, after register here, then ap call UtopiaOpen/UtopiaIoctl/UtopiaClose can call to these registered standard func
140*53ee8cc1Swenshuai.xi UtopiaModuleSetupFunctionPtr(pModuleMVOP, (FUtopiaOpen)MVOPOpen, (FUtopiaClose)MVOPClose, (FUtopiaIOctl)MVOPIoctl);
141*53ee8cc1Swenshuai.xi #ifdef CONFIG_UTOPIA_PROC_DBG_SUPPORT
142*53ee8cc1Swenshuai.xi UtopiaModuleRegisterMdbNode("mvop", (FUtopiaMdbIoctl)MVOPMdbIoctl);
143*53ee8cc1Swenshuai.xi #endif
144*53ee8cc1Swenshuai.xi #if defined(MSOS_TYPE_LINUX_KERNEL)
145*53ee8cc1Swenshuai.xi UtopiaModuleSetupSTRFunctionPtr(pModuleMVOP,(FUtopiaSTR)MVOPStr);
146*53ee8cc1Swenshuai.xi UtopiaModuleSetSTRPrivate(pModuleMVOP, sizeof(MVOP_INSTANCE_PRIVATE));
147*53ee8cc1Swenshuai.xi #endif
148*53ee8cc1Swenshuai.xi
149*53ee8cc1Swenshuai.xi // 2. deal with resource , XC�ݥi��ݭn���resource�A�䤤�@�ӬOreadonly�A�t�~�@�ӬOXC��ӥ]��resource
150*53ee8cc1Swenshuai.xi void* psResource = NULL;
151*53ee8cc1Swenshuai.xi
152*53ee8cc1Swenshuai.xi // 3. resource can allocate private for internal use
153*53ee8cc1Swenshuai.xi UtopiaModuleAddResourceStart(pModuleMVOP, E_MVOP_POOL_ID_INTERNAL);
154*53ee8cc1Swenshuai.xi UtopiaResourceCreate("MVOP", sizeof(MVOP_RESOURCE_PRIVATE), &psResource);
155*53ee8cc1Swenshuai.xi UtopiaResourceRegister(pModuleMVOP, psResource, E_MVOP_POOL_ID_INTERNAL);
156*53ee8cc1Swenshuai.xi UtopiaModuleAddResourceEnd(pModuleMVOP, E_MVOP_POOL_ID_INTERNAL);
157*53ee8cc1Swenshuai.xi
158*53ee8cc1Swenshuai.xi // shall we init first?
159*53ee8cc1Swenshuai.xi }
160*53ee8cc1Swenshuai.xi
MVOPStr(MS_U32 u32PowerState,void * pModule)161*53ee8cc1Swenshuai.xi MS_U32 MVOPStr(MS_U32 u32PowerState, void* pModule)
162*53ee8cc1Swenshuai.xi {
163*53ee8cc1Swenshuai.xi MVOP_INSTANCE_PRIVATE *psMVOPInstPri = NULL;
164*53ee8cc1Swenshuai.xi #if defined(MSOS_TYPE_LINUX_KERNEL)
165*53ee8cc1Swenshuai.xi UtopiaModuleGetSTRPrivate(pModule, (void**)&psMVOPInstPri);
166*53ee8cc1Swenshuai.xi #endif
167*53ee8cc1Swenshuai.xi
168*53ee8cc1Swenshuai.xi if(psMVOPInstPri == NULL || psMVOPInstPri->fpMVOP_SetPowerState_Kernel == NULL)
169*53ee8cc1Swenshuai.xi {
170*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_FAIL;
171*53ee8cc1Swenshuai.xi }
172*53ee8cc1Swenshuai.xi
173*53ee8cc1Swenshuai.xi if (u32PowerState == E_POWER_SUSPEND)
174*53ee8cc1Swenshuai.xi {
175*53ee8cc1Swenshuai.xi void* pInstance = NULL;
176*53ee8cc1Swenshuai.xi stMVOP_SET_POWER_STATE tmpMVOPArgs;
177*53ee8cc1Swenshuai.xi tmpMVOPArgs.u16PowerState = E_POWER_SUSPEND;
178*53ee8cc1Swenshuai.xi tmpMVOPArgs.u32Ret = FALSE;
179*53ee8cc1Swenshuai.xi pstMVOP_SET_POWER_STATE pMVOPArgs = &tmpMVOPArgs;
180*53ee8cc1Swenshuai.xi pMVOPArgs->u32Ret = psMVOPInstPri->fpMVOP_SetPowerState_Kernel(pInstance, pMVOPArgs->u16PowerState);
181*53ee8cc1Swenshuai.xi
182*53ee8cc1Swenshuai.xi return pMVOPArgs->u32Ret;
183*53ee8cc1Swenshuai.xi }
184*53ee8cc1Swenshuai.xi else if (u32PowerState == E_POWER_RESUME)
185*53ee8cc1Swenshuai.xi {
186*53ee8cc1Swenshuai.xi void* pInstance = NULL;
187*53ee8cc1Swenshuai.xi stMVOP_SET_POWER_STATE tmpMVOPArgs;
188*53ee8cc1Swenshuai.xi tmpMVOPArgs.u16PowerState = E_POWER_RESUME;
189*53ee8cc1Swenshuai.xi tmpMVOPArgs.u32Ret = FALSE;
190*53ee8cc1Swenshuai.xi pstMVOP_SET_POWER_STATE pMVOPArgs = &tmpMVOPArgs;
191*53ee8cc1Swenshuai.xi pMVOPArgs->u32Ret = psMVOPInstPri->fpMVOP_SetPowerState_Kernel(pInstance, pMVOPArgs->u16PowerState);
192*53ee8cc1Swenshuai.xi
193*53ee8cc1Swenshuai.xi return pMVOPArgs->u32Ret;
194*53ee8cc1Swenshuai.xi }
195*53ee8cc1Swenshuai.xi
196*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_FAIL;
197*53ee8cc1Swenshuai.xi }
198*53ee8cc1Swenshuai.xi
199*53ee8cc1Swenshuai.xi
MVOPOpen(void ** ppInstance,MS_U32 u32ModuleVersion,void * pAttribute)200*53ee8cc1Swenshuai.xi MS_U32 MVOPOpen(void** ppInstance, MS_U32 u32ModuleVersion, void* pAttribute)
201*53ee8cc1Swenshuai.xi {
202*53ee8cc1Swenshuai.xi MVOP_INSTANCE_PRIVATE *psMVOPInstPri = NULL;
203*53ee8cc1Swenshuai.xi UtopiaInstanceCreate(sizeof(MVOP_INSTANCE_PRIVATE), ppInstance);
204*53ee8cc1Swenshuai.xi UtopiaInstanceGetPrivate(*ppInstance, (void**)&psMVOPInstPri);
205*53ee8cc1Swenshuai.xi
206*53ee8cc1Swenshuai.xi //Main MVOP
207*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_Init = MDrv_MVOP_Init_V2;
208*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_Exit = MDrv_MVOP_Exit_V2;
209*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_Enable = MDrv_MVOP_Enable_V2;
210*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetInputCfg = MDrv_MVOP_SetInputCfg_V2;
211*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetOutputCfg = MDrv_MVOP_SetOutputCfg_V2;
212*53ee8cc1Swenshuai.xi
213*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_EnableBlackBG = MDrv_MVOP_EnableBlackBG_V2;
214*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_EnableUVShift = MDrv_MVOP_EnableUVShift_V2;
215*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetMonoMode = MDrv_MVOP_SetMonoMode_V2;
216*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_GetHSize = MDrv_MVOP_GetHSize_V2;
217*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_GetVSize = MDrv_MVOP_GetVSize_V2;
218*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_GetHStart = MDrv_MVOP_GetHStart_V2;
219*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_GetVStart = MDrv_MVOP_GetVStart_V2;
220*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_GetIsInterlace = MDrv_MVOP_GetIsInterlace_V2;
221*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_GetIsHDuplicate = MDrv_MVOP_GetIsHDuplicate_V2;
222*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_GetIsEnable = MDrv_MVOP_GetIsEnable_V2;
223*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_GetOutputTiming = MDrv_MVOP_GetOutputTiming_V2;
224*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_GetLibVer = MDrv_MVOP_GetLibVer_V2;
225*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_CheckCapability = MDrv_MVOP_CheckCapability_V2;
226*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_GetMaxHOffset = MDrv_MVOP_GetMaxHOffset_V2;
227*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_GetMaxVOffset = MDrv_MVOP_GetMaxVOffset_V2;
228*53ee8cc1Swenshuai.xi
229*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetDbgLevel = MDrv_MVOP_SetDbgLevel_V2;
230*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_GetInfo = MDrv_MVOP_GetInfo_V2;
231*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_GetStatus = MDrv_MVOP_GetStatus_V2;
232*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetClk = MDrv_MVOP_SetClk_V2;
233*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetPattern = MDrv_MVOP_SetPattern_V2;
234*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetTileFormat = MDrv_MVOP_SetTileFormat_V2;
235*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_GetDstInfo = MDrv_MVOP_GetDstInfo_V2;
236*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetFixVtt = MDrv_MVOP_SetFixVtt_V2;
237*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetMMIOMapBase = MDrv_MVOP_SetMMIOMapBase_V2;
238*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_MiuSwitch = MDrv_MVOP_MiuSwitch_V2;
239*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetBaseAdd = MDrv_MVOP_SetBaseAdd_V2;
240*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SelOPField = MDrv_MVOP_SEL_OP_FIELD_V2;
241*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetRegSizeFromMVD = MDrv_MVOP_SetRegSizeFromMVD_V2;
242*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetStartPos = MDrv_MVOP_SetStartPos_V2;
243*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetImageWidthHight = MDrv_MVOP_SetImageWidthHight_V2;
244*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetVOPMirrorMode = MDrv_MVOP_SetVOPMirrorMode_V2;
245*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_InvOPVS = MDrv_MVOP_INV_OP_VS_V2;
246*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ForceTop = MDrv_MVOP_FORCE_TOP_V2;
247*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_EnableFreerunMode = MDrv_MVOP_EnableFreerunMode_V2;
248*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_GetBaseAdd = MDrv_MVOP_GetBaseAdd_V2;
249*53ee8cc1Swenshuai.xi
250*53ee8cc1Swenshuai.xi //Sub MVOP
251*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubInit = MDrv_MVOP_SubInit_V2;
252*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubExit = MDrv_MVOP_SubExit_V2;
253*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubEnable = MDrv_MVOP_SubEnable_V2;
254*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubSetInputCfg = MDrv_MVOP_SubSetInputCfg_V2;
255*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubSetOutputCfg = MDrv_MVOP_SubSetOutputCfg_V2;
256*53ee8cc1Swenshuai.xi
257*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubEnableBlackBG = MDrv_MVOP_EnableBlackBG_V2;
258*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubEnableUVShift = MDrv_MVOP_SubEnableUVShift_V2;
259*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubSetMonoMode = MDrv_MVOP_SubSetMonoMode_V2;
260*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubGetStatus = MDrv_MVOP_SubGetStatus_V2;
261*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubGetHSize = MDrv_MVOP_SubGetHSize_V2;
262*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubGetVSize = MDrv_MVOP_SubGetVSize_V2;
263*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubGetHStart = MDrv_MVOP_SubGetHStart_V2;
264*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubGetVStart = MDrv_MVOP_SubGetVStart_V2;
265*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubGetIsInterlace = MDrv_MVOP_SubGetIsInterlace_V2;
266*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubGetIsHDuplicate = MDrv_MVOP_SubGetIsHDuplicate_V2;
267*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubGetIsEnable = MDrv_MVOP_SubGetIsEnable_V2;
268*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubGetOutputTiming = MDrv_MVOP_SubGetOutputTiming_V2;
269*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubCheckCapability = MDrv_MVOP_SubCheckCapability_V2;
270*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubGetMaxHOffset = MDrv_MVOP_SubGetMaxHOffset_V2;
271*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubGetMaxVOffset = MDrv_MVOP_SubGetMaxVOffset_V2;
272*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubSetClk = MDrv_MVOP_SubSetClk_V2;
273*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubSetPattern = MDrv_MVOP_SubSetPattern_V2;
274*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubSetTileFormat = MDrv_MVOP_SubSetTileFormat_V2;
275*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubGetDstInfo = MDrv_MVOP_SubGetDstInfo_V2;
276*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubSetFixVtt = MDrv_MVOP_SubSetFixVtt_V2;
277*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubSetMMIOMapBase = MDrv_MVOP_SubSetMMIOMapBase_V2;
278*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubMiuSwitch = MDrv_MVOP_SubMiuSwitch_V2;
279*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubSetBaseAdd = MDrv_MVOP_SubSetBaseAdd_V2;
280*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubGetBaseAdd = MDrv_MVOP_SubGetBaseAdd_V2;
281*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubSetVOPMirrorMode = MDrv_MVOP_SubSetVOPMirrorMode_V2;
282*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubEnableFreerunMode = MDrv_MVOP_SubEnableFreerunMode_V2;
283*53ee8cc1Swenshuai.xi
284*53ee8cc1Swenshuai.xi
285*53ee8cc1Swenshuai.xi //Third MVOP
286*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExInit = MDrv_MVOP_EX_Init_V2;
287*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExExit = MDrv_MVOP_EX_Exit_V2;
288*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExEnable = MDrv_MVOP_EX_Enable_V2;
289*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExInputCfg = MDrv_MVOP_EX_SetInputCfg_V2;
290*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExOutputCfg = MDrv_MVOP_EX_SetOutputCfg_V2;
291*53ee8cc1Swenshuai.xi
292*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExSetClk = MDrv_MVOP_EX_SetClk_V2;
293*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExSetPattern = MDrv_MVOP_EX_SetPattern_V2;
294*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExSetTileFormat = MDrv_MVOP_EX_SetTileFormat_V2;
295*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExEnableUVShift = MDrv_MVOP_EX_EnableUVShift_V2;
296*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExEnableBlackBG = MDrv_MVOP_EX_EnableBlackBG_V2;
297*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExSetMonoMode = MDrv_MVOP_EX_SetMonoMode_V2;
298*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExSetFixVtt = MDrv_MVOP_EX_SetFixVtt_V2;
299*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExMiuSwitch = MDrv_MVOP_EX_MiuSwitch_V2;
300*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExSetVOPMirrorMode = MDrv_MVOP_EX_SetVOPMirrorMode_V2;
301*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExEnableFreerunMode = MDrv_MVOP_EX_EnableFreerunMode_V2;
302*53ee8cc1Swenshuai.xi
303*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExGetOutputTiming = MDrv_MVOP_EX_GetOutputTiming_V2;
304*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExGetIsEnable = MDrv_MVOP_EX_GetIsEnable_V2;
305*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExGetHSize = MDrv_MVOP_EX_GetHSize_V2;
306*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExGetVSize = MDrv_MVOP_EX_GetVSize_V2;
307*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExGetHStart = MDrv_MVOP_EX_GetHStart_V2;
308*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExGetVStart = MDrv_MVOP_EX_GetVStart_V2;
309*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExGetIsInterlace = MDrv_MVOP_EX_GetIsInterlace_V2;
310*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExGetIsHDuplicate = MDrv_MVOP_EX_GetIsHDuplicate_V2;
311*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExGetStatus = MDrv_MVOP_EX_GetStatus_V2;
312*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExCheckCapability = MDrv_MVOP_EX_CheckCapability_V2;
313*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExGetDstInfo = MDrv_MVOP_EX_GetDstInfo_V2;
314*53ee8cc1Swenshuai.xi
315*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SendBlueScreen = MDrv_MVOP_SendBlueScreen_V2;
316*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetCommand = MDrv_MVOP_SetCommand_V2;
317*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_GetCommand = MDrv_MVOP_GetCommand_V2;
318*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetFrequency = MDrv_MVOP_SetFrequency_V2;
319*53ee8cc1Swenshuai.xi
320*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_EnableInterrupt = MDrv_MVOP_EnableInterrupt_V2;
321*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_GetIntStatus = MDrv_MVOP_GetIntStatus_V2;
322*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubEnableInterrupt = MDrv_MVOP_SubEnableInterrupt_V2;
323*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubGetIntStatus = MDrv_MVOP_SubGetIntStatus_V2;
324*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExEnableInterrupt = MDrv_MVOP_EX_EnableInterrupt_V2;
325*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExGetIntStatus = MDrv_MVOP_EX_GetIntStatus_V2;
326*53ee8cc1Swenshuai.xi
327*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetPowerState = MDrv_MVOP_SetPowerState_V2;
328*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetPowerState_Kernel = MDrv_MVOP_SetPowerState_Kernel_V2;
329*53ee8cc1Swenshuai.xi #if defined(MSOS_TYPE_LINUX_KERNEL)
330*53ee8cc1Swenshuai.xi MVOP_INSTANCE_PRIVATE* psMVOPInstSTRPri = NULL;
331*53ee8cc1Swenshuai.xi UtopiaModuleGetSTRPrivate(pModuleMVOP, (void**)&psMVOPInstSTRPri);
332*53ee8cc1Swenshuai.xi
333*53ee8cc1Swenshuai.xi psMVOPInstSTRPri->fpMVOP_SetPowerState_Kernel = MDrv_MVOP_SetPowerState_Kernel_V2;
334*53ee8cc1Swenshuai.xi #endif
335*53ee8cc1Swenshuai.xi
336*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_SUCCESS;
337*53ee8cc1Swenshuai.xi }
338*53ee8cc1Swenshuai.xi
339*53ee8cc1Swenshuai.xi
MVOPIoctl(void * pInstance,MS_U32 u32Cmd,void * pArgs)340*53ee8cc1Swenshuai.xi MS_U32 MVOPIoctl(void* pInstance, MS_U32 u32Cmd, void* pArgs)
341*53ee8cc1Swenshuai.xi {
342*53ee8cc1Swenshuai.xi void* pModule = NULL;
343*53ee8cc1Swenshuai.xi void* pResource = NULL;
344*53ee8cc1Swenshuai.xi MVOP_INSTANCE_PRIVATE* psMVOPInstPri = NULL;
345*53ee8cc1Swenshuai.xi
346*53ee8cc1Swenshuai.xi UtopiaInstanceGetModule(pInstance, &pModule);
347*53ee8cc1Swenshuai.xi
348*53ee8cc1Swenshuai.xi if(UtopiaInstanceGetPrivate(pInstance, (void*)&psMVOPInstPri)!=UTOPIA_STATUS_SUCCESS)
349*53ee8cc1Swenshuai.xi {
350*53ee8cc1Swenshuai.xi printf("[%s,%5d] Instance Get Private failed\n",__FUNCTION__,__LINE__);
351*53ee8cc1Swenshuai.xi }
352*53ee8cc1Swenshuai.xi
353*53ee8cc1Swenshuai.xi //printf("[%s,%5d] u32Cmd type = %ld\n",__FUNCTION__,__LINE__,u32Cmd);
354*53ee8cc1Swenshuai.xi MS_U32 u32Return = UTOPIA_STATUS_FAIL;
355*53ee8cc1Swenshuai.xi switch(u32Cmd)
356*53ee8cc1Swenshuai.xi {
357*53ee8cc1Swenshuai.xi case E_MVOP_CMD_INIT:
358*53ee8cc1Swenshuai.xi {
359*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
360*53ee8cc1Swenshuai.xi {
361*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
362*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
363*53ee8cc1Swenshuai.xi }
364*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_Init(pInstance);
365*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
366*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
367*53ee8cc1Swenshuai.xi break;
368*53ee8cc1Swenshuai.xi }
369*53ee8cc1Swenshuai.xi
370*53ee8cc1Swenshuai.xi
371*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EXIT:
372*53ee8cc1Swenshuai.xi {
373*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
374*53ee8cc1Swenshuai.xi {
375*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
376*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
377*53ee8cc1Swenshuai.xi }
378*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_Exit(pInstance);
379*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
380*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
381*53ee8cc1Swenshuai.xi break;
382*53ee8cc1Swenshuai.xi }
383*53ee8cc1Swenshuai.xi
384*53ee8cc1Swenshuai.xi
385*53ee8cc1Swenshuai.xi case E_MVOP_CMD_ENABLE:
386*53ee8cc1Swenshuai.xi {
387*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
388*53ee8cc1Swenshuai.xi {
389*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
390*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
391*53ee8cc1Swenshuai.xi }
392*53ee8cc1Swenshuai.xi pstMVOP_ENABLE pMVOPArgs = (pstMVOP_ENABLE) pArgs;
393*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_Enable(pInstance, pMVOPArgs->bEnable);
394*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
395*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
396*53ee8cc1Swenshuai.xi break;
397*53ee8cc1Swenshuai.xi }
398*53ee8cc1Swenshuai.xi
399*53ee8cc1Swenshuai.xi
400*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SET_INPUTCFG:
401*53ee8cc1Swenshuai.xi {
402*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
403*53ee8cc1Swenshuai.xi {
404*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
405*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
406*53ee8cc1Swenshuai.xi }
407*53ee8cc1Swenshuai.xi pstMVOP_SET_INPUTCFG pMVOPArgs = (pstMVOP_SET_INPUTCFG) pArgs;
408*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_SetInputCfg(pInstance, pMVOPArgs->in, pMVOPArgs->pCfg);
409*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
410*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
411*53ee8cc1Swenshuai.xi break;
412*53ee8cc1Swenshuai.xi }
413*53ee8cc1Swenshuai.xi
414*53ee8cc1Swenshuai.xi
415*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SET_OTPUTCFG:
416*53ee8cc1Swenshuai.xi {
417*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
418*53ee8cc1Swenshuai.xi {
419*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
420*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
421*53ee8cc1Swenshuai.xi }
422*53ee8cc1Swenshuai.xi pstMVOP_SET_OTPUTCFG pMVOPArgs = (pstMVOP_SET_OTPUTCFG) pArgs;
423*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_SetOutputCfg(pInstance, pMVOPArgs->pstVideoStatus, pMVOPArgs->bEnHDup);
424*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
425*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
426*53ee8cc1Swenshuai.xi break;
427*53ee8cc1Swenshuai.xi }
428*53ee8cc1Swenshuai.xi
429*53ee8cc1Swenshuai.xi case E_MVOP_CMD_ENABLE_BLACK_BG:
430*53ee8cc1Swenshuai.xi {
431*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
432*53ee8cc1Swenshuai.xi {
433*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
434*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
435*53ee8cc1Swenshuai.xi }
436*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_EnableBlackBG(pInstance);
437*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
438*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
439*53ee8cc1Swenshuai.xi break;
440*53ee8cc1Swenshuai.xi }
441*53ee8cc1Swenshuai.xi
442*53ee8cc1Swenshuai.xi
443*53ee8cc1Swenshuai.xi case E_MVOP_CMD_ENABLE_UV_SHIFT:
444*53ee8cc1Swenshuai.xi
445*53ee8cc1Swenshuai.xi {
446*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
447*53ee8cc1Swenshuai.xi {
448*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
449*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
450*53ee8cc1Swenshuai.xi }
451*53ee8cc1Swenshuai.xi pstMVOP_ENABLE_UV_SHIFT pMVOPArgs = (pstMVOP_ENABLE_UV_SHIFT) pArgs;
452*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_EnableUVShift(pInstance, pMVOPArgs->bEnable);
453*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
454*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
455*53ee8cc1Swenshuai.xi break;
456*53ee8cc1Swenshuai.xi }
457*53ee8cc1Swenshuai.xi
458*53ee8cc1Swenshuai.xi
459*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SET_MONO_MODE:
460*53ee8cc1Swenshuai.xi {
461*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
462*53ee8cc1Swenshuai.xi {
463*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
464*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
465*53ee8cc1Swenshuai.xi }
466*53ee8cc1Swenshuai.xi pstMVOP_SET_MONO_MODE pMVOPArgs = (pstMVOP_SET_MONO_MODE) pArgs;
467*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetMonoMode(pInstance, pMVOPArgs->bEnable);
468*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
469*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
470*53ee8cc1Swenshuai.xi break;
471*53ee8cc1Swenshuai.xi }
472*53ee8cc1Swenshuai.xi
473*53ee8cc1Swenshuai.xi
474*53ee8cc1Swenshuai.xi case E_MVOP_CMD_GET_HSIZE:
475*53ee8cc1Swenshuai.xi {
476*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
477*53ee8cc1Swenshuai.xi {
478*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
479*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
480*53ee8cc1Swenshuai.xi }
481*53ee8cc1Swenshuai.xi
482*53ee8cc1Swenshuai.xi pstMVOP_GET_HSIZE pMVOPArgs = (pstMVOP_GET_HSIZE) pArgs;
483*53ee8cc1Swenshuai.xi pMVOPArgs->u16Ret = psMVOPInstPri->fpMVOP_GetHSize(pInstance);
484*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
485*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
486*53ee8cc1Swenshuai.xi break;
487*53ee8cc1Swenshuai.xi }
488*53ee8cc1Swenshuai.xi
489*53ee8cc1Swenshuai.xi
490*53ee8cc1Swenshuai.xi case E_MVOP_CMD_GET_VSIZE:
491*53ee8cc1Swenshuai.xi {
492*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
493*53ee8cc1Swenshuai.xi {
494*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
495*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
496*53ee8cc1Swenshuai.xi }
497*53ee8cc1Swenshuai.xi
498*53ee8cc1Swenshuai.xi pstMVOP_GET_VSIZE pMVOPArgs = (pstMVOP_GET_VSIZE) pArgs;
499*53ee8cc1Swenshuai.xi pMVOPArgs->u16Ret = psMVOPInstPri->fpMVOP_GetVSize(pInstance);
500*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
501*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
502*53ee8cc1Swenshuai.xi break;
503*53ee8cc1Swenshuai.xi }
504*53ee8cc1Swenshuai.xi
505*53ee8cc1Swenshuai.xi
506*53ee8cc1Swenshuai.xi case E_MVOP_CMD_GET_HSTART:
507*53ee8cc1Swenshuai.xi {
508*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
509*53ee8cc1Swenshuai.xi {
510*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
511*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
512*53ee8cc1Swenshuai.xi }
513*53ee8cc1Swenshuai.xi
514*53ee8cc1Swenshuai.xi pstMVOP_GET_HSTART pMVOPArgs = (pstMVOP_GET_HSTART) pArgs;
515*53ee8cc1Swenshuai.xi pMVOPArgs->u16Ret = psMVOPInstPri->fpMVOP_GetHStart(pInstance);
516*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
517*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
518*53ee8cc1Swenshuai.xi break;
519*53ee8cc1Swenshuai.xi }
520*53ee8cc1Swenshuai.xi
521*53ee8cc1Swenshuai.xi
522*53ee8cc1Swenshuai.xi case E_MVOP_CMD_GET_VSTART:
523*53ee8cc1Swenshuai.xi {
524*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
525*53ee8cc1Swenshuai.xi {
526*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
527*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
528*53ee8cc1Swenshuai.xi }
529*53ee8cc1Swenshuai.xi
530*53ee8cc1Swenshuai.xi pstMVOP_GET_VSTART pMVOPArgs = (pstMVOP_GET_VSTART) pArgs;
531*53ee8cc1Swenshuai.xi pMVOPArgs->u16Ret = psMVOPInstPri->fpMVOP_GetVStart(pInstance);
532*53ee8cc1Swenshuai.xi
533*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
534*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
535*53ee8cc1Swenshuai.xi break;
536*53ee8cc1Swenshuai.xi }
537*53ee8cc1Swenshuai.xi
538*53ee8cc1Swenshuai.xi
539*53ee8cc1Swenshuai.xi case E_MVOP_CMD_GET_IS_INTERLACE:
540*53ee8cc1Swenshuai.xi {
541*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
542*53ee8cc1Swenshuai.xi {
543*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
544*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
545*53ee8cc1Swenshuai.xi }
546*53ee8cc1Swenshuai.xi
547*53ee8cc1Swenshuai.xi pstMVOP_GET_IS_INTERLACE pMVOPArgs = (pstMVOP_GET_IS_INTERLACE) pArgs;
548*53ee8cc1Swenshuai.xi
549*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_GetIsInterlace(pInstance);
550*53ee8cc1Swenshuai.xi
551*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
552*53ee8cc1Swenshuai.xi
553*53ee8cc1Swenshuai.xi printf("XC Exited\n");
554*53ee8cc1Swenshuai.xi
555*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
556*53ee8cc1Swenshuai.xi break;
557*53ee8cc1Swenshuai.xi }
558*53ee8cc1Swenshuai.xi
559*53ee8cc1Swenshuai.xi
560*53ee8cc1Swenshuai.xi case E_MVOP_CMD_GET_IS_HDUPLICATE:
561*53ee8cc1Swenshuai.xi {
562*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
563*53ee8cc1Swenshuai.xi {
564*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
565*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
566*53ee8cc1Swenshuai.xi }
567*53ee8cc1Swenshuai.xi
568*53ee8cc1Swenshuai.xi pstMVOP_GET_IS_HDUPLICATE pMVOPArgs = (pstMVOP_GET_IS_HDUPLICATE) pArgs;
569*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_GetIsHDuplicate(pInstance);
570*53ee8cc1Swenshuai.xi
571*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
572*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
573*53ee8cc1Swenshuai.xi break;
574*53ee8cc1Swenshuai.xi }
575*53ee8cc1Swenshuai.xi
576*53ee8cc1Swenshuai.xi
577*53ee8cc1Swenshuai.xi case E_MVOP_CMD_GET_IS_ENABLE:
578*53ee8cc1Swenshuai.xi {
579*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
580*53ee8cc1Swenshuai.xi {
581*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
582*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
583*53ee8cc1Swenshuai.xi }
584*53ee8cc1Swenshuai.xi
585*53ee8cc1Swenshuai.xi pstMVOP_GET_IS_ENABLE pMVOPArgs = (pstMVOP_GET_IS_ENABLE) pArgs;
586*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_GetIsEnable(pInstance, pMVOPArgs->pbEnable);
587*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
588*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
589*53ee8cc1Swenshuai.xi break;
590*53ee8cc1Swenshuai.xi }
591*53ee8cc1Swenshuai.xi
592*53ee8cc1Swenshuai.xi
593*53ee8cc1Swenshuai.xi case E_MVOP_CMD_GET_OUTPUT_TIMING:
594*53ee8cc1Swenshuai.xi {
595*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
596*53ee8cc1Swenshuai.xi {
597*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
598*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
599*53ee8cc1Swenshuai.xi }
600*53ee8cc1Swenshuai.xi
601*53ee8cc1Swenshuai.xi pstMVOP_GET_OUTPUT_TIMING pMVOPArgs = (pstMVOP_GET_OUTPUT_TIMING) pArgs;
602*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_GetOutputTiming(pInstance, pMVOPArgs->pMVOPTiming);
603*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
604*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
605*53ee8cc1Swenshuai.xi break;
606*53ee8cc1Swenshuai.xi }
607*53ee8cc1Swenshuai.xi
608*53ee8cc1Swenshuai.xi
609*53ee8cc1Swenshuai.xi case E_MVOP_CMD_GET_LIBVER:
610*53ee8cc1Swenshuai.xi {
611*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
612*53ee8cc1Swenshuai.xi {
613*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
614*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
615*53ee8cc1Swenshuai.xi }
616*53ee8cc1Swenshuai.xi
617*53ee8cc1Swenshuai.xi pstMVOP_GET_LIBVER pMVOPArgs = (pstMVOP_GET_LIBVER) pArgs;
618*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_GetLibVer(pInstance, pMVOPArgs->ppVersion);
619*53ee8cc1Swenshuai.xi
620*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
621*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
622*53ee8cc1Swenshuai.xi break;
623*53ee8cc1Swenshuai.xi }
624*53ee8cc1Swenshuai.xi
625*53ee8cc1Swenshuai.xi
626*53ee8cc1Swenshuai.xi case E_MVOP_CMD_CHECK_CAPABILITY:
627*53ee8cc1Swenshuai.xi {
628*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
629*53ee8cc1Swenshuai.xi {
630*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
631*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
632*53ee8cc1Swenshuai.xi }
633*53ee8cc1Swenshuai.xi
634*53ee8cc1Swenshuai.xi pstMVOP_CHECK_CAPABILITY pMVOPArgs = (pstMVOP_CHECK_CAPABILITY) pArgs;
635*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_CheckCapability(pInstance, pMVOPArgs->u16HSize, pMVOPArgs->u16VSize, pMVOPArgs->u16Fps);
636*53ee8cc1Swenshuai.xi
637*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
638*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
639*53ee8cc1Swenshuai.xi break;
640*53ee8cc1Swenshuai.xi }
641*53ee8cc1Swenshuai.xi
642*53ee8cc1Swenshuai.xi
643*53ee8cc1Swenshuai.xi case E_MVOP_CMD_GET_MAX_HOFFSET:
644*53ee8cc1Swenshuai.xi {
645*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
646*53ee8cc1Swenshuai.xi {
647*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
648*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
649*53ee8cc1Swenshuai.xi }
650*53ee8cc1Swenshuai.xi
651*53ee8cc1Swenshuai.xi pstMVOP_GET_MAX_HOFFSET pMVOPArgs = (pstMVOP_GET_MAX_HOFFSET) pArgs;
652*53ee8cc1Swenshuai.xi pMVOPArgs->u16Ret = psMVOPInstPri->fpMVOP_GetMaxHOffset(pInstance, pMVOPArgs->u16HSize, pMVOPArgs->u16VSize, pMVOPArgs->u16Fps);
653*53ee8cc1Swenshuai.xi
654*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
655*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
656*53ee8cc1Swenshuai.xi break;
657*53ee8cc1Swenshuai.xi }
658*53ee8cc1Swenshuai.xi
659*53ee8cc1Swenshuai.xi
660*53ee8cc1Swenshuai.xi case E_MVOP_CMD_GET_MAX_VOFFSET:
661*53ee8cc1Swenshuai.xi {
662*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
663*53ee8cc1Swenshuai.xi {
664*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
665*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
666*53ee8cc1Swenshuai.xi }
667*53ee8cc1Swenshuai.xi
668*53ee8cc1Swenshuai.xi pstMVOP_GET_MAX_VOFFSET pMVOPArgs = (pstMVOP_GET_MAX_VOFFSET) pArgs;
669*53ee8cc1Swenshuai.xi pMVOPArgs->u16Ret = psMVOPInstPri->fpMVOP_GetMaxVOffset(pInstance, pMVOPArgs->u16HSize, pMVOPArgs->u16VSize, pMVOPArgs->u16Fps);
670*53ee8cc1Swenshuai.xi
671*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
672*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
673*53ee8cc1Swenshuai.xi break;
674*53ee8cc1Swenshuai.xi }
675*53ee8cc1Swenshuai.xi
676*53ee8cc1Swenshuai.xi
677*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SET_DBG_LEVEL:
678*53ee8cc1Swenshuai.xi {
679*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
680*53ee8cc1Swenshuai.xi {
681*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
682*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
683*53ee8cc1Swenshuai.xi }
684*53ee8cc1Swenshuai.xi
685*53ee8cc1Swenshuai.xi pstMVOP_SET_DBG_LEVEL pMVOPArgs = (pstMVOP_SET_DBG_LEVEL) pArgs;
686*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetDbgLevel(pInstance, pMVOPArgs->level);
687*53ee8cc1Swenshuai.xi
688*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
689*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
690*53ee8cc1Swenshuai.xi break;
691*53ee8cc1Swenshuai.xi }
692*53ee8cc1Swenshuai.xi
693*53ee8cc1Swenshuai.xi
694*53ee8cc1Swenshuai.xi case E_MVOP_CMD_GET_INFO:
695*53ee8cc1Swenshuai.xi {
696*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
697*53ee8cc1Swenshuai.xi {
698*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
699*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
700*53ee8cc1Swenshuai.xi }
701*53ee8cc1Swenshuai.xi
702*53ee8cc1Swenshuai.xi pstMVOP_GET_INFO pMVOPArgs = (pstMVOP_GET_INFO) pArgs;
703*53ee8cc1Swenshuai.xi pMVOPArgs->pRet = psMVOPInstPri->fpMVOP_GetInfo(pInstance);
704*53ee8cc1Swenshuai.xi
705*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
706*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
707*53ee8cc1Swenshuai.xi break;
708*53ee8cc1Swenshuai.xi }
709*53ee8cc1Swenshuai.xi
710*53ee8cc1Swenshuai.xi
711*53ee8cc1Swenshuai.xi case E_MVOP_CMD_GET_STATUS:
712*53ee8cc1Swenshuai.xi {
713*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
714*53ee8cc1Swenshuai.xi {
715*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
716*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
717*53ee8cc1Swenshuai.xi }
718*53ee8cc1Swenshuai.xi
719*53ee8cc1Swenshuai.xi pstMVOP_GET_STATUS pMVOPArgs = (pstMVOP_GET_STATUS) pArgs;
720*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_GetStatus(pInstance, pMVOPArgs->pMVOPStat);
721*53ee8cc1Swenshuai.xi
722*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
723*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
724*53ee8cc1Swenshuai.xi break;
725*53ee8cc1Swenshuai.xi }
726*53ee8cc1Swenshuai.xi
727*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SET_CLK:
728*53ee8cc1Swenshuai.xi {
729*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
730*53ee8cc1Swenshuai.xi {
731*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
732*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
733*53ee8cc1Swenshuai.xi }
734*53ee8cc1Swenshuai.xi
735*53ee8cc1Swenshuai.xi pstMVOP_SET_CLK pMVOPArgs = (pstMVOP_SET_CLK) pArgs;
736*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetClk(pInstance, pMVOPArgs->bEnable);
737*53ee8cc1Swenshuai.xi
738*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
739*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
740*53ee8cc1Swenshuai.xi break;
741*53ee8cc1Swenshuai.xi }
742*53ee8cc1Swenshuai.xi
743*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SET_PATTERN:
744*53ee8cc1Swenshuai.xi {
745*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
746*53ee8cc1Swenshuai.xi {
747*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
748*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
749*53ee8cc1Swenshuai.xi }
750*53ee8cc1Swenshuai.xi
751*53ee8cc1Swenshuai.xi pstMVOP_SET_PATTERN pMVOPArgs = (pstMVOP_SET_PATTERN) pArgs;
752*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetPattern(pInstance, pMVOPArgs->enMVOPPattern);
753*53ee8cc1Swenshuai.xi
754*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
755*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
756*53ee8cc1Swenshuai.xi break;
757*53ee8cc1Swenshuai.xi }
758*53ee8cc1Swenshuai.xi
759*53ee8cc1Swenshuai.xi
760*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SET_TILE_FORMAT:
761*53ee8cc1Swenshuai.xi {
762*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
763*53ee8cc1Swenshuai.xi {
764*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
765*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
766*53ee8cc1Swenshuai.xi }
767*53ee8cc1Swenshuai.xi
768*53ee8cc1Swenshuai.xi pstMVOP_SET_TILE_FORMAT pMVOPArgs = (pstMVOP_SET_TILE_FORMAT) pArgs;
769*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_SetTileFormat(pInstance, pMVOPArgs->eTileFmt);
770*53ee8cc1Swenshuai.xi
771*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
772*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
773*53ee8cc1Swenshuai.xi break;
774*53ee8cc1Swenshuai.xi }
775*53ee8cc1Swenshuai.xi
776*53ee8cc1Swenshuai.xi
777*53ee8cc1Swenshuai.xi case E_MVOP_CMD_GET_DST_INFO:
778*53ee8cc1Swenshuai.xi {
779*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
780*53ee8cc1Swenshuai.xi {
781*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
782*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
783*53ee8cc1Swenshuai.xi }
784*53ee8cc1Swenshuai.xi
785*53ee8cc1Swenshuai.xi pstMVOP_GET_DST_INFO pMVOPArgs = (pstMVOP_GET_DST_INFO) pArgs;
786*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_GetDstInfo(pInstance, pMVOPArgs->pDstInfo, pMVOPArgs->u32SizeofDstInfo);
787*53ee8cc1Swenshuai.xi
788*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
789*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
790*53ee8cc1Swenshuai.xi break;
791*53ee8cc1Swenshuai.xi }
792*53ee8cc1Swenshuai.xi
793*53ee8cc1Swenshuai.xi
794*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SET_FIXVTT:
795*53ee8cc1Swenshuai.xi {
796*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
797*53ee8cc1Swenshuai.xi {
798*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
799*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
800*53ee8cc1Swenshuai.xi }
801*53ee8cc1Swenshuai.xi
802*53ee8cc1Swenshuai.xi pstMVOP_SET_FIXVTT pMVOPArgs = (pstMVOP_SET_FIXVTT) pArgs;
803*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_SetFixVtt(pInstance, pMVOPArgs->u16FixVtt);
804*53ee8cc1Swenshuai.xi
805*53ee8cc1Swenshuai.xi
806*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
807*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
808*53ee8cc1Swenshuai.xi break;
809*53ee8cc1Swenshuai.xi }
810*53ee8cc1Swenshuai.xi
811*53ee8cc1Swenshuai.xi
812*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SET_MMIO_MAPBASE:
813*53ee8cc1Swenshuai.xi {
814*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
815*53ee8cc1Swenshuai.xi {
816*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
817*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
818*53ee8cc1Swenshuai.xi }
819*53ee8cc1Swenshuai.xi
820*53ee8cc1Swenshuai.xi pstMVOP_SET_MMIO_MAPBASE pMVOPArgs = (pstMVOP_SET_MMIO_MAPBASE) pArgs;
821*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_SetMMIOMapBase(pInstance);
822*53ee8cc1Swenshuai.xi
823*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
824*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
825*53ee8cc1Swenshuai.xi break;
826*53ee8cc1Swenshuai.xi }
827*53ee8cc1Swenshuai.xi
828*53ee8cc1Swenshuai.xi
829*53ee8cc1Swenshuai.xi case E_MVOP_CMD_MIU_SWITCH:
830*53ee8cc1Swenshuai.xi {
831*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
832*53ee8cc1Swenshuai.xi {
833*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
834*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
835*53ee8cc1Swenshuai.xi }
836*53ee8cc1Swenshuai.xi
837*53ee8cc1Swenshuai.xi pstMVOP_MIU_SWITCH pMVOPArgs = (pstMVOP_MIU_SWITCH) pArgs;
838*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_MiuSwitch(pInstance, pMVOPArgs->u8Miu);
839*53ee8cc1Swenshuai.xi
840*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
841*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
842*53ee8cc1Swenshuai.xi break;
843*53ee8cc1Swenshuai.xi }
844*53ee8cc1Swenshuai.xi
845*53ee8cc1Swenshuai.xi
846*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SET_BASEADD:
847*53ee8cc1Swenshuai.xi {
848*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
849*53ee8cc1Swenshuai.xi {
850*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
851*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
852*53ee8cc1Swenshuai.xi }
853*53ee8cc1Swenshuai.xi
854*53ee8cc1Swenshuai.xi pstMVOP_SET_BASEADD pMVOPArgs = (pstMVOP_SET_BASEADD) pArgs;
855*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_SetBaseAdd(pInstance, pMVOPArgs->u32YOffset, pMVOPArgs->u32UVOffset, pMVOPArgs->bProgressive, pMVOPArgs->b422pack);
856*53ee8cc1Swenshuai.xi
857*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
858*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
859*53ee8cc1Swenshuai.xi break;
860*53ee8cc1Swenshuai.xi }
861*53ee8cc1Swenshuai.xi
862*53ee8cc1Swenshuai.xi
863*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SEL_OP_FIELD:
864*53ee8cc1Swenshuai.xi {
865*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
866*53ee8cc1Swenshuai.xi {
867*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
868*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
869*53ee8cc1Swenshuai.xi }
870*53ee8cc1Swenshuai.xi
871*53ee8cc1Swenshuai.xi pstMVOP_SEL_OP_FIELD pMVOPArgs = (pstMVOP_SEL_OP_FIELD) pArgs;
872*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SelOPField(pInstance, pMVOPArgs->bEnable);
873*53ee8cc1Swenshuai.xi
874*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
875*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
876*53ee8cc1Swenshuai.xi break;
877*53ee8cc1Swenshuai.xi }
878*53ee8cc1Swenshuai.xi
879*53ee8cc1Swenshuai.xi
880*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SET_REGSIZE_FROM_MVD:
881*53ee8cc1Swenshuai.xi {
882*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
883*53ee8cc1Swenshuai.xi {
884*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
885*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
886*53ee8cc1Swenshuai.xi }
887*53ee8cc1Swenshuai.xi
888*53ee8cc1Swenshuai.xi pstMVOP_SET_REGSIZE_FROM_MVD pMVOPArgs = (pstMVOP_SET_REGSIZE_FROM_MVD) pArgs;
889*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetRegSizeFromMVD(pInstance, pMVOPArgs->bEnable);
890*53ee8cc1Swenshuai.xi
891*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
892*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
893*53ee8cc1Swenshuai.xi break;
894*53ee8cc1Swenshuai.xi }
895*53ee8cc1Swenshuai.xi
896*53ee8cc1Swenshuai.xi
897*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SET_START_POS:
898*53ee8cc1Swenshuai.xi {
899*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
900*53ee8cc1Swenshuai.xi {
901*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
902*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
903*53ee8cc1Swenshuai.xi }
904*53ee8cc1Swenshuai.xi
905*53ee8cc1Swenshuai.xi pstMVOP_SET_START_POS pMVOPArgs = (pstMVOP_SET_START_POS) pArgs;
906*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetStartPos(pInstance, pMVOPArgs->u16Xpos, pMVOPArgs->u16Ypos);
907*53ee8cc1Swenshuai.xi
908*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
909*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
910*53ee8cc1Swenshuai.xi break;
911*53ee8cc1Swenshuai.xi }
912*53ee8cc1Swenshuai.xi
913*53ee8cc1Swenshuai.xi
914*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SET_IMAGE_WIDTH_HIGHT:
915*53ee8cc1Swenshuai.xi {
916*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
917*53ee8cc1Swenshuai.xi {
918*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
919*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
920*53ee8cc1Swenshuai.xi }
921*53ee8cc1Swenshuai.xi
922*53ee8cc1Swenshuai.xi pstMVOP_SET_IMAGE_WIDTH_HIGHT pMVOPArgs = (pstMVOP_SET_IMAGE_WIDTH_HIGHT) pArgs;
923*53ee8cc1Swenshuai.xi pMVOPArgs->bRet= psMVOPInstPri->fpMVOP_SetImageWidthHight(pInstance, pMVOPArgs->u16Width, pMVOPArgs->u16Height);
924*53ee8cc1Swenshuai.xi
925*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
926*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
927*53ee8cc1Swenshuai.xi break;
928*53ee8cc1Swenshuai.xi }
929*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SET_VOP_MIRROR_MODE:
930*53ee8cc1Swenshuai.xi {
931*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
932*53ee8cc1Swenshuai.xi {
933*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
934*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
935*53ee8cc1Swenshuai.xi }
936*53ee8cc1Swenshuai.xi
937*53ee8cc1Swenshuai.xi pstMVOP_SET_VOP_MIRROR_MODE pMVOPArgs = (pstMVOP_SET_VOP_MIRROR_MODE) pArgs;
938*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetVOPMirrorMode(pInstance, pMVOPArgs->bEnable, pMVOPArgs->eMirrorMode);
939*53ee8cc1Swenshuai.xi
940*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
941*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
942*53ee8cc1Swenshuai.xi break;
943*53ee8cc1Swenshuai.xi }
944*53ee8cc1Swenshuai.xi
945*53ee8cc1Swenshuai.xi case E_MVOP_CMD_INV_OP_VS:
946*53ee8cc1Swenshuai.xi {
947*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
948*53ee8cc1Swenshuai.xi {
949*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
950*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
951*53ee8cc1Swenshuai.xi }
952*53ee8cc1Swenshuai.xi
953*53ee8cc1Swenshuai.xi pstMVOP_INV_OP_VS pMVOPArgs = (pstMVOP_INV_OP_VS) pArgs;
954*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_InvOPVS(pInstance, pMVOPArgs->bEnable);
955*53ee8cc1Swenshuai.xi
956*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
957*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
958*53ee8cc1Swenshuai.xi break;
959*53ee8cc1Swenshuai.xi }
960*53ee8cc1Swenshuai.xi
961*53ee8cc1Swenshuai.xi
962*53ee8cc1Swenshuai.xi case E_MVOP_CMD_FORCE_TOP:
963*53ee8cc1Swenshuai.xi {
964*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
965*53ee8cc1Swenshuai.xi {
966*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
967*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
968*53ee8cc1Swenshuai.xi }
969*53ee8cc1Swenshuai.xi
970*53ee8cc1Swenshuai.xi pstMVOP_FORCE_TOP MVOPArgs = (pstMVOP_FORCE_TOP) pArgs;
971*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ForceTop(pInstance, MVOPArgs->bEnable);
972*53ee8cc1Swenshuai.xi
973*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
974*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
975*53ee8cc1Swenshuai.xi break;
976*53ee8cc1Swenshuai.xi }
977*53ee8cc1Swenshuai.xi
978*53ee8cc1Swenshuai.xi
979*53ee8cc1Swenshuai.xi case E_MVOP_CMD_ENABLE_FREERUN_MODE:
980*53ee8cc1Swenshuai.xi {
981*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
982*53ee8cc1Swenshuai.xi {
983*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
984*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
985*53ee8cc1Swenshuai.xi }
986*53ee8cc1Swenshuai.xi
987*53ee8cc1Swenshuai.xi pstMVOP_ENABLE_FREERUN_MODE pMVOPArgs = (pstMVOP_ENABLE_FREERUN_MODE) pArgs;
988*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_EnableFreerunMode(pInstance, pMVOPArgs->bEnable);
989*53ee8cc1Swenshuai.xi
990*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
991*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
992*53ee8cc1Swenshuai.xi break;
993*53ee8cc1Swenshuai.xi }
994*53ee8cc1Swenshuai.xi
995*53ee8cc1Swenshuai.xi
996*53ee8cc1Swenshuai.xi case E_MVOP_CMD_GET_BASE_ADD:
997*53ee8cc1Swenshuai.xi {
998*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
999*53ee8cc1Swenshuai.xi {
1000*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1001*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1002*53ee8cc1Swenshuai.xi }
1003*53ee8cc1Swenshuai.xi
1004*53ee8cc1Swenshuai.xi pstMVOP_GET_BASE_ADD pMVOPArgs = (pstMVOP_GET_BASE_ADD) pArgs;
1005*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_GetBaseAdd(pInstance, pMVOPArgs->u32YOffset, pMVOPArgs->u32UVOffset);
1006*53ee8cc1Swenshuai.xi
1007*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1008*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1009*53ee8cc1Swenshuai.xi break;
1010*53ee8cc1Swenshuai.xi }
1011*53ee8cc1Swenshuai.xi
1012*53ee8cc1Swenshuai.xi
1013*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_INIT:
1014*53ee8cc1Swenshuai.xi {
1015*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1016*53ee8cc1Swenshuai.xi {
1017*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1018*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1019*53ee8cc1Swenshuai.xi }
1020*53ee8cc1Swenshuai.xi
1021*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubInit(pInstance);
1022*53ee8cc1Swenshuai.xi
1023*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1024*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1025*53ee8cc1Swenshuai.xi break;
1026*53ee8cc1Swenshuai.xi }
1027*53ee8cc1Swenshuai.xi
1028*53ee8cc1Swenshuai.xi
1029*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_EXIT:
1030*53ee8cc1Swenshuai.xi {
1031*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1032*53ee8cc1Swenshuai.xi {
1033*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1034*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1035*53ee8cc1Swenshuai.xi }
1036*53ee8cc1Swenshuai.xi
1037*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubExit(pInstance);
1038*53ee8cc1Swenshuai.xi
1039*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1040*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1041*53ee8cc1Swenshuai.xi break;
1042*53ee8cc1Swenshuai.xi }
1043*53ee8cc1Swenshuai.xi
1044*53ee8cc1Swenshuai.xi
1045*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_ENABLE:
1046*53ee8cc1Swenshuai.xi {
1047*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1048*53ee8cc1Swenshuai.xi {
1049*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1050*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1051*53ee8cc1Swenshuai.xi }
1052*53ee8cc1Swenshuai.xi
1053*53ee8cc1Swenshuai.xi pstMVOP_SUB_ENABLE pMVOPArgs = (pstMVOP_SUB_ENABLE) pArgs;
1054*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubEnable(pInstance, pMVOPArgs->bEnable);
1055*53ee8cc1Swenshuai.xi
1056*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1057*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1058*53ee8cc1Swenshuai.xi break;
1059*53ee8cc1Swenshuai.xi }
1060*53ee8cc1Swenshuai.xi
1061*53ee8cc1Swenshuai.xi
1062*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_SET_INPUTCFG:
1063*53ee8cc1Swenshuai.xi {
1064*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1065*53ee8cc1Swenshuai.xi {
1066*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1067*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1068*53ee8cc1Swenshuai.xi }
1069*53ee8cc1Swenshuai.xi
1070*53ee8cc1Swenshuai.xi pstMVOP_SUB_SET_INPUTCFG pMVOPArgs = (pstMVOP_SUB_SET_INPUTCFG) pArgs;
1071*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_SubSetInputCfg(pInstance, pMVOPArgs->in, pMVOPArgs->pCfg);
1072*53ee8cc1Swenshuai.xi
1073*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1074*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1075*53ee8cc1Swenshuai.xi break;
1076*53ee8cc1Swenshuai.xi }
1077*53ee8cc1Swenshuai.xi
1078*53ee8cc1Swenshuai.xi
1079*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_SET_OTPUTCFG:
1080*53ee8cc1Swenshuai.xi {
1081*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1082*53ee8cc1Swenshuai.xi {
1083*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1084*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1085*53ee8cc1Swenshuai.xi }
1086*53ee8cc1Swenshuai.xi
1087*53ee8cc1Swenshuai.xi pstMVOP_SUB_SET_OTPUTCFG pMVOPArgs = (pstMVOP_SUB_SET_OTPUTCFG) pArgs;
1088*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_SubSetOutputCfg(pInstance, pMVOPArgs->pstVideoStatus, pMVOPArgs->bEnHDup);
1089*53ee8cc1Swenshuai.xi
1090*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1091*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1092*53ee8cc1Swenshuai.xi break;
1093*53ee8cc1Swenshuai.xi }
1094*53ee8cc1Swenshuai.xi
1095*53ee8cc1Swenshuai.xi
1096*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_ENABLE_BLACK_BG:
1097*53ee8cc1Swenshuai.xi {
1098*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1099*53ee8cc1Swenshuai.xi {
1100*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1101*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1102*53ee8cc1Swenshuai.xi }
1103*53ee8cc1Swenshuai.xi
1104*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubEnableBlackBG(pInstance);
1105*53ee8cc1Swenshuai.xi
1106*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1107*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1108*53ee8cc1Swenshuai.xi break;
1109*53ee8cc1Swenshuai.xi }
1110*53ee8cc1Swenshuai.xi
1111*53ee8cc1Swenshuai.xi
1112*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_ENABLE_UV_SHIFT:
1113*53ee8cc1Swenshuai.xi {
1114*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1115*53ee8cc1Swenshuai.xi {
1116*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1117*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1118*53ee8cc1Swenshuai.xi }
1119*53ee8cc1Swenshuai.xi
1120*53ee8cc1Swenshuai.xi pstMVOP_SUB_ENABLE_UV_SHIFT pMVOPArgs = (pstMVOP_SUB_ENABLE_UV_SHIFT) pArgs;
1121*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubEnableUVShift(pInstance, pMVOPArgs->bEnable);
1122*53ee8cc1Swenshuai.xi
1123*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1124*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1125*53ee8cc1Swenshuai.xi break;
1126*53ee8cc1Swenshuai.xi }
1127*53ee8cc1Swenshuai.xi
1128*53ee8cc1Swenshuai.xi
1129*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_SET_MONO_MODE:
1130*53ee8cc1Swenshuai.xi {
1131*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1132*53ee8cc1Swenshuai.xi {
1133*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1134*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1135*53ee8cc1Swenshuai.xi }
1136*53ee8cc1Swenshuai.xi
1137*53ee8cc1Swenshuai.xi pstMVOP_SUB_SET_MONO_MODE pMVOPArgs = (pstMVOP_SUB_SET_MONO_MODE) pArgs;
1138*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubSetMonoMode(pInstance, pMVOPArgs->bEnable);
1139*53ee8cc1Swenshuai.xi
1140*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1141*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1142*53ee8cc1Swenshuai.xi break;
1143*53ee8cc1Swenshuai.xi }
1144*53ee8cc1Swenshuai.xi
1145*53ee8cc1Swenshuai.xi
1146*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_GET_HSIZE:
1147*53ee8cc1Swenshuai.xi {
1148*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1149*53ee8cc1Swenshuai.xi {
1150*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1151*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1152*53ee8cc1Swenshuai.xi }
1153*53ee8cc1Swenshuai.xi
1154*53ee8cc1Swenshuai.xi pstMVOP_SUB_GET_HSIZE pMVOPArgs = (pstMVOP_SUB_GET_HSIZE) pArgs;
1155*53ee8cc1Swenshuai.xi pMVOPArgs->u16Ret = psMVOPInstPri->fpMVOP_SubGetHSize(pInstance);
1156*53ee8cc1Swenshuai.xi
1157*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1158*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1159*53ee8cc1Swenshuai.xi break;
1160*53ee8cc1Swenshuai.xi }
1161*53ee8cc1Swenshuai.xi
1162*53ee8cc1Swenshuai.xi
1163*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_GET_VSIZE:
1164*53ee8cc1Swenshuai.xi {
1165*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1166*53ee8cc1Swenshuai.xi {
1167*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1168*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1169*53ee8cc1Swenshuai.xi }
1170*53ee8cc1Swenshuai.xi
1171*53ee8cc1Swenshuai.xi pstMVOP_SUB_GET_VSIZE pMVOPArgs = (pstMVOP_SUB_GET_VSIZE) pArgs;
1172*53ee8cc1Swenshuai.xi pMVOPArgs->u16Ret = psMVOPInstPri->fpMVOP_SubGetVSize(pInstance);
1173*53ee8cc1Swenshuai.xi
1174*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1175*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1176*53ee8cc1Swenshuai.xi break;
1177*53ee8cc1Swenshuai.xi }
1178*53ee8cc1Swenshuai.xi
1179*53ee8cc1Swenshuai.xi
1180*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_GET_HSTART:
1181*53ee8cc1Swenshuai.xi {
1182*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1183*53ee8cc1Swenshuai.xi {
1184*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1185*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1186*53ee8cc1Swenshuai.xi }
1187*53ee8cc1Swenshuai.xi
1188*53ee8cc1Swenshuai.xi pstMVOP_SUB_GET_HSTART pMVOPArgs = (pstMVOP_SUB_GET_HSTART) pArgs;
1189*53ee8cc1Swenshuai.xi pMVOPArgs->u16Ret = psMVOPInstPri->fpMVOP_SubGetHStart(pInstance);
1190*53ee8cc1Swenshuai.xi
1191*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1192*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1193*53ee8cc1Swenshuai.xi break;
1194*53ee8cc1Swenshuai.xi }
1195*53ee8cc1Swenshuai.xi
1196*53ee8cc1Swenshuai.xi
1197*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_GET_VSTART:
1198*53ee8cc1Swenshuai.xi {
1199*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1200*53ee8cc1Swenshuai.xi {
1201*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1202*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1203*53ee8cc1Swenshuai.xi }
1204*53ee8cc1Swenshuai.xi
1205*53ee8cc1Swenshuai.xi pstMVOP_SUB_GET_VSTART pMVOPArgs = (pstMVOP_SUB_GET_VSTART) pArgs;
1206*53ee8cc1Swenshuai.xi pMVOPArgs->u16Ret = psMVOPInstPri->fpMVOP_SubGetVStart(pInstance);
1207*53ee8cc1Swenshuai.xi
1208*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1209*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1210*53ee8cc1Swenshuai.xi break;
1211*53ee8cc1Swenshuai.xi }
1212*53ee8cc1Swenshuai.xi
1213*53ee8cc1Swenshuai.xi
1214*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_GET_IS_INTERLACE:
1215*53ee8cc1Swenshuai.xi {
1216*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1217*53ee8cc1Swenshuai.xi {
1218*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1219*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1220*53ee8cc1Swenshuai.xi }
1221*53ee8cc1Swenshuai.xi
1222*53ee8cc1Swenshuai.xi pstMVOP_SUB_GET_IS_INTERLACE pMVOPArgs = (pstMVOP_SUB_GET_IS_INTERLACE) pArgs;
1223*53ee8cc1Swenshuai.xi pMVOPArgs->bRet= psMVOPInstPri->fpMVOP_SubGetIsInterlace(pInstance);
1224*53ee8cc1Swenshuai.xi
1225*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1226*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1227*53ee8cc1Swenshuai.xi break;
1228*53ee8cc1Swenshuai.xi }
1229*53ee8cc1Swenshuai.xi
1230*53ee8cc1Swenshuai.xi
1231*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_GET_IS_HDUPLICATE:
1232*53ee8cc1Swenshuai.xi {
1233*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1234*53ee8cc1Swenshuai.xi {
1235*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1236*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1237*53ee8cc1Swenshuai.xi }
1238*53ee8cc1Swenshuai.xi
1239*53ee8cc1Swenshuai.xi pstMVOP_SUB_GET_IS_HDUPLICATE pMVOPArgs = (pstMVOP_SUB_GET_IS_HDUPLICATE) pArgs;
1240*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_SubGetIsHDuplicate(pInstance);
1241*53ee8cc1Swenshuai.xi
1242*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1243*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1244*53ee8cc1Swenshuai.xi break;
1245*53ee8cc1Swenshuai.xi }
1246*53ee8cc1Swenshuai.xi
1247*53ee8cc1Swenshuai.xi
1248*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_GET_IS_ENABLE:
1249*53ee8cc1Swenshuai.xi {
1250*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1251*53ee8cc1Swenshuai.xi {
1252*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1253*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1254*53ee8cc1Swenshuai.xi }
1255*53ee8cc1Swenshuai.xi
1256*53ee8cc1Swenshuai.xi pstMVOP_SUB_GET_IS_ENABLE pMVOPArgs = (pstMVOP_SUB_GET_IS_ENABLE) pArgs;
1257*53ee8cc1Swenshuai.xi pMVOPArgs->eRet= psMVOPInstPri->fpMVOP_SubGetIsEnable(pInstance, pMVOPArgs->pbEnable);
1258*53ee8cc1Swenshuai.xi
1259*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1260*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1261*53ee8cc1Swenshuai.xi break;
1262*53ee8cc1Swenshuai.xi }
1263*53ee8cc1Swenshuai.xi
1264*53ee8cc1Swenshuai.xi
1265*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_GET_OUTPUT_TIMING:
1266*53ee8cc1Swenshuai.xi {
1267*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1268*53ee8cc1Swenshuai.xi {
1269*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1270*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1271*53ee8cc1Swenshuai.xi }
1272*53ee8cc1Swenshuai.xi
1273*53ee8cc1Swenshuai.xi pstMVOP_SUB_GET_OUTPUT_TIMING pMVOPArgs = (pstMVOP_SUB_GET_OUTPUT_TIMING) pArgs;
1274*53ee8cc1Swenshuai.xi pMVOPArgs->eRet= psMVOPInstPri->fpMVOP_SubGetOutputTiming(pInstance, pMVOPArgs->pMVOPTiming);
1275*53ee8cc1Swenshuai.xi
1276*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1277*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1278*53ee8cc1Swenshuai.xi break;
1279*53ee8cc1Swenshuai.xi }
1280*53ee8cc1Swenshuai.xi
1281*53ee8cc1Swenshuai.xi
1282*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_CHECK_CAPABILITY:
1283*53ee8cc1Swenshuai.xi {
1284*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1285*53ee8cc1Swenshuai.xi {
1286*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1287*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1288*53ee8cc1Swenshuai.xi }
1289*53ee8cc1Swenshuai.xi
1290*53ee8cc1Swenshuai.xi pstMVOP_SUB_CHECK_CAPABILITY pMVOPArgs = (pstMVOP_SUB_CHECK_CAPABILITY) pArgs;
1291*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_SubCheckCapability(pInstance, pMVOPArgs->u16HSize, pMVOPArgs->u16VSize, pMVOPArgs->u16Fps);
1292*53ee8cc1Swenshuai.xi
1293*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1294*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1295*53ee8cc1Swenshuai.xi break;
1296*53ee8cc1Swenshuai.xi }
1297*53ee8cc1Swenshuai.xi
1298*53ee8cc1Swenshuai.xi
1299*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_GET_MAXHOFFSET:
1300*53ee8cc1Swenshuai.xi {
1301*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1302*53ee8cc1Swenshuai.xi {
1303*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1304*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1305*53ee8cc1Swenshuai.xi }
1306*53ee8cc1Swenshuai.xi
1307*53ee8cc1Swenshuai.xi pstMVOP_SUB_GET_MAX_HOFFSET pMVOPArgs = (pstMVOP_SUB_GET_MAX_HOFFSET) pArgs;
1308*53ee8cc1Swenshuai.xi pMVOPArgs->u16Ret = psMVOPInstPri->fpMVOP_SubGetMaxHOffset(pInstance, pMVOPArgs->u16HSize, pMVOPArgs->u16VSize, pMVOPArgs->u16Fps);
1309*53ee8cc1Swenshuai.xi
1310*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1311*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1312*53ee8cc1Swenshuai.xi break;
1313*53ee8cc1Swenshuai.xi }
1314*53ee8cc1Swenshuai.xi
1315*53ee8cc1Swenshuai.xi
1316*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_GET_MAXVOFFSET:
1317*53ee8cc1Swenshuai.xi {
1318*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1319*53ee8cc1Swenshuai.xi {
1320*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1321*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1322*53ee8cc1Swenshuai.xi }
1323*53ee8cc1Swenshuai.xi
1324*53ee8cc1Swenshuai.xi pstMVOP_SUB_GET_MAX_VOFFSET pMVOPArgs = (pstMVOP_SUB_GET_MAX_VOFFSET) pArgs;
1325*53ee8cc1Swenshuai.xi pMVOPArgs->u16Ret = psMVOPInstPri->fpMVOP_SubGetMaxVOffset(pInstance, pMVOPArgs->u16HSize, pMVOPArgs->u16VSize, pMVOPArgs->u16Fps);
1326*53ee8cc1Swenshuai.xi
1327*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1328*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1329*53ee8cc1Swenshuai.xi break;
1330*53ee8cc1Swenshuai.xi }
1331*53ee8cc1Swenshuai.xi
1332*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_SET_CLK:
1333*53ee8cc1Swenshuai.xi {
1334*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1335*53ee8cc1Swenshuai.xi {
1336*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1337*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1338*53ee8cc1Swenshuai.xi }
1339*53ee8cc1Swenshuai.xi
1340*53ee8cc1Swenshuai.xi pstMVOP_SUB_SET_CLK pMVOPArgs = (pstMVOP_SUB_SET_CLK) pArgs;
1341*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubSetClk(pInstance, pMVOPArgs->bEnable);
1342*53ee8cc1Swenshuai.xi
1343*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1344*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1345*53ee8cc1Swenshuai.xi break;
1346*53ee8cc1Swenshuai.xi }
1347*53ee8cc1Swenshuai.xi
1348*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_SET_PATTERN:
1349*53ee8cc1Swenshuai.xi {
1350*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1351*53ee8cc1Swenshuai.xi {
1352*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1353*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1354*53ee8cc1Swenshuai.xi }
1355*53ee8cc1Swenshuai.xi
1356*53ee8cc1Swenshuai.xi pstMVOP_SUB_SET_PATTERN pMVOPArgs = (pstMVOP_SUB_SET_PATTERN) pArgs;
1357*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubSetPattern(pInstance, pMVOPArgs->enMVOPPattern);
1358*53ee8cc1Swenshuai.xi
1359*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1360*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1361*53ee8cc1Swenshuai.xi break;
1362*53ee8cc1Swenshuai.xi }
1363*53ee8cc1Swenshuai.xi
1364*53ee8cc1Swenshuai.xi
1365*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_SET_TILE_FORMAT:
1366*53ee8cc1Swenshuai.xi {
1367*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1368*53ee8cc1Swenshuai.xi {
1369*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1370*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1371*53ee8cc1Swenshuai.xi }
1372*53ee8cc1Swenshuai.xi
1373*53ee8cc1Swenshuai.xi pstMVOP_SUB_SET_TILE_FORMAT pMVOPArgs = (pstMVOP_SUB_SET_TILE_FORMAT) pArgs;
1374*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_SubSetTileFormat(pInstance, pMVOPArgs->eTileFmt);
1375*53ee8cc1Swenshuai.xi
1376*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1377*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1378*53ee8cc1Swenshuai.xi break;
1379*53ee8cc1Swenshuai.xi }
1380*53ee8cc1Swenshuai.xi
1381*53ee8cc1Swenshuai.xi
1382*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_GET_DST_INFO:
1383*53ee8cc1Swenshuai.xi {
1384*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1385*53ee8cc1Swenshuai.xi {
1386*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1387*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1388*53ee8cc1Swenshuai.xi }
1389*53ee8cc1Swenshuai.xi
1390*53ee8cc1Swenshuai.xi pstMVOP_SUB_GET_DST_INFO pMVOPArgs = (pstMVOP_SUB_GET_DST_INFO) pArgs;
1391*53ee8cc1Swenshuai.xi pMVOPArgs->bRet= psMVOPInstPri->fpMVOP_SubGetDstInfo(pInstance, pMVOPArgs->pDstInfo, pMVOPArgs->u32SizeofDstInfo);
1392*53ee8cc1Swenshuai.xi
1393*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1394*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1395*53ee8cc1Swenshuai.xi break;
1396*53ee8cc1Swenshuai.xi }
1397*53ee8cc1Swenshuai.xi
1398*53ee8cc1Swenshuai.xi
1399*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_SET_FIXVTT:
1400*53ee8cc1Swenshuai.xi {
1401*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1402*53ee8cc1Swenshuai.xi {
1403*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1404*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1405*53ee8cc1Swenshuai.xi }
1406*53ee8cc1Swenshuai.xi
1407*53ee8cc1Swenshuai.xi pstMVOP_SUB_SET_FIXVTT pMVOPArgs = (pstMVOP_SUB_SET_FIXVTT) pArgs;
1408*53ee8cc1Swenshuai.xi pMVOPArgs->bRet= psMVOPInstPri->fpMVOP_SubSetFixVtt(pInstance, pMVOPArgs->u16FixVtt);
1409*53ee8cc1Swenshuai.xi
1410*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1411*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1412*53ee8cc1Swenshuai.xi break;
1413*53ee8cc1Swenshuai.xi }
1414*53ee8cc1Swenshuai.xi
1415*53ee8cc1Swenshuai.xi
1416*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_SET_MMIO_MAPBASE:
1417*53ee8cc1Swenshuai.xi {
1418*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1419*53ee8cc1Swenshuai.xi {
1420*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1421*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1422*53ee8cc1Swenshuai.xi }
1423*53ee8cc1Swenshuai.xi
1424*53ee8cc1Swenshuai.xi pstMVOP_SUB_SET_MMIO_MAPBASE pMVOPArgs = (pstMVOP_SUB_SET_MMIO_MAPBASE) pArgs;
1425*53ee8cc1Swenshuai.xi pMVOPArgs->bRet= psMVOPInstPri->fpMVOP_SubSetMMIOMapBase(pInstance);
1426*53ee8cc1Swenshuai.xi
1427*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1428*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1429*53ee8cc1Swenshuai.xi break;
1430*53ee8cc1Swenshuai.xi }
1431*53ee8cc1Swenshuai.xi
1432*53ee8cc1Swenshuai.xi
1433*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_MIU_SWITCH:
1434*53ee8cc1Swenshuai.xi {
1435*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1436*53ee8cc1Swenshuai.xi {
1437*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1438*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1439*53ee8cc1Swenshuai.xi }
1440*53ee8cc1Swenshuai.xi
1441*53ee8cc1Swenshuai.xi pstMVOP_SUB_MIU_SWITCH pMVOPArgs = (pstMVOP_SUB_MIU_SWITCH) pArgs;
1442*53ee8cc1Swenshuai.xi pMVOPArgs->eRet= psMVOPInstPri->fpMVOP_SubMiuSwitch(pInstance, pMVOPArgs->u8Miu);
1443*53ee8cc1Swenshuai.xi
1444*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1445*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1446*53ee8cc1Swenshuai.xi break;
1447*53ee8cc1Swenshuai.xi }
1448*53ee8cc1Swenshuai.xi
1449*53ee8cc1Swenshuai.xi
1450*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_SET_BASEADD:
1451*53ee8cc1Swenshuai.xi {
1452*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1453*53ee8cc1Swenshuai.xi {
1454*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1455*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1456*53ee8cc1Swenshuai.xi }
1457*53ee8cc1Swenshuai.xi
1458*53ee8cc1Swenshuai.xi pstMVOP_SUB_SET_BASEADD pMVOPArgs = (pstMVOP_SUB_SET_BASEADD) pArgs;
1459*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_SubSetBaseAdd(pInstance, pMVOPArgs->u32YOffset, pMVOPArgs->u32UVOffset, pMVOPArgs->bProgressive, pMVOPArgs->b422pack);
1460*53ee8cc1Swenshuai.xi
1461*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1462*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1463*53ee8cc1Swenshuai.xi break;
1464*53ee8cc1Swenshuai.xi }
1465*53ee8cc1Swenshuai.xi
1466*53ee8cc1Swenshuai.xi
1467*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_SET_VOP_MIRRORMODE:
1468*53ee8cc1Swenshuai.xi {
1469*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1470*53ee8cc1Swenshuai.xi {
1471*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1472*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1473*53ee8cc1Swenshuai.xi }
1474*53ee8cc1Swenshuai.xi
1475*53ee8cc1Swenshuai.xi pstMVOP_SUB_SET_VOP_MIRROR_MODE pMVOPArgs = (pstMVOP_SUB_SET_VOP_MIRROR_MODE) pArgs;
1476*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubSetVOPMirrorMode(pInstance, pMVOPArgs->bEnable, pMVOPArgs->eMirrorMode);
1477*53ee8cc1Swenshuai.xi
1478*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1479*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1480*53ee8cc1Swenshuai.xi break;
1481*53ee8cc1Swenshuai.xi }
1482*53ee8cc1Swenshuai.xi
1483*53ee8cc1Swenshuai.xi
1484*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_ENABLE_FREERUN_MODE:
1485*53ee8cc1Swenshuai.xi {
1486*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1487*53ee8cc1Swenshuai.xi {
1488*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1489*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1490*53ee8cc1Swenshuai.xi }
1491*53ee8cc1Swenshuai.xi
1492*53ee8cc1Swenshuai.xi pstMVOP_SUB_ENABLE_FREERUN_MODE pMVOPArgs = (pstMVOP_SUB_ENABLE_FREERUN_MODE) pArgs;
1493*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_SubEnableFreerunMode(pInstance, pMVOPArgs->bEnable);
1494*53ee8cc1Swenshuai.xi
1495*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1496*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1497*53ee8cc1Swenshuai.xi break;
1498*53ee8cc1Swenshuai.xi }
1499*53ee8cc1Swenshuai.xi
1500*53ee8cc1Swenshuai.xi
1501*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_GET_BASEADD:
1502*53ee8cc1Swenshuai.xi {
1503*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1504*53ee8cc1Swenshuai.xi {
1505*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1506*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1507*53ee8cc1Swenshuai.xi }
1508*53ee8cc1Swenshuai.xi
1509*53ee8cc1Swenshuai.xi pstMVOP_SUB_GET_BASE_ADD pMVOPArgs = (pstMVOP_SUB_GET_BASE_ADD) pArgs;
1510*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SubGetBaseAdd(pInstance, pMVOPArgs->u32YOffset, pMVOPArgs->u32UVOffset);
1511*53ee8cc1Swenshuai.xi
1512*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1513*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1514*53ee8cc1Swenshuai.xi break;
1515*53ee8cc1Swenshuai.xi }
1516*53ee8cc1Swenshuai.xi
1517*53ee8cc1Swenshuai.xi
1518*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_INIT:
1519*53ee8cc1Swenshuai.xi {
1520*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1521*53ee8cc1Swenshuai.xi {
1522*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1523*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1524*53ee8cc1Swenshuai.xi }
1525*53ee8cc1Swenshuai.xi
1526*53ee8cc1Swenshuai.xi pstMVOP_EX_INIT pMVOPArgs = (pstMVOP_EX_INIT) pArgs;
1527*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_ExInit(pInstance, pMVOPArgs->eID, pMVOPArgs->u32InitParam);
1528*53ee8cc1Swenshuai.xi
1529*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1530*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1531*53ee8cc1Swenshuai.xi break;
1532*53ee8cc1Swenshuai.xi }
1533*53ee8cc1Swenshuai.xi
1534*53ee8cc1Swenshuai.xi
1535*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_EXIT:
1536*53ee8cc1Swenshuai.xi {
1537*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1538*53ee8cc1Swenshuai.xi {
1539*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1540*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1541*53ee8cc1Swenshuai.xi }
1542*53ee8cc1Swenshuai.xi
1543*53ee8cc1Swenshuai.xi pstMVOP_EX_EXIT pMVOPArgs = (pstMVOP_EX_EXIT) pArgs;
1544*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_ExExit(pInstance, pMVOPArgs->eID, pMVOPArgs->u32ExitParam);
1545*53ee8cc1Swenshuai.xi
1546*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1547*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1548*53ee8cc1Swenshuai.xi break;
1549*53ee8cc1Swenshuai.xi }
1550*53ee8cc1Swenshuai.xi
1551*53ee8cc1Swenshuai.xi
1552*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_ENABLE:
1553*53ee8cc1Swenshuai.xi {
1554*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1555*53ee8cc1Swenshuai.xi {
1556*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1557*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1558*53ee8cc1Swenshuai.xi }
1559*53ee8cc1Swenshuai.xi
1560*53ee8cc1Swenshuai.xi pstMVOP_EX_ENABLE pMVOPArgs = (pstMVOP_EX_ENABLE) pArgs;
1561*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_ExEnable(pInstance, pMVOPArgs->eID, pMVOPArgs->bEnable);
1562*53ee8cc1Swenshuai.xi
1563*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1564*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1565*53ee8cc1Swenshuai.xi break;
1566*53ee8cc1Swenshuai.xi }
1567*53ee8cc1Swenshuai.xi
1568*53ee8cc1Swenshuai.xi
1569*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_SET_INPUTCFG:
1570*53ee8cc1Swenshuai.xi {
1571*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1572*53ee8cc1Swenshuai.xi {
1573*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1574*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1575*53ee8cc1Swenshuai.xi }
1576*53ee8cc1Swenshuai.xi
1577*53ee8cc1Swenshuai.xi pstMVOP_EX_SET_INPUTCFG pMVOPArgs = (pstMVOP_EX_SET_INPUTCFG) pArgs;
1578*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_ExInputCfg(pInstance, pMVOPArgs->eID, pMVOPArgs->in, pMVOPArgs->pCfg);
1579*53ee8cc1Swenshuai.xi
1580*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1581*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1582*53ee8cc1Swenshuai.xi break;
1583*53ee8cc1Swenshuai.xi }
1584*53ee8cc1Swenshuai.xi
1585*53ee8cc1Swenshuai.xi
1586*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_SET_OTPUTCFG:
1587*53ee8cc1Swenshuai.xi {
1588*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1589*53ee8cc1Swenshuai.xi {
1590*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1591*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1592*53ee8cc1Swenshuai.xi }
1593*53ee8cc1Swenshuai.xi
1594*53ee8cc1Swenshuai.xi pstMVOP_EX_SET_OTPUTCFG pMVOPArgs = (pstMVOP_EX_SET_OTPUTCFG) pArgs;
1595*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_ExOutputCfg(pInstance, pMVOPArgs->eID, pMVOPArgs->pstVideoStatus, pMVOPArgs->bEnHDup);
1596*53ee8cc1Swenshuai.xi
1597*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1598*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1599*53ee8cc1Swenshuai.xi break;
1600*53ee8cc1Swenshuai.xi }
1601*53ee8cc1Swenshuai.xi
1602*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_SET_CLK:
1603*53ee8cc1Swenshuai.xi {
1604*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1605*53ee8cc1Swenshuai.xi {
1606*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1607*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1608*53ee8cc1Swenshuai.xi }
1609*53ee8cc1Swenshuai.xi
1610*53ee8cc1Swenshuai.xi pstMVOP_EX_SET_CLK pMVOPArgs = (pstMVOP_EX_SET_CLK) pArgs;
1611*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_ExSetClk(pInstance, pMVOPArgs->eID, pMVOPArgs->bEnable);
1612*53ee8cc1Swenshuai.xi
1613*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1614*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1615*53ee8cc1Swenshuai.xi break;
1616*53ee8cc1Swenshuai.xi }
1617*53ee8cc1Swenshuai.xi
1618*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_SET_PATTERN:
1619*53ee8cc1Swenshuai.xi {
1620*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1621*53ee8cc1Swenshuai.xi {
1622*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1623*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1624*53ee8cc1Swenshuai.xi }
1625*53ee8cc1Swenshuai.xi
1626*53ee8cc1Swenshuai.xi pstMVOP_EX_SET_PATTERN pMVOPArgs = (pstMVOP_EX_SET_PATTERN) pArgs;
1627*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_ExSetPattern(pInstance, pMVOPArgs->eID, pMVOPArgs->enMVOPPattern);
1628*53ee8cc1Swenshuai.xi
1629*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1630*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1631*53ee8cc1Swenshuai.xi break;
1632*53ee8cc1Swenshuai.xi }
1633*53ee8cc1Swenshuai.xi
1634*53ee8cc1Swenshuai.xi
1635*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_SET_TILEFORMAT:
1636*53ee8cc1Swenshuai.xi {
1637*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1638*53ee8cc1Swenshuai.xi {
1639*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1640*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1641*53ee8cc1Swenshuai.xi }
1642*53ee8cc1Swenshuai.xi
1643*53ee8cc1Swenshuai.xi pstMVOP_EX_SET_TILE_FORMAT pMVOPArgs = (pstMVOP_EX_SET_TILE_FORMAT) pArgs;
1644*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_ExSetTileFormat(pInstance, pMVOPArgs->eID, pMVOPArgs->eTileFmt);
1645*53ee8cc1Swenshuai.xi
1646*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1647*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1648*53ee8cc1Swenshuai.xi break;
1649*53ee8cc1Swenshuai.xi }
1650*53ee8cc1Swenshuai.xi
1651*53ee8cc1Swenshuai.xi
1652*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_ENABLE_UV_SHIFT:
1653*53ee8cc1Swenshuai.xi {
1654*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1655*53ee8cc1Swenshuai.xi {
1656*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1657*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1658*53ee8cc1Swenshuai.xi }
1659*53ee8cc1Swenshuai.xi
1660*53ee8cc1Swenshuai.xi pstMVOP_EX_ENABLE_UV_SHIFT pMVOPArgs = (pstMVOP_EX_ENABLE_UV_SHIFT) pArgs;
1661*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_ExEnableUVShift(pInstance, pMVOPArgs->eID, pMVOPArgs->bEnable);
1662*53ee8cc1Swenshuai.xi
1663*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1664*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1665*53ee8cc1Swenshuai.xi break;
1666*53ee8cc1Swenshuai.xi }
1667*53ee8cc1Swenshuai.xi
1668*53ee8cc1Swenshuai.xi
1669*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_ENABLE_BLACK_BG:
1670*53ee8cc1Swenshuai.xi {
1671*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1672*53ee8cc1Swenshuai.xi {
1673*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1674*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1675*53ee8cc1Swenshuai.xi }
1676*53ee8cc1Swenshuai.xi
1677*53ee8cc1Swenshuai.xi pstMVOP_EX_ENABLE_BLACK_BG pMVOPArgs = (pstMVOP_EX_ENABLE_BLACK_BG) pArgs;
1678*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_ExEnableBlackBG(pInstance, pMVOPArgs->eID);
1679*53ee8cc1Swenshuai.xi
1680*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1681*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1682*53ee8cc1Swenshuai.xi break;
1683*53ee8cc1Swenshuai.xi }
1684*53ee8cc1Swenshuai.xi
1685*53ee8cc1Swenshuai.xi
1686*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_SET_MONO_MODE:
1687*53ee8cc1Swenshuai.xi {
1688*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1689*53ee8cc1Swenshuai.xi {
1690*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1691*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1692*53ee8cc1Swenshuai.xi }
1693*53ee8cc1Swenshuai.xi
1694*53ee8cc1Swenshuai.xi pstMVOP_EX_SET_MONO_MODE pMVOPArgs = (pstMVOP_EX_SET_MONO_MODE) pArgs;
1695*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_ExSetMonoMode(pInstance, pMVOPArgs->eID, pMVOPArgs->bEnable);
1696*53ee8cc1Swenshuai.xi
1697*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1698*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1699*53ee8cc1Swenshuai.xi break;
1700*53ee8cc1Swenshuai.xi }
1701*53ee8cc1Swenshuai.xi
1702*53ee8cc1Swenshuai.xi
1703*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_SET_FIXVTT:
1704*53ee8cc1Swenshuai.xi {
1705*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1706*53ee8cc1Swenshuai.xi {
1707*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1708*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1709*53ee8cc1Swenshuai.xi }
1710*53ee8cc1Swenshuai.xi
1711*53ee8cc1Swenshuai.xi pstMVOP_EX_SET_FIXVTT pMVOPArgs = (pstMVOP_EX_SET_FIXVTT) pArgs;
1712*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_ExSetFixVtt(pInstance, pMVOPArgs->eID, pMVOPArgs->u16FixVtt);
1713*53ee8cc1Swenshuai.xi
1714*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1715*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1716*53ee8cc1Swenshuai.xi break;
1717*53ee8cc1Swenshuai.xi }
1718*53ee8cc1Swenshuai.xi
1719*53ee8cc1Swenshuai.xi
1720*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_MIU_SWITCH:
1721*53ee8cc1Swenshuai.xi {
1722*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1723*53ee8cc1Swenshuai.xi {
1724*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1725*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1726*53ee8cc1Swenshuai.xi }
1727*53ee8cc1Swenshuai.xi
1728*53ee8cc1Swenshuai.xi pstMVOP_EX_MIU_SWITCH pMVOPArgs = (pstMVOP_EX_MIU_SWITCH) pArgs;
1729*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_ExMiuSwitch(pInstance, pMVOPArgs->eID, pMVOPArgs->u8Miu);
1730*53ee8cc1Swenshuai.xi
1731*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1732*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1733*53ee8cc1Swenshuai.xi break;
1734*53ee8cc1Swenshuai.xi }
1735*53ee8cc1Swenshuai.xi
1736*53ee8cc1Swenshuai.xi
1737*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_SET_VOP_MIRRORMODE:
1738*53ee8cc1Swenshuai.xi {
1739*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1740*53ee8cc1Swenshuai.xi {
1741*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1742*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1743*53ee8cc1Swenshuai.xi }
1744*53ee8cc1Swenshuai.xi
1745*53ee8cc1Swenshuai.xi pstMVOP_EX_SET_VOP_MIRROR_MODE pMVOPArgs = (pstMVOP_EX_SET_VOP_MIRROR_MODE) pArgs;
1746*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_ExSetVOPMirrorMode(pInstance, pMVOPArgs->eID, pMVOPArgs->bEnable, pMVOPArgs->eMirrorMode);
1747*53ee8cc1Swenshuai.xi
1748*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1749*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1750*53ee8cc1Swenshuai.xi break;
1751*53ee8cc1Swenshuai.xi }
1752*53ee8cc1Swenshuai.xi
1753*53ee8cc1Swenshuai.xi
1754*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_ENABLE_FREERUN_MODE:
1755*53ee8cc1Swenshuai.xi {
1756*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1757*53ee8cc1Swenshuai.xi {
1758*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1759*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1760*53ee8cc1Swenshuai.xi }
1761*53ee8cc1Swenshuai.xi
1762*53ee8cc1Swenshuai.xi pstMVOP_EX_ENABLE_FREERUN_MODE pMVOPArgs = (pstMVOP_EX_ENABLE_FREERUN_MODE) pArgs;
1763*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_ExEnableFreerunMode(pInstance, pMVOPArgs->eID, pMVOPArgs->bEnable);
1764*53ee8cc1Swenshuai.xi
1765*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1766*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1767*53ee8cc1Swenshuai.xi break;
1768*53ee8cc1Swenshuai.xi }
1769*53ee8cc1Swenshuai.xi
1770*53ee8cc1Swenshuai.xi
1771*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_GET_OUTPUT_TIMING:
1772*53ee8cc1Swenshuai.xi {
1773*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1774*53ee8cc1Swenshuai.xi {
1775*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1776*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1777*53ee8cc1Swenshuai.xi }
1778*53ee8cc1Swenshuai.xi
1779*53ee8cc1Swenshuai.xi pstMVOP_EX_GET_OUTPUT_TIMING pMVOPArgs = (pstMVOP_EX_GET_OUTPUT_TIMING) pArgs;
1780*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_ExGetOutputTiming(pInstance, pMVOPArgs->eID, pMVOPArgs->pMVOPTiming);
1781*53ee8cc1Swenshuai.xi
1782*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1783*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1784*53ee8cc1Swenshuai.xi break;
1785*53ee8cc1Swenshuai.xi }
1786*53ee8cc1Swenshuai.xi
1787*53ee8cc1Swenshuai.xi
1788*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_GET_IS_ENABLE:
1789*53ee8cc1Swenshuai.xi {
1790*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1791*53ee8cc1Swenshuai.xi {
1792*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1793*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1794*53ee8cc1Swenshuai.xi }
1795*53ee8cc1Swenshuai.xi
1796*53ee8cc1Swenshuai.xi pstMVOP_EX_GET_IS_ENABLE pMVOPArgs = (pstMVOP_EX_GET_IS_ENABLE) pArgs;
1797*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_ExGetIsEnable(pInstance, pMVOPArgs->eID, pMVOPArgs->pbEnable);
1798*53ee8cc1Swenshuai.xi
1799*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1800*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1801*53ee8cc1Swenshuai.xi break;
1802*53ee8cc1Swenshuai.xi }
1803*53ee8cc1Swenshuai.xi
1804*53ee8cc1Swenshuai.xi
1805*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_GET_HSIZE:
1806*53ee8cc1Swenshuai.xi {
1807*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1808*53ee8cc1Swenshuai.xi {
1809*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1810*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1811*53ee8cc1Swenshuai.xi }
1812*53ee8cc1Swenshuai.xi
1813*53ee8cc1Swenshuai.xi pstMVOP_EX_GET_HSIZE pMVOPArgs = (pstMVOP_EX_GET_HSIZE) pArgs;
1814*53ee8cc1Swenshuai.xi pMVOPArgs->u16Ret = psMVOPInstPri->fpMVOP_ExGetVStart(pInstance, pMVOPArgs->eID);
1815*53ee8cc1Swenshuai.xi
1816*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1817*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1818*53ee8cc1Swenshuai.xi break;
1819*53ee8cc1Swenshuai.xi }
1820*53ee8cc1Swenshuai.xi
1821*53ee8cc1Swenshuai.xi
1822*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_GET_VSIZE:
1823*53ee8cc1Swenshuai.xi {
1824*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1825*53ee8cc1Swenshuai.xi {
1826*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1827*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1828*53ee8cc1Swenshuai.xi }
1829*53ee8cc1Swenshuai.xi
1830*53ee8cc1Swenshuai.xi pstMVOP_EX_GET_VSIZE pMVOPArgs = (pstMVOP_EX_GET_VSIZE) pArgs;
1831*53ee8cc1Swenshuai.xi pMVOPArgs->u16Ret = psMVOPInstPri->fpMVOP_ExGetVStart(pInstance, pMVOPArgs->eID);
1832*53ee8cc1Swenshuai.xi
1833*53ee8cc1Swenshuai.xi
1834*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1835*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1836*53ee8cc1Swenshuai.xi break;
1837*53ee8cc1Swenshuai.xi }
1838*53ee8cc1Swenshuai.xi
1839*53ee8cc1Swenshuai.xi
1840*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_GET_HSTART:
1841*53ee8cc1Swenshuai.xi {
1842*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1843*53ee8cc1Swenshuai.xi {
1844*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1845*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1846*53ee8cc1Swenshuai.xi }
1847*53ee8cc1Swenshuai.xi
1848*53ee8cc1Swenshuai.xi pstMVOP_EX_GET_HSTART pMVOPArgs = (pstMVOP_EX_GET_HSTART) pArgs;
1849*53ee8cc1Swenshuai.xi pMVOPArgs->u16Ret = psMVOPInstPri->fpMVOP_ExGetVStart(pInstance, pMVOPArgs->eID);
1850*53ee8cc1Swenshuai.xi
1851*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1852*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1853*53ee8cc1Swenshuai.xi break;
1854*53ee8cc1Swenshuai.xi }
1855*53ee8cc1Swenshuai.xi
1856*53ee8cc1Swenshuai.xi
1857*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_GET_VSTART:
1858*53ee8cc1Swenshuai.xi {
1859*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1860*53ee8cc1Swenshuai.xi {
1861*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1862*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1863*53ee8cc1Swenshuai.xi }
1864*53ee8cc1Swenshuai.xi
1865*53ee8cc1Swenshuai.xi pstMVOP_EX_GET_VSTART pMVOPArgs = (pstMVOP_EX_GET_VSTART) pArgs;
1866*53ee8cc1Swenshuai.xi pMVOPArgs->u16Ret = psMVOPInstPri->fpMVOP_ExGetVStart(pInstance, pMVOPArgs->eID);
1867*53ee8cc1Swenshuai.xi
1868*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1869*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1870*53ee8cc1Swenshuai.xi break;
1871*53ee8cc1Swenshuai.xi }
1872*53ee8cc1Swenshuai.xi
1873*53ee8cc1Swenshuai.xi
1874*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_GET_IS_INTERLACE:
1875*53ee8cc1Swenshuai.xi {
1876*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1877*53ee8cc1Swenshuai.xi {
1878*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1879*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1880*53ee8cc1Swenshuai.xi }
1881*53ee8cc1Swenshuai.xi
1882*53ee8cc1Swenshuai.xi pstMVOP_EX_GET_IS_INTERLACE pMVOPArgs = (pstMVOP_EX_GET_IS_INTERLACE) pArgs;
1883*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_ExGetIsInterlace(pInstance, pMVOPArgs->eID);
1884*53ee8cc1Swenshuai.xi
1885*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1886*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1887*53ee8cc1Swenshuai.xi break;
1888*53ee8cc1Swenshuai.xi }
1889*53ee8cc1Swenshuai.xi
1890*53ee8cc1Swenshuai.xi
1891*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_GET_IS_HDUPLICATE:
1892*53ee8cc1Swenshuai.xi {
1893*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1894*53ee8cc1Swenshuai.xi {
1895*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1896*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1897*53ee8cc1Swenshuai.xi }
1898*53ee8cc1Swenshuai.xi pstMVOP_EX_GET_IS_HDUPLICATE pMVOPArgs = (pstMVOP_EX_GET_IS_HDUPLICATE) pArgs;
1899*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_ExGetIsHDuplicate(pInstance, pMVOPArgs->eID);
1900*53ee8cc1Swenshuai.xi
1901*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1902*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1903*53ee8cc1Swenshuai.xi break;
1904*53ee8cc1Swenshuai.xi }
1905*53ee8cc1Swenshuai.xi
1906*53ee8cc1Swenshuai.xi
1907*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_GET_STATUS:
1908*53ee8cc1Swenshuai.xi {
1909*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1910*53ee8cc1Swenshuai.xi {
1911*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1912*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1913*53ee8cc1Swenshuai.xi }
1914*53ee8cc1Swenshuai.xi
1915*53ee8cc1Swenshuai.xi pstMVOP_EX_GET_STATUS pMVOPArgs = (pstMVOP_EX_GET_STATUS) pArgs;
1916*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_ExGetStatus(pInstance, pMVOPArgs->eID, pMVOPArgs->pMVOPStat);
1917*53ee8cc1Swenshuai.xi
1918*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1919*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1920*53ee8cc1Swenshuai.xi break;
1921*53ee8cc1Swenshuai.xi }
1922*53ee8cc1Swenshuai.xi
1923*53ee8cc1Swenshuai.xi
1924*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_CHECK_CAPABILITY:
1925*53ee8cc1Swenshuai.xi {
1926*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1927*53ee8cc1Swenshuai.xi {
1928*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1929*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1930*53ee8cc1Swenshuai.xi }
1931*53ee8cc1Swenshuai.xi
1932*53ee8cc1Swenshuai.xi pstMVOP_EX_CHECK_CAPABILITY pMVOPArgs = (pstMVOP_EX_CHECK_CAPABILITY) pArgs;
1933*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_ExCheckCapability(pInstance, pMVOPArgs->eID, pMVOPArgs->u32InParam);
1934*53ee8cc1Swenshuai.xi
1935*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1936*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1937*53ee8cc1Swenshuai.xi break;
1938*53ee8cc1Swenshuai.xi }
1939*53ee8cc1Swenshuai.xi
1940*53ee8cc1Swenshuai.xi
1941*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_GET_DST_INFO:
1942*53ee8cc1Swenshuai.xi {
1943*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1944*53ee8cc1Swenshuai.xi {
1945*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1946*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1947*53ee8cc1Swenshuai.xi }
1948*53ee8cc1Swenshuai.xi
1949*53ee8cc1Swenshuai.xi pstMVOP_EX_GET_DST_INFO pMVOPArgs = (pstMVOP_EX_GET_DST_INFO) pArgs;
1950*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_ExGetDstInfo(pInstance, pMVOPArgs->eID, pMVOPArgs->pDstInfo, pMVOPArgs->u32SizeofDstInfo);
1951*53ee8cc1Swenshuai.xi
1952*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1953*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1954*53ee8cc1Swenshuai.xi break;
1955*53ee8cc1Swenshuai.xi }
1956*53ee8cc1Swenshuai.xi
1957*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SEND_BLUE_SCREEN:
1958*53ee8cc1Swenshuai.xi {
1959*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1960*53ee8cc1Swenshuai.xi {
1961*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1962*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1963*53ee8cc1Swenshuai.xi }
1964*53ee8cc1Swenshuai.xi
1965*53ee8cc1Swenshuai.xi pstMVOP_SEND_BLUE_SCREEN pMVOPArgs = (pstMVOP_SEND_BLUE_SCREEN) pArgs;
1966*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_SendBlueScreen(pInstance, pMVOPArgs->u16Width, pMVOPArgs->u16Height);
1967*53ee8cc1Swenshuai.xi
1968*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1969*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1970*53ee8cc1Swenshuai.xi break;
1971*53ee8cc1Swenshuai.xi }
1972*53ee8cc1Swenshuai.xi
1973*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SET_COMMAND:
1974*53ee8cc1Swenshuai.xi {
1975*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1976*53ee8cc1Swenshuai.xi {
1977*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1978*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1979*53ee8cc1Swenshuai.xi }
1980*53ee8cc1Swenshuai.xi
1981*53ee8cc1Swenshuai.xi pstMVOP_SET_COMMAND pMVOPArgs = (pstMVOP_SET_COMMAND) pArgs;
1982*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_SetCommand(pInstance, pMVOPArgs->stHd, pMVOPArgs->eCmd, pMVOPArgs->pPara);
1983*53ee8cc1Swenshuai.xi
1984*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
1985*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
1986*53ee8cc1Swenshuai.xi break;
1987*53ee8cc1Swenshuai.xi }
1988*53ee8cc1Swenshuai.xi
1989*53ee8cc1Swenshuai.xi case E_MVOP_CMD_GET_COMMAND:
1990*53ee8cc1Swenshuai.xi {
1991*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
1992*53ee8cc1Swenshuai.xi {
1993*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
1994*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
1995*53ee8cc1Swenshuai.xi }
1996*53ee8cc1Swenshuai.xi
1997*53ee8cc1Swenshuai.xi pstMVOP_GET_COMMAND pMVOPArgs = (pstMVOP_GET_COMMAND) pArgs;
1998*53ee8cc1Swenshuai.xi pMVOPArgs->eRet = psMVOPInstPri->fpMVOP_GetCommand(pInstance, pMVOPArgs->stHd, pMVOPArgs->eCmd, pMVOPArgs->pPara, pMVOPArgs->u32ParaSize);
1999*53ee8cc1Swenshuai.xi
2000*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
2001*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
2002*53ee8cc1Swenshuai.xi break;
2003*53ee8cc1Swenshuai.xi }
2004*53ee8cc1Swenshuai.xi
2005*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SET_FREQUENCY:
2006*53ee8cc1Swenshuai.xi {
2007*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
2008*53ee8cc1Swenshuai.xi {
2009*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
2010*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
2011*53ee8cc1Swenshuai.xi }
2012*53ee8cc1Swenshuai.xi
2013*53ee8cc1Swenshuai.xi pstMVOP_SET_FREQUENCY pMVOPArgs = (pstMVOP_SET_FREQUENCY) pArgs;
2014*53ee8cc1Swenshuai.xi psMVOPInstPri->fpMVOP_SetFrequency(pInstance, pMVOPArgs->eFreq);
2015*53ee8cc1Swenshuai.xi
2016*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
2017*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
2018*53ee8cc1Swenshuai.xi break;
2019*53ee8cc1Swenshuai.xi }
2020*53ee8cc1Swenshuai.xi
2021*53ee8cc1Swenshuai.xi case E_MVOP_CMD_ENABLE_INTERRUPT:
2022*53ee8cc1Swenshuai.xi {
2023*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
2024*53ee8cc1Swenshuai.xi {
2025*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
2026*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
2027*53ee8cc1Swenshuai.xi }
2028*53ee8cc1Swenshuai.xi
2029*53ee8cc1Swenshuai.xi pstMVOP_ENABLE_INTERRUPT pMVOPArgs = (pstMVOP_ENABLE_INTERRUPT) pArgs;
2030*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_EnableInterrupt(pInstance, pMVOPArgs->eIntType);
2031*53ee8cc1Swenshuai.xi
2032*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
2033*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
2034*53ee8cc1Swenshuai.xi break;
2035*53ee8cc1Swenshuai.xi }
2036*53ee8cc1Swenshuai.xi
2037*53ee8cc1Swenshuai.xi case E_MVOP_CMD_GET_INT_STATUS:
2038*53ee8cc1Swenshuai.xi {
2039*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
2040*53ee8cc1Swenshuai.xi {
2041*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
2042*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
2043*53ee8cc1Swenshuai.xi }
2044*53ee8cc1Swenshuai.xi
2045*53ee8cc1Swenshuai.xi pstMVOP_GET_INT_STATUS pMVOPArgs = (pstMVOP_GET_INT_STATUS) pArgs;
2046*53ee8cc1Swenshuai.xi pMVOPArgs->u8Ret= psMVOPInstPri->fpMVOP_GetIntStatus(pInstance);
2047*53ee8cc1Swenshuai.xi
2048*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
2049*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
2050*53ee8cc1Swenshuai.xi break;
2051*53ee8cc1Swenshuai.xi }
2052*53ee8cc1Swenshuai.xi
2053*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_ENABLE_INTERRUPT:
2054*53ee8cc1Swenshuai.xi {
2055*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
2056*53ee8cc1Swenshuai.xi {
2057*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
2058*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
2059*53ee8cc1Swenshuai.xi }
2060*53ee8cc1Swenshuai.xi
2061*53ee8cc1Swenshuai.xi pstMVOP_SUB_ENABLE_INTERRUPT pMVOPArgs = (pstMVOP_SUB_ENABLE_INTERRUPT) pArgs;
2062*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_SubEnableInterrupt(pInstance, pMVOPArgs->eIntType);
2063*53ee8cc1Swenshuai.xi
2064*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
2065*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
2066*53ee8cc1Swenshuai.xi break;
2067*53ee8cc1Swenshuai.xi }
2068*53ee8cc1Swenshuai.xi
2069*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SUB_GET_INT_STATUS:
2070*53ee8cc1Swenshuai.xi {
2071*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
2072*53ee8cc1Swenshuai.xi {
2073*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
2074*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
2075*53ee8cc1Swenshuai.xi }
2076*53ee8cc1Swenshuai.xi
2077*53ee8cc1Swenshuai.xi pstMVOP_SUB_GET_INT_STATUS pMVOPArgs = (pstMVOP_SUB_GET_INT_STATUS) pArgs;
2078*53ee8cc1Swenshuai.xi pMVOPArgs->u8Ret= psMVOPInstPri->fpMVOP_SubGetIntStatus(pInstance);
2079*53ee8cc1Swenshuai.xi
2080*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
2081*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
2082*53ee8cc1Swenshuai.xi break;
2083*53ee8cc1Swenshuai.xi }
2084*53ee8cc1Swenshuai.xi
2085*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_ENABLE_INTERRUPT:
2086*53ee8cc1Swenshuai.xi {
2087*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
2088*53ee8cc1Swenshuai.xi {
2089*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
2090*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
2091*53ee8cc1Swenshuai.xi }
2092*53ee8cc1Swenshuai.xi
2093*53ee8cc1Swenshuai.xi pstMVOP_EX_ENABLE_INTERRUPT pMVOPArgs = (pstMVOP_EX_ENABLE_INTERRUPT) pArgs;
2094*53ee8cc1Swenshuai.xi pMVOPArgs->bRet = psMVOPInstPri->fpMVOP_ExEnableInterrupt(pInstance, pMVOPArgs->eID, pMVOPArgs->eIntType);
2095*53ee8cc1Swenshuai.xi
2096*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
2097*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
2098*53ee8cc1Swenshuai.xi break;
2099*53ee8cc1Swenshuai.xi }
2100*53ee8cc1Swenshuai.xi
2101*53ee8cc1Swenshuai.xi case E_MVOP_CMD_EX_GET_INT_STATUS:
2102*53ee8cc1Swenshuai.xi {
2103*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
2104*53ee8cc1Swenshuai.xi {
2105*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
2106*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
2107*53ee8cc1Swenshuai.xi }
2108*53ee8cc1Swenshuai.xi
2109*53ee8cc1Swenshuai.xi pstMVOP_EX_GET_INT_STATUS pMVOPArgs = (pstMVOP_EX_GET_INT_STATUS) pArgs;
2110*53ee8cc1Swenshuai.xi pMVOPArgs->u8Ret= psMVOPInstPri->fpMVOP_ExGetIntStatus(pInstance, pMVOPArgs->eID);
2111*53ee8cc1Swenshuai.xi
2112*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
2113*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
2114*53ee8cc1Swenshuai.xi break;
2115*53ee8cc1Swenshuai.xi }
2116*53ee8cc1Swenshuai.xi #if 1
2117*53ee8cc1Swenshuai.xi case E_MVOP_CMD_SET_POWERSTATE:
2118*53ee8cc1Swenshuai.xi {
2119*53ee8cc1Swenshuai.xi if(UtopiaResourceObtain(pModule, E_MVOP_POOL_ID_INTERNAL, &pResource) != 0)
2120*53ee8cc1Swenshuai.xi {
2121*53ee8cc1Swenshuai.xi printf("UtopiaResourceObtain fail\n");
2122*53ee8cc1Swenshuai.xi return UTOPIA_STATUS_ERR_RESOURCE;
2123*53ee8cc1Swenshuai.xi }
2124*53ee8cc1Swenshuai.xi
2125*53ee8cc1Swenshuai.xi pstMVOP_SET_POWER_STATE pMVOPArgs = (pstMVOP_SET_POWER_STATE) pArgs;
2126*53ee8cc1Swenshuai.xi pMVOPArgs->u32Ret= psMVOPInstPri->fpMVOP_SetPowerState(pInstance, pMVOPArgs->u16PowerState);
2127*53ee8cc1Swenshuai.xi
2128*53ee8cc1Swenshuai.xi UtopiaResourceRelease(pResource);
2129*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_SUCCESS;
2130*53ee8cc1Swenshuai.xi break;
2131*53ee8cc1Swenshuai.xi }
2132*53ee8cc1Swenshuai.xi
2133*53ee8cc1Swenshuai.xi #endif
2134*53ee8cc1Swenshuai.xi
2135*53ee8cc1Swenshuai.xi // OBSOLETE command **END**, please avoid using these
2136*53ee8cc1Swenshuai.xi
2137*53ee8cc1Swenshuai.xi case E_MVOP_CMD_MAX:
2138*53ee8cc1Swenshuai.xi default:
2139*53ee8cc1Swenshuai.xi {
2140*53ee8cc1Swenshuai.xi #if defined (__aarch64__)
2141*53ee8cc1Swenshuai.xi printf("Command %d is not existed\n",u32Cmd);
2142*53ee8cc1Swenshuai.xi #else
2143*53ee8cc1Swenshuai.xi printf("Command %d is not existed\n",(int)u32Cmd);
2144*53ee8cc1Swenshuai.xi #endif
2145*53ee8cc1Swenshuai.xi u32Return = UTOPIA_STATUS_ERR_INVALID_HANDLE;
2146*53ee8cc1Swenshuai.xi break;
2147*53ee8cc1Swenshuai.xi }
2148*53ee8cc1Swenshuai.xi }
2149*53ee8cc1Swenshuai.xi return u32Return;
2150*53ee8cc1Swenshuai.xi }
2151*53ee8cc1Swenshuai.xi
MVOPClose(void * pInstance)2152*53ee8cc1Swenshuai.xi MS_U32 MVOPClose(void* pInstance)
2153*53ee8cc1Swenshuai.xi {
2154*53ee8cc1Swenshuai.xi UtopiaInstanceDelete(pInstance);
2155*53ee8cc1Swenshuai.xi
2156*53ee8cc1Swenshuai.xi return TRUE;
2157*53ee8cc1Swenshuai.xi }
2158*53ee8cc1Swenshuai.xi
2159*53ee8cc1Swenshuai.xi
2160*53ee8cc1Swenshuai.xi
2161