xref: /utopia/UTPA2-700.0.x/modules/pq/drv/pq/apiPQ_v2.c (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 #ifndef _API_PQ_PANEL_V2_C_
2 #define _API_PQ_PANEL_V2_C_
3 
4 #include "MsTypes.h"
5 #ifndef MSOS_TYPE_LINUX_KERNEL
6 #include <stdio.h>
7 #include <string.h>
8 #endif
9 #include "MsCommon.h"
10 #include "utopia.h"
11 #include "utopia_dapi.h"
12 #include "drvPQ_Define.h"
13 #include "drvPQ_Declare.h"
14 #include "drvPQ.h"
15 #include "PQ_private.h"
16 #include "apiPQ_v2.h"
17 #include "utopia_api_database.h"
18 
19 // ========== Global definition ==========
20 void* pModulePQ = NULL;
21 #ifdef MSOS_TYPE_LINUX_KERNEL
22 void *pInstancePQStr = NULL;
PQStr(MS_U32 u32PowerState,void * pModule)23 MS_U32 PQStr(MS_U32 u32PowerState, void* pModule)
24 {
25     MS_U32 u32Return=UTOPIA_STATUS_FAIL;
26     stPQ_SetPowerState PQArgs;
27 
28     switch(u32PowerState)
29     {
30         case E_POWER_SUSPEND:
31             if (pInstancePQStr == NULL)
32             {
33                 if(UtopiaOpen(MODULE_PQ, &pInstancePQStr, 0, NULL) != UTOPIA_STATUS_SUCCESS)
34                 {
35                     printf("UtopiaOpen PQ failed\n");
36                     return UTOPIA_STATUS_FAIL;
37                 }
38             }
39             PQArgs.enPowerState = u32PowerState;
40             PQArgs.u32Ret = UTOPIA_STATUS_FAIL;
41             if(UtopiaIoctl(pInstancePQStr, E_PQ_CMD_SET_POWER_STATE, (void*)&PQArgs) != UTOPIA_STATUS_SUCCESS)
42             {
43                 printf("Obtain PQ engine fail\n");
44                 return UTOPIA_STATUS_FAIL;
45             }
46             u32Return=PQArgs.u32Ret;
47             break;
48         case E_POWER_RESUME:
49             if (pInstancePQStr == NULL)
50             {
51                 if(UtopiaOpen(MODULE_PQ, &pInstancePQStr, 0, NULL) != UTOPIA_STATUS_SUCCESS)
52                 {
53                     printf("UtopiaOpen PQ failed\n");
54                     return UTOPIA_STATUS_FAIL;
55                 }
56             }
57             PQArgs.enPowerState = u32PowerState;
58             PQArgs.u32Ret = UTOPIA_STATUS_FAIL;
59             if(UtopiaIoctl(pInstancePQStr, E_PQ_CMD_SET_POWER_STATE, (void*)&PQArgs) != UTOPIA_STATUS_SUCCESS)
60             {
61                 printf("Obtain PQ engine fail\n");
62                 return UTOPIA_STATUS_FAIL;
63             }
64             u32Return=PQArgs.u32Ret;
65             break;
66         default:
67             printf("[%s][%d] PowerState:%lx not Implement now!!!\n",__FUNCTION__,__LINE__,u32PowerState);
68             break;
69     }
70     return u32Return;
71 }
72 #endif
PQRegisterToUtopia(FUtopiaOpen ModuleType)73 void PQRegisterToUtopia(FUtopiaOpen ModuleType)
74 {
75     MS_U32 u32ResourceStatusCheck[E_PQ_POOL_ID_MAX] = {UTOPIA_STATUS_FAIL};
76     // 1. deal with module
77     UtopiaModuleCreate(MODULE_PQ, 0, &pModulePQ);
78     UtopiaModuleRegister(pModulePQ);
79 #if 1
80     // register func for module, after register here, then ap call UtopiaOpen/UtopiaIoctl/UtopiaClose can call to these registered standard func
81     UtopiaModuleSetupFunctionPtr(pModulePQ, (FUtopiaOpen)PQOpen, (FUtopiaClose)PQClose, (FUtopiaIOctl)PQIoctl);
82 
83     // 2. deal with resource  , PQ may need 2 resources, one is readonly, the other is XC resource
84     void* psResource = NULL;
85     void* psResource1 = NULL;
86 #if defined(MSOS_TYPE_LINUX_KERNEL)
87     UtopiaModuleSetupSTRFunctionPtr(pModulePQ, (FUtopiaSTR)PQStr);
88     UtopiaModuleSetSTRPrivate(pModulePQ, sizeof(PQ_REGS_SAVE_AREA));
89 #endif
90 
91     // 3. resource can allocate private for internal use
92     MS_U32 u32MaxDeviceNum = _MDrv_PQ_GET_DEVICE_NUM();
93     MS_U32 i = 0;
94     for(i = 0 ; i < u32MaxDeviceNum ;i++)
95     {
96         // need refine
97         if(i == 0)
98         {
99             UtopiaModuleAddResourceStart(pModulePQ, E_PQ_POOL_ID_INTERNAL);
100             u32ResourceStatusCheck[E_PQ_POOL_ID_INTERNAL] = UtopiaResourceCreate("PQ_VARIABLE", sizeof(PQ_RESOURCE_PRIVATE), &psResource);
101             UtopiaResourceRegister(pModulePQ, psResource, E_PQ_POOL_ID_INTERNAL);
102             UtopiaModuleAddResourceEnd(pModulePQ, E_PQ_POOL_ID_INTERNAL);
103         }
104         else
105         {
106             UtopiaModuleAddResourceStart(pModulePQ, E_PQ_POOL_ID_INTERNAL1);
107             u32ResourceStatusCheck[E_PQ_POOL_ID_INTERNAL1] = UtopiaResourceCreate("PQ_VARIABLE1", sizeof(PQ_RESOURCE_PRIVATE), &psResource1);
108             UtopiaResourceRegister(pModulePQ, psResource1, E_PQ_POOL_ID_INTERNAL1);
109             UtopiaModuleAddResourceEnd(pModulePQ, E_PQ_POOL_ID_INTERNAL1);
110         }
111     }
112 
113     //4. init resource private members here   (aka, global variable)
114     PQ_RESOURCE_PRIVATE* pPQResourcePrivate = NULL;
115     UtopiaResourceGetPrivate(psResource,(void**)(&pPQResourcePrivate));
116     char ptmp[PQ_FILE_PATH_LENGTH]={0};
117 
118     if (u32ResourceStatusCheck[E_PQ_POOL_ID_INTERNAL] == UTOPIA_STATUS_SHM_EXIST)
119     {
120         // do nothing, since it is already inited
121     }
122     else
123     {
124         // Init flow control related variables here. Other global variable should be
125         // inited in each of its init function relatively.
126         pPQResourcePrivate->bResourceRegistered = TRUE;
127         strncpy(pPQResourcePrivate->stPQBin_Path.pm_PQ_CUSTOMER_PATH,ptmp,PQ_FILE_PATH_LENGTH);
128         strncpy(pPQResourcePrivate->stPQBin_Path.pm_PQ_DEFAULT_PATH,ptmp,PQ_FILE_PATH_LENGTH);
129         strncpy(pPQResourcePrivate->stPQBin_Path.pm_PQ_INI_PATH,ptmp,PQ_FILE_PATH_LENGTH);
130         strncpy(pPQResourcePrivate->stPQBin_Path.pm_PQ_BANDWIDTH_PATH,ptmp,PQ_FILE_PATH_LENGTH);
131 #ifdef UFO_XC_PQ_SUPPORT_INITVAR_INTO_SHAREMEMORY
132         memset(&pPQResourcePrivate->PQ_InitInfo, 0x00, sizeof(MS_PQ_Init_Info));
133 #endif
134 
135         // apiPQ.c
136         //pPQResourcePrivate->stapiPQ._bSkipTimingChange = FALSE;
137         //pPQResourcePrivate->stapiPQ._cstPQInfo.eSupportGammaType = E_APIPQ_GAMMA_ALL;
138         //pPQResourcePrivate->stapiPQ._pu8GammaTab[0]=NULL;
139         //pPQResourcePrivate->stapiPQ._pu8GammaTab[1]=NULL;
140         //pPQResourcePrivate->stapiPQ._pu8GammaTab[2]=NULL;
141         //pPQResourcePrivate->stapiPQ._stPQStatus.bPanel_Initialized = FALSE;
142         //pPQResourcePrivate->stapiPQ._stPQStatus.bPanel_Enabled = FALSE;
143         //pPQResourcePrivate->stapiPQ._u16PanelDCLK = 0;
144         //pPQResourcePrivate->stapiPQ._bForceSetDCLKEnable = DISABLE;
145         //pPQResourcePrivate->stapiPQ._u16PanelHStart = 0;
146         //pPQResourcePrivate->stapiPQ._bForceSetHStartEnable = DISABLE;
147         //pPQResourcePrivate->stapiPQ.ePrevPowerState = E_POWER_MECHANICAL;
148 
149         // halPQ.c
150         //pPQResourcePrivate->sthalPQ._u16PQDefault_SwingLevel = 250;
151         //pPQResourcePrivate->sthalPQ._eDrvPQInitOptions = E_PQ_OUTPUT_CLK_DATA;
152         //pPQResourcePrivate->sthalPQ._u8MOD_CALI_TARGET = 1; // 00:250mv, 01:350mv, 10:300mv, 11:200mv
153         //pPQResourcePrivate->sthalPQ._u8MOD_CALI_PAIR_SEL = 0x01;
154         //pPQResourcePrivate->sthalPQ._usMOD_CALI_OFFSET = 0;
155         //pPQResourcePrivate->sthalPQ._u8MOD_CALI_VALUE  = 0x1F; // 250mv:2'h15, 350mv:2'h1F, 300mv:2'h1A, 200mv:2'h10
156         //pPQResourcePrivate->sthalPQ._u8MOD_LVDS_Pair_Shift = 0;
157         //pPQResourcePrivate->sthalPQ._u8MOD_LVDS_Pair_Type = 0;
158         //pPQResourcePrivate->sthalPQ._u8PQDiffSwingLevel = 0x63;
159         //pPQResourcePrivate->sthalPQ._bPVDD_2V5 = FALSE;
160     }
161 
162     if (psResource1 != NULL)
163     {
164         UtopiaResourceGetPrivate(psResource1,(void**)(&pPQResourcePrivate));
165 
166         if (u32ResourceStatusCheck[E_PQ_POOL_ID_INTERNAL1] == UTOPIA_STATUS_SHM_EXIST)
167         {
168             // do nothing, since it is already inited
169         }
170         else
171         {
172             // Init flow control related variables here. Other global variable should be
173             // inited in each of its init function relatively.
174             pPQResourcePrivate->bResourceRegistered = TRUE;
175 #ifdef UFO_XC_PQ_SUPPORT_INITVAR_INTO_SHAREMEMORY
176             memset(&pPQResourcePrivate->PQ_InitInfo, 0x00, sizeof(MS_PQ_Init_Info));
177 #endif
178 
179             // apiPQ.c
180             //pPQResourcePrivate->stapiPQ._bSkipTimingChange = FALSE;
181             //pPQResourcePrivate->stapiPQ._cstPQInfo.eSupportGammaType = E_APIPQ_GAMMA_ALL;
182             //pPQResourcePrivate->stapiPQ._stPQStatus.bPanel_Initialized = FALSE;
183             //pPQResourcePrivate->stapiPQ._stPQStatus.bPanel_Enabled = FALSE;
184             //pPQResourcePrivate->stapiPQ._u16PanelDCLK = 0;
185             //pPQResourcePrivate->stapiPQ._bForceSetDCLKEnable = DISABLE;
186             //pPQResourcePrivate->stapiPQ._u16PanelHStart = 0;
187             //pPQResourcePrivate->stapiPQ._bForceSetHStartEnable = DISABLE;
188             //pPQResourcePrivate->stapiPQ.ePrevPowerState = E_POWER_MECHANICAL;
189 
190             // halPQ.c
191             //pPQResourcePrivate->sthalPQ._u16PQDefault_SwingLevel = 250;
192             //pPQResourcePrivate->sthalPQ._eDrvPQInitOptions = E_PQ_OUTPUT_CLK_DATA;
193             //pPQResourcePrivate->sthalPQ._u8MOD_CALI_TARGET = 0;
194             //pPQResourcePrivate->sthalPQ._u8MOD_CALI_PAIR_SEL = 0x01;
195             //pPQResourcePrivate->sthalPQ._usMOD_CALI_OFFSET = 0;
196             //pPQResourcePrivate->sthalPQ._u8MOD_CALI_VALUE  = 0x15;
197             //pPQResourcePrivate->sthalPQ._u8MOD_LVDS_Pair_Shift = 0;
198             //pPQResourcePrivate->sthalPQ._u8MOD_LVDS_Pair_Type = 0;
199             //pPQResourcePrivate->sthalPQ._u8PQDiffSwingLevel = 0x63;
200             //pPQResourcePrivate->sthalPQ._bPVDD_2V5 = FALSE;
201         }
202     }
203 #endif
204 }
205 
PQOpen(void ** ppInstance,MS_U32 u32ModuleVersion,void * pAttribute)206 MS_U32 PQOpen(void** ppInstance,MS_U32 u32ModuleVersion, void* pAttribute)
207 {
208 #if 1
209     PQ_INSTANCE_PRIVATE *psPQInstPri = NULL;
210     UtopiaInstanceCreate(sizeof(PQ_INSTANCE_PRIVATE), ppInstance);
211     UtopiaInstanceGetPrivate(*ppInstance, (void**)&psPQInstPri);
212 
213     psPQInstPri->u32DeviceID             = 0;
214     //todo:  have to check later why AN use 32bits libutopia.so casue error
215     /*if(pAttribute != NULL)
216     {
217         MS_U32* pID = (MS_U32*)pAttribute;
218         psPQInstPri->u32DeviceID = *pID;
219     }*/
220 #ifdef CONFIG_UTOPIA_SIZE_CUSTOMER
221     #define URELATION(a,b,c)   psPQInstPri->_URELATION_ASSIGN(a,b,c)
222             _MODULE_PQ_U1_U2_RELATION
223     #undef URELEATION
224 #else
225     psPQInstPri->fpPQ_Init                                = MDrv_PQ_Init_U2;
226     psPQInstPri->fpPQ_Exit                                = MDrv_PQ_Exit_U2;
227     psPQInstPri->fpPQ_SetPowerState                        = MDrv_PQ_SetPowerState_U2;
228     psPQInstPri->fpPQ_GetIPNum                            = MDrv_PQ_GetIPNum_U2;
229     psPQInstPri->fpPQ_GetTableNum                        = MDrv_PQ_GetTableNum_U2;
230     psPQInstPri->fpPQ_GetCurrentTableIndex                = MDrv_PQ_GetCurrentTableIndex_U2;
231     psPQInstPri->fpPQ_GetTableIndex                        = MDrv_PQ_GetTableIndex_U2;
232     psPQInstPri->fpPQ_GetCustomerTableIndex                = MDrv_PQ_GetCustomerTableIndex_U2;
233     //psPQInstPri->fpPQ_GetXRuleIPIndex                    = MDrv_PQ_GetXRuleIPIndex_U2;
234     //psPQInstPri->fpPQ_GetXRuleTableIndex                = MDrv_PQ_GetXRuleTableIndex_U2;
235     //psPQInstPri->fpPQ_GetXRuleIPNum                        = MDrv_PQ_GetXRuleIPNum_U2;
236     psPQInstPri->fpPQ_LoadTableData                        = MDrv_PQ_LoadTableData_U2;
237     psPQInstPri->fpPQ_CloneTable                        = MDrv_PQ_CloneTable_U2;
238     psPQInstPri->fpPQ_LoadTable                            = MDrv_PQ_LoadTable_U2;
239     psPQInstPri->fpPQ_LoadCustomerTable                    = MDrv_PQ_LoadCustomerTable_U2;
240     psPQInstPri->fpPQ_CheckSettings                        = MDrv_PQ_CheckSettings_U2;
241 #if    (ENABLE_PQ_MLOAD)
242     psPQInstPri->fpPQ_MLoadEn                            = MDrv_PQ_Set_MLoadEn_U2;
243 #endif
244     psPQInstPri->fpPQ_SkipDuplicatedSetting                = MDrv_PQ_SkipDuplicatedSetting_U2;
245     psPQInstPri->fpPQ_GetSkipDuplicatedSettingStatus    = MDrv_PQ_GetSkipDuplicatedSettingStatus_U2;
246 #if (PQ_FRCM_CBCR_SWAP_BY_SW == 1)
247     psPQInstPri->fpPQ_SetFrcmCbCrSwap                    = MDrv_PQ_SetFrcmCbCrSwap_U2;
248 #endif
249     psPQInstPri->fpPQ_LoadSettings                        = MDrv_PQ_LoadSettings_U2;
250     psPQInstPri->fpPQ_LoadCustomerSettings                = MDrv_PQ_LoadCustomerSettings_U2;
251     psPQInstPri->fpPQ_Set_DTVInfo                        = MDrv_PQ_Set_DTVInfo_U2;
252     psPQInstPri->fpPQ_Set_MultiMediaInfo                = MDrv_PQ_Set_MultiMediaInfo_U2;
253     psPQInstPri->fpPQ_Set_VDInfo                        = MDrv_PQ_Set_VDInfo_U2;
254     psPQInstPri->fpPQ_Set_ModeInfo                        = MDrv_PQ_Set_ModeInfo_U2;
255     psPQInstPri->fpPQ_SetHDMIInfo                        = MDrv_PQ_SetHDMIInfo_U2;
256     psPQInstPri->fpPQ_SetHDMI_PC                        = MDrv_PQ_SetHDMI_PC_U2;
257     psPQInstPri->fpPQ_GetHDMI_PC_Status                    = MDrv_PQ_GetHDMI_PC_Status_U2;
258     psPQInstPri->fpPQ_DesideSrcType                        = MDrv_PQ_DesideSrcType_U2;
259     psPQInstPri->fpPQ_GetInputSourceType                = MDrv_PQ_GetInputSourceType_U2;
260     psPQInstPri->fpPQ_GetSrcType                        = MDrv_PQ_GetSrcType_U2;
261     psPQInstPri->fpPQ_GetDelayTimeByMemc                = MDrv_PQ_GetDelayTimeByMemc_U2;
262     psPQInstPri->fpPQ_GetDelayTime                        = MDrv_PQ_GetDelayTime_U2;
263     psPQInstPri->fpPQ_LoadScalingTable                    = MDrv_PQ_LoadScalingTable_U2;
264     psPQInstPri->fpPQ_SetColorRange                        = MDrv_PQ_SetColorRange_U2;
265     psPQInstPri->fpPQ_Get_CSC_XRuleIdx                    = MDrv_PQ_Get_CSC_XRuleIdx_U2;
266     psPQInstPri->fpPQ_Get_MemYUVFmt                        = MDrv_PQ_Get_MemYUVFmt_U2;
267     psPQInstPri->fpPQ_SetCSC                            = MDrv_PQ_SetCSC_U2;
268 #if (PQ_XRULE_DB_ENABLE == 1)
269     psPQInstPri->fpPQ_Set_DBRule                        = MDrv_PQ_Set_DBRule_U2;
270 #endif
271     psPQInstPri->fpPQ_EnableMADIForce                    = MDrv_PQ_EnableMADIForce_U2;
272     psPQInstPri->fpPQ_ReduceBW_ForPVR                    = MDrv_PQ_ReduceBW_ForPVR_U2;
273     psPQInstPri->fpPQ_Set420upsampling                    = MDrv_PQ_Set420upsampling_U2;
274     psPQInstPri->fpPQ_SetFilmMode                        = MDrv_PQ_SetFilmMode_U2;
275     psPQInstPri->fpPQ_SetNonLinearScaling                = MDrv_PQ_SetNonLinearScaling_U2;
276     psPQInstPri->fpPQ_3DCloneforPIP                        = MDrv_PQ_3DCloneforPIP_U2;
277     psPQInstPri->fpPQ_DisableFilmMode                    = MDrv_PQ_DisableFilmMode_U2;
278     psPQInstPri->fpPQ_DisableUCFeature                    = MDrv_PQ_DisableUCFeature_U2;
279     psPQInstPri->fpPQ_GetCurrentUCFeature                = MDrv_PQ_GetCurrentUCFeature_U2;
280     psPQInstPri->fpPQ_GetUCFeatureFromPQ                = MDrv_PQ_GetUCFeatureFromPQ_U2;
281 #if    (PQ_GRULE_GAME_MODE_ENABLE == 1)
282     psPQInstPri->fpPQ_EnableUCFeature                    = MDrv_PQ_EnableUCFeature_U2;
283 #endif
284     psPQInstPri->fpPQ_SetUCFeature                        = MDrv_PQ_SetUCFeature_U2;
285     psPQInstPri->fpPQ_SetDMSV12L                        = MDrv_PQ_SetDMSV12L_U2;
286     psPQInstPri->fpPQ_GetDMSV12LFromXRuleTable            = MDrv_PQ_GetDMSV12LFromXRuleTable_U2;
287     psPQInstPri->fpPQ_GetLibVer                            = MDrv_PQ_GetLibVer_U2;
288     psPQInstPri->fpPQ_GetInfo                            = MDrv_PQ_GetInfo_U2;
289     psPQInstPri->fpPQ_GetStatus                            = MDrv_PQ_GetStatus_U2;
290     psPQInstPri->fpPQ_SetDbgLevel                        = MDrv_PQ_SetDbgLevel_U2;
291     psPQInstPri->fpPQ_MADiForceMotionC                    = MDrv_PQ_MADiForceMotionC_U2;
292     psPQInstPri->fpPQ_MADiForceMotionY                    = MDrv_PQ_MADiForceMotionY_U2;
293 #ifdef UFO_XC_PQ_SUPPORT_SWMOTION
294     psPQInstPri->fpPQ_MADiForceMotion                    = MDrv_PQ_MADiForceMotion_U2;
295 #endif
296 #ifdef UFO_XC_PQ_SUPPORT_REPEATER_COLOR_THROUGH_MODE
297     psPQInstPri->fpPQ_SetColorThroughMode                = MDrv_PQ_SetColorThroughMode_U2;
298 #endif
299 
300     psPQInstPri->fpPQ_SetRFblMode                        = MDrv_PQ_SetRFblMode_U2;
301     psPQInstPri->fpPQ_GetRFblMode                        = MDrv_PQ_GetRFblMode_U2;
302 #if (PQ_ENABLE_VD_SAMPLING)
303     psPQInstPri->fpPQ_Get_VDSampling_Info                = MDrv_PQ_Get_VDSampling_Info_U2;
304 #endif
305     psPQInstPri->fpPQ_INTER_IOCTL                        = MDrv_PQ_IOCTL_U2;
306     psPQInstPri->fpPQ_Get_ADCSampling_Info                = MDrv_PQ_Get_ADCSampling_Info_U2;
307     psPQInstPri->fpPQ_Set3D_OnOff                        = MDrv_PQ_Set3D_OnOff_U2;
308     psPQInstPri->fpPQ_GetCaps                            = MDrv_PQ_GetCaps_U2;
309     psPQInstPri->fpPQ_PrintLoadTableInfo                = MDRV_PQ_PrintLoadTableInfo_U2;
310     psPQInstPri->fpPQ_SetDS_OnOFF                        = MDrv_PQ_SetDS_OnOFF_U2;
311     psPQInstPri->fpPQ_Get_RFBL_Info                        = MDrv_PQ_Get_RFBL_Info_U2;
312     psPQInstPri->fpPQ_CheckHDMode                        = MDrv_PQ_CheckHDMode_U2;
313     psPQInstPri->fpPQ_Interlace_SD_mode                    = MDrv_PQ_Get_Interlace_SD_mode_U2;
314     psPQInstPri->fpPQ_SetDualViewState                    = MDrv_PQ_SetDualViewState_U2;
315     psPQInstPri->fpPQ_GetVGASubCaseForceTo422Mode        = MDrv_PQ_GetVGASubCaseForceTo422Mode_U2;
316     psPQInstPri->fpPQ_GetDualViewState                    = MDrv_PQ_GetDualViewState_U2;
317     psPQInstPri->fpPQ_ForceVideoInputMode                = MDrv_PQ_ForceVideoInputMode_U2;
318     psPQInstPri->fpPQ_IsForceVideoInputMode                = MDrv_PQ_IsForceVideoInputMode_U2;
319     psPQInstPri->fpPQ_Set_PointToPoint                    = MDrv_PQ_Set_PointToPoint_U2;
320     psPQInstPri->fpPQ_Get_PointToPoint                    = MDrv_PQ_Get_PointToPoint_U2;
321     psPQInstPri->fpPQ_Update_MemFormat                    = MDrv_PQ_Update_MemFormat_U2;
322     psPQInstPri->fpPQ_GetHsize                            = MDrv_PQ_GetHsize_U2;
323     psPQInstPri->fpPQ_GetVsize                            = MDrv_PQ_GetVsize_U2;
324     psPQInstPri->fpPQ_IsInterlace                        = MDrv_PQ_IsInterlace_U2;
325     psPQInstPri->fpPQ_LOW_3dQuality                        = MDrv_PQ_LOW_3dQuality_U2;
326     psPQInstPri->fpPQ_MWE_SetEnhanceQuality                = MDrv_PQ_MWE_SetEnhanceQuality_U2;
327     psPQInstPri->fpPQ_MWE_RestoreEnhanceQuality            = MDrv_PQ_MWE_RestoreEnhanceQuality_U2;
328     psPQInstPri->fpPQ_MWE_RestoreOffQuality                = MDrv_PQ_MWE_RestoreOffQuality_U2;
329     psPQInstPri->fpPQ_MWE_SetOffQuality                    = MDrv_PQ_MWE_SetOffQuality_U2;
330     psPQInstPri->fpPQ_MWE_CloneWindow                    = MDrv_PQ_MWE_CloneWindow_U2;
331     psPQInstPri->fpPQ_3D_SettingForLBL                    = MDrv_PQ_3D_SettingForLBL_U2;
332     psPQInstPri->fpPQ_3D_CloneWindow                    = MDrv_PQ_3D_CloneWindow_U2;
333     psPQInstPri->fpPQ_Get_SensioMode                     = MDrv_PQ_Get_SensioMode_U2;
334     psPQInstPri->fpPQ_Set_SensioMode                    = MDrv_PQ_Set_SensioMode_U2;
335     psPQInstPri->fpPQ_Set_DIPF                            = MDrv_PQ_Set_DIPF_U2;
336     psPQInstPri->fpPQ_SetSelectCSC                        = MDrv_PQ_SetSelectCSC_U2;
337     psPQInstPri->fpPQ_GetR2YEqSelect                    = MDrv_PQ_GetR2YEqSelect_U2;
338     psPQInstPri->fpPQ_GetMemFmtInGeneral                = MDrv_PQ_GetMemFmtInGeneral_U2;
339     psPQInstPri->fpPQ_GetMADiForRFBL                    = MDrv_PQ_GetMADiForRFBL_U2;
340     psPQInstPri->fpPQ_Patch2Rto4RForFieldPackingMode    = MDrv_PQ_Patch2Rto4RForFieldPackingMode_U2;
341     psPQInstPri->fpPQ_GetBPPInfoFromMADi                = MDrv_PQ_GetBPPInfoFromMADi_U2;
342     psPQInstPri->fpPQ_ChangeMemConfigFor3D                = MDrv_PQ_ChangeMemConfigFor3D_U2;
343     psPQInstPri->fpPQ_ForceBPPForDynamicMemFmt            = MDrv_PQ_ForceBPPForDynamicMemFmt_U2;
344     psPQInstPri->fpPQ_SuggestFrameNum                    = MDrv_PQ_SuggestFrameNum_U2;
345     psPQInstPri->fpPQ_SetGameMode                        = MDrv_PQ_SetGameMode_U2;
346     psPQInstPri->fpPQ_GetGameMode_Status                = MDrv_PQ_GetGameMode_Status_U2;
347     psPQInstPri->fpPQ_SetBypassMode                        = MDrv_PQ_SetBypassMode_U2;
348     psPQInstPri->fpPQ_GetBypassModeStatus                = MDrv_PQ_GetBypassModeStatus_U2;
349     psPQInstPri->fpPQ_GetVersion                        = MDrv_PQ_GetVersion_U2;
350     psPQInstPri->fpPQ_Cus_GetVersion                    = MDrv_PQ_Cus_GetVersion_U2;
351     psPQInstPri->fpPQ_SetGRuleStatus                    = MDrv_PQ_SetGRuleStatus_U2;
352     psPQInstPri->fpPQ_GetGRule_LvlNum                    = MDrv_PQ_GetGRule_LvlNum_U2;
353     psPQInstPri->fpPQ_GetGRule_GRuleNum                    = MDrv_PQ_GetGRule_GRuleNum_U2;
354     psPQInstPri->fpPQ_GetGRule_LevelIndex                = MDrv_PQ_GetGRule_LevelIndex_U2;
355     psPQInstPri->fpPQ_GetGRule_IPIndex                    = MDrv_PQ_GetGRule_IPIndex_U2;
356     psPQInstPri->fpPQ_GetGRule_TableIndex                = MDrv_PQ_GetGRule_TableIndex_U2;
357     psPQInstPri->fpPQ_GetCustomerGRule_IPIndex            = MDrv_PQ_GetCustomerGRule_IPIndex_U2;
358     psPQInstPri->fpPQ_GetGRule_CustomerTableIndex        = MDrv_PQ_GetGRule_CustomerTableIndex_U2;
359     psPQInstPri->fpPQ_Set_xvYCC_MatrixCoefficient        = MDrv_PQ_Set_xvYCC_MatrixCoefficient_U2;
360     psPQInstPri->fpPQ_Get_DNR_Whole_reg                  = MDrv_PQ_Get_DNR_Whole_Reg_U2;
361     psPQInstPri->fpPQ_Up_Layer_Set_Config                = MDrv_PQ_Up_Layer_Set_Config_U2;
362     psPQInstPri->fpPQ_GetQmapExecutor                    = MDrv_PQ_GetQmapExecutor_U2;
363     psPQInstPri->fpPQ_SetPhotoYUVStandard                = MDrv_PQ_SetPhotoYUVStandard_U2;
364     psPQInstPri->fpPQ_Ex_GetVersion                        = MDrv_PQ_Ex_GetVersion_U2;
365     psPQInstPri->fpPQ_GetAdaptiveVersion                = MDrv_PQ_GetAdaptiveVersion_U2;
366     psPQInstPri->fpPQ_LoadUFSCSettings                    = MDrv_PQ_LoadUFSCSettings_U2;
367 #if (ENABLE_PQ_BIN_CF)
368     psPQInstPri->fpPQ_LoadCFSettings                    = MDrv_PQ_LoadCFSettings_U2;
369 #endif
370     psPQInstPri->fpPQ_Set_PqBypass                                 = MDrv_PQ_Set_PqBypass_U2;
371     psPQInstPri->fpPQ_Get_PqBypass                                 = MDrv_PQ_Get_PqBypass_U2;
372     psPQInstPri->fpPQ_Set_PqBin_Path                                 = MDrv_PQ_SetPQBinPath_U2;
373 //drvPQ_cus.c
374     psPQInstPri->fpPQ_LoadFilmModeTable                    = MDrv_PQ_LoadFilmModeTable_U2;
375     psPQInstPri->fpPQ_LoadDynamicContrastTable            = MDrv_PQ_LoadDynamicContrastTable_U2;
376     psPQInstPri->fpPQ_LoadNRTable                        = MDrv_PQ_LoadNRTable_U2;
377     psPQInstPri->fpPQ_LoadMPEGNRTable                    = MDrv_PQ_LoadMPEGNRTable_U2;
378     psPQInstPri->fpPQ_Load_ULTRACLEAR_Table                = MDrv_PQ_Load_ULTRACLEAR_Table_U2;
379     psPQInstPri->fpPQ_Load_XVYCC_Table                    = MDrv_PQ_Load_XVYCC_Table_U2;
380     psPQInstPri->fpPQ_Load_HDR_Table                    = MDrv_PQ_Load_HDR_Table_U2;
381     psPQInstPri->fpPQ_GRULE_Get_Support_Status            = MDrv_PQ_GRULE_Get_Support_Status_U2;
382     psPQInstPri->fpPQ_SetMemFormat                        = MDrv_PQ_SetMemFormat_U2;
383     psPQInstPri->fpPQ_ReduceBW_ForOSD                    = MDrv_PQ_ReduceBW_ForOSD_U2;
384     psPQInstPri->fpPQ_LoadPTPTable                        = MDrv_PQ_LoadPTPTable_U2;
385     psPQInstPri->fpPQ_Init_DisplayType                    = MDrv_PQ_Init_DisplayType_U2;
386     psPQInstPri->fpPQ_Set_DisplayType                    = MDrv_PQ_Set_DisplayType_U2;
387     psPQInstPri->fpPQ_GetMADiFromOSDBWGrule                = MDrv_PQ_GetMADiFromOSDBWGrule_U2;
388     psPQInstPri->fpPQ_GetMADiInGeneral                    = MDrv_PQ_GetMADiInGeneral_U2;
389     psPQInstPri->fpPQ_Check_PointToPoint_Condition        = MDrv_PQ_Check_PointToPoint_Condition_U2;
390     psPQInstPri->fpPQ_SetPostCCSOnOff                    = MDrv_PQ_SetPostCCSOnOff_U2;
391     psPQInstPri->fpPQ_AdaptiveTuning                    = MDrv_PQ_AdaptiveTuning_U2;
392     psPQInstPri->fpPQ_FilmMode_AnyCandence_Enable        = MDrv_PQ_FilmMode_AnyCandence_Enable_U2;
393     psPQInstPri->fpPQ_SetH264_OnOff                        = MDrv_PQ_SetH264_OnOff_U2;
394     psPQInstPri->fpPQ_SetG3D_OnOff                        = MDrv_PQ_SetG3D_OnOff_U2;
395     psPQInstPri->fpPQ_SetMVC4kx1k_OnOff                    = MDrv_PQ_SetMVC4kx1k_OnOff_U2;
396     psPQInstPri->fpPQ_SetNetworkMM_OnOff                = MDrv_PQ_SetNetworkMM_OnOff_U2;
397     psPQInstPri->fpPQ_SetMM_OnOff                        = MDrv_PQ_SetMM_OnOff_U2;
398     psPQInstPri->fpPQ_SetRmvb_OnOff                        = MDrv_PQ_SetRmvb_OnOff_U2;
399     psPQInstPri->fpPQ_SetVIPBypass_OnOff                = MDrv_PQ_SetVIPBypass_OnOff_U2;
400     psPQInstPri->fpPQ_SetPeaking_OnOff                    = MDrv_PQ_SetPeaking_OnOff_U2;
401     psPQInstPri->fpPQ_SetFakeOutEnable                     = MDrv_PQ_SetFakeOutEnable_U2;
402     psPQInstPri->fpPQ_GetTableIndex_Ex                                      = MDrv_PQ_GetTableIndex_Ex_U2;
403     psPQInstPri->fpPQ_LoadTable_Ex                                          = MDrv_PQ_LoadTable_Ex_U2;
404     psPQInstPri->fpPQ_Demo_CloneWindow                                      = MDrv_PQ_Demo_CloneWindow_U2;
405     psPQInstPri->fpPQ_GetGRule_LvlNum_Ex                                    = MDrv_PQ_GetGRule_LvlNum_Ex_U2;
406     psPQInstPri->fpPQ_GetGRule_LevelIndex_Ex                                = MDrv_PQ_GetGRule_LevelIndex_Ex_U2;
407     psPQInstPri->fpPQ_GetGRule_IPIndex_Ex                                   = MDrv_PQ_GetGRule_IPIndex_Ex_U2;
408     psPQInstPri->fpPQ_GetGRule_TableIndex_Ex                                = MDrv_PQ_GetGRule_TableIndex_Ex_U2;
409     psPQInstPri->fpPQ_EnableScalerGamma                                     = MDrv_PQ_EnableScalerGamma_U2;
410     psPQInstPri->fpPQ_SetGammaTbl                                           = MDrv_PQ_SetGammaTbl_U2;
411     psPQInstPri->fpPQ_Set1KTravelingEnable                                 = MDrv_PQ_Set1KTravelingEnable_U2;
412 //drvPQ.c
413     psPQInstPri->fpPQ_GetSrcTypeName                     = MDrv_PQ_GetSrcTypeName_U2;
414     psPQInstPri->fpPQ_GetIPName                             = MDrv_PQ_GetIPName_U2;
415     psPQInstPri->fpPQ_GetTableName                         = MDrv_PQ_GetTableName_U2;
416 //drvbw.c
417     psPQInstPri->fpPQ_BW_LoadInitTable                     = MDrv_BW_LoadInitTable_U2;
418     psPQInstPri->fpPQ_BW_LoadTableByContext                = MDrv_BW_LoadTableByContext_U2;
419     psPQInstPri->fpPQ_BW_ResetToDefault                    = MDrv_BW_ResetToDefault_U2;
420        psPQInstPri->fpPQ_BW_CusMode_LoadTable                            = MDrv_BW_CusMode_LoadTable_U2;
421     psPQInstPri->fpPQ_GetConfig                            = MDrv_PQ_GetConfig_U2;
422     psPQInstPri->fpPQ_SET_FrameBuff_Mode                   = MDrv_PQ_SetFrameBuffMode_U2;
423 #endif
424 #endif
425     return UTOPIA_STATUS_SUCCESS;
426 }
427 
428 
PQIoctl(void * pInstance,MS_U32 u32Cmd,void * pArgs)429 MS_U32 PQIoctl(void* pInstance, MS_U32 u32Cmd, void* pArgs)
430 {
431 #if 1
432     //void* pModule = NULL;
433     PQ_INSTANCE_PRIVATE* psPQInstPri = NULL;
434     UtopiaInstanceGetPrivate(pInstance, (void*)&psPQInstPri);
435     //UtopiaInstanceGetModule(pInstance, &pModule);
436     //printf("[%s,%5d] u32Cmd type = %ld\n",__FUNCTION__,__LINE__);
437     //pu32PQInst_private = pInstance;
438     switch(u32Cmd)
439     {
440         case E_PQ_CMD_INIT:
441         {
442             pstPQ_INIT pPQArgs = (pstPQ_INIT)pArgs;
443             psPQInstPri->fpPQ_Init(pInstance, pPQArgs->pstPQInitInfo);
444 
445             return UTOPIA_STATUS_SUCCESS;
446         }
447         case E_PQ_CMD_EXIT:
448         {
449             psPQInstPri->fpPQ_Exit(pInstance);
450 
451             return UTOPIA_STATUS_SUCCESS;
452         }
453         case E_PQ_CMD_SET_POWER_STATE:
454         {
455             pstPQ_SetPowerState pPQArgs = (pstPQ_SetPowerState)pArgs;
456             pPQArgs->u32Ret = psPQInstPri->fpPQ_SetPowerState(pInstance, pPQArgs->enPowerState);
457 
458             return UTOPIA_STATUS_SUCCESS;
459         }
460         case E_PQ_CMD_GET_IP_NUM:
461         {
462             pstPQ_GetIPNum pPQArgs = (pstPQ_GetIPNum)pArgs;
463             pPQArgs->u16Ret = psPQInstPri->fpPQ_GetIPNum(pInstance, pPQArgs->eWindow);
464             return UTOPIA_STATUS_SUCCESS;
465         }
466         case E_PQ_CMD_GET_TABLE_NUM:
467         {
468             pstPQ_GetTableNum pPQArgs = (pstPQ_GetTableNum)pArgs;
469             pPQArgs->u16Ret = psPQInstPri->fpPQ_GetTableNum(pInstance, pPQArgs->eWindow, pPQArgs->u16PQIPIdx);
470 
471             return UTOPIA_STATUS_SUCCESS;
472         }
473         case E_PQ_CMD_GET_CURRENT_TABLE_INDEX:
474         {
475             pstPQ_GetCurrentTableIndex pPQArgs = (pstPQ_GetCurrentTableIndex)pArgs;
476             pPQArgs->u16Ret = psPQInstPri->fpPQ_GetCurrentTableIndex(pInstance, pPQArgs->eWindow, pPQArgs->u16PQIPIdx);
477 
478             return UTOPIA_STATUS_SUCCESS;
479         }
480         case E_PQ_CMD_GET_TABLE_INDEX:
481         {
482             pstPQ_GetTableIndex pPQArgs = (pstPQ_GetTableIndex)pArgs;
483             pPQArgs->u16Ret = psPQInstPri->fpPQ_GetTableIndex(pInstance, pPQArgs->eWindow, pPQArgs->u16PQIPIdx);
484 
485             return UTOPIA_STATUS_SUCCESS;
486         }
487         case E_PQ_CMD_GET_CUSTOMER_TABLE_INDEX:
488         {
489             pstPQ_GetCustomerTableIndex pPQArgs = (pstPQ_GetCustomerTableIndex)pArgs;
490             pPQArgs->u16Ret = psPQInstPri->fpPQ_GetCustomerTableIndex(pInstance, pPQArgs->eWindow, pPQArgs->u16PQIPIdx);
491 
492             return UTOPIA_STATUS_SUCCESS;
493         }
494         //case E_PQ_CMD_GET_XRULE_IP_INDEX:
495         //{
496         //    pstPQ_GetXRuleIPIndex pPQArgs = (pstPQ_GetXRuleIPIndex)pArgs;
497         //    pPQArgs->u16Ret = psPQInstPri->fpPQ_GetXRuleIPIndex(pInstance, pPQArgs->eWindow, pPQArgs->u16XRuleType,pPQArgs->u16XRuleIP);
498 
499         //    return UTOPIA_STATUS_SUCCESS;
500         //}
501         //case E_PQ_CMD_GET_XRULE_TABLE_INDEX:
502         //{
503         //    pstPQ_GetXRuleTableIndex pPQArgs = (pstPQ_GetXRuleTableIndex)pArgs;
504         //    pPQArgs->u16Ret = psPQInstPri->fpPQ_GetXRuleTableIndex(pInstance, pPQArgs->eWindow,
505         //                                                                        pPQArgs->u16XRuleType,
506         //                                                                        pPQArgs->u16XRuleIdx,
507         //                                                                        pPQArgs->u16XRuleIP);
508 
509         //    return UTOPIA_STATUS_SUCCESS;
510         //}
511         //case E_PQ_CMD_GET_XRULE_IP_NUM:
512         //{
513         //    pstPQ_GetXRuleIPNum pPQArgs = (pstPQ_GetXRuleIPNum)pArgs;
514         //    pPQArgs->u16Ret = psPQInstPri->fpPQ_GetXRuleIPNum(pInstance, pPQArgs->eWindow, pPQArgs->u16XRuleType);
515 
516         //    return UTOPIA_STATUS_SUCCESS;
517         //}
518         case E_PQ_CMD_LOAD_TABLE_DATA:
519         {
520             pstPQ_LoadTableData pPQArgs = (pstPQ_LoadTableData)pArgs;
521             psPQInstPri->fpPQ_LoadTableData(pInstance, pPQArgs->eWindow ,
522                                                         pPQArgs->u16TabIdx ,
523                                                         pPQArgs->u16PQIPIdx ,
524                                                         pPQArgs->pTable ,
525                                                         pPQArgs->u16TableSize);
526 
527             return UTOPIA_STATUS_SUCCESS;
528         }
529         case E_PQ_CMD_CLONE_TABLE:
530         {
531             pstPQ_CloneTable pPQArgs = (pstPQ_CloneTable)pArgs;
532             psPQInstPri->fpPQ_CloneTable(pInstance, pPQArgs->eWindow ,
533                                                         pPQArgs->u16TabIdx ,
534                                                         pPQArgs->u16PQMainIPIdx ,
535                                                         pPQArgs->u16PQSubIPIdx);
536 
537             return UTOPIA_STATUS_SUCCESS;
538         }
539         case E_PQ_CMD_LOAD_TABLE:
540         {
541             pstPQ_LoadTable pPQArgs = (pstPQ_LoadTable)pArgs;
542             psPQInstPri->fpPQ_LoadTable(pInstance, pPQArgs->eWindow ,
543                                                         pPQArgs->u16TabIdx ,
544                                                         pPQArgs->u16PQIPIdx);
545 
546             return UTOPIA_STATUS_SUCCESS;
547         }
548         case E_PQ_CMD_LOAD_CUSTOMER_TABLE:
549         {
550             pstPQ_LoadCustomerTable pPQArgs = (pstPQ_LoadCustomerTable)pArgs;
551             psPQInstPri->fpPQ_LoadCustomerTable(pInstance, pPQArgs->eWindow ,
552                                                             pPQArgs->u16TabIdx ,
553                                                             pPQArgs->u16PQIPIdx);
554 
555             return UTOPIA_STATUS_SUCCESS;
556         }
557         case E_PQ_CMD_CHECK_SETTINGS:
558         {
559             pstPQ_CheckSettings pPQArgs = (pstPQ_CheckSettings)pArgs;
560             psPQInstPri->fpPQ_CheckSettings(pInstance, pPQArgs->eWindow);
561 
562             return UTOPIA_STATUS_SUCCESS;
563         }
564 #if (ENABLE_PQ_MLOAD)
565         case E_PQ_CMD_SET_MLOAD_EN:
566         {
567             pstPQ_Set_MLoadEn pPQArgs = (pstPQ_Set_MLoadEn)pArgs;
568             psPQInstPri->fpPQ_MLoadEn(pInstance, pPQArgs->eWindow, pPQArgs->bEn);
569 
570             return UTOPIA_STATUS_SUCCESS;
571         }
572 #endif
573         case E_PQ_CMD_SKIP_DUPLICATED_SETTING:
574         {
575             pstPQ_SkipDuplicatedSetting pPQArgs = (pstPQ_SkipDuplicatedSetting)pArgs;
576             pPQArgs->bReturnValue = psPQInstPri->fpPQ_SkipDuplicatedSetting(pInstance, pPQArgs->eWindow, pPQArgs->bSkip);
577 
578             return UTOPIA_STATUS_SUCCESS;
579         }
580         case E_PQ_CMD_GET_SKIP_DUPLICATED_SETTING_STATUS:
581         {
582             pstPQ_GetSkipDuplicatedSettingStatus pPQArgs = (pstPQ_GetSkipDuplicatedSettingStatus)pArgs;
583             pPQArgs->bReturnValue = psPQInstPri->fpPQ_GetSkipDuplicatedSettingStatus(pInstance,pPQArgs->eWindow);
584 
585             return UTOPIA_STATUS_SUCCESS;
586         }
587 #if (PQ_FRCM_CBCR_SWAP_BY_SW == 1)
588         case E_PQ_CMD_SET_FRCM_CB_CR_SWAP:
589         {
590             pstPQ_SetFrcmCbCrSwap pPQArgs = (pstPQ_SetFrcmCbCrSwap)pArgs;
591             psPQInstPri->fpPQ_SetFrcmCbCrSwap(pInstance, pPQArgs->eWindow);
592 
593             return UTOPIA_STATUS_SUCCESS;
594         }
595 #endif
596         case E_PQ_CMD_LOAD_SETTINGS:
597         {
598             pstPQ_LoadSettings pPQArgs = (pstPQ_LoadSettings)pArgs;
599             psPQInstPri->fpPQ_LoadSettings(pInstance, pPQArgs->eWindow);
600 
601             return UTOPIA_STATUS_SUCCESS;
602         }
603         case E_PQ_CMD_LOAD_CUSTONER_SETTINGS:
604         {
605             pstPQ_LoadCustomerSettings pPQArgs = (pstPQ_LoadCustomerSettings)pArgs;
606             psPQInstPri->fpPQ_LoadCustomerSettings(pInstance, pPQArgs->eWindow);
607 
608             return UTOPIA_STATUS_SUCCESS;
609         }
610         case E_PQ_CMD_SET_DTVINFO:
611         {
612             pstPQ_Set_DTVInfo pPQArgs = (pstPQ_Set_DTVInfo)pArgs;
613             psPQInstPri->fpPQ_Set_DTVInfo(pInstance, pPQArgs->eWindow, pPQArgs->pstPQDTVInfo);
614 
615             return UTOPIA_STATUS_SUCCESS;
616         }
617         case E_PQ_CMD_SET_MULTIMEDIAINFO:
618         {
619             pstPQ_Set_MultiMediaInfo pPQArgs = (pstPQ_Set_MultiMediaInfo)pArgs;
620             psPQInstPri->fpPQ_Set_MultiMediaInfo(pInstance, pPQArgs->eWindow, pPQArgs->pstPQMMInfo);
621 
622             return UTOPIA_STATUS_SUCCESS;
623         }
624         case E_PQ_CMD_SET_VDINFO:
625         {
626             pstPQ_Set_VDInfo pPQArgs = (pstPQ_Set_VDInfo)pArgs;
627             psPQInstPri->fpPQ_Set_VDInfo(pInstance, pPQArgs->eWindow, pPQArgs->pstPQVDInfo);
628 
629             return UTOPIA_STATUS_SUCCESS;
630         }
631         case E_PQ_CMD_SET_MODEINFO:
632         {
633             pstPQ_Set_ModeInfo pPQArgs = (pstPQ_Set_ModeInfo)pArgs;
634             psPQInstPri->fpPQ_Set_ModeInfo(pInstance, pPQArgs->eWindow, pPQArgs->enInputSourceType ,pPQArgs->pstPQModeInfo);
635 
636             return UTOPIA_STATUS_SUCCESS;
637         }
638         case E_PQ_CMD_SET_HDMIINFO:
639         {
640             pstPQ_SetHDMIInfo pPQArgs = (pstPQ_SetHDMIInfo)pArgs;
641             psPQInstPri->fpPQ_SetHDMIInfo(pInstance, pPQArgs->eWindow, &(pPQArgs->pstPQHDMIInfo));
642 
643             return UTOPIA_STATUS_SUCCESS;
644         }
645         case E_PQ_CMD_SET_HDMI_PC:
646         {
647             pstPQ_SetHDMI_PC pPQArgs = (pstPQ_SetHDMI_PC)pArgs;
648             psPQInstPri->fpPQ_SetHDMI_PC(pInstance, pPQArgs->eWindow, pPQArgs->bIsTrue);
649 
650             return UTOPIA_STATUS_SUCCESS;
651         }
652         case E_PQ_CMD_GET_HDMI_PC_STATUS:
653         {
654             pstPQ_GetHDMI_PC_Status pPQArgs = (pstPQ_GetHDMI_PC_Status)pArgs;
655             pPQArgs->bReturnValue = psPQInstPri->fpPQ_GetHDMI_PC_Status(pInstance, pPQArgs->eWindow);
656 
657             return UTOPIA_STATUS_SUCCESS;
658         }
659         case E_PQ_CMD_DESIDE_SRC_TYPE:
660         {
661             pstPQ_DesideSrcType pPQArgs = (pstPQ_DesideSrcType)pArgs;
662                psPQInstPri->fpPQ_DesideSrcType(pInstance, pPQArgs->eWindow, pPQArgs->enInputSourceType);
663 
664             return UTOPIA_STATUS_SUCCESS;
665         }
666         case E_PQ_CMD_GET_INPUTSOURCE_TYPE:
667         {
668             pstPQ_GetInputSourceType pPQArgs = (pstPQ_GetInputSourceType)pArgs;
669                pPQArgs->bReturnValue = psPQInstPri->fpPQ_GetInputSourceType(pInstance, pPQArgs->eWindow);
670 
671             return UTOPIA_STATUS_SUCCESS;
672         }
673         case E_PQ_CMD_GET_SRC_TYPE:
674         {
675             pstPQ_GetSrcType pPQArgs = (pstPQ_GetSrcType)pArgs;
676                pPQArgs->u16Ret = psPQInstPri->fpPQ_GetSrcType(pInstance, pPQArgs->eWindow);
677 
678             return UTOPIA_STATUS_SUCCESS;
679         }
680         case E_PQ_CMD_GET_DELAY_TIME_BY_MEMC:
681         {
682             pstPQ_GetDelayTimeByMemc pPQArgs = (pstPQ_GetDelayTimeByMemc)pArgs;
683                pPQArgs->u16Ret = psPQInstPri->fpPQ_GetDelayTimeByMemc(pInstance,pPQArgs->eWindow,pPQArgs->u32MemcFrameDelay);
684 
685             return UTOPIA_STATUS_SUCCESS;
686         }
687         case E_PQ_CMD_GET_DELAY_TIME:
688         {
689             pstPQ_GetDelayTime pPQArgs = (pstPQ_GetDelayTime)pArgs;
690                pPQArgs->u16Ret = psPQInstPri->fpPQ_GetDelayTime(pInstance,pPQArgs->eWindow);
691 
692             return UTOPIA_STATUS_SUCCESS;
693         }
694         case E_PQ_CMD_LOAD_SCALING_TABLE:
695         {
696             pstPQ_LoadScalingTable pPQArgs = (pstPQ_LoadScalingTable)pArgs;
697                pPQArgs->bReturnValue = psPQInstPri->fpPQ_LoadScalingTable(pInstance ,pPQArgs->eWindow,pPQArgs->eXRuleType ,
698                                                                                     pPQArgs->bPreV_ScalingDown,
699                                                                                     pPQArgs->bInterlace,
700                                                                                     pPQArgs->bColorSpaceYUV,
701                                                                                     pPQArgs->u16InputSize,
702                                                                                     pPQArgs->u16SizeAfterScaling);
703 
704             return UTOPIA_STATUS_SUCCESS;
705         }
706         case E_PQ_CMD_SET_COLOR_RANGE:
707         {
708             pstPQ_SetColorRange pPQArgs = (pstPQ_SetColorRange)pArgs;
709                psPQInstPri->fpPQ_SetColorRange(pInstance ,pPQArgs->eWindow,pPQArgs->bColorRange0_255);
710 
711             return UTOPIA_STATUS_SUCCESS;
712         }
713         case E_PQ_CMD_GET_CSC_XRULEIDX:
714         {
715             pstPQ_Get_CSC_XRuleIdx pPQArgs = (pstPQ_Get_CSC_XRuleIdx)pArgs;
716                pPQArgs->bReturnValue = psPQInstPri->fpPQ_Get_CSC_XRuleIdx(pInstance ,pPQArgs->pbInputColorSpaceRGB ,
717                                                                                     pPQArgs->pu16DoCSC,
718                                                                                     pPQArgs->eWindow,
719                                                                                     pPQArgs->enForceColor,
720                                                                                     pPQArgs->bLoadPQTable);
721 
722             return UTOPIA_STATUS_SUCCESS;
723         }
724         case E_PQ_CMD_GET_MEM_YUVFMT:
725         {
726             pstPQ_Get_MemYUVFmt pPQArgs = (pstPQ_Get_MemYUVFmt)pArgs;
727                pPQArgs->bReturnValue = psPQInstPri->fpPQ_Get_MemYUVFmt(pInstance ,pPQArgs->eWindow, pPQArgs->enForceColor);
728 
729             return UTOPIA_STATUS_SUCCESS;
730         }
731         case E_PQ_CMD_SET_CSC:
732         {
733             pstPQ_SetCSC pPQArgs = (pstPQ_SetCSC)pArgs;
734                pPQArgs->bReturnValue = psPQInstPri->fpPQ_SetCSC(pInstance ,pPQArgs->eWindow, pPQArgs->enForceColor);
735 
736             return UTOPIA_STATUS_SUCCESS;
737         }
738 #if (PQ_XRULE_DB_ENABLE == 1)
739         case E_PQ_CMD_SET_DBRULE:
740         {
741             pstPQ_Set_DBRule pPQArgs = (pstPQ_Set_DBRule)pArgs;
742                psPQInstPri->fpPQ_Set_DBRule(pInstance ,pPQArgs->eWindow, pPQArgs->u16MADi_Idx);
743 
744             return UTOPIA_STATUS_SUCCESS;
745         }
746 #endif
747         case E_PQ_CMD_ENABLE_MADI_FORCE:
748         {
749             pstPQ_EnableMADIForce pPQArgs = (pstPQ_EnableMADIForce)pArgs;
750                psPQInstPri->fpPQ_EnableMADIForce(pInstance ,pPQArgs->eWindow, pPQArgs->bFullMotion);
751 
752             return UTOPIA_STATUS_SUCCESS;
753         }
754         case E_PQ_CMD_REDUCE_BW_FOR_PVR:
755         {
756             pstPQ_ReduceBW_ForPVR pPQArgs = (pstPQ_ReduceBW_ForPVR)pArgs;
757                psPQInstPri->fpPQ_ReduceBW_ForPVR(pInstance ,pPQArgs->eWindow, pPQArgs->bPVR_On);
758 
759             return UTOPIA_STATUS_SUCCESS;
760         }
761         case E_PQ_CMD_SET_420UP_SAMPLEING:
762         {
763             pstPQ_Set420upsampling pPQArgs = (pstPQ_Set420upsampling)pArgs;
764                psPQInstPri->fpPQ_Set420upsampling(pInstance ,pPQArgs->eWindow, pPQArgs->bFBL , pPQArgs->bPreV_ScalingDown, pPQArgs->u16V_CropStart);
765 
766             return UTOPIA_STATUS_SUCCESS;
767         }
768         case E_PQ_CMD_SET_FILEMODE:
769         {
770             pstPQ_SetFilmMode pPQArgs = (pstPQ_SetFilmMode)pArgs;
771                psPQInstPri->fpPQ_SetFilmMode(pInstance ,pPQArgs->eWindow, pPQArgs->bEnable);
772 
773             return UTOPIA_STATUS_SUCCESS;
774         }
775         case E_PQ_CMD_SET_NONLINEAR_SCALING:
776         {
777             pstPQ_SetNonLinearScaling pPQArgs = (pstPQ_SetNonLinearScaling)pArgs;
778                psPQInstPri->fpPQ_SetNonLinearScaling(pInstance ,pPQArgs->eWindow, pPQArgs->u8Level,pPQArgs->bEnable);
779 
780             return UTOPIA_STATUS_SUCCESS;
781         }
782         case E_PQ_CMD_3D_CLONE_FOR_PIP:
783         {
784             pstPQ_3DCloneforPIP pPQArgs = (pstPQ_3DCloneforPIP)pArgs;
785                psPQInstPri->fpPQ_3DCloneforPIP(pInstance ,pPQArgs->bIpSync);
786 
787             return UTOPIA_STATUS_SUCCESS;
788         }
789         case E_PQ_CMD_DISABLE_FILEMODE:
790         {
791             pstPQ_DisableFilmMode pPQArgs = (pstPQ_DisableFilmMode)pArgs;
792                psPQInstPri->fpPQ_DisableFilmMode(pInstance ,pPQArgs->eWindow,pPQArgs->bOn);
793 
794             return UTOPIA_STATUS_SUCCESS;
795         }
796         case E_PQ_CMD_DISABLE_UC_FEATURE:
797         {
798             pstPQ_DisableUCFeature pPQArgs = (pstPQ_DisableUCFeature)pArgs;
799                pPQArgs->bReturnValue = psPQInstPri->fpPQ_DisableUCFeature(pInstance ,pPQArgs->eWindow);
800 
801             return UTOPIA_STATUS_SUCCESS;
802         }
803         case E_PQ_CMD_GET_CURRENT_UC_FEATURE:
804         {
805             pstPQ_GetCurrentUCFeature pPQArgs = (pstPQ_GetCurrentUCFeature)pArgs;
806                pPQArgs->bReturnValue = psPQInstPri->fpPQ_GetCurrentUCFeature(pInstance ,pPQArgs->eWindow,
807                                                                                         pPQArgs->pu16TabIdx_MADi,
808                                                                                         pPQArgs->pu16TabIdx_MADi_Mot,
809                                                                                         pPQArgs->pu16TabIdx_MADi_DFK,
810                                                                                         pPQArgs->pu16TabIdx_MADi_SST,
811                                                                                         pPQArgs->pu16TabIdx_MADi_EODiW,
812                                                                                         pPQArgs->pu16TabIdx_UCNR,
813                                                                                         pPQArgs->pu16TabIdx_UCDi,
814                                                                                         pPQArgs->pu16TabIdx_UCCTL,
815                                                                                         pPQArgs->pu16TabIdx_SwDriver,
816                                                                                         pPQArgs->pu16TabIdx_PostCCS,
817                                                                                         pPQArgs->pu16TabIdx_DHD);
818 
819             return UTOPIA_STATUS_SUCCESS;
820         }
821         case E_PQ_CMD_GET_UC_FEATURE_FROM_PQ:
822         {
823             pstPQ_GetUCFeatureFromPQ pPQArgs = (pstPQ_GetUCFeatureFromPQ)pArgs;
824                pPQArgs->bReturnValue = psPQInstPri->fpPQ_GetUCFeatureFromPQ(pInstance ,pPQArgs->eWindow,
825                                                                                         pPQArgs->pu16TabIdx_MADi_DFK,
826                                                                                         pPQArgs->pu16TabIdx_MADi_SST,
827                                                                                         pPQArgs->pu16TabIdx_MADi_EODiW,
828                                                                                         pPQArgs->pu16TabIdx_UCNR,
829                                                                                         pPQArgs->pu16TabIdx_UCDi,
830                                                                                         pPQArgs->pu16TabIdx_UCCTL,
831                                                                                         pPQArgs->pu16TabIdx_SwDriver,
832                                                                                         pPQArgs->pu16TabIdx_PostCCS,
833                                                                                         pPQArgs->pu16TabIdx_DHD);
834 
835             return UTOPIA_STATUS_SUCCESS;
836         }
837 #if (PQ_GRULE_GAME_MODE_ENABLE == 1)
838         case E_PQ_CMD_ENABLE_UC_FEATURE:
839         {
840             pstPQ_EnableUCFeature pPQArgs = (pstPQ_EnableUCFeature)pArgs;
841                pPQArgs->bReturnValue = psPQInstPri->fpPQ_EnableUCFeature(pInstance ,pPQArgs->eWindow);
842 
843             return UTOPIA_STATUS_SUCCESS;
844         }
845 #endif
846         case E_PQ_CMD_SET_UC_FEATURE:
847         {
848             pstPQ_SetUCFeature pPQArgs = (pstPQ_SetUCFeature)pArgs;
849                pPQArgs->bReturnValue = psPQInstPri->fpPQ_SetUCFeature(pInstance ,pPQArgs->eWindow,
850                                                                                    pPQArgs->pu16TabIdx_MADi,
851                                                                                    pPQArgs->pu16TabIdx_MADi_Mot,
852                                                                                    pPQArgs->pu16TabIdx_MADi_DFK,
853                                                                                    pPQArgs->pu16TabIdx_MADi_SST,
854                                                                                    pPQArgs->pu16TabIdx_MADi_EODiW,
855                                                                                    pPQArgs->pu16TabIdx_UCNR,
856                                                                                    pPQArgs->pu16TabIdx_UCDi,
857                                                                                    pPQArgs->pu16TabIdx_UCCTL,
858                                                                                    pPQArgs->pu16TabIdx_SwDriver,
859                                                                                    pPQArgs->pu16TabIdx_PostCCS,
860                                                                                    pPQArgs->pu16TabIdx_DHD);
861 
862 
863             return UTOPIA_STATUS_SUCCESS;
864         }
865         case E_PQ_CMD_SET_DMSV12L:
866         {
867             pstPQ_SetDMSV12L pPQArgs = (pstPQ_SetDMSV12L)pArgs;
868                pPQArgs->bReturnValue = psPQInstPri->fpPQ_SetDMSV12L(pInstance ,pPQArgs->eWindow,pPQArgs->bEnable);
869 
870             return UTOPIA_STATUS_SUCCESS;
871         }
872         case E_PQ_CMD_GET_DMSV12L_FROM_XRULE_TABLE:
873         {
874             pstPQ_GetDMSV12LFromXRuleTable pPQArgs = (pstPQ_GetDMSV12LFromXRuleTable)pArgs;
875                pPQArgs->bReturnValue = psPQInstPri->fpPQ_GetDMSV12LFromXRuleTable(pInstance ,pPQArgs->eWindow);
876 
877             return UTOPIA_STATUS_SUCCESS;
878         }
879         case E_PQ_CMD_GET_LIB_VER:
880         {
881             pstPQ_GetLibVer pPQArgs = (pstPQ_GetLibVer)pArgs;
882                pPQArgs->bReturnValue = psPQInstPri->fpPQ_GetLibVer(pInstance ,pPQArgs->ppVersion);
883 
884             return UTOPIA_STATUS_SUCCESS;
885         }
886         case E_PQ_CMD_GET_INFO:
887         {
888             pstPQ_GetInfo pPQArgs = (pstPQ_GetInfo)pArgs;
889                pPQArgs->bReturnValue = psPQInstPri->fpPQ_GetInfo(pInstance ,pPQArgs->pInfo);
890 
891             return UTOPIA_STATUS_SUCCESS;
892         }
893         case E_PQ_CMD_GET_STATUS:
894         {
895             pstPQ_GetStatus pPQArgs = (pstPQ_GetStatus)pArgs;
896                pPQArgs->bReturnValue = psPQInstPri->fpPQ_GetStatus(pInstance ,pPQArgs->pStatus);
897 
898             return UTOPIA_STATUS_SUCCESS;
899         }
900         case E_PQ_CMD_SET_DBGLEVEL:
901         {
902             pstPQ_SetDbgLevel pPQArgs = (pstPQ_SetDbgLevel)pArgs;
903                pPQArgs->bReturnValue = psPQInstPri->fpPQ_SetDbgLevel(pInstance ,pPQArgs->u16DbgSwitch);
904 
905             return UTOPIA_STATUS_SUCCESS;
906         }
907         case E_PQ_CMD_MADI_FORCE_MOTIONC:
908         {
909             pstPQ_MADiForceMotionC pPQArgs = (pstPQ_MADiForceMotionC)pArgs;
910                psPQInstPri->fpPQ_MADiForceMotionC(pInstance ,pPQArgs->eWindow, pPQArgs->bEnable);
911 
912             return UTOPIA_STATUS_SUCCESS;
913         }
914         case E_PQ_CMD_MADI_FORCE_MOTIONY:
915         {
916             pstPQ_MADiForceMotionY pPQArgs = (pstPQ_MADiForceMotionY)pArgs;
917                psPQInstPri->fpPQ_MADiForceMotionY(pInstance ,pPQArgs->eWindow, pPQArgs->bEnable);
918 
919             return UTOPIA_STATUS_SUCCESS;
920         }
921 #ifdef UFO_XC_PQ_SUPPORT_SWMOTION
922         case E_PQ_CMD_MADI_FORCE_MOTION:
923         {
924             pstPQ_MADiForceMotion pPQArgs = (pstPQ_MADiForceMotion)pArgs;
925                psPQInstPri->fpPQ_MADiForceMotion(pInstance ,pPQArgs->eWindow, pPQArgs->bEnableY, pPQArgs->u16DataY
926                 , pPQArgs->bEnableC, pPQArgs->u16DataC);
927             return UTOPIA_STATUS_SUCCESS;
928         }
929 #endif
930 #ifdef UFO_XC_PQ_SUPPORT_REPEATER_COLOR_THROUGH_MODE
931         case E_PQ_CMD_SET_COLOR_THROUGH_MODE:
932         {
933             pstPQ_SetColorThroughMode pPQArgs = (pstPQ_SetColorThroughMode)pArgs;
934                psPQInstPri->fpPQ_SetColorThroughMode(pInstance ,pPQArgs->eWindow, pPQArgs->bEn);
935             return UTOPIA_STATUS_SUCCESS;
936         }
937 #endif
938 
939         case E_PQ_CMD_SET_RFBL_MODE:
940         {
941             pstPQ_SetRFblMode pPQArgs = (pstPQ_SetRFblMode)pArgs;
942                psPQInstPri->fpPQ_SetRFblMode(pInstance ,pPQArgs->bEnable, pPQArgs->bFilm);
943 
944             return UTOPIA_STATUS_SUCCESS;
945         }
946         case E_PQ_CMD_GET_RFBL_MODE:
947         {
948             pstPQ_GetRFblMode pPQArgs = (pstPQ_GetRFblMode)pArgs;
949                psPQInstPri->fpPQ_GetRFblMode(pInstance ,pPQArgs->pstInfo);
950 
951             return UTOPIA_STATUS_SUCCESS;
952         }
953 #if (PQ_ENABLE_VD_SAMPLING)
954         case E_PQ_CMD_GET_VDSAMPLING_INFO:
955         {
956             pstPQ_Get_VDSampling_Info pPQArgs = (pstPQ_Get_VDSampling_Info)pArgs;
957                pPQArgs->bReturnValue = psPQInstPri->fpPQ_Get_VDSampling_Info(pInstance ,pPQArgs->eWindow,
958                                                                                         pPQArgs->enInputSourceType,
959                                                                                         pPQArgs->eStandard,
960                                                                                         pPQArgs->pInfo);
961 
962             return UTOPIA_STATUS_SUCCESS;
963         }
964 #endif
965         case E_PQ_CMD_INTER_IOCTL:
966         {
967             pstPQ_INTER_IOCTL pPQArgs = (pstPQ_INTER_IOCTL)pArgs;
968                pPQArgs->bReturnValue = psPQInstPri->fpPQ_INTER_IOCTL(pInstance ,pPQArgs->eWindow,
969                                                                                 pPQArgs->u32Flag,
970                                                                                 pPQArgs->pBuf,
971                                                                                 pPQArgs->u32BufSize);
972 
973             return UTOPIA_STATUS_SUCCESS;
974         }
975         case E_PQ_CMD_GET_ADC_SAMPLING_INTO:
976         {
977             pstPQ_Get_ADCSampling_Info pPQArgs = (pstPQ_Get_ADCSampling_Info)pArgs;
978                pPQArgs->bReturnValue = psPQInstPri->fpPQ_Get_ADCSampling_Info(pInstance ,pPQArgs->eWindow,
979                                                                                         pPQArgs->enInputSourceType,
980                                                                                         pPQArgs->pstPQModeInfo);
981 
982             return UTOPIA_STATUS_SUCCESS;
983         }
984         case E_PQ_CMD_SET_3D_ONOFF:
985         {
986             pstPQ_Set3D_OnOff pPQArgs = (pstPQ_Set3D_OnOff)pArgs;
987                pPQArgs->bReturnValue = psPQInstPri->fpPQ_Set3D_OnOff(pInstance ,pPQArgs->bEn);
988 
989             return UTOPIA_STATUS_SUCCESS;
990         }
991         case E_PQ_CMD_GET_CAPS:
992         {
993             pstPQ_GetCaps pPQArgs = (pstPQ_GetCaps)pArgs;
994                pPQArgs->bReturnValue = psPQInstPri->fpPQ_GetCaps(pInstance ,pPQArgs->pInfo);
995 
996             return UTOPIA_STATUS_SUCCESS;
997         }
998         case E_PQ_CMD_PRINT_LOADTABLE_INFO:
999         {
1000             pstPQ_PrintLoadTableInfo pPQArgs = (pstPQ_PrintLoadTableInfo)pArgs;
1001                psPQInstPri->fpPQ_PrintLoadTableInfo(pInstance ,pPQArgs->enPQWin);
1002 
1003             return UTOPIA_STATUS_SUCCESS;
1004         }
1005         case E_PQ_CMD_SETDS_ONOFF:
1006         {
1007             pstPQ_SetDS_OnOFF pPQArgs = (pstPQ_SetDS_OnOFF)pArgs;
1008                pPQArgs->bReturnValue = psPQInstPri->fpPQ_SetDS_OnOFF(pInstance ,pPQArgs->eWindow ,pPQArgs->bEn);
1009 
1010             return UTOPIA_STATUS_SUCCESS;
1011         }
1012         case E_PQ_CMD_GET_RFBL_INFO:
1013         {
1014             pstPQ_Get_RFBL_Info pPQArgs = (pstPQ_Get_RFBL_Info)pArgs;
1015                pPQArgs->bReturnValue = psPQInstPri->fpPQ_Get_RFBL_Info(pInstance ,pPQArgs->eWindow );
1016 
1017             return UTOPIA_STATUS_SUCCESS;
1018         }
1019         case E_PQ_CMD_CHECK_HD_MODE:
1020         {
1021             pstPQ_CheckHDMode pPQArgs = (pstPQ_CheckHDMode)pArgs;
1022                pPQArgs->bReturnValue = psPQInstPri->fpPQ_CheckHDMode(pInstance ,pPQArgs->eWindow );
1023 
1024             return UTOPIA_STATUS_SUCCESS;
1025         }
1026         case E_PQ_CMD_GET_INTERLACE_SD_MODE:
1027         {
1028             pstPQ_Get_Interlace_SD_mode pPQArgs = (pstPQ_Get_Interlace_SD_mode)pArgs;
1029                pPQArgs->bReturnValue = psPQInstPri->fpPQ_Interlace_SD_mode(pInstance);
1030 
1031             return UTOPIA_STATUS_SUCCESS;
1032         }
1033         case E_PQ_CMD_SET_DUAL_VIEW_STATE:
1034         {
1035             pstPQ_SetDualViewState pPQArgs = (pstPQ_SetDualViewState)pArgs;
1036                pPQArgs->bReturnValue = psPQInstPri->fpPQ_SetDualViewState(pInstance, pPQArgs->bEnable);
1037 
1038             return UTOPIA_STATUS_SUCCESS;
1039         }
1040         case E_PQ_CMD_GET_VGASUBCASE_FORCETO_422MODE:
1041         {
1042             pstPQ_GetVGASubCaseForceTo422Mode pPQArgs = (pstPQ_GetVGASubCaseForceTo422Mode)pArgs;
1043                pPQArgs->bReturnValue = psPQInstPri->fpPQ_GetVGASubCaseForceTo422Mode(pInstance);
1044 
1045             return UTOPIA_STATUS_SUCCESS;
1046         }
1047         case E_PQ_CMD_GET_DUAL_VIEW_STATE:
1048         {
1049             pstPQ_GetDualViewState pPQArgs = (pstPQ_GetDualViewState)pArgs;
1050                pPQArgs->bReturnValue = psPQInstPri->fpPQ_GetDualViewState(pInstance);
1051 
1052             return UTOPIA_STATUS_SUCCESS;
1053         }
1054         case E_PQ_CMD_FORCE_VIDEO_INPUT_MODE:
1055         {
1056             pstPQ_ForceVideoInputMode pPQArgs = (pstPQ_ForceVideoInputMode)pArgs;
1057                pPQArgs->bReturnValue = psPQInstPri->fpPQ_ForceVideoInputMode(pInstance, pPQArgs->bEnable,pPQArgs->eWindow);
1058 
1059             return UTOPIA_STATUS_SUCCESS;
1060         }
1061         case E_PQ_CMD_IS_FORCE_VIDEO_INPUTMODE:
1062         {
1063             pstPQ_IsForceVideoInputMode pPQArgs = (pstPQ_IsForceVideoInputMode)pArgs;
1064                pPQArgs->bReturnValue = psPQInstPri->fpPQ_IsForceVideoInputMode(pInstance, pPQArgs->eWindow);
1065 
1066             return UTOPIA_STATUS_SUCCESS;
1067         }
1068         case E_PQ_CMD_SET_POINT2POINT:
1069         {
1070             pstPQ_Set_PointToPoint pPQArgs = (pstPQ_Set_PointToPoint)pArgs;
1071                pPQArgs->bReturnValue = psPQInstPri->fpPQ_Set_PointToPoint(pInstance, pPQArgs->pstXC_SetWin_Info,pPQArgs->bEnable,pPQArgs->eWindow);
1072 
1073             return UTOPIA_STATUS_SUCCESS;
1074         }
1075         case E_PQ_CMD_GET_POINT2POINT:
1076         {
1077             pstPQ_Get_PointToPoint pPQArgs = (pstPQ_Get_PointToPoint)pArgs;
1078                pPQArgs->bReturnValue = psPQInstPri->fpPQ_Get_PointToPoint(pInstance, pPQArgs->eWindow);
1079 
1080             return UTOPIA_STATUS_SUCCESS;
1081         }
1082         case E_PQ_CMD_UPDATE_MEMFORMAT:
1083         {
1084             pstPQ_Update_MemFormat pPQArgs = (pstPQ_Update_MemFormat)pArgs;
1085                pPQArgs->bReturnValue = psPQInstPri->fpPQ_Update_MemFormat(pInstance);
1086 
1087             return UTOPIA_STATUS_SUCCESS;
1088         }
1089         case E_PQ_CMD_GET_HSIZE:
1090         {
1091             pstPQ_GetHsize pPQArgs = (pstPQ_GetHsize)pArgs;
1092                pPQArgs->u16Ret = psPQInstPri->fpPQ_GetHsize(pInstance, pPQArgs->enPQWin);
1093 
1094             return UTOPIA_STATUS_SUCCESS;
1095         }
1096         case E_PQ_CMD_GET_VSIZE:
1097         {
1098             pstPQ_GetVsize pPQArgs = (pstPQ_GetVsize)pArgs;
1099                pPQArgs->u16Ret = psPQInstPri->fpPQ_GetVsize(pInstance, pPQArgs->enPQWin);
1100 
1101             return UTOPIA_STATUS_SUCCESS;
1102         }
1103         case E_PQ_CMD_IS_INTERLACE:
1104         {
1105             pstPQ_IsInterlace pPQArgs = (pstPQ_IsInterlace)pArgs;
1106                pPQArgs->bReturnValue = psPQInstPri->fpPQ_IsInterlace(pInstance, pPQArgs->enPQWin);
1107 
1108             return UTOPIA_STATUS_SUCCESS;
1109         }
1110         case E_PQ_CMD_LOW_3D_QUALITY:
1111         {
1112             pstPQ_LOW_3dQuality pPQArgs = (pstPQ_LOW_3dQuality)pArgs;
1113                pPQArgs->bReturnValue = psPQInstPri->fpPQ_LOW_3dQuality(pInstance, pPQArgs->bEnable);
1114 
1115             return UTOPIA_STATUS_SUCCESS;
1116         }
1117         case E_PQ_CMD_MWE_SET_ENHANCE_QUALITY:
1118         {
1119             pstPQ_MWE_SetEnhanceQuality pPQArgs = (pstPQ_MWE_SetEnhanceQuality)pArgs;
1120                pPQArgs->bReturnValue = psPQInstPri->fpPQ_MWE_SetEnhanceQuality(pInstance);
1121 
1122             return UTOPIA_STATUS_SUCCESS;
1123         }
1124         case E_PQ_CMD_MWE_RESTORE_ENHANCE_QUALITY:
1125         {
1126             pstPQ_MWE_RestoreEnhanceQuality pPQArgs = (pstPQ_MWE_RestoreEnhanceQuality)pArgs;
1127                pPQArgs->bReturnValue = psPQInstPri->fpPQ_MWE_RestoreEnhanceQuality(pInstance);
1128 
1129             return UTOPIA_STATUS_SUCCESS;
1130         }
1131         case E_PQ_CMD_MWE_RESTORE_OFF_QUALITY:
1132         {
1133             pstPQ_MWE_RestoreOffQuality pPQArgs = (pstPQ_MWE_RestoreOffQuality)pArgs;
1134                pPQArgs->bReturnValue = psPQInstPri->fpPQ_MWE_RestoreOffQuality(pInstance);
1135 
1136             return UTOPIA_STATUS_SUCCESS;
1137         }
1138         case E_PQ_CMD_MWE_SET_OFF_QUALITY:
1139         {
1140             pstPQ_MWE_SetOffQuality pPQArgs = (pstPQ_MWE_SetOffQuality)pArgs;
1141                pPQArgs->bReturnValue = psPQInstPri->fpPQ_MWE_SetOffQuality(pInstance);
1142 
1143             return UTOPIA_STATUS_SUCCESS;
1144         }
1145         case E_PQ_CMD_MWE_CLONE_WINDOW:
1146         {
1147             pstPQ_MWE_CloneWindow pPQArgs = (pstPQ_MWE_CloneWindow)pArgs;
1148                psPQInstPri->fpPQ_MWE_CloneWindow(pInstance,pPQArgs->eWindow);
1149 
1150             return UTOPIA_STATUS_SUCCESS;
1151         }
1152         case E_PQ_CMD_3D_SETTING_FOR_LBL:
1153         {
1154             pstPQ_3D_SettingForLBL pPQArgs = (pstPQ_3D_SettingForLBL)pArgs;
1155                pPQArgs->bReturnValue = psPQInstPri->fpPQ_3D_SettingForLBL(pInstance,pPQArgs->eWindow);
1156 
1157             return UTOPIA_STATUS_SUCCESS;
1158         }
1159         case E_PQ_CMD_3D_CLONE_WINDOW:
1160         {
1161             pstPQ_3D_CloneWindow pPQArgs = (pstPQ_3D_CloneWindow)pArgs;
1162                psPQInstPri->fpPQ_3D_CloneWindow(pInstance,pPQArgs->enPQ3DType,pPQArgs->eWindow);
1163 
1164             return UTOPIA_STATUS_SUCCESS;
1165         }
1166         case E_PQ_CMD_GET_SENSIOMODE:
1167         {
1168             pstPQ_Get_SensioMode pPQArgs = (pstPQ_Get_SensioMode)pArgs;
1169                pPQArgs->bReturnValue = psPQInstPri->fpPQ_Get_SensioMode(pInstance);
1170 
1171             return UTOPIA_STATUS_SUCCESS;
1172         }
1173         case E_PQ_CMD_SET_SENSIOMODE:
1174         {
1175             pstPQ_Set_SensioMode pPQArgs = (pstPQ_Set_SensioMode)pArgs;
1176                psPQInstPri->fpPQ_Set_SensioMode(pInstance,pPQArgs->bEnable);
1177 
1178             return UTOPIA_STATUS_SUCCESS;
1179         }
1180         case E_PQ_CMD_SET_DIPF:
1181         {
1182                psPQInstPri->fpPQ_Set_DIPF(pInstance);
1183 
1184             return UTOPIA_STATUS_SUCCESS;
1185         }
1186         case E_PQ_CMD_SET_SELECT_CSC:
1187         {
1188             pstPQ_SetSelectCSC pPQArgs = (pstPQ_SetSelectCSC)pArgs;
1189                psPQInstPri->fpPQ_SetSelectCSC(pInstance,pPQArgs->u16selection,pPQArgs->eWindow);
1190 
1191             return UTOPIA_STATUS_SUCCESS;
1192         }
1193         case E_PQ_CMD_GET_R2YEQ_SELECT:
1194         {
1195             pstPQ_GetR2YEqSelect pPQArgs = (pstPQ_GetR2YEqSelect)pArgs;
1196                pPQArgs->bReturnValue = psPQInstPri->fpPQ_GetR2YEqSelect(pInstance,pPQArgs->eWindow);
1197 
1198             return UTOPIA_STATUS_SUCCESS;
1199         }
1200         case E_PQ_CMD_GET_MEMFMT_IN_GENERAL:
1201         {
1202             pstPQ_GetMemFmtInGeneral pPQArgs = (pstPQ_GetMemFmtInGeneral)pArgs;
1203                pPQArgs->bReturnValue = psPQInstPri->fpPQ_GetMemFmtInGeneral(pInstance,pPQArgs->eWindow,
1204                                                                                     pPQArgs->bMemFmt422,
1205                                                                                     pPQArgs->pu16TabIdx_MemFormat,
1206                                                                                     pPQArgs->pu16TabIdx_444To422,
1207                                                                                     pPQArgs->pu16TabIdx_422To444);
1208 
1209             return UTOPIA_STATUS_SUCCESS;
1210         }
1211         case E_PQ_CMD_GET_MADI_FOR_RFBL:
1212         {
1213             pstPQ_GetMADiForRFBL pPQArgs = (pstPQ_GetMADiForRFBL)pArgs;
1214                pPQArgs->bReturnValue = psPQInstPri->fpPQ_GetMADiForRFBL(pInstance,pPQArgs->eWindow,
1215                                                                                     pPQArgs->bFBL,
1216                                                                                     pPQArgs->pu16TabIdx_MADi_Motion,
1217                                                                                     pPQArgs->pu16TabIdx_MADi);
1218 
1219             return UTOPIA_STATUS_SUCCESS;
1220         }
1221         case E_PQ_CMD_PATCH2RTO4R_FOR_FIELDPACKINGMODE:
1222         {
1223             pstPQ_Patch2Rto4RForFieldPackingMode pPQArgs = (pstPQ_Patch2Rto4RForFieldPackingMode)pArgs;
1224                pPQArgs->bReturnValue = psPQInstPri->fpPQ_Patch2Rto4RForFieldPackingMode(pInstance,pPQArgs->eWindow,pPQArgs->u16TabIdx_MADi);
1225 
1226             return UTOPIA_STATUS_SUCCESS;
1227         }
1228         case E_PQ_CMD_GET_BPPINFO_FROM_MADI:
1229         {
1230             pstPQ_GetBPPInfoFromMADi pPQArgs = (pstPQ_GetBPPInfoFromMADi)pArgs;
1231                pPQArgs->bReturnValue = psPQInstPri->fpPQ_GetBPPInfoFromMADi(pInstance,pPQArgs->eWindow,
1232                                                                                         pPQArgs->bMemFmt422,
1233                                                                                         pPQArgs->u16TabIdx_MADi,
1234                                                                                         pPQArgs->u16TabIdx_MemFormat,
1235                                                                                         pPQArgs->pu8BitsPerPixel,
1236                                                                                         pPQArgs->peDeInterlaceMode,
1237                                                                                         pPQArgs->pu8FrameCount);
1238 
1239             return UTOPIA_STATUS_SUCCESS;
1240         }
1241         case E_PQ_CMD_CHANGE_MEMCONFIG_FOR3D:
1242         {
1243             pstPQ_ChangeMemConfigFor3D pPQArgs = (pstPQ_ChangeMemConfigFor3D)pArgs;
1244                pPQArgs->bReturnValue = psPQInstPri->fpPQ_ChangeMemConfigFor3D(pInstance,pPQArgs->eWindow,
1245                                                                                         pPQArgs->bMemFmt422,
1246                                                                                         pPQArgs->pu16TabIdx_MemFormat,
1247                                                                                         pPQArgs->pu16TabIdx_444To422,
1248                                                                                         pPQArgs->pu16TabIdx_422To444,
1249                                                                                         pPQArgs->pu8BitsPerPixel,
1250                                                                                         pPQArgs->pu16TabIdx_MADi_Motion,
1251                                                                                         pPQArgs->pu16TabIdx_MADi);
1252 
1253             return UTOPIA_STATUS_SUCCESS;
1254         }
1255         case E_PQ_CMD_FORCE_BPP_FOR_DYNAMIC_MEMFMT:
1256         {
1257             pstPQ_ForceBPPForDynamicMemFmt pPQArgs = (pstPQ_ForceBPPForDynamicMemFmt)pArgs;
1258                pPQArgs->bReturnValue = psPQInstPri->fpPQ_ForceBPPForDynamicMemFmt(pInstance,pPQArgs->eWindow,pPQArgs->bMemFmt422,pPQArgs->pu8BitsPerPixel);
1259 
1260             return UTOPIA_STATUS_SUCCESS;
1261         }
1262         case E_PQ_CMD_SUGGEST_FRAMENUM:
1263         {
1264             pstPQ_SuggestFrameNum pPQArgs = (pstPQ_SuggestFrameNum)pArgs;
1265                pPQArgs->bReturnValue = psPQInstPri->fpPQ_SuggestFrameNum(pInstance,pPQArgs->eWindow,pPQArgs->u16TabIdx_MADi,pPQArgs->u8FrameCount);
1266 
1267             return UTOPIA_STATUS_SUCCESS;
1268         }
1269         case E_PQ_CMD_SET_GAMEMODE:
1270         {
1271             pstPQ_SetGameMode pPQArgs = (pstPQ_SetGameMode)pArgs;
1272                pPQArgs->bReturnValue = psPQInstPri->fpPQ_SetGameMode(pInstance,pPQArgs->eWindow,pPQArgs->bEnable);
1273 
1274             return UTOPIA_STATUS_SUCCESS;
1275         }
1276         case E_PQ_CMD_GET_GAMEMODE_STATUS:
1277         {
1278             pstPQ_GetGameMode_Status pPQArgs = (pstPQ_GetGameMode_Status)pArgs;
1279                pPQArgs->bReturnValue = psPQInstPri->fpPQ_GetGameMode_Status(pInstance,pPQArgs->eWindow);
1280 
1281             return UTOPIA_STATUS_SUCCESS;
1282         }
1283         case E_PQ_CMD_SET_BYPASS_MODE:
1284         {
1285             pstPQ_SetBypassMode pPQArgs = (pstPQ_SetBypassMode)pArgs;
1286                pPQArgs->bReturnValue = psPQInstPri->fpPQ_SetBypassMode(pInstance,pPQArgs->eWindow,pPQArgs->bEnable);
1287 
1288             return UTOPIA_STATUS_SUCCESS;
1289         }
1290         case E_PQ_CMD_GET_BYPASS_MODE_STATUS:
1291         {
1292             pstPQ_GetBypassModeStatus pPQArgs = (pstPQ_GetBypassModeStatus)pArgs;
1293                pPQArgs->bReturnValue = psPQInstPri->fpPQ_GetBypassModeStatus(pInstance,pPQArgs->eWindow);
1294 
1295             return UTOPIA_STATUS_SUCCESS;
1296         }
1297         case E_PQ_CMD_GET_VERSION:
1298         {
1299             pstPQ_GetVersion pPQArgs = (pstPQ_GetVersion)pArgs;
1300                pPQArgs->u8Ret = psPQInstPri->fpPQ_GetVersion(pInstance,pPQArgs->eWindow);
1301 
1302             return UTOPIA_STATUS_SUCCESS;
1303         }
1304         case E_PQ_CMD_CUS_GET_VERSION:
1305         {
1306             pstPQ_Cus_GetVersion pPQArgs = (pstPQ_Cus_GetVersion)pArgs;
1307                pPQArgs->u8Ret = psPQInstPri->fpPQ_Cus_GetVersion(pInstance,pPQArgs->eWindow);
1308 
1309             return UTOPIA_STATUS_SUCCESS;
1310         }
1311         case E_PQ_CMD_SET_GRULE_STATUS:
1312         {
1313             pstPQ_SetGRuleStatus pPQArgs = (pstPQ_SetGRuleStatus)pArgs;
1314                pPQArgs->bReturnValue = psPQInstPri->fpPQ_SetGRuleStatus(pInstance,pPQArgs->eWindow,pPQArgs->u16GruleType,pPQArgs->u16GruleStatus);
1315 
1316             return UTOPIA_STATUS_SUCCESS;
1317         }
1318         case E_PQ_CMD_GET_GRULE_LV1NUM:
1319         {
1320             pstPQ_GetGRule_LvlNum pPQArgs = (pstPQ_GetGRule_LvlNum)pArgs;
1321                pPQArgs->u16Ret = psPQInstPri->fpPQ_GetGRule_LvlNum(pInstance,pPQArgs->eWindow,pPQArgs->u16GRuleType);
1322 
1323             return UTOPIA_STATUS_SUCCESS;
1324         }
1325         case E_PQ_CMD_GET_GRULE_GRULENUM:
1326         {
1327             pstPQ_GetGRule_GRuleNum pPQArgs = (pstPQ_GetGRule_GRuleNum)pArgs;
1328                pPQArgs->u16Ret = psPQInstPri->fpPQ_GetGRule_GRuleNum(pInstance,pPQArgs->eWindow);
1329 
1330             return UTOPIA_STATUS_SUCCESS;
1331         }
1332         case E_PQ_CMD_GET_GRULE_LEVELINDEX:
1333         {
1334             pstPQ_GetGRule_LevelIndex pPQArgs = (pstPQ_GetGRule_LevelIndex)pArgs;
1335                pPQArgs->u16Ret = psPQInstPri->fpPQ_GetGRule_LevelIndex(pInstance,pPQArgs->eWindow,pPQArgs->u16GRuleType,pPQArgs->u16GRuleLevelIndex);
1336 
1337             return UTOPIA_STATUS_SUCCESS;
1338         }
1339         case E_PQ_CMD_GET_GRULE_IPINDEX:
1340         {
1341             pstPQ_GetGRule_IPIndex pPQArgs = (pstPQ_GetGRule_IPIndex)pArgs;
1342                pPQArgs->u16Ret = psPQInstPri->fpPQ_GetGRule_IPIndex(pInstance,pPQArgs->eWindow,pPQArgs->u16GRuleType,pPQArgs->u16GRuleIPIndex);
1343 
1344             return UTOPIA_STATUS_SUCCESS;
1345         }
1346         case E_PQ_CMD_GET_GRULE_TABLEINDEX:
1347         {
1348             pstPQ_GetGRule_TableIndex pPQArgs = (pstPQ_GetGRule_TableIndex)pArgs;
1349                pPQArgs->u16Ret = psPQInstPri->fpPQ_GetGRule_TableIndex(pInstance,pPQArgs->eWindow,
1350                                                                                 pPQArgs->u16GRuleType,
1351                                                                                 pPQArgs->u16PQ_NRIdx,
1352                                                                                 pPQArgs->u16GRuleIPIndex);
1353 
1354             return UTOPIA_STATUS_SUCCESS;
1355         }
1356         case E_PQ_CMD_GET_CUSTOMERGRULE_IPINDEX:
1357         {
1358             pstPQ_GetCustomerGRule_IPIndex pPQArgs = (pstPQ_GetCustomerGRule_IPIndex)pArgs;
1359                pPQArgs->u16Ret = psPQInstPri->fpPQ_GetCustomerGRule_IPIndex(pInstance,pPQArgs->eWindow,
1360                                                                                 pPQArgs->u16GRuleType,
1361                                                                                 pPQArgs->u16GRuleIPIndex);
1362 
1363             return UTOPIA_STATUS_SUCCESS;
1364         }
1365         case E_PQ_CMD_GET_CUSTOMERGRULE_TABLEINDEX:
1366         {
1367             pstPQ_GetGRule_CustomerTableIndex pPQArgs = (pstPQ_GetGRule_CustomerTableIndex)pArgs;
1368                pPQArgs->u16Ret = psPQInstPri->fpPQ_GetGRule_CustomerTableIndex(pInstance,pPQArgs->eWindow,
1369                                                                                 pPQArgs->u16GRuleType,
1370                                                                                 pPQArgs->u16PQ_NRIdx,
1371                                                                                 pPQArgs->u16GRuleIPIndex);
1372 
1373             return UTOPIA_STATUS_SUCCESS;
1374         }
1375         case E_PQ_CMD_SET_XVYCC_MATRIXCOEFFICIENT:
1376         {
1377             pstPQ_Set_xvYCC_MatrixCoefficient pPQArgs = (pstPQ_Set_xvYCC_MatrixCoefficient)pArgs;
1378                pPQArgs->bReturnValue = psPQInstPri->fpPQ_Set_xvYCC_MatrixCoefficient(pInstance,pPQArgs->u64Red_x,
1379                                                                                                 pPQArgs->u64Red_y,
1380                                                                                                 pPQArgs->u64Green_x,
1381                                                                                                 pPQArgs->u64Green_y,
1382                                                                                                 pPQArgs->u64Blue_x,
1383                                                                                                 pPQArgs->u64Blue_y,
1384                                                                                                 pPQArgs->u64White_x,
1385                                                                                                 pPQArgs->u64White_y,
1386                                                                                                 pPQArgs->eWindow);
1387 
1388             return UTOPIA_STATUS_SUCCESS;
1389         }
1390         case E_PQ_CMD_SET_XVYCC_MATRIXENABLE:
1391         {
1392             pstPQ_Set_xvYCC_MatrixEnable pPQArgs = (pstPQ_Set_xvYCC_MatrixEnable)pArgs;
1393                pPQArgs->bReturnValue = psPQInstPri->fpPQ_Set_xvYCC_MatrixEnable(pInstance,pPQArgs->bEnable,pPQArgs->eWindow);
1394 
1395             return UTOPIA_STATUS_SUCCESS;
1396         }
1397         case E_PQ_CMD_GET_DNR_WHOLE_REG:
1398         {
1399             pstPQ_GetDnrWholeReg pPQArgs = (pstPQ_GetDnrWholeReg)pArgs;
1400             pPQArgs->u16Ret = psPQInstPri->fpPQ_Get_DNR_Whole_reg(pInstance, pPQArgs->eWindow);
1401             return UTOPIA_STATUS_SUCCESS;
1402         }
1403         case E_PQ_CMD_UP_LAYER_SET_CONFIG:
1404         {
1405             pstPQ_Up_Layer_Set_Config pPQArgs = (pstPQ_Up_Layer_Set_Config)pArgs;
1406                pPQArgs->bReturnValue = psPQInstPri->fpPQ_Up_Layer_Set_Config(pInstance,pPQArgs->uplayerSetting,pPQArgs->group);
1407 
1408             return UTOPIA_STATUS_SUCCESS;
1409         }
1410         case E_PQ_CMD_GET_QMAP_EXECUTOR:
1411         {
1412             pstPQ_GetQmapExecutor pPQArgs = (pstPQ_GetQmapExecutor)pArgs;
1413                pPQArgs->bReturnValue = psPQInstPri->fpPQ_GetQmapExecutor(pInstance,pPQArgs->eFunctionType);
1414 
1415             return UTOPIA_STATUS_SUCCESS;
1416         }
1417         case E_PQ_CMD_SET_PHOTO_YUV_STD:
1418         {
1419             pstPQ_SetPhotoYUVStandard pPQArgs = (pstPQ_SetPhotoYUVStandard)pArgs;
1420                psPQInstPri->fpPQ_SetPhotoYUVStandard(pInstance,pPQArgs->eWindow, pPQArgs->enStd);
1421 
1422             return UTOPIA_STATUS_SUCCESS;
1423         }
1424         case E_PQ_CMD_EX_GET_VERSION:
1425         {
1426             pstPQ_Ex_GetVersion pPQArgs = (pstPQ_Ex_GetVersion)pArgs;
1427                pPQArgs->bReturnValue = psPQInstPri->fpPQ_Ex_GetVersion(pInstance,pPQArgs->eWindow);
1428 
1429             return UTOPIA_STATUS_SUCCESS;
1430         }
1431         case E_PQ_CMD_GET_ADAPTVIE_VERSION:
1432         {
1433             pstPQ_GetAdaptiveVersion pPQArgs = (pstPQ_GetAdaptiveVersion)pArgs;
1434                pPQArgs->bReturnValue = psPQInstPri->fpPQ_GetAdaptiveVersion(pInstance,pPQArgs->eWindow);
1435 
1436             return UTOPIA_STATUS_SUCCESS;
1437         }
1438         case E_PQ_CMD_LOAD_UFSC_SETTING:
1439         {
1440             pstPQ_LoadUFSCSettings pPQArgs = (pstPQ_LoadUFSCSettings)pArgs;
1441                psPQInstPri->fpPQ_LoadUFSCSettings(pInstance,pPQArgs->eWindow);
1442 
1443             return UTOPIA_STATUS_SUCCESS;
1444         }
1445 #if (ENABLE_PQ_BIN_CF)
1446         case E_PQ_CMD_LOAD_CF_SETTING:
1447         {
1448             pstPQ_LoadCFSettings pPQArgs = (pstPQ_LoadCFSettings)pArgs;
1449             psPQInstPri->fpPQ_LoadCFSettings(pInstance,pPQArgs->eWindow);
1450 
1451             return UTOPIA_STATUS_SUCCESS;
1452         }
1453 #endif
1454               case E_PQ_CMD_LOAD_TABLE_EX:
1455               {
1456                   pstPQ_LoadTable_Ex pPQArgs = (pstPQ_LoadTable_Ex)pArgs;
1457                      psPQInstPri->fpPQ_LoadTable_Ex(pInstance,pPQArgs->eWindow,pPQArgs->u16TabIdx,pPQArgs->u16PQIPIdx,pPQArgs->ePQEngineType);
1458 
1459                   return UTOPIA_STATUS_SUCCESS;
1460               }
1461               case E_PQ_CMD_GET_TABLE_INDEX_EX:
1462               {
1463                   pstPQ_GetTableIndex_Ex pPQArgs = (pstPQ_GetTableIndex_Ex)pArgs;
1464                      pPQArgs->u16Ret = psPQInstPri->fpPQ_GetTableIndex_Ex(pInstance,pPQArgs->eWindow,pPQArgs->u16IPIdx,pPQArgs->ePQEngineType);
1465 
1466                   return UTOPIA_STATUS_SUCCESS;
1467               }
1468               case E_PQ_CMD_DEMO_CLONE_WINDOW:
1469               {
1470                   pstPQ_Demo_CloneWindow pPQArgs = (pstPQ_Demo_CloneWindow)pArgs;
1471                      pPQArgs->bRet = psPQInstPri->fpPQ_Demo_CloneWindow(pInstance, pPQArgs->eWindow,pPQArgs->u8Mode);
1472 
1473                   return UTOPIA_STATUS_SUCCESS;
1474               }
1475               case E_PQ_CMD_GET_GRULE_LV1NUM_EX:
1476               {
1477                   pstPQ_GetGRule_LvlNum_Ex pPQArgs = (pstPQ_GetGRule_LvlNum_Ex)pArgs;
1478                      pPQArgs->u16Ret = psPQInstPri->fpPQ_GetGRule_LvlNum_Ex(pInstance,pPQArgs->eWindow,pPQArgs->u16GRuleType,pPQArgs->ePQEngineType);
1479 
1480                   return UTOPIA_STATUS_SUCCESS;
1481               }
1482               case E_PQ_CMD_GET_GRULE_LEVELINDEX_EX:
1483               {
1484                   pstPQ_GetGRule_LevelIndex_Ex pPQArgs = (pstPQ_GetGRule_LevelIndex_Ex)pArgs;
1485                      pPQArgs->u16Ret = psPQInstPri->fpPQ_GetGRule_LevelIndex_Ex(pInstance,pPQArgs->eWindow,pPQArgs->u16GRuleType,pPQArgs->u16GRuleLevelIndex, pPQArgs->ePQEngineType);
1486 
1487                   return UTOPIA_STATUS_SUCCESS;
1488               }
1489               case E_PQ_CMD_GET_GRULE_IPINDEX_EX:
1490               {
1491                   pstPQ_GetGRule_IPIndex_Ex pPQArgs = (pstPQ_GetGRule_IPIndex_Ex)pArgs;
1492                      pPQArgs->u16Ret = psPQInstPri->fpPQ_GetGRule_IPIndex_Ex(pInstance,pPQArgs->eWindow,pPQArgs->u16GRuleType,pPQArgs->u16GRuleIPIndex, pPQArgs->ePQEngineType);
1493 
1494                   return UTOPIA_STATUS_SUCCESS;
1495               }
1496               case E_PQ_CMD_GET_GRULE_TABLEINDEX_EX:
1497               {
1498                   pstPQ_GetGRule_TableIndex_Ex pPQArgs = (pstPQ_GetGRule_TableIndex_Ex)pArgs;
1499                      pPQArgs->u16Ret = psPQInstPri->fpPQ_GetGRule_TableIndex_Ex(pInstance,pPQArgs->eWindow,pPQArgs->u16GRuleType,pPQArgs->u16PQ_NRIdx,pPQArgs->u16GRuleIPIndex, pPQArgs->ePQEngineType);
1500 
1501                   return UTOPIA_STATUS_SUCCESS;
1502               }
1503               case E_PQ_CMD_ENABLE_SCALER_GAMMA:
1504               {
1505                   pstPQ_EnableScalerGamma pPQArgs = (pstPQ_EnableScalerGamma)pArgs;
1506                      psPQInstPri->fpPQ_EnableScalerGamma(pInstance, pPQArgs->eWindow,pPQArgs->bEnable);
1507 
1508                   return UTOPIA_STATUS_SUCCESS;
1509               }
1510               case E_PQ_CMD_SET_GAMMA_TBl:
1511               {
1512                   pstPQ_SetGammaTbl pPQArgs = (pstPQ_SetGammaTbl)pArgs;
1513                      psPQInstPri->fpPQ_SetGammaTbl(pInstance, pPQArgs->enGammType,pPQArgs->pu8GammTable,pPQArgs->enGammaMappingMode);
1514 
1515                   return UTOPIA_STATUS_SUCCESS;
1516               }
1517               case E_PQ_CMD_SET_PQBYPASS:
1518               {
1519                   pstPQ_Set_PqBypass pPQArgs = (pstPQ_Set_PqBypass)pArgs;
1520                     pPQArgs->bReturnValue = psPQInstPri->fpPQ_Set_PqBypass(pInstance, pPQArgs->pstXC_SetWin_Info,pPQArgs->bEnable,pPQArgs->eWindow);
1521 
1522                     return UTOPIA_STATUS_SUCCESS;
1523               }
1524               case E_PQ_CMD_GET_PQBYPASS:
1525               {
1526                   pstPQ_Get_PqBypass pPQArgs = (pstPQ_Get_PqBypass)pArgs;
1527                     pPQArgs->bReturnValue = psPQInstPri->fpPQ_Get_PqBypass(pInstance, pPQArgs->eWindow);
1528 
1529                     return UTOPIA_STATUS_SUCCESS;
1530               }
1531               case E_PQ_CMD_SET_PQBIN_PATH:
1532               {
1533                   pstPQ_SetPQBinPath pPQArgs = (pstPQ_SetPQBinPath)pArgs;
1534                    psPQInstPri->fpPQ_Set_PqBin_Path(pInstance, pPQArgs->ePqBinPath, pPQArgs->u8size, pPQArgs->b_PQBinFilePath);
1535 
1536                     return UTOPIA_STATUS_SUCCESS;
1537               }
1538 //drvPQ_cus.c
1539         case E_PQ_CMD_LOAD_FILMMODE_TABLE:
1540         {
1541             pstPQ_LoadFilmModeTable pPQArgs = (pstPQ_LoadFilmModeTable)pArgs;
1542                psPQInstPri->fpPQ_LoadFilmModeTable(pInstance,pPQArgs->eWindow,pPQArgs->enFilmModeType);
1543 
1544             return UTOPIA_STATUS_SUCCESS;
1545         }
1546         case E_PQ_CMD_LOAD_DYNAMIC_CONTRAST_TABLE:
1547         {
1548             pstPQ_LoadDynamicContrastTable pPQArgs = (pstPQ_LoadDynamicContrastTable)pArgs;
1549                psPQInstPri->fpPQ_LoadDynamicContrastTable(pInstance,pPQArgs->eWindow,pPQArgs->enDynamicContrastType);
1550 
1551             return UTOPIA_STATUS_SUCCESS;
1552         }
1553         case E_PQ_CMD_LOAD_NR_TABLE:
1554         {
1555             pstPQ_LoadNRTable pPQArgs = (pstPQ_LoadNRTable)pArgs;
1556                psPQInstPri->fpPQ_LoadNRTable(pInstance,pPQArgs->eWindow,pPQArgs->en3DNRType);
1557 
1558             return UTOPIA_STATUS_SUCCESS;
1559         }
1560         case E_PQ_CMD_LOAD_MPEG_NR_TABLE:
1561         {
1562             pstPQ_LoadMPEGNRTable pPQArgs = (pstPQ_LoadMPEGNRTable)pArgs;
1563                psPQInstPri->fpPQ_LoadMPEGNRTable(pInstance,pPQArgs->eWindow,pPQArgs->enMPEGNRType);
1564 
1565             return UTOPIA_STATUS_SUCCESS;
1566         }
1567         case E_PQ_CMD_LOAD_ULTRACLEAR_TABLE:
1568         {
1569             pstPQ_Load_ULTRACLEAR_Table pPQArgs = (pstPQ_Load_ULTRACLEAR_Table)pArgs;
1570                psPQInstPri->fpPQ_Load_ULTRACLEAR_Table(pInstance,pPQArgs->eWindow,pPQArgs->enCtrlType);
1571 
1572             return UTOPIA_STATUS_SUCCESS;
1573         }
1574         case E_PQ_CMD_LOAD_XVYCC_TABLE:
1575         {
1576             pstPQ_Load_XVYCC_Table pPQArgs = (pstPQ_Load_XVYCC_Table)pArgs;
1577                psPQInstPri->fpPQ_Load_XVYCC_Table(pInstance,pPQArgs->eWindow,pPQArgs->enXvyccType);
1578 
1579             return UTOPIA_STATUS_SUCCESS;
1580         }
1581         case E_PQ_CMD_LOAD_HDR_TABLE:
1582         {
1583             pstPQ_Load_HDR_Table pPQArgs = (pstPQ_Load_HDR_Table)pArgs;
1584                psPQInstPri->fpPQ_Load_HDR_Table(pInstance,pPQArgs->eWindow,pPQArgs->enHdrMode);
1585 
1586             return UTOPIA_STATUS_SUCCESS;
1587         }
1588         case E_PQ_CMD_GRULE_GET_SUPPORT_STATUS:
1589         {
1590             pstPQ_GRULE_Get_Support_Status pPQArgs = (pstPQ_GRULE_Get_Support_Status)pArgs;
1591                pPQArgs->bReturnValue = psPQInstPri->fpPQ_GRULE_Get_Support_Status(pInstance,pPQArgs->enType);
1592 
1593             return UTOPIA_STATUS_SUCCESS;
1594         }
1595         case E_PQ_CMD_SET_MEMFORMAT:
1596         {
1597             pstPQ_SetMemFormat pPQArgs = (pstPQ_SetMemFormat)pArgs;
1598                pPQArgs->bReturnValue = psPQInstPri->fpPQ_SetMemFormat(pInstance,pPQArgs->eWindow,
1599                                                                                 pPQArgs->bMemFmt422,
1600                                                                                 pPQArgs->bFBL,
1601                                                                                 pPQArgs->pu8BitsPerPixel);
1602 
1603             return UTOPIA_STATUS_SUCCESS;
1604         }
1605         case E_PQ_CMD_REDUCEBW_ForOSD:
1606         {
1607             pstPQ_ReduceBW_ForOSD pPQArgs = (pstPQ_ReduceBW_ForOSD)pArgs;
1608                psPQInstPri->fpPQ_ReduceBW_ForOSD(pInstance,pPQArgs->eWindow, pPQArgs->bOSD_On);
1609 
1610             return UTOPIA_STATUS_SUCCESS;
1611         }
1612         case E_PQ_CMD_LOAD_PTP_TABLE:
1613         {
1614             pstPQ_LoadPTPTable pPQArgs = (pstPQ_LoadPTPTable)pArgs;
1615                psPQInstPri->fpPQ_LoadPTPTable(pInstance,pPQArgs->eWindow, pPQArgs->enPTP_Type);
1616 
1617             return UTOPIA_STATUS_SUCCESS;
1618         }
1619         case E_PQ_CMD_INIT_DISPLAY_TYPE:
1620         {
1621             pstPQ_Init_DisplayType pPQArgs = (pstPQ_Init_DisplayType)pArgs;
1622                psPQInstPri->fpPQ_Init_DisplayType(pInstance,pPQArgs->u16DisplayWidth, pPQArgs->enDisplaType);
1623 
1624             return UTOPIA_STATUS_SUCCESS;
1625         }
1626         case E_PQ_CMD_SET_DISPLAY_TYPE:
1627         {
1628             pstPQ_Set_DisplayType pPQArgs = (pstPQ_Set_DisplayType)pArgs;
1629                psPQInstPri->fpPQ_Set_DisplayType(pInstance,pPQArgs->u16DisplayWidth, pPQArgs->enDisplaType);
1630 
1631             return UTOPIA_STATUS_SUCCESS;
1632         }
1633         case E_PQ_CMD_GET_MADI_FROM_OSDBW_GRULE:
1634         {
1635             pstPQ_GetMADiFromOSDBWGrule pPQArgs = (pstPQ_GetMADiFromOSDBWGrule)pArgs;
1636                pPQArgs->bReturnValue = psPQInstPri->fpPQ_GetMADiFromOSDBWGrule(pInstance,pPQArgs->eWindow,
1637                                                                                         pPQArgs->pu16TabIdx_MADi,
1638                                                                                         pPQArgs->pu16TabIdx_MADi_Motion);
1639 
1640             return UTOPIA_STATUS_SUCCESS;
1641         }
1642         case E_PQ_CMD_GET_MADI_IN_GENERAL:
1643         {
1644             pstPQ_GetMADiInGeneral pPQArgs = (pstPQ_GetMADiInGeneral)pArgs;
1645                pPQArgs->bReturnValue = psPQInstPri->fpPQ_GetMADiInGeneral(pInstance,pPQArgs->eWindow,
1646                                                                                         pPQArgs->pu16TabIdx_MADi,
1647                                                                                         pPQArgs->pu16TabIdx_MADi_Motion);
1648 
1649             return UTOPIA_STATUS_SUCCESS;
1650         }
1651         case E_PQ_CMD_CHECK_POINT2POINT_CONDITION:
1652         {
1653             pstPQ_Check_PointToPoint_Condition pPQArgs = (pstPQ_Check_PointToPoint_Condition)pArgs;
1654                pPQArgs->bReturnValue = psPQInstPri->fpPQ_Check_PointToPoint_Condition(pInstance,pPQArgs->pstXC_SetWin_Info, pPQArgs->eWindow);
1655 
1656             return UTOPIA_STATUS_SUCCESS;
1657         }
1658         case E_PQ_CMD_SET_POSTCCS_ONOFF:
1659         {
1660             pstPQ_SetPostCCSOnOff pPQArgs = (pstPQ_SetPostCCSOnOff)pArgs;
1661                pPQArgs->bReturnValue = psPQInstPri->fpPQ_SetPostCCSOnOff(pInstance, pPQArgs->eWindow ,pPQArgs->bEnable);
1662 
1663             return UTOPIA_STATUS_SUCCESS;
1664         }
1665         case E_PQ_CMD_ADAPTIVE_TUNING:
1666         {
1667                psPQInstPri->fpPQ_AdaptiveTuning(pInstance);
1668 
1669             return UTOPIA_STATUS_SUCCESS;
1670         }
1671         case E_PQ_CMD_FILMMODE_ANYCANDENCE_ENABLE:
1672         {
1673             pstPQ_FilmMode_AnyCandence_Enable pPQArgs = (pstPQ_FilmMode_AnyCandence_Enable)pArgs;
1674                psPQInstPri->fpPQ_FilmMode_AnyCandence_Enable(pInstance,pPQArgs->bEnable);
1675 
1676             return UTOPIA_STATUS_SUCCESS;
1677         }
1678         case E_PQ_CMD_SETH264_ONOFF:
1679         {
1680             pstPQ_SetH264_OnOff pPQArgs = (pstPQ_SetH264_OnOff)pArgs;
1681                pPQArgs->bReturnValue = psPQInstPri->fpPQ_SetH264_OnOff(pInstance, pPQArgs->bEn);
1682 
1683             return UTOPIA_STATUS_SUCCESS;
1684         }
1685         case E_PQ_CMD_SETG3D_ONOFF:
1686         {
1687             pstPQ_SetG3D_OnOff pPQArgs = (pstPQ_SetG3D_OnOff)pArgs;
1688                pPQArgs->bReturnValue = psPQInstPri->fpPQ_SetG3D_OnOff(pInstance, pPQArgs->bEn);
1689 
1690             return UTOPIA_STATUS_SUCCESS;
1691         }
1692         case E_PQ_CMD_SETMVC4KX1K_ONOFF:
1693         {
1694             pstPQ_SetMVC4kx1k_OnOff pPQArgs = (pstPQ_SetMVC4kx1k_OnOff)pArgs;
1695                pPQArgs->bReturnValue = psPQInstPri->fpPQ_SetMVC4kx1k_OnOff(pInstance, pPQArgs->bEn);
1696 
1697             return UTOPIA_STATUS_SUCCESS;
1698         }
1699         case E_PQ_CMD_SET_NETWORKMM_ONOFF:
1700         {
1701             pstPQ_SetNetworkMM_OnOff pPQArgs = (pstPQ_SetNetworkMM_OnOff)pArgs;
1702                pPQArgs->bReturnValue = psPQInstPri->fpPQ_SetNetworkMM_OnOff(pInstance, pPQArgs->bEn);
1703 
1704             return UTOPIA_STATUS_SUCCESS;
1705         }
1706         case E_PQ_CMD_SETMM_ONOFF:
1707         {
1708             pstPQ_SetMM_OnOff pPQArgs = (pstPQ_SetMM_OnOff)pArgs;
1709                pPQArgs->bReturnValue = psPQInstPri->fpPQ_SetMM_OnOff(pInstance, pPQArgs->bEn);
1710 
1711             return UTOPIA_STATUS_SUCCESS;
1712         }
1713         case E_PQ_CMD_SET_RMVB_ONOFF:
1714         {
1715             pstPQ_SetRmvb_OnOff pPQArgs = (pstPQ_SetRmvb_OnOff)pArgs;
1716                pPQArgs->bReturnValue = psPQInstPri->fpPQ_SetRmvb_OnOff(pInstance, pPQArgs->bEn ,pPQArgs->ePQWindow);
1717 
1718             return UTOPIA_STATUS_SUCCESS;
1719         }
1720         case E_PQ_CMD_SET_VIPBYPASS_ONOFF:
1721         {
1722             pstPQ_SetVIPBypass_OnOff pPQArgs = (pstPQ_SetVIPBypass_OnOff)pArgs;
1723                pPQArgs->bReturnValue = psPQInstPri->fpPQ_SetVIPBypass_OnOff(pInstance, pPQArgs->bEnable ,pPQArgs->eWindow);
1724 
1725             return UTOPIA_STATUS_SUCCESS;
1726         }
1727         case E_PQ_CMD_SET_PEAKING_ONOFF:
1728         {
1729             pstPQ_SetPeaking_OnOff pPQArgs = (pstPQ_SetPeaking_OnOff)pArgs;
1730                pPQArgs->bReturnValue = psPQInstPri->fpPQ_SetPeaking_OnOff(pInstance, pPQArgs->bEnable ,pPQArgs->eWindow);
1731 
1732             return UTOPIA_STATUS_SUCCESS;
1733         }
1734         case E_PQ_CMD_SET_FAKE_OUT_ENABLE:
1735         {
1736             pstPQ_SetFakeOutEnable pPQArgs = (pstPQ_SetFakeOutEnable)pArgs;
1737                pPQArgs->bReturnValue = psPQInstPri->fpPQ_SetFakeOutEnable(pInstance, pPQArgs->bEnable);
1738 
1739             return UTOPIA_STATUS_SUCCESS;
1740         }
1741 //drvPQ_Text.c
1742         case E_PQ_CMD_GET_SRC_TYPE_NAME:
1743         {
1744             pstPQ_GetSrcTypeName pPQArgs = (pstPQ_GetSrcTypeName)pArgs;
1745                pPQArgs->u8Ret = psPQInstPri->fpPQ_GetSrcTypeName(pInstance,pPQArgs->eWindow);
1746 
1747             return UTOPIA_STATUS_SUCCESS;
1748         }
1749         case E_PQ_CMD_GET_IP_NAME:
1750         {
1751             pstPQ_GetIPName pPQArgs = (pstPQ_GetIPName)pArgs;
1752                pPQArgs->u8Ret = psPQInstPri->fpPQ_GetIPName(pInstance,pPQArgs->u8PQIPIdx);
1753 
1754             return UTOPIA_STATUS_SUCCESS;
1755         }
1756         case E_PQ_CMD_GET_TABLE_NAME:
1757         {
1758             pstPQ_GetTableName pPQArgs = (pstPQ_GetTableName)pArgs;
1759                pPQArgs->u8Ret = psPQInstPri->fpPQ_GetTableName(pInstance,pPQArgs->u8PQIPIdx,pPQArgs->u8TabIdx);
1760 
1761             return UTOPIA_STATUS_SUCCESS;
1762         }
1763         case E_PQ_CMD_SET_1KTRAVELINGENABLE:
1764         {
1765             pstPQ_Set1KTravelingEnable pPQArgs = (pstPQ_Set1KTravelingEnable)pArgs;
1766                pPQArgs->bReturnValue = psPQInstPri->fpPQ_Set1KTravelingEnable(pInstance, pPQArgs->bEn);
1767 
1768             return UTOPIA_STATUS_SUCCESS;
1769         }
1770 //drvbw.c
1771         case E_PQ_CMD_BW_LOAD_INIT_TABLE:
1772         {
1773             psPQInstPri->fpPQ_BW_LoadInitTable(pInstance);
1774 
1775             return UTOPIA_STATUS_SUCCESS;
1776         }
1777         case E_PQ_CMD_BW_LOAD_TABLE_BY_CONTEXT:
1778         {
1779             pstPQ_BW_LoadTableByContext pPQArgs = (pstPQ_BW_LoadTableByContext)pArgs;
1780                psPQInstPri->fpPQ_BW_LoadTableByContext(pInstance,pPQArgs->eWindow);
1781 
1782             return UTOPIA_STATUS_SUCCESS;
1783         }
1784              case E_PQ_CMD_BW_CUSMODE_LOADTABLE:
1785              {
1786                  pstPQ_BW_CusMode_LoadTable pPQArgs = (pstPQ_BW_CusMode_LoadTable)pArgs;
1787                     psPQInstPri->fpPQ_BW_CusMode_LoadTable(pInstance,pPQArgs->u8TabIdx);
1788 
1789                  return UTOPIA_STATUS_SUCCESS;
1790              }
1791         case E_PQ_CMD_BW_RESET_TO_DEFAULT:
1792         {
1793                psPQInstPri->fpPQ_BW_ResetToDefault(pInstance);
1794 
1795             return UTOPIA_STATUS_SUCCESS;
1796         }
1797         case E_PQ_CMD_GETCONFIG:
1798         {
1799             pstPQ_GetConfig pPQArgs = (pstPQ_GetConfig)pArgs;
1800             pPQArgs->eRet = psPQInstPri->fpPQ_GetConfig(pInstance, pPQArgs->pstPQInitInfo);
1801 
1802             return UTOPIA_STATUS_SUCCESS;
1803         }
1804         case E_PQ_CMD_SET_FRAMEBUFF_MODE:
1805         {
1806             pstPQ_SetFrameBuffMode pPQArgs = (pstPQ_SetFrameBuffMode)pArgs;
1807             psPQInstPri->fpPQ_SET_FrameBuff_Mode(pInstance, pPQArgs->bFrameBuffLess);
1808             return UTOPIA_STATUS_SUCCESS;
1809         }
1810         default:
1811         {
1812             printf("Error Command = %td\n", (ptrdiff_t) u32Cmd);
1813             break;
1814         }
1815     }
1816 #endif
1817     return UTOPIA_STATUS_FAIL;
1818 }
1819 
PQClose(void * pInstance)1820 MS_U32 PQClose(void* pInstance)
1821 {
1822 #if 1
1823     UtopiaInstanceDelete(pInstance);
1824 #endif
1825     return UTOPIA_STATUS_SUCCESS;
1826 }
1827 
1828 #endif
1829