1*53ee8cc1Swenshuai.xi //<MStar Software>
2*53ee8cc1Swenshuai.xi //******************************************************************************
3*53ee8cc1Swenshuai.xi // MStar Software
4*53ee8cc1Swenshuai.xi // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5*53ee8cc1Swenshuai.xi // All software, firmware and related documentation herein ("MStar Software") are
6*53ee8cc1Swenshuai.xi // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7*53ee8cc1Swenshuai.xi // law, including, but not limited to, copyright law and international treaties.
8*53ee8cc1Swenshuai.xi // Any use, modification, reproduction, retransmission, or republication of all
9*53ee8cc1Swenshuai.xi // or part of MStar Software is expressly prohibited, unless prior written
10*53ee8cc1Swenshuai.xi // permission has been granted by MStar.
11*53ee8cc1Swenshuai.xi //
12*53ee8cc1Swenshuai.xi // By accessing, browsing and/or using MStar Software, you acknowledge that you
13*53ee8cc1Swenshuai.xi // have read, understood, and agree, to be bound by below terms ("Terms") and to
14*53ee8cc1Swenshuai.xi // comply with all applicable laws and regulations:
15*53ee8cc1Swenshuai.xi //
16*53ee8cc1Swenshuai.xi // 1. MStar shall retain any and all right, ownership and interest to MStar
17*53ee8cc1Swenshuai.xi // Software and any modification/derivatives thereof.
18*53ee8cc1Swenshuai.xi // No right, ownership, or interest to MStar Software and any
19*53ee8cc1Swenshuai.xi // modification/derivatives thereof is transferred to you under Terms.
20*53ee8cc1Swenshuai.xi //
21*53ee8cc1Swenshuai.xi // 2. You understand that MStar Software might include, incorporate or be
22*53ee8cc1Swenshuai.xi // supplied together with third party`s software and the use of MStar
23*53ee8cc1Swenshuai.xi // Software may require additional licenses from third parties.
24*53ee8cc1Swenshuai.xi // Therefore, you hereby agree it is your sole responsibility to separately
25*53ee8cc1Swenshuai.xi // obtain any and all third party right and license necessary for your use of
26*53ee8cc1Swenshuai.xi // such third party`s software.
27*53ee8cc1Swenshuai.xi //
28*53ee8cc1Swenshuai.xi // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29*53ee8cc1Swenshuai.xi // MStar`s confidential information and you agree to keep MStar`s
30*53ee8cc1Swenshuai.xi // confidential information in strictest confidence and not disclose to any
31*53ee8cc1Swenshuai.xi // third party.
32*53ee8cc1Swenshuai.xi //
33*53ee8cc1Swenshuai.xi // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34*53ee8cc1Swenshuai.xi // kind. Any warranties are hereby expressly disclaimed by MStar, including
35*53ee8cc1Swenshuai.xi // without limitation, any warranties of merchantability, non-infringement of
36*53ee8cc1Swenshuai.xi // intellectual property rights, fitness for a particular purpose, error free
37*53ee8cc1Swenshuai.xi // and in conformity with any international standard. You agree to waive any
38*53ee8cc1Swenshuai.xi // claim against MStar for any loss, damage, cost or expense that you may
39*53ee8cc1Swenshuai.xi // incur related to your use of MStar Software.
40*53ee8cc1Swenshuai.xi // In no event shall MStar be liable for any direct, indirect, incidental or
41*53ee8cc1Swenshuai.xi // consequential damages, including without limitation, lost of profit or
42*53ee8cc1Swenshuai.xi // revenues, lost or damage of data, and unauthorized system use.
43*53ee8cc1Swenshuai.xi // You agree that this Section 4 shall still apply without being affected
44*53ee8cc1Swenshuai.xi // even if MStar Software has been modified by MStar in accordance with your
45*53ee8cc1Swenshuai.xi // request or instruction for your use, except otherwise agreed by both
46*53ee8cc1Swenshuai.xi // parties in writing.
47*53ee8cc1Swenshuai.xi //
48*53ee8cc1Swenshuai.xi // 5. If requested, MStar may from time to time provide technical supports or
49*53ee8cc1Swenshuai.xi // services in relation with MStar Software to you for your use of
50*53ee8cc1Swenshuai.xi // MStar Software in conjunction with your or your customer`s product
51*53ee8cc1Swenshuai.xi // ("Services").
52*53ee8cc1Swenshuai.xi // You understand and agree that, except otherwise agreed by both parties in
53*53ee8cc1Swenshuai.xi // writing, Services are provided on an "AS IS" basis and the warranty
54*53ee8cc1Swenshuai.xi // disclaimer set forth in Section 4 above shall apply.
55*53ee8cc1Swenshuai.xi //
56*53ee8cc1Swenshuai.xi // 6. Nothing contained herein shall be construed as by implication, estoppels
57*53ee8cc1Swenshuai.xi // or otherwise:
58*53ee8cc1Swenshuai.xi // (a) conferring any license or right to use MStar name, trademark, service
59*53ee8cc1Swenshuai.xi // mark, symbol or any other identification;
60*53ee8cc1Swenshuai.xi // (b) obligating MStar or any of its affiliates to furnish any person,
61*53ee8cc1Swenshuai.xi // including without limitation, you and your customers, any assistance
62*53ee8cc1Swenshuai.xi // of any kind whatsoever, or any information; or
63*53ee8cc1Swenshuai.xi // (c) conferring any license or right under any intellectual property right.
64*53ee8cc1Swenshuai.xi //
65*53ee8cc1Swenshuai.xi // 7. These terms shall be governed by and construed in accordance with the laws
66*53ee8cc1Swenshuai.xi // of Taiwan, R.O.C., excluding its conflict of law rules.
67*53ee8cc1Swenshuai.xi // Any and all dispute arising out hereof or related hereto shall be finally
68*53ee8cc1Swenshuai.xi // settled by arbitration referred to the Chinese Arbitration Association,
69*53ee8cc1Swenshuai.xi // Taipei in accordance with the ROC Arbitration Law and the Arbitration
70*53ee8cc1Swenshuai.xi // Rules of the Association by three (3) arbitrators appointed in accordance
71*53ee8cc1Swenshuai.xi // with the said Rules.
72*53ee8cc1Swenshuai.xi // The place of arbitration shall be in Taipei, Taiwan and the language shall
73*53ee8cc1Swenshuai.xi // be English.
74*53ee8cc1Swenshuai.xi // The arbitration award shall be final and binding to both parties.
75*53ee8cc1Swenshuai.xi //
76*53ee8cc1Swenshuai.xi //******************************************************************************
77*53ee8cc1Swenshuai.xi //<MStar Software>
78*53ee8cc1Swenshuai.xi #ifndef _API_XC_PANEL_EX_C_
79*53ee8cc1Swenshuai.xi #define _API_XC_PANEL_EX_C_
80*53ee8cc1Swenshuai.xi
81*53ee8cc1Swenshuai.xi /******************************************************************************/
82*53ee8cc1Swenshuai.xi /* Includes */
83*53ee8cc1Swenshuai.xi /******************************************************************************/
84*53ee8cc1Swenshuai.xi #include "MsCommon.h"
85*53ee8cc1Swenshuai.xi #include "MsVersion.h"
86*53ee8cc1Swenshuai.xi #include "MsIRQ.h"
87*53ee8cc1Swenshuai.xi #include "MsOS.h"
88*53ee8cc1Swenshuai.xi
89*53ee8cc1Swenshuai.xi #ifdef MSOS_TYPE_LINUX_KERNEL
90*53ee8cc1Swenshuai.xi #include <linux/string.h>
91*53ee8cc1Swenshuai.xi #else
92*53ee8cc1Swenshuai.xi #include <string.h>
93*53ee8cc1Swenshuai.xi #endif
94*53ee8cc1Swenshuai.xi
95*53ee8cc1Swenshuai.xi #include "utopia.h"
96*53ee8cc1Swenshuai.xi #include "utopia_dapi.h"
97*53ee8cc1Swenshuai.xi #include "apiPNL.h"
98*53ee8cc1Swenshuai.xi #include "apiPNL_v2.h"
99*53ee8cc1Swenshuai.xi #include "apiPNL_EX.h"
100*53ee8cc1Swenshuai.xi #include "drvPNL.h"
101*53ee8cc1Swenshuai.xi #include "PNL_private.h"
102*53ee8cc1Swenshuai.xi
103*53ee8cc1Swenshuai.xi // for Utopia 2.0 to Utopia 1.0 compatibility
104*53ee8cc1Swenshuai.xi extern void* pu32PNLInst;
105*53ee8cc1Swenshuai.xi void* pu32PNLInst1 = NULL;
106*53ee8cc1Swenshuai.xi
107*53ee8cc1Swenshuai.xi #define _PNL_SELECT_INSTANCE(u32Id) ((u32Id == 0)? pu32PNLInst : pu32PNLInst1)
108*53ee8cc1Swenshuai.xi #define _PNL_SELECT_INSTANCE_P(u32Id) ((u32Id == 0)? &pu32PNLInst : &pu32PNLInst1)
109*53ee8cc1Swenshuai.xi
110*53ee8cc1Swenshuai.xi #ifndef UNUSED
111*53ee8cc1Swenshuai.xi #define UNUSED(x) ((x)=(x))
112*53ee8cc1Swenshuai.xi #endif
113*53ee8cc1Swenshuai.xi
114*53ee8cc1Swenshuai.xi #define PNL_DBG_MSG(fmt,...) \
115*53ee8cc1Swenshuai.xi MS_DEBUG_MSG(do{ \
116*53ee8cc1Swenshuai.xi if(_u16PnlDbgSwitch){ \
117*53ee8cc1Swenshuai.xi printf( "[PNL_DBG_MSG]: %s: %d \n" fmt, __FUNCTION__, __LINE__, ## __VA_ARGS__); \
118*53ee8cc1Swenshuai.xi } \
119*53ee8cc1Swenshuai.xi } while(0))
120*53ee8cc1Swenshuai.xi
121*53ee8cc1Swenshuai.xi
122*53ee8cc1Swenshuai.xi //
123*53ee8cc1Swenshuai.xi // Dump m_panel data
124*53ee8cc1Swenshuai.xi //
_MApi_XC_DumpPanelData(const PNL_DeviceId * pPNL_DeviceId)125*53ee8cc1Swenshuai.xi static void _MApi_XC_DumpPanelData(const PNL_DeviceId *pPNL_DeviceId)
126*53ee8cc1Swenshuai.xi {
127*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
128*53ee8cc1Swenshuai.xi {
129*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
130*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
131*53ee8cc1Swenshuai.xi {
132*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
133*53ee8cc1Swenshuai.xi return;
134*53ee8cc1Swenshuai.xi }
135*53ee8cc1Swenshuai.xi }
136*53ee8cc1Swenshuai.xi
137*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_DUMPPANELDATA, NULL) != UTOPIA_STATUS_SUCCESS)
138*53ee8cc1Swenshuai.xi {
139*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
140*53ee8cc1Swenshuai.xi }
141*53ee8cc1Swenshuai.xi }
142*53ee8cc1Swenshuai.xi //
143*53ee8cc1Swenshuai.xi //
_SetSSC(const PNL_DeviceId * pPNL_DeviceId,MS_U16 u16Fmodulation,MS_U16 u16Rdeviation,MS_BOOL bEnable)144*53ee8cc1Swenshuai.xi void _SetSSC(const PNL_DeviceId *pPNL_DeviceId, MS_U16 u16Fmodulation, MS_U16 u16Rdeviation, MS_BOOL bEnable)
145*53ee8cc1Swenshuai.xi {
146*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
147*53ee8cc1Swenshuai.xi {
148*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
149*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
150*53ee8cc1Swenshuai.xi {
151*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
152*53ee8cc1Swenshuai.xi return;
153*53ee8cc1Swenshuai.xi }
154*53ee8cc1Swenshuai.xi }
155*53ee8cc1Swenshuai.xi
156*53ee8cc1Swenshuai.xi stPNL_SetSSC PNLArgs;
157*53ee8cc1Swenshuai.xi PNLArgs.u16Fmodulation = u16Fmodulation;
158*53ee8cc1Swenshuai.xi PNLArgs.u16Rdeviation = u16Rdeviation;
159*53ee8cc1Swenshuai.xi PNLArgs.bEnable = bEnable;
160*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_SETSSC, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
161*53ee8cc1Swenshuai.xi {
162*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
163*53ee8cc1Swenshuai.xi }
164*53ee8cc1Swenshuai.xi }
165*53ee8cc1Swenshuai.xi //
166*53ee8cc1Swenshuai.xi //
_EmptyMethod(const PNL_DeviceId * pPNL_DeviceId,MS_BOOL bEnable)167*53ee8cc1Swenshuai.xi static void _EmptyMethod(const PNL_DeviceId *pPNL_DeviceId, MS_BOOL bEnable)
168*53ee8cc1Swenshuai.xi {
169*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
170*53ee8cc1Swenshuai.xi {
171*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
172*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
173*53ee8cc1Swenshuai.xi {
174*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
175*53ee8cc1Swenshuai.xi return;
176*53ee8cc1Swenshuai.xi }
177*53ee8cc1Swenshuai.xi }
178*53ee8cc1Swenshuai.xi
179*53ee8cc1Swenshuai.xi UNUSED(bEnable);
180*53ee8cc1Swenshuai.xi PNL_DBG_MSG(" Error!! <============== Calling a non-registered function!!");
181*53ee8cc1Swenshuai.xi }
182*53ee8cc1Swenshuai.xi //
183*53ee8cc1Swenshuai.xi //
_getPanelHstart(const PNL_DeviceId * pPNL_DeviceId)184*53ee8cc1Swenshuai.xi static MS_U16 _getPanelHstart(const PNL_DeviceId *pPNL_DeviceId)
185*53ee8cc1Swenshuai.xi {
186*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL
187*53ee8cc1Swenshuai.xi )
188*53ee8cc1Swenshuai.xi {
189*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
190*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
191*53ee8cc1Swenshuai.xi {
192*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
193*53ee8cc1Swenshuai.xi return 0;
194*53ee8cc1Swenshuai.xi }
195*53ee8cc1Swenshuai.xi }
196*53ee8cc1Swenshuai.xi
197*53ee8cc1Swenshuai.xi PanelType stPanelData;
198*53ee8cc1Swenshuai.xi stPNL_GetPanelData PNLArgs;
199*53ee8cc1Swenshuai.xi memset(&stPanelData, 0, sizeof(PanelType));
200*53ee8cc1Swenshuai.xi PNLArgs.pstPNLData = &stPanelData;
201*53ee8cc1Swenshuai.xi
202*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETPANELDATA, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
203*53ee8cc1Swenshuai.xi {
204*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
205*53ee8cc1Swenshuai.xi return 0;
206*53ee8cc1Swenshuai.xi }
207*53ee8cc1Swenshuai.xi else
208*53ee8cc1Swenshuai.xi {
209*53ee8cc1Swenshuai.xi return stPanelData.m_wPanelHStart;
210*53ee8cc1Swenshuai.xi }
211*53ee8cc1Swenshuai.xi }
212*53ee8cc1Swenshuai.xi
_getPanelVstart(const PNL_DeviceId * pPNL_DeviceId)213*53ee8cc1Swenshuai.xi static MS_U16 _getPanelVstart(const PNL_DeviceId *pPNL_DeviceId)
214*53ee8cc1Swenshuai.xi {
215*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL
216*53ee8cc1Swenshuai.xi )
217*53ee8cc1Swenshuai.xi {
218*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
219*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
220*53ee8cc1Swenshuai.xi {
221*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
222*53ee8cc1Swenshuai.xi return 0;
223*53ee8cc1Swenshuai.xi }
224*53ee8cc1Swenshuai.xi }
225*53ee8cc1Swenshuai.xi
226*53ee8cc1Swenshuai.xi PanelType stPanelData;
227*53ee8cc1Swenshuai.xi stPNL_GetPanelData PNLArgs;
228*53ee8cc1Swenshuai.xi memset(&stPanelData, 0, sizeof(PanelType));
229*53ee8cc1Swenshuai.xi PNLArgs.pstPNLData = &stPanelData;
230*53ee8cc1Swenshuai.xi
231*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETPANELDATA, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
232*53ee8cc1Swenshuai.xi {
233*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
234*53ee8cc1Swenshuai.xi return 0;
235*53ee8cc1Swenshuai.xi }
236*53ee8cc1Swenshuai.xi else
237*53ee8cc1Swenshuai.xi {
238*53ee8cc1Swenshuai.xi return stPanelData.m_wPanelVStart;
239*53ee8cc1Swenshuai.xi }
240*53ee8cc1Swenshuai.xi }
241*53ee8cc1Swenshuai.xi
_getPanelWidth(const PNL_DeviceId * pPNL_DeviceId)242*53ee8cc1Swenshuai.xi static MS_U16 _getPanelWidth (const PNL_DeviceId *pPNL_DeviceId)
243*53ee8cc1Swenshuai.xi {
244*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL
245*53ee8cc1Swenshuai.xi )
246*53ee8cc1Swenshuai.xi {
247*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
248*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
249*53ee8cc1Swenshuai.xi {
250*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
251*53ee8cc1Swenshuai.xi return 0;
252*53ee8cc1Swenshuai.xi }
253*53ee8cc1Swenshuai.xi }
254*53ee8cc1Swenshuai.xi
255*53ee8cc1Swenshuai.xi PanelType stPanelData;
256*53ee8cc1Swenshuai.xi stPNL_GetPanelData PNLArgs;
257*53ee8cc1Swenshuai.xi memset(&stPanelData, 0, sizeof(PanelType));
258*53ee8cc1Swenshuai.xi PNLArgs.pstPNLData = &stPanelData;
259*53ee8cc1Swenshuai.xi
260*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETPANELDATA, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
261*53ee8cc1Swenshuai.xi {
262*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
263*53ee8cc1Swenshuai.xi return 0;
264*53ee8cc1Swenshuai.xi }
265*53ee8cc1Swenshuai.xi else
266*53ee8cc1Swenshuai.xi {
267*53ee8cc1Swenshuai.xi return stPanelData.m_wPanelWidth;
268*53ee8cc1Swenshuai.xi }
269*53ee8cc1Swenshuai.xi }
270*53ee8cc1Swenshuai.xi
_getPanelHeight(const PNL_DeviceId * pPNL_DeviceId)271*53ee8cc1Swenshuai.xi static MS_U16 _getPanelHeight(const PNL_DeviceId *pPNL_DeviceId)
272*53ee8cc1Swenshuai.xi {
273*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL
274*53ee8cc1Swenshuai.xi )
275*53ee8cc1Swenshuai.xi {
276*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
277*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
278*53ee8cc1Swenshuai.xi {
279*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
280*53ee8cc1Swenshuai.xi return 0;
281*53ee8cc1Swenshuai.xi }
282*53ee8cc1Swenshuai.xi }
283*53ee8cc1Swenshuai.xi
284*53ee8cc1Swenshuai.xi PanelType stPanelData;
285*53ee8cc1Swenshuai.xi stPNL_GetPanelData PNLArgs;
286*53ee8cc1Swenshuai.xi memset(&stPanelData, 0, sizeof(PanelType));
287*53ee8cc1Swenshuai.xi PNLArgs.pstPNLData = &stPanelData;
288*53ee8cc1Swenshuai.xi
289*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETPANELDATA, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
290*53ee8cc1Swenshuai.xi {
291*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
292*53ee8cc1Swenshuai.xi return 0;
293*53ee8cc1Swenshuai.xi }
294*53ee8cc1Swenshuai.xi else
295*53ee8cc1Swenshuai.xi {
296*53ee8cc1Swenshuai.xi return stPanelData.m_wPanelHeight;
297*53ee8cc1Swenshuai.xi }
298*53ee8cc1Swenshuai.xi }
299*53ee8cc1Swenshuai.xi
_getPanelhtotal(const PNL_DeviceId * pPNL_DeviceId)300*53ee8cc1Swenshuai.xi static MS_U16 _getPanelhtotal(const PNL_DeviceId *pPNL_DeviceId)
301*53ee8cc1Swenshuai.xi {
302*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL
303*53ee8cc1Swenshuai.xi )
304*53ee8cc1Swenshuai.xi {
305*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
306*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
307*53ee8cc1Swenshuai.xi {
308*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
309*53ee8cc1Swenshuai.xi return 0;
310*53ee8cc1Swenshuai.xi }
311*53ee8cc1Swenshuai.xi }
312*53ee8cc1Swenshuai.xi
313*53ee8cc1Swenshuai.xi PanelType stPanelData;
314*53ee8cc1Swenshuai.xi stPNL_GetPanelData PNLArgs;
315*53ee8cc1Swenshuai.xi memset(&stPanelData, 0, sizeof(PanelType));
316*53ee8cc1Swenshuai.xi PNLArgs.pstPNLData = &stPanelData;
317*53ee8cc1Swenshuai.xi
318*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETPANELDATA, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
319*53ee8cc1Swenshuai.xi {
320*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
321*53ee8cc1Swenshuai.xi return 0;
322*53ee8cc1Swenshuai.xi }
323*53ee8cc1Swenshuai.xi else
324*53ee8cc1Swenshuai.xi {
325*53ee8cc1Swenshuai.xi return stPanelData.m_wPanelHTotal;
326*53ee8cc1Swenshuai.xi }
327*53ee8cc1Swenshuai.xi }
328*53ee8cc1Swenshuai.xi
_getPanelVtotal(const PNL_DeviceId * pPNL_DeviceId)329*53ee8cc1Swenshuai.xi static MS_U16 _getPanelVtotal(const PNL_DeviceId *pPNL_DeviceId)
330*53ee8cc1Swenshuai.xi {
331*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL
332*53ee8cc1Swenshuai.xi )
333*53ee8cc1Swenshuai.xi {
334*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
335*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
336*53ee8cc1Swenshuai.xi {
337*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
338*53ee8cc1Swenshuai.xi return 0;
339*53ee8cc1Swenshuai.xi }
340*53ee8cc1Swenshuai.xi }
341*53ee8cc1Swenshuai.xi
342*53ee8cc1Swenshuai.xi PanelType stPanelData;
343*53ee8cc1Swenshuai.xi stPNL_GetPanelData PNLArgs;
344*53ee8cc1Swenshuai.xi memset(&stPanelData, 0, sizeof(PanelType));
345*53ee8cc1Swenshuai.xi PNLArgs.pstPNLData = &stPanelData;
346*53ee8cc1Swenshuai.xi
347*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETPANELDATA, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
348*53ee8cc1Swenshuai.xi {
349*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
350*53ee8cc1Swenshuai.xi return 0;
351*53ee8cc1Swenshuai.xi }
352*53ee8cc1Swenshuai.xi else
353*53ee8cc1Swenshuai.xi {
354*53ee8cc1Swenshuai.xi return stPanelData.m_wPanelVTotal;
355*53ee8cc1Swenshuai.xi }
356*53ee8cc1Swenshuai.xi }
357*53ee8cc1Swenshuai.xi
_getPanelMinSET(const PNL_DeviceId * pPNL_DeviceId)358*53ee8cc1Swenshuai.xi static MS_U32 _getPanelMinSET(const PNL_DeviceId *pPNL_DeviceId)
359*53ee8cc1Swenshuai.xi {
360*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL
361*53ee8cc1Swenshuai.xi )
362*53ee8cc1Swenshuai.xi {
363*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
364*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
365*53ee8cc1Swenshuai.xi {
366*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
367*53ee8cc1Swenshuai.xi return 0;
368*53ee8cc1Swenshuai.xi }
369*53ee8cc1Swenshuai.xi }
370*53ee8cc1Swenshuai.xi
371*53ee8cc1Swenshuai.xi PanelType stPanelData;
372*53ee8cc1Swenshuai.xi stPNL_GetPanelData PNLArgs;
373*53ee8cc1Swenshuai.xi memset(&stPanelData, 0, sizeof(PanelType));
374*53ee8cc1Swenshuai.xi PNLArgs.pstPNLData = &stPanelData;
375*53ee8cc1Swenshuai.xi
376*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETPANELDATA, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
377*53ee8cc1Swenshuai.xi {
378*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
379*53ee8cc1Swenshuai.xi return 0;
380*53ee8cc1Swenshuai.xi }
381*53ee8cc1Swenshuai.xi else
382*53ee8cc1Swenshuai.xi {
383*53ee8cc1Swenshuai.xi return stPanelData.m_dwPanelMinSET;
384*53ee8cc1Swenshuai.xi }
385*53ee8cc1Swenshuai.xi }
386*53ee8cc1Swenshuai.xi
_getPanelMaxSET(const PNL_DeviceId * pPNL_DeviceId)387*53ee8cc1Swenshuai.xi static MS_U32 _getPanelMaxSET(const PNL_DeviceId *pPNL_DeviceId)
388*53ee8cc1Swenshuai.xi {
389*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL
390*53ee8cc1Swenshuai.xi )
391*53ee8cc1Swenshuai.xi {
392*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
393*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
394*53ee8cc1Swenshuai.xi {
395*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
396*53ee8cc1Swenshuai.xi return 0;
397*53ee8cc1Swenshuai.xi }
398*53ee8cc1Swenshuai.xi }
399*53ee8cc1Swenshuai.xi
400*53ee8cc1Swenshuai.xi PanelType stPanelData;
401*53ee8cc1Swenshuai.xi stPNL_GetPanelData PNLArgs;
402*53ee8cc1Swenshuai.xi memset(&stPanelData, 0, sizeof(PanelType));
403*53ee8cc1Swenshuai.xi PNLArgs.pstPNLData = &stPanelData;
404*53ee8cc1Swenshuai.xi
405*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETPANELDATA, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
406*53ee8cc1Swenshuai.xi {
407*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
408*53ee8cc1Swenshuai.xi return 0;
409*53ee8cc1Swenshuai.xi }
410*53ee8cc1Swenshuai.xi else
411*53ee8cc1Swenshuai.xi {
412*53ee8cc1Swenshuai.xi return stPanelData.m_dwPanelMaxSET;
413*53ee8cc1Swenshuai.xi }
414*53ee8cc1Swenshuai.xi }
415*53ee8cc1Swenshuai.xi
_getPanelDefVFreq(const PNL_DeviceId * pPNL_DeviceId)416*53ee8cc1Swenshuai.xi static MS_U16 _getPanelDefVFreq(const PNL_DeviceId *pPNL_DeviceId)
417*53ee8cc1Swenshuai.xi {
418*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
419*53ee8cc1Swenshuai.xi {
420*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
421*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
422*53ee8cc1Swenshuai.xi {
423*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
424*53ee8cc1Swenshuai.xi return 0;
425*53ee8cc1Swenshuai.xi }
426*53ee8cc1Swenshuai.xi }
427*53ee8cc1Swenshuai.xi
428*53ee8cc1Swenshuai.xi stPNL_GetDefVFreq PNLArgs;
429*53ee8cc1Swenshuai.xi PNLArgs.u16Return = 0;
430*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETDEFVFREQ, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
431*53ee8cc1Swenshuai.xi {
432*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
433*53ee8cc1Swenshuai.xi return 0;
434*53ee8cc1Swenshuai.xi }
435*53ee8cc1Swenshuai.xi else
436*53ee8cc1Swenshuai.xi {
437*53ee8cc1Swenshuai.xi return PNLArgs.u16Return;
438*53ee8cc1Swenshuai.xi }
439*53ee8cc1Swenshuai.xi }
440*53ee8cc1Swenshuai.xi
_getPanel_LPLL_Mode(const PNL_DeviceId * pPNL_DeviceId)441*53ee8cc1Swenshuai.xi static MS_U8 _getPanel_LPLL_Mode(const PNL_DeviceId *pPNL_DeviceId)
442*53ee8cc1Swenshuai.xi {
443*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
444*53ee8cc1Swenshuai.xi {
445*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
446*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
447*53ee8cc1Swenshuai.xi {
448*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
449*53ee8cc1Swenshuai.xi return E_PNL_MODE_SINGLE;
450*53ee8cc1Swenshuai.xi }
451*53ee8cc1Swenshuai.xi }
452*53ee8cc1Swenshuai.xi
453*53ee8cc1Swenshuai.xi stPNL_GetLPLLMode PNLArgs;
454*53ee8cc1Swenshuai.xi PNLArgs.u8Return = E_PNL_MODE_SINGLE;
455*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETLPLLMODE, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
456*53ee8cc1Swenshuai.xi {
457*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
458*53ee8cc1Swenshuai.xi return E_PNL_MODE_SINGLE;
459*53ee8cc1Swenshuai.xi }
460*53ee8cc1Swenshuai.xi else
461*53ee8cc1Swenshuai.xi {
462*53ee8cc1Swenshuai.xi return PNLArgs.u8Return;
463*53ee8cc1Swenshuai.xi }
464*53ee8cc1Swenshuai.xi }
465*53ee8cc1Swenshuai.xi
_getPanel_LPLL_Type(const PNL_DeviceId * pPNL_DeviceId)466*53ee8cc1Swenshuai.xi static MS_U8 _getPanel_LPLL_Type(const PNL_DeviceId *pPNL_DeviceId)
467*53ee8cc1Swenshuai.xi {
468*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
469*53ee8cc1Swenshuai.xi {
470*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
471*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
472*53ee8cc1Swenshuai.xi {
473*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
474*53ee8cc1Swenshuai.xi return E_PNL_EX_LINK_TTL;
475*53ee8cc1Swenshuai.xi }
476*53ee8cc1Swenshuai.xi }
477*53ee8cc1Swenshuai.xi
478*53ee8cc1Swenshuai.xi stPNL_Get_LPLL_Type PNLArgs;
479*53ee8cc1Swenshuai.xi PNLArgs.u8Return = LINK_TTL;
480*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GET_LPLL_TYPE, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
481*53ee8cc1Swenshuai.xi {
482*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
483*53ee8cc1Swenshuai.xi return E_PNL_EX_LINK_TTL;
484*53ee8cc1Swenshuai.xi }
485*53ee8cc1Swenshuai.xi else
486*53ee8cc1Swenshuai.xi {
487*53ee8cc1Swenshuai.xi return (PNL_EX_LINK_TYPE)PNLArgs.u8Return;
488*53ee8cc1Swenshuai.xi }
489*53ee8cc1Swenshuai.xi }
490*53ee8cc1Swenshuai.xi
_getPanelHSyncWidth(const PNL_DeviceId * pPNL_DeviceId)491*53ee8cc1Swenshuai.xi static MS_U8 _getPanelHSyncWidth(const PNL_DeviceId *pPNL_DeviceId)
492*53ee8cc1Swenshuai.xi {
493*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL
494*53ee8cc1Swenshuai.xi )
495*53ee8cc1Swenshuai.xi {
496*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
497*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
498*53ee8cc1Swenshuai.xi {
499*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
500*53ee8cc1Swenshuai.xi return 0;
501*53ee8cc1Swenshuai.xi }
502*53ee8cc1Swenshuai.xi }
503*53ee8cc1Swenshuai.xi
504*53ee8cc1Swenshuai.xi PanelType stPanelData;
505*53ee8cc1Swenshuai.xi stPNL_GetPanelData PNLArgs;
506*53ee8cc1Swenshuai.xi memset(&stPanelData, 0, sizeof(PanelType));
507*53ee8cc1Swenshuai.xi PNLArgs.pstPNLData = &stPanelData;
508*53ee8cc1Swenshuai.xi
509*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETPANELDATA, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
510*53ee8cc1Swenshuai.xi {
511*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
512*53ee8cc1Swenshuai.xi return 0;
513*53ee8cc1Swenshuai.xi }
514*53ee8cc1Swenshuai.xi else
515*53ee8cc1Swenshuai.xi {
516*53ee8cc1Swenshuai.xi return stPanelData.m_ucPanelHSyncWidth;
517*53ee8cc1Swenshuai.xi }
518*53ee8cc1Swenshuai.xi }
519*53ee8cc1Swenshuai.xi
_getPanelHSyncBackPorch(const PNL_DeviceId * pPNL_DeviceId)520*53ee8cc1Swenshuai.xi static MS_U8 _getPanelHSyncBackPorch(const PNL_DeviceId *pPNL_DeviceId)
521*53ee8cc1Swenshuai.xi {
522*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL
523*53ee8cc1Swenshuai.xi )
524*53ee8cc1Swenshuai.xi {
525*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
526*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
527*53ee8cc1Swenshuai.xi {
528*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
529*53ee8cc1Swenshuai.xi return 0;
530*53ee8cc1Swenshuai.xi }
531*53ee8cc1Swenshuai.xi }
532*53ee8cc1Swenshuai.xi
533*53ee8cc1Swenshuai.xi PanelType stPanelData;
534*53ee8cc1Swenshuai.xi stPNL_GetPanelData PNLArgs;
535*53ee8cc1Swenshuai.xi memset(&stPanelData, 0, sizeof(PanelType));
536*53ee8cc1Swenshuai.xi PNLArgs.pstPNLData = &stPanelData;
537*53ee8cc1Swenshuai.xi
538*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETPANELDATA, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
539*53ee8cc1Swenshuai.xi {
540*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
541*53ee8cc1Swenshuai.xi return 0;
542*53ee8cc1Swenshuai.xi }
543*53ee8cc1Swenshuai.xi else
544*53ee8cc1Swenshuai.xi {
545*53ee8cc1Swenshuai.xi return stPanelData.m_ucPanelHSyncBackPorch;
546*53ee8cc1Swenshuai.xi }
547*53ee8cc1Swenshuai.xi }
548*53ee8cc1Swenshuai.xi
_getPanelVSyncBackPorch(const PNL_DeviceId * pPNL_DeviceId)549*53ee8cc1Swenshuai.xi static MS_U8 _getPanelVSyncBackPorch(const PNL_DeviceId *pPNL_DeviceId)
550*53ee8cc1Swenshuai.xi {
551*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL
552*53ee8cc1Swenshuai.xi )
553*53ee8cc1Swenshuai.xi {
554*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
555*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
556*53ee8cc1Swenshuai.xi {
557*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
558*53ee8cc1Swenshuai.xi return 0;
559*53ee8cc1Swenshuai.xi }
560*53ee8cc1Swenshuai.xi }
561*53ee8cc1Swenshuai.xi
562*53ee8cc1Swenshuai.xi PanelType stPanelData;
563*53ee8cc1Swenshuai.xi stPNL_GetPanelData PNLArgs;
564*53ee8cc1Swenshuai.xi memset(&stPanelData, 0, sizeof(PanelType));
565*53ee8cc1Swenshuai.xi PNLArgs.pstPNLData = &stPanelData;
566*53ee8cc1Swenshuai.xi
567*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETPANELDATA, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
568*53ee8cc1Swenshuai.xi {
569*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
570*53ee8cc1Swenshuai.xi return 0;
571*53ee8cc1Swenshuai.xi }
572*53ee8cc1Swenshuai.xi else
573*53ee8cc1Swenshuai.xi {
574*53ee8cc1Swenshuai.xi return stPanelData.m_ucPanelVBackPorch;
575*53ee8cc1Swenshuai.xi }
576*53ee8cc1Swenshuai.xi }
577*53ee8cc1Swenshuai.xi
_getPanelOnTiming(const PNL_DeviceId * pPNL_DeviceId,PNL_EX_POWER_TIMING_SEQ seq)578*53ee8cc1Swenshuai.xi static MS_U16 _getPanelOnTiming(const PNL_DeviceId *pPNL_DeviceId, PNL_EX_POWER_TIMING_SEQ seq)
579*53ee8cc1Swenshuai.xi {
580*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
581*53ee8cc1Swenshuai.xi {
582*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
583*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
584*53ee8cc1Swenshuai.xi {
585*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
586*53ee8cc1Swenshuai.xi return 0;
587*53ee8cc1Swenshuai.xi }
588*53ee8cc1Swenshuai.xi }
589*53ee8cc1Swenshuai.xi
590*53ee8cc1Swenshuai.xi stPNL_GetPanelOnTiming PNLArgs;
591*53ee8cc1Swenshuai.xi PNLArgs.seq = (APIPNL_POWER_TIMING_SEQ)seq;
592*53ee8cc1Swenshuai.xi PNLArgs.u16Return = 0;
593*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETPANELONTIMING, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
594*53ee8cc1Swenshuai.xi {
595*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
596*53ee8cc1Swenshuai.xi return 0;
597*53ee8cc1Swenshuai.xi }
598*53ee8cc1Swenshuai.xi else
599*53ee8cc1Swenshuai.xi {
600*53ee8cc1Swenshuai.xi return PNLArgs.u16Return;
601*53ee8cc1Swenshuai.xi }
602*53ee8cc1Swenshuai.xi }
603*53ee8cc1Swenshuai.xi
_getPanelOffTiming(const PNL_DeviceId * pPNL_DeviceId,PNL_EX_POWER_TIMING_SEQ seq)604*53ee8cc1Swenshuai.xi static MS_U16 _getPanelOffTiming(const PNL_DeviceId *pPNL_DeviceId, PNL_EX_POWER_TIMING_SEQ seq)
605*53ee8cc1Swenshuai.xi {
606*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
607*53ee8cc1Swenshuai.xi {
608*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
609*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
610*53ee8cc1Swenshuai.xi {
611*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
612*53ee8cc1Swenshuai.xi return 0;
613*53ee8cc1Swenshuai.xi }
614*53ee8cc1Swenshuai.xi }
615*53ee8cc1Swenshuai.xi
616*53ee8cc1Swenshuai.xi stPNL_GetPanelOffTiming PNLArgs;
617*53ee8cc1Swenshuai.xi PNLArgs.seq = (APIPNL_POWER_TIMING_SEQ)seq;
618*53ee8cc1Swenshuai.xi PNLArgs.u16Return = 0;
619*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETPANELOFFTIMING, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
620*53ee8cc1Swenshuai.xi {
621*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
622*53ee8cc1Swenshuai.xi return 0;
623*53ee8cc1Swenshuai.xi }
624*53ee8cc1Swenshuai.xi else
625*53ee8cc1Swenshuai.xi {
626*53ee8cc1Swenshuai.xi return PNLArgs.u16Return;
627*53ee8cc1Swenshuai.xi }
628*53ee8cc1Swenshuai.xi }
629*53ee8cc1Swenshuai.xi
_getPanelDimCTRL(const PNL_DeviceId * pPNL_DeviceId,PNL_EX_DIMMING_CTRL dim_type)630*53ee8cc1Swenshuai.xi static MS_U8 _getPanelDimCTRL(const PNL_DeviceId *pPNL_DeviceId, PNL_EX_DIMMING_CTRL dim_type)
631*53ee8cc1Swenshuai.xi {
632*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
633*53ee8cc1Swenshuai.xi {
634*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
635*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
636*53ee8cc1Swenshuai.xi {
637*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
638*53ee8cc1Swenshuai.xi return 0;
639*53ee8cc1Swenshuai.xi }
640*53ee8cc1Swenshuai.xi }
641*53ee8cc1Swenshuai.xi
642*53ee8cc1Swenshuai.xi stPNL_GetPanelDimCtrl PNLArgs;
643*53ee8cc1Swenshuai.xi PNLArgs.dim_type = (APIPNL_DIMMING_CTRL)dim_type;
644*53ee8cc1Swenshuai.xi PNLArgs.u8Return = 0;
645*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETPANELDIMCTRL, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
646*53ee8cc1Swenshuai.xi {
647*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
648*53ee8cc1Swenshuai.xi return 0;
649*53ee8cc1Swenshuai.xi }
650*53ee8cc1Swenshuai.xi else
651*53ee8cc1Swenshuai.xi {
652*53ee8cc1Swenshuai.xi return PNLArgs.u8Return;
653*53ee8cc1Swenshuai.xi }
654*53ee8cc1Swenshuai.xi }
655*53ee8cc1Swenshuai.xi
_getPanelName(const PNL_DeviceId * pPNL_DeviceId)656*53ee8cc1Swenshuai.xi static const char* _getPanelName(const PNL_DeviceId *pPNL_DeviceId)
657*53ee8cc1Swenshuai.xi {
658*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL
659*53ee8cc1Swenshuai.xi )
660*53ee8cc1Swenshuai.xi {
661*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
662*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
663*53ee8cc1Swenshuai.xi {
664*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
665*53ee8cc1Swenshuai.xi return NULL;
666*53ee8cc1Swenshuai.xi }
667*53ee8cc1Swenshuai.xi }
668*53ee8cc1Swenshuai.xi
669*53ee8cc1Swenshuai.xi PanelType stPanelData;
670*53ee8cc1Swenshuai.xi stPNL_GetPanelData PNLArgs;
671*53ee8cc1Swenshuai.xi memset(&stPanelData, 0, sizeof(PanelType));
672*53ee8cc1Swenshuai.xi PNLArgs.pstPNLData = &stPanelData;
673*53ee8cc1Swenshuai.xi
674*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETPANELDATA, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
675*53ee8cc1Swenshuai.xi {
676*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
677*53ee8cc1Swenshuai.xi return NULL;
678*53ee8cc1Swenshuai.xi }
679*53ee8cc1Swenshuai.xi else
680*53ee8cc1Swenshuai.xi {
681*53ee8cc1Swenshuai.xi return stPanelData.m_pPanelName;
682*53ee8cc1Swenshuai.xi }
683*53ee8cc1Swenshuai.xi }
684*53ee8cc1Swenshuai.xi
_getPanel_ARC(const PNL_DeviceId * pPNL_DeviceId)685*53ee8cc1Swenshuai.xi static PNL_EX_ASPECT_RATIO _getPanel_ARC(const PNL_DeviceId *pPNL_DeviceId)
686*53ee8cc1Swenshuai.xi {
687*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL
688*53ee8cc1Swenshuai.xi )
689*53ee8cc1Swenshuai.xi {
690*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
691*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
692*53ee8cc1Swenshuai.xi {
693*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
694*53ee8cc1Swenshuai.xi return E_PNL_EX_ASPECT_RATIO_4_3;
695*53ee8cc1Swenshuai.xi }
696*53ee8cc1Swenshuai.xi }
697*53ee8cc1Swenshuai.xi
698*53ee8cc1Swenshuai.xi PanelType stPanelData;
699*53ee8cc1Swenshuai.xi stPNL_GetPanelData PNLArgs;
700*53ee8cc1Swenshuai.xi memset(&stPanelData, 0, sizeof(PanelType));
701*53ee8cc1Swenshuai.xi PNLArgs.pstPNLData = &stPanelData;
702*53ee8cc1Swenshuai.xi
703*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETPANELDATA, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
704*53ee8cc1Swenshuai.xi {
705*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
706*53ee8cc1Swenshuai.xi return E_PNL_EX_ASPECT_RATIO_4_3;
707*53ee8cc1Swenshuai.xi }
708*53ee8cc1Swenshuai.xi else
709*53ee8cc1Swenshuai.xi {
710*53ee8cc1Swenshuai.xi return ((PNL_EX_ASPECT_RATIO)stPanelData.m_ucPanelAspectRatio);
711*53ee8cc1Swenshuai.xi }
712*53ee8cc1Swenshuai.xi }
713*53ee8cc1Swenshuai.xi
_getGammaTbl(const PNL_DeviceId * pPNL_DeviceId)714*53ee8cc1Swenshuai.xi static MS_U8** _getGammaTbl(const PNL_DeviceId *pPNL_DeviceId)
715*53ee8cc1Swenshuai.xi {
716*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
717*53ee8cc1Swenshuai.xi {
718*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
719*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
720*53ee8cc1Swenshuai.xi {
721*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
722*53ee8cc1Swenshuai.xi return NULL;
723*53ee8cc1Swenshuai.xi }
724*53ee8cc1Swenshuai.xi }
725*53ee8cc1Swenshuai.xi
726*53ee8cc1Swenshuai.xi stPNL_GetAllGammaTbl PNLArgs;
727*53ee8cc1Swenshuai.xi PNLArgs.ppu8Return = NULL;
728*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETALLGAMMATBL, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
729*53ee8cc1Swenshuai.xi {
730*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
731*53ee8cc1Swenshuai.xi return NULL;
732*53ee8cc1Swenshuai.xi }
733*53ee8cc1Swenshuai.xi else
734*53ee8cc1Swenshuai.xi {
735*53ee8cc1Swenshuai.xi return PNLArgs.ppu8Return;
736*53ee8cc1Swenshuai.xi }
737*53ee8cc1Swenshuai.xi }
738*53ee8cc1Swenshuai.xi
_getOutTimingMode(const PNL_DeviceId * pPNL_DeviceId)739*53ee8cc1Swenshuai.xi static PNL_EX_OUT_TIMING_MODE _getOutTimingMode(const PNL_DeviceId *pPNL_DeviceId)
740*53ee8cc1Swenshuai.xi {
741*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL
742*53ee8cc1Swenshuai.xi )
743*53ee8cc1Swenshuai.xi {
744*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
745*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
746*53ee8cc1Swenshuai.xi {
747*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
748*53ee8cc1Swenshuai.xi return E_PNL_EX_CHG_DCLK;
749*53ee8cc1Swenshuai.xi }
750*53ee8cc1Swenshuai.xi }
751*53ee8cc1Swenshuai.xi
752*53ee8cc1Swenshuai.xi PanelType stPanelData;
753*53ee8cc1Swenshuai.xi stPNL_GetPanelData PNLArgs;
754*53ee8cc1Swenshuai.xi memset(&stPanelData, 0, sizeof(PanelType));
755*53ee8cc1Swenshuai.xi PNLArgs.pstPNLData = &stPanelData;
756*53ee8cc1Swenshuai.xi
757*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETPANELDATA, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
758*53ee8cc1Swenshuai.xi {
759*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
760*53ee8cc1Swenshuai.xi return E_PNL_EX_CHG_DCLK;
761*53ee8cc1Swenshuai.xi }
762*53ee8cc1Swenshuai.xi else
763*53ee8cc1Swenshuai.xi {
764*53ee8cc1Swenshuai.xi return ((PNL_EX_OUT_TIMING_MODE)stPanelData.m_ucOutTimingMode);
765*53ee8cc1Swenshuai.xi }
766*53ee8cc1Swenshuai.xi }
767*53ee8cc1Swenshuai.xi
_EnablePanel(const PNL_DeviceId * pPNL_DeviceId,MS_BOOL bPanelOn)768*53ee8cc1Swenshuai.xi static MS_BOOL _EnablePanel(const PNL_DeviceId *pPNL_DeviceId, MS_BOOL bPanelOn)
769*53ee8cc1Swenshuai.xi {
770*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
771*53ee8cc1Swenshuai.xi {
772*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
773*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
774*53ee8cc1Swenshuai.xi {
775*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
776*53ee8cc1Swenshuai.xi return FALSE;
777*53ee8cc1Swenshuai.xi }
778*53ee8cc1Swenshuai.xi }
779*53ee8cc1Swenshuai.xi
780*53ee8cc1Swenshuai.xi stPNL_EnablePanel PNLArgs;
781*53ee8cc1Swenshuai.xi PNLArgs.bPanelOn = bPanelOn;
782*53ee8cc1Swenshuai.xi PNLArgs.bReturn = FALSE;
783*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_ENABLEPANEL, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
784*53ee8cc1Swenshuai.xi {
785*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
786*53ee8cc1Swenshuai.xi return FALSE;
787*53ee8cc1Swenshuai.xi }
788*53ee8cc1Swenshuai.xi else
789*53ee8cc1Swenshuai.xi {
790*53ee8cc1Swenshuai.xi return PNLArgs.bReturn;
791*53ee8cc1Swenshuai.xi }
792*53ee8cc1Swenshuai.xi }
793*53ee8cc1Swenshuai.xi
_SetGammaTbl(const PNL_DeviceId * pPNL_DeviceId,PNL_EX_GAMMA_TYPE eGammaType,MS_U8 * pu8GammaTab[3],PNL_EX_GAMMA_MAPPEING_MODE Gamma_Map_Mode)794*53ee8cc1Swenshuai.xi static MS_BOOL _SetGammaTbl(const PNL_DeviceId *pPNL_DeviceId,
795*53ee8cc1Swenshuai.xi PNL_EX_GAMMA_TYPE eGammaType,
796*53ee8cc1Swenshuai.xi MS_U8* pu8GammaTab[3],
797*53ee8cc1Swenshuai.xi PNL_EX_GAMMA_MAPPEING_MODE Gamma_Map_Mode)
798*53ee8cc1Swenshuai.xi {
799*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
800*53ee8cc1Swenshuai.xi {
801*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
802*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
803*53ee8cc1Swenshuai.xi {
804*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
805*53ee8cc1Swenshuai.xi return FALSE;
806*53ee8cc1Swenshuai.xi }
807*53ee8cc1Swenshuai.xi }
808*53ee8cc1Swenshuai.xi
809*53ee8cc1Swenshuai.xi stPNL_SetGammaTbl PNLArgs;
810*53ee8cc1Swenshuai.xi PNLArgs.eGammaType = (APIPNL_GAMMA_TYPE)eGammaType;
811*53ee8cc1Swenshuai.xi PNLArgs.Gamma_Map_Mode = (APIPNL_GAMMA_MAPPEING_MODE)Gamma_Map_Mode;
812*53ee8cc1Swenshuai.xi PNLArgs.bReturn = FALSE;
813*53ee8cc1Swenshuai.xi PNLArgs.pu8GammaTab[0] = pu8GammaTab[0];
814*53ee8cc1Swenshuai.xi PNLArgs.pu8GammaTab[1] = pu8GammaTab[1];
815*53ee8cc1Swenshuai.xi PNLArgs.pu8GammaTab[2] = pu8GammaTab[2];
816*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_SETGAMMATBL, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
817*53ee8cc1Swenshuai.xi {
818*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
819*53ee8cc1Swenshuai.xi return FALSE;
820*53ee8cc1Swenshuai.xi }
821*53ee8cc1Swenshuai.xi else
822*53ee8cc1Swenshuai.xi {
823*53ee8cc1Swenshuai.xi return PNLArgs.bReturn;
824*53ee8cc1Swenshuai.xi }
825*53ee8cc1Swenshuai.xi }
826*53ee8cc1Swenshuai.xi
_GetGammaTbl(const PNL_DeviceId * pPNL_DeviceId,PNL_EX_GAMMA_TYPE eGammaType,MS_U8 * pu8GammaTab[3],PNL_EX_GAMMA_MAPPEING_MODE Gamma_Map_Mode)827*53ee8cc1Swenshuai.xi static MS_BOOL _GetGammaTbl( const PNL_DeviceId *pPNL_DeviceId,
828*53ee8cc1Swenshuai.xi PNL_EX_GAMMA_TYPE eGammaType,
829*53ee8cc1Swenshuai.xi MS_U8* pu8GammaTab[3],
830*53ee8cc1Swenshuai.xi PNL_EX_GAMMA_MAPPEING_MODE Gamma_Map_Mode)
831*53ee8cc1Swenshuai.xi {
832*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
833*53ee8cc1Swenshuai.xi {
834*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
835*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
836*53ee8cc1Swenshuai.xi {
837*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
838*53ee8cc1Swenshuai.xi return FALSE;
839*53ee8cc1Swenshuai.xi }
840*53ee8cc1Swenshuai.xi }
841*53ee8cc1Swenshuai.xi
842*53ee8cc1Swenshuai.xi stPNL_GetGammaTbl PNLArgs;
843*53ee8cc1Swenshuai.xi PNLArgs.eGammaType = (APIPNL_GAMMA_TYPE)eGammaType;
844*53ee8cc1Swenshuai.xi PNLArgs.Gamma_Map_Mode = (APIPNL_GAMMA_MAPPEING_MODE)Gamma_Map_Mode;
845*53ee8cc1Swenshuai.xi PNLArgs.bReturn = FALSE;
846*53ee8cc1Swenshuai.xi PNLArgs.pu8GammaTab[0] = pu8GammaTab[0];
847*53ee8cc1Swenshuai.xi PNLArgs.pu8GammaTab[1] = pu8GammaTab[1];
848*53ee8cc1Swenshuai.xi PNLArgs.pu8GammaTab[2] = pu8GammaTab[2];
849*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETGAMMATBL, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
850*53ee8cc1Swenshuai.xi {
851*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
852*53ee8cc1Swenshuai.xi return FALSE;
853*53ee8cc1Swenshuai.xi }
854*53ee8cc1Swenshuai.xi else
855*53ee8cc1Swenshuai.xi {
856*53ee8cc1Swenshuai.xi return PNLArgs.bReturn;
857*53ee8cc1Swenshuai.xi }
858*53ee8cc1Swenshuai.xi }
859*53ee8cc1Swenshuai.xi
_SetGammaValue(const PNL_DeviceId * pPNL_DeviceId,MS_U8 u8Channel,MS_U16 u16Offset,MS_U16 u16GammaValue)860*53ee8cc1Swenshuai.xi static MS_BOOL _SetGammaValue(const PNL_DeviceId *pPNL_DeviceId, MS_U8 u8Channel, MS_U16 u16Offset, MS_U16 u16GammaValue)
861*53ee8cc1Swenshuai.xi {
862*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
863*53ee8cc1Swenshuai.xi {
864*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
865*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
866*53ee8cc1Swenshuai.xi {
867*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
868*53ee8cc1Swenshuai.xi return FALSE;
869*53ee8cc1Swenshuai.xi }
870*53ee8cc1Swenshuai.xi }
871*53ee8cc1Swenshuai.xi
872*53ee8cc1Swenshuai.xi stPNL_SetGammaValue PNLArgs;
873*53ee8cc1Swenshuai.xi PNLArgs.u8Channel = u8Channel;
874*53ee8cc1Swenshuai.xi PNLArgs.u16Offset = u16Offset;
875*53ee8cc1Swenshuai.xi PNLArgs.u16GammaValue = u16GammaValue;
876*53ee8cc1Swenshuai.xi PNLArgs.bReturn = FALSE;
877*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_SETGAMMAVALUE, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
878*53ee8cc1Swenshuai.xi {
879*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
880*53ee8cc1Swenshuai.xi return FALSE;
881*53ee8cc1Swenshuai.xi }
882*53ee8cc1Swenshuai.xi else
883*53ee8cc1Swenshuai.xi {
884*53ee8cc1Swenshuai.xi return PNLArgs.bReturn;
885*53ee8cc1Swenshuai.xi }
886*53ee8cc1Swenshuai.xi }
887*53ee8cc1Swenshuai.xi
888*53ee8cc1Swenshuai.xi XC_PNL_EX_OBJ g_IPanelEx =
889*53ee8cc1Swenshuai.xi {
890*53ee8cc1Swenshuai.xi //
891*53ee8cc1Swenshuai.xi // Data
892*53ee8cc1Swenshuai.xi //
893*53ee8cc1Swenshuai.xi .Name = _getPanelName,
894*53ee8cc1Swenshuai.xi .HStart = _getPanelHstart,
895*53ee8cc1Swenshuai.xi .VStart = _getPanelVstart,
896*53ee8cc1Swenshuai.xi .Width = _getPanelWidth,
897*53ee8cc1Swenshuai.xi .Height = _getPanelHeight,
898*53ee8cc1Swenshuai.xi .HTotal = _getPanelhtotal,
899*53ee8cc1Swenshuai.xi .VTotal = _getPanelVtotal,
900*53ee8cc1Swenshuai.xi .HSynWidth = _getPanelHSyncWidth,
901*53ee8cc1Swenshuai.xi .HSynBackPorch = _getPanelHSyncBackPorch,
902*53ee8cc1Swenshuai.xi .VSynBackPorch = _getPanelVSyncBackPorch,
903*53ee8cc1Swenshuai.xi .DefaultVFreq = _getPanelDefVFreq,
904*53ee8cc1Swenshuai.xi .LPLL_Mode = _getPanel_LPLL_Mode, /* 0: single, 1: dual mode */
905*53ee8cc1Swenshuai.xi .LPLL_Type = _getPanel_LPLL_Type,
906*53ee8cc1Swenshuai.xi .AspectRatio = _getPanel_ARC,
907*53ee8cc1Swenshuai.xi .MinSET = _getPanelMinSET,
908*53ee8cc1Swenshuai.xi .MaxSET = _getPanelMaxSET,
909*53ee8cc1Swenshuai.xi .OutTimingMode = _getOutTimingMode,
910*53ee8cc1Swenshuai.xi // Manipulation
911*53ee8cc1Swenshuai.xi //
912*53ee8cc1Swenshuai.xi .SetSSC = _SetSSC,
913*53ee8cc1Swenshuai.xi .Enable = _EnablePanel,
914*53ee8cc1Swenshuai.xi .SetGammaTbl = _SetGammaTbl,
915*53ee8cc1Swenshuai.xi .GammaTab = _getGammaTbl,
916*53ee8cc1Swenshuai.xi .Dump = _MApi_XC_DumpPanelData,
917*53ee8cc1Swenshuai.xi .DimCtrl = _getPanelDimCTRL,
918*53ee8cc1Swenshuai.xi .OnTiming = _getPanelOnTiming,
919*53ee8cc1Swenshuai.xi .OffTiming = _getPanelOffTiming,
920*53ee8cc1Swenshuai.xi //
921*53ee8cc1Swenshuai.xi // Custimized methods, can be provided by clinets.
922*53ee8cc1Swenshuai.xi //
923*53ee8cc1Swenshuai.xi .TurnBackLightOn = _EmptyMethod,
924*53ee8cc1Swenshuai.xi .SetGammaValue = _SetGammaValue,
925*53ee8cc1Swenshuai.xi .GetGammaTbl = _GetGammaTbl,
926*53ee8cc1Swenshuai.xi };
927*53ee8cc1Swenshuai.xi
928*53ee8cc1Swenshuai.xi /******************************************************************************/
929*53ee8cc1Swenshuai.xi // Public function
930*53ee8cc1Swenshuai.xi //
931*53ee8cc1Swenshuai.xi /******************************************************************************/
932*53ee8cc1Swenshuai.xi
933*53ee8cc1Swenshuai.xi
934*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
935*53ee8cc1Swenshuai.xi /// @brief Get the version of apiPNL lib, (without Mutex protect)
936*53ee8cc1Swenshuai.xi /// @param[out] ppVersion \b output apiPNL lib version
937*53ee8cc1Swenshuai.xi /// @return @ref APIPNL_Result
938*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
MApi_PNL_EX_GetLibVer(const MSIF_Version ** ppVersion)939*53ee8cc1Swenshuai.xi PNL_EX_Result MApi_PNL_EX_GetLibVer(const MSIF_Version **ppVersion)
940*53ee8cc1Swenshuai.xi {
941*53ee8cc1Swenshuai.xi if(pu32PNLInst == NULL)
942*53ee8cc1Swenshuai.xi {
943*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, &pu32PNLInst, 0, NULL) != UTOPIA_STATUS_SUCCESS)
944*53ee8cc1Swenshuai.xi {
945*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
946*53ee8cc1Swenshuai.xi return E_PNL_EX_FAIL;
947*53ee8cc1Swenshuai.xi }
948*53ee8cc1Swenshuai.xi }
949*53ee8cc1Swenshuai.xi
950*53ee8cc1Swenshuai.xi stPNL_GetLibVer PNLArgs;
951*53ee8cc1Swenshuai.xi PNLArgs.ppVersion = ppVersion;
952*53ee8cc1Swenshuai.xi PNLArgs.eResult = E_APIPNL_FAIL;
953*53ee8cc1Swenshuai.xi if(UtopiaIoctl(pu32PNLInst, E_PNL_CMD_GETLIBVER, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
954*53ee8cc1Swenshuai.xi {
955*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
956*53ee8cc1Swenshuai.xi return E_PNL_EX_FAIL;
957*53ee8cc1Swenshuai.xi }
958*53ee8cc1Swenshuai.xi else
959*53ee8cc1Swenshuai.xi {
960*53ee8cc1Swenshuai.xi return (PNL_EX_Result)PNLArgs.eResult;
961*53ee8cc1Swenshuai.xi }
962*53ee8cc1Swenshuai.xi }
963*53ee8cc1Swenshuai.xi
MApi_PNL_EX_GetInfo(const PNL_DeviceId * pPNL_DeviceId)964*53ee8cc1Swenshuai.xi const PNL_EX_ApiInfo * MApi_PNL_EX_GetInfo(const PNL_DeviceId *pPNL_DeviceId) ///< Get info from driver
965*53ee8cc1Swenshuai.xi {
966*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
967*53ee8cc1Swenshuai.xi {
968*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
969*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
970*53ee8cc1Swenshuai.xi {
971*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
972*53ee8cc1Swenshuai.xi return NULL;
973*53ee8cc1Swenshuai.xi }
974*53ee8cc1Swenshuai.xi }
975*53ee8cc1Swenshuai.xi
976*53ee8cc1Swenshuai.xi stPNL_GetInfo PNLArgs;
977*53ee8cc1Swenshuai.xi PNLArgs.pApiInfo = NULL;
978*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETINFO, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
979*53ee8cc1Swenshuai.xi {
980*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
981*53ee8cc1Swenshuai.xi return NULL;
982*53ee8cc1Swenshuai.xi }
983*53ee8cc1Swenshuai.xi else
984*53ee8cc1Swenshuai.xi {
985*53ee8cc1Swenshuai.xi return (PNL_EX_ApiInfo*)PNLArgs.pApiInfo;
986*53ee8cc1Swenshuai.xi }
987*53ee8cc1Swenshuai.xi }
988*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
989*53ee8cc1Swenshuai.xi /// @brief Extended API of getting current panel status
990*53ee8cc1Swenshuai.xi /// @param[in] pPnlExtStatus @ref PNL_ApiExtStatus
991*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
MApi_PNL_EX_GetStatusEx(const PNL_DeviceId * pPNL_DeviceId,PNL_EX_ApiExtStatus * pPnlExtStatus)992*53ee8cc1Swenshuai.xi MS_BOOL MApi_PNL_EX_GetStatusEx(const PNL_DeviceId *pPNL_DeviceId, PNL_EX_ApiExtStatus *pPnlExtStatus)
993*53ee8cc1Swenshuai.xi {
994*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
995*53ee8cc1Swenshuai.xi {
996*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
997*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
998*53ee8cc1Swenshuai.xi {
999*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1000*53ee8cc1Swenshuai.xi return FALSE;
1001*53ee8cc1Swenshuai.xi }
1002*53ee8cc1Swenshuai.xi }
1003*53ee8cc1Swenshuai.xi
1004*53ee8cc1Swenshuai.xi stPNL_GetStatusEx PNLArgs;
1005*53ee8cc1Swenshuai.xi PNLArgs.pPnlExtStatus = (PNL_ApiExtStatus*)pPnlExtStatus;
1006*53ee8cc1Swenshuai.xi PNLArgs.bReturn = FALSE;
1007*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETSTATUSEX, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1008*53ee8cc1Swenshuai.xi {
1009*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1010*53ee8cc1Swenshuai.xi return FALSE;
1011*53ee8cc1Swenshuai.xi }
1012*53ee8cc1Swenshuai.xi else
1013*53ee8cc1Swenshuai.xi {
1014*53ee8cc1Swenshuai.xi return PNLArgs.bReturn;
1015*53ee8cc1Swenshuai.xi }
1016*53ee8cc1Swenshuai.xi }
1017*53ee8cc1Swenshuai.xi
1018*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
1019*53ee8cc1Swenshuai.xi /// @brief Get current panel status
1020*53ee8cc1Swenshuai.xi /// @param[in] pPnlStatus @ref PNL_ApiStatus
1021*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
MApi_PNL_EX_GetStatus(const PNL_DeviceId * pPNL_DeviceId,PNL_EX_ApiStatus * pPnlStatus)1022*53ee8cc1Swenshuai.xi MS_BOOL MApi_PNL_EX_GetStatus(const PNL_DeviceId *pPNL_DeviceId, PNL_EX_ApiStatus *pPnlStatus)
1023*53ee8cc1Swenshuai.xi {
1024*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1025*53ee8cc1Swenshuai.xi {
1026*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1027*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1028*53ee8cc1Swenshuai.xi {
1029*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1030*53ee8cc1Swenshuai.xi return FALSE;
1031*53ee8cc1Swenshuai.xi }
1032*53ee8cc1Swenshuai.xi }
1033*53ee8cc1Swenshuai.xi
1034*53ee8cc1Swenshuai.xi stPNL_GetStatus PNLArgs;
1035*53ee8cc1Swenshuai.xi PNLArgs.pPnlStatus = (PNL_ApiStatus*)pPnlStatus;
1036*53ee8cc1Swenshuai.xi PNLArgs.bReturn = FALSE;
1037*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETSTATUS, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1038*53ee8cc1Swenshuai.xi {
1039*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1040*53ee8cc1Swenshuai.xi return FALSE;
1041*53ee8cc1Swenshuai.xi }
1042*53ee8cc1Swenshuai.xi else
1043*53ee8cc1Swenshuai.xi {
1044*53ee8cc1Swenshuai.xi return PNLArgs.bReturn;
1045*53ee8cc1Swenshuai.xi }
1046*53ee8cc1Swenshuai.xi }
1047*53ee8cc1Swenshuai.xi
1048*53ee8cc1Swenshuai.xi /// Set debug level (without Mutex protect)
MApi_PNL_EX_SetDbgLevel(MS_U16 u16DbgSwitch)1049*53ee8cc1Swenshuai.xi MS_BOOL MApi_PNL_EX_SetDbgLevel(MS_U16 u16DbgSwitch)
1050*53ee8cc1Swenshuai.xi {
1051*53ee8cc1Swenshuai.xi if(pu32PNLInst == NULL)
1052*53ee8cc1Swenshuai.xi {
1053*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, &pu32PNLInst, 0, NULL) != UTOPIA_STATUS_SUCCESS)
1054*53ee8cc1Swenshuai.xi {
1055*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1056*53ee8cc1Swenshuai.xi return FALSE;
1057*53ee8cc1Swenshuai.xi }
1058*53ee8cc1Swenshuai.xi }
1059*53ee8cc1Swenshuai.xi
1060*53ee8cc1Swenshuai.xi stPNL_SetDbgLevel PNLArgs;
1061*53ee8cc1Swenshuai.xi PNLArgs.u16DbgSwitch = u16DbgSwitch;
1062*53ee8cc1Swenshuai.xi PNLArgs.bReturn = FALSE;
1063*53ee8cc1Swenshuai.xi if(UtopiaIoctl(pu32PNLInst, E_PNL_CMD_SETDBGLEVEL, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1064*53ee8cc1Swenshuai.xi {
1065*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1066*53ee8cc1Swenshuai.xi return FALSE;
1067*53ee8cc1Swenshuai.xi }
1068*53ee8cc1Swenshuai.xi else
1069*53ee8cc1Swenshuai.xi {
1070*53ee8cc1Swenshuai.xi return PNLArgs.bReturn;
1071*53ee8cc1Swenshuai.xi }
1072*53ee8cc1Swenshuai.xi }
1073*53ee8cc1Swenshuai.xi
MApi_PNL_EX_IOMapBaseInit(const PNL_DeviceId * pPNL_DeviceId)1074*53ee8cc1Swenshuai.xi MS_BOOL MApi_PNL_EX_IOMapBaseInit(const PNL_DeviceId *pPNL_DeviceId)
1075*53ee8cc1Swenshuai.xi {
1076*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1077*53ee8cc1Swenshuai.xi {
1078*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1079*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1080*53ee8cc1Swenshuai.xi {
1081*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1082*53ee8cc1Swenshuai.xi return FALSE;
1083*53ee8cc1Swenshuai.xi }
1084*53ee8cc1Swenshuai.xi }
1085*53ee8cc1Swenshuai.xi
1086*53ee8cc1Swenshuai.xi stPNL_IOMapBaseInit PNLArgs;
1087*53ee8cc1Swenshuai.xi PNLArgs.bReturn = FALSE;
1088*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_IOMAPBASEINIT, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1089*53ee8cc1Swenshuai.xi {
1090*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1091*53ee8cc1Swenshuai.xi return FALSE;
1092*53ee8cc1Swenshuai.xi }
1093*53ee8cc1Swenshuai.xi else
1094*53ee8cc1Swenshuai.xi {
1095*53ee8cc1Swenshuai.xi return PNLArgs.bReturn;
1096*53ee8cc1Swenshuai.xi }
1097*53ee8cc1Swenshuai.xi }
1098*53ee8cc1Swenshuai.xi
1099*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////
1100*53ee8cc1Swenshuai.xi /**
1101*53ee8cc1Swenshuai.xi *
1102*53ee8cc1Swenshuai.xi * @brief Give some options for panel init.
1103*53ee8cc1Swenshuai.xi *
1104*53ee8cc1Swenshuai.xi * @param[in] pSelPanelType a given panel type choosed by user.
1105*53ee8cc1Swenshuai.xi *
1106*53ee8cc1Swenshuai.xi */
MApi_PNL_EX_PreInit(const PNL_DeviceId * pPNL_DeviceId,PNL_EX_PREINIT_OPTIONS eInitParam)1107*53ee8cc1Swenshuai.xi MS_BOOL MApi_PNL_EX_PreInit(const PNL_DeviceId *pPNL_DeviceId, PNL_EX_PREINIT_OPTIONS eInitParam)
1108*53ee8cc1Swenshuai.xi {
1109*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1110*53ee8cc1Swenshuai.xi {
1111*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1112*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1113*53ee8cc1Swenshuai.xi {
1114*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1115*53ee8cc1Swenshuai.xi return FALSE;
1116*53ee8cc1Swenshuai.xi }
1117*53ee8cc1Swenshuai.xi }
1118*53ee8cc1Swenshuai.xi
1119*53ee8cc1Swenshuai.xi stPNL_PreInit PNLArgs;
1120*53ee8cc1Swenshuai.xi PNLArgs.eInitParam = (E_PNL_PREINIT_OPTIONS)eInitParam;
1121*53ee8cc1Swenshuai.xi PNLArgs.bReturn = FALSE;
1122*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_PREINIT, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1123*53ee8cc1Swenshuai.xi {
1124*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1125*53ee8cc1Swenshuai.xi return FALSE;
1126*53ee8cc1Swenshuai.xi }
1127*53ee8cc1Swenshuai.xi else
1128*53ee8cc1Swenshuai.xi {
1129*53ee8cc1Swenshuai.xi return PNLArgs.bReturn;
1130*53ee8cc1Swenshuai.xi }
1131*53ee8cc1Swenshuai.xi }
1132*53ee8cc1Swenshuai.xi
1133*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////
1134*53ee8cc1Swenshuai.xi /**
1135*53ee8cc1Swenshuai.xi *
1136*53ee8cc1Swenshuai.xi * @brief Initialize the global panel object with a given PanelType
1137*53ee8cc1Swenshuai.xi *
1138*53ee8cc1Swenshuai.xi * @param[in] pSelPanelType a given panel type choosed by user.
1139*53ee8cc1Swenshuai.xi *
1140*53ee8cc1Swenshuai.xi */
MApi_PNL_EX_Init(const PNL_DeviceId * pPNL_DeviceId,PNL_EX_PanelType * pSelPanelType)1141*53ee8cc1Swenshuai.xi MS_BOOL MApi_PNL_EX_Init(const PNL_DeviceId *pPNL_DeviceId, PNL_EX_PanelType *pSelPanelType/* <in > */)
1142*53ee8cc1Swenshuai.xi {
1143*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1144*53ee8cc1Swenshuai.xi {
1145*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1146*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1147*53ee8cc1Swenshuai.xi {
1148*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1149*53ee8cc1Swenshuai.xi return FALSE;
1150*53ee8cc1Swenshuai.xi }
1151*53ee8cc1Swenshuai.xi }
1152*53ee8cc1Swenshuai.xi
1153*53ee8cc1Swenshuai.xi stPNL_Init PNLArgs;
1154*53ee8cc1Swenshuai.xi PNLArgs.pSelPanelType = (PanelType*)pSelPanelType;
1155*53ee8cc1Swenshuai.xi PNLArgs.bReturn = FALSE;
1156*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_INIT, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1157*53ee8cc1Swenshuai.xi {
1158*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1159*53ee8cc1Swenshuai.xi return FALSE;
1160*53ee8cc1Swenshuai.xi }
1161*53ee8cc1Swenshuai.xi else
1162*53ee8cc1Swenshuai.xi {
1163*53ee8cc1Swenshuai.xi return PNLArgs.bReturn;
1164*53ee8cc1Swenshuai.xi }
1165*53ee8cc1Swenshuai.xi }
1166*53ee8cc1Swenshuai.xi
1167*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////
1168*53ee8cc1Swenshuai.xi //
1169*53ee8cc1Swenshuai.xi //
1170*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////
MApi_PNL_EX_Init_Ex(const PNL_DeviceId * pPNL_DeviceId,PNL_EX_PanelType * pSelPanelType,MSIF_Version LIBVER)1171*53ee8cc1Swenshuai.xi MS_BOOL MApi_PNL_EX_Init_Ex(const PNL_DeviceId *pPNL_DeviceId, PNL_EX_PanelType *pSelPanelType/* <in > */, MSIF_Version LIBVER)
1172*53ee8cc1Swenshuai.xi {
1173*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1174*53ee8cc1Swenshuai.xi {
1175*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1176*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1177*53ee8cc1Swenshuai.xi {
1178*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1179*53ee8cc1Swenshuai.xi return FALSE;
1180*53ee8cc1Swenshuai.xi }
1181*53ee8cc1Swenshuai.xi }
1182*53ee8cc1Swenshuai.xi
1183*53ee8cc1Swenshuai.xi stPNL_Init_Ex PNLArgs;
1184*53ee8cc1Swenshuai.xi PNLArgs.pSelPanelType = (PanelType*)pSelPanelType;
1185*53ee8cc1Swenshuai.xi PNLArgs.LIBVER = LIBVER;
1186*53ee8cc1Swenshuai.xi PNLArgs.bReturn = FALSE;
1187*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_INIT_EX, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1188*53ee8cc1Swenshuai.xi {
1189*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1190*53ee8cc1Swenshuai.xi return FALSE;
1191*53ee8cc1Swenshuai.xi }
1192*53ee8cc1Swenshuai.xi else
1193*53ee8cc1Swenshuai.xi {
1194*53ee8cc1Swenshuai.xi return PNLArgs.bReturn;
1195*53ee8cc1Swenshuai.xi }
1196*53ee8cc1Swenshuai.xi }
1197*53ee8cc1Swenshuai.xi
MApi_PNL_EX_GetConfig(const PNL_DeviceId * pPNL_DeviceId,PNL_EX_PanelType * pSelPanelType)1198*53ee8cc1Swenshuai.xi PNL_EX_Result MApi_PNL_EX_GetConfig(const PNL_DeviceId *pPNL_DeviceId, PNL_EX_PanelType *pSelPanelType)
1199*53ee8cc1Swenshuai.xi {
1200*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1201*53ee8cc1Swenshuai.xi {
1202*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1203*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1204*53ee8cc1Swenshuai.xi {
1205*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1206*53ee8cc1Swenshuai.xi return E_PNL_EX_FAIL;
1207*53ee8cc1Swenshuai.xi }
1208*53ee8cc1Swenshuai.xi }
1209*53ee8cc1Swenshuai.xi stPNL_GetConfig PNLArgs;
1210*53ee8cc1Swenshuai.xi PNLArgs.pSelPanelType = (PanelType*)pSelPanelType;
1211*53ee8cc1Swenshuai.xi PNLArgs.eReturn = E_APIPNL_FAIL;
1212*53ee8cc1Swenshuai.xi
1213*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GET_CONFIG, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1214*53ee8cc1Swenshuai.xi {
1215*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1216*53ee8cc1Swenshuai.xi return E_PNL_EX_FAIL;
1217*53ee8cc1Swenshuai.xi }
1218*53ee8cc1Swenshuai.xi else
1219*53ee8cc1Swenshuai.xi {
1220*53ee8cc1Swenshuai.xi return (PNL_EX_Result)PNLArgs.eReturn;
1221*53ee8cc1Swenshuai.xi }
1222*53ee8cc1Swenshuai.xi }
1223*53ee8cc1Swenshuai.xi
MApi_PNL_EX_Control_Out_Swing(const PNL_DeviceId * pPNL_DeviceId,MS_U16 u16Swing_Level)1224*53ee8cc1Swenshuai.xi MS_BOOL MApi_PNL_EX_Control_Out_Swing(const PNL_DeviceId *pPNL_DeviceId, MS_U16 u16Swing_Level)
1225*53ee8cc1Swenshuai.xi {
1226*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1227*53ee8cc1Swenshuai.xi {
1228*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1229*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1230*53ee8cc1Swenshuai.xi {
1231*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1232*53ee8cc1Swenshuai.xi return FALSE;
1233*53ee8cc1Swenshuai.xi }
1234*53ee8cc1Swenshuai.xi }
1235*53ee8cc1Swenshuai.xi
1236*53ee8cc1Swenshuai.xi stPNL_Control_Out_Swing PNLArgs;
1237*53ee8cc1Swenshuai.xi PNLArgs.u16Swing_Level = u16Swing_Level;
1238*53ee8cc1Swenshuai.xi PNLArgs.bReturn = FALSE;
1239*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_CONTROL_OUT_SWING, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1240*53ee8cc1Swenshuai.xi {
1241*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1242*53ee8cc1Swenshuai.xi return FALSE;
1243*53ee8cc1Swenshuai.xi }
1244*53ee8cc1Swenshuai.xi else
1245*53ee8cc1Swenshuai.xi {
1246*53ee8cc1Swenshuai.xi return PNLArgs.bReturn;
1247*53ee8cc1Swenshuai.xi }
1248*53ee8cc1Swenshuai.xi }
1249*53ee8cc1Swenshuai.xi
MApi_PNL_EX_ForceSetPanelDCLK(const PNL_DeviceId * pPNL_DeviceId,MS_U16 u16PanelDCLK,MS_BOOL bSetDCLKEnable)1250*53ee8cc1Swenshuai.xi MS_BOOL MApi_PNL_EX_ForceSetPanelDCLK(const PNL_DeviceId *pPNL_DeviceId, MS_U16 u16PanelDCLK ,MS_BOOL bSetDCLKEnable )
1251*53ee8cc1Swenshuai.xi {
1252*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1253*53ee8cc1Swenshuai.xi {
1254*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1255*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1256*53ee8cc1Swenshuai.xi {
1257*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1258*53ee8cc1Swenshuai.xi return FALSE;
1259*53ee8cc1Swenshuai.xi }
1260*53ee8cc1Swenshuai.xi }
1261*53ee8cc1Swenshuai.xi
1262*53ee8cc1Swenshuai.xi stPNL_ForceSetPanelDCLK PNLArgs;
1263*53ee8cc1Swenshuai.xi PNLArgs.u16PanelDCLK = u16PanelDCLK;
1264*53ee8cc1Swenshuai.xi PNLArgs.bSetDCLKEnable = bSetDCLKEnable;
1265*53ee8cc1Swenshuai.xi PNLArgs.bReturn = FALSE;
1266*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_FORCESETPANELDCLK, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1267*53ee8cc1Swenshuai.xi {
1268*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1269*53ee8cc1Swenshuai.xi return FALSE;
1270*53ee8cc1Swenshuai.xi }
1271*53ee8cc1Swenshuai.xi else
1272*53ee8cc1Swenshuai.xi {
1273*53ee8cc1Swenshuai.xi return PNLArgs.bReturn;
1274*53ee8cc1Swenshuai.xi }
1275*53ee8cc1Swenshuai.xi }
1276*53ee8cc1Swenshuai.xi
MApi_PNL_EX_ForceSetPanelHStart(const PNL_DeviceId * pPNL_DeviceId,MS_U16 u16PanelHStart,MS_BOOL bSetHStartEnable)1277*53ee8cc1Swenshuai.xi MS_BOOL MApi_PNL_EX_ForceSetPanelHStart(const PNL_DeviceId *pPNL_DeviceId, MS_U16 u16PanelHStart ,MS_BOOL bSetHStartEnable)
1278*53ee8cc1Swenshuai.xi {
1279*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1280*53ee8cc1Swenshuai.xi {
1281*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1282*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1283*53ee8cc1Swenshuai.xi {
1284*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1285*53ee8cc1Swenshuai.xi return FALSE;
1286*53ee8cc1Swenshuai.xi }
1287*53ee8cc1Swenshuai.xi }
1288*53ee8cc1Swenshuai.xi
1289*53ee8cc1Swenshuai.xi stPNL_ForceSetPanelHStart PNLArgs;
1290*53ee8cc1Swenshuai.xi PNLArgs.u16PanelHStart = u16PanelHStart;
1291*53ee8cc1Swenshuai.xi PNLArgs.bSetHStartEnable = bSetHStartEnable;
1292*53ee8cc1Swenshuai.xi PNLArgs.bReturn = FALSE;
1293*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_FORCESETPANELHSTART, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1294*53ee8cc1Swenshuai.xi {
1295*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1296*53ee8cc1Swenshuai.xi return FALSE;
1297*53ee8cc1Swenshuai.xi }
1298*53ee8cc1Swenshuai.xi else
1299*53ee8cc1Swenshuai.xi {
1300*53ee8cc1Swenshuai.xi return PNLArgs.bReturn;
1301*53ee8cc1Swenshuai.xi }
1302*53ee8cc1Swenshuai.xi }
1303*53ee8cc1Swenshuai.xi
MApi_PNL_EX_SetOutput(const PNL_DeviceId * pPNL_DeviceId,PNL_EX_OUTPUT_MODE eOutputMode)1304*53ee8cc1Swenshuai.xi void MApi_PNL_EX_SetOutput(const PNL_DeviceId *pPNL_DeviceId, PNL_EX_OUTPUT_MODE eOutputMode)
1305*53ee8cc1Swenshuai.xi {
1306*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1307*53ee8cc1Swenshuai.xi {
1308*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1309*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1310*53ee8cc1Swenshuai.xi {
1311*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1312*53ee8cc1Swenshuai.xi return;
1313*53ee8cc1Swenshuai.xi }
1314*53ee8cc1Swenshuai.xi }
1315*53ee8cc1Swenshuai.xi
1316*53ee8cc1Swenshuai.xi stPNL_SetOutput PNLArgs;
1317*53ee8cc1Swenshuai.xi PNLArgs.eOutputMode = (APIPNL_OUTPUT_MODE)eOutputMode;
1318*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_SETOUTPUT, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1319*53ee8cc1Swenshuai.xi {
1320*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1321*53ee8cc1Swenshuai.xi }
1322*53ee8cc1Swenshuai.xi }
1323*53ee8cc1Swenshuai.xi
MApi_PNL_EX_ChangePanelType(const PNL_DeviceId * pPNL_DeviceId,PNL_EX_PanelType * pSelPanelType)1324*53ee8cc1Swenshuai.xi MS_BOOL MApi_PNL_EX_ChangePanelType(const PNL_DeviceId *pPNL_DeviceId, PNL_EX_PanelType *pSelPanelType)
1325*53ee8cc1Swenshuai.xi {
1326*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1327*53ee8cc1Swenshuai.xi {
1328*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1329*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1330*53ee8cc1Swenshuai.xi {
1331*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1332*53ee8cc1Swenshuai.xi return FALSE;
1333*53ee8cc1Swenshuai.xi }
1334*53ee8cc1Swenshuai.xi }
1335*53ee8cc1Swenshuai.xi
1336*53ee8cc1Swenshuai.xi stPNL_ChangePanelType PNLArgs;
1337*53ee8cc1Swenshuai.xi PNLArgs.pSelPanelType = (PanelType*)pSelPanelType;
1338*53ee8cc1Swenshuai.xi PNLArgs.bReturn = FALSE;
1339*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_CHANGEPANELTYPE, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1340*53ee8cc1Swenshuai.xi {
1341*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1342*53ee8cc1Swenshuai.xi return FALSE;
1343*53ee8cc1Swenshuai.xi }
1344*53ee8cc1Swenshuai.xi else
1345*53ee8cc1Swenshuai.xi {
1346*53ee8cc1Swenshuai.xi return PNLArgs.bReturn;
1347*53ee8cc1Swenshuai.xi }
1348*53ee8cc1Swenshuai.xi }
1349*53ee8cc1Swenshuai.xi
MApi_PNL_EX_TCONMAP_DumpTable(const PNL_DeviceId * pPNL_DeviceId,MS_U8 * pTCONTable,MS_U8 u8Tcontype)1350*53ee8cc1Swenshuai.xi MS_BOOL MApi_PNL_EX_TCONMAP_DumpTable(const PNL_DeviceId *pPNL_DeviceId, MS_U8 *pTCONTable, MS_U8 u8Tcontype)
1351*53ee8cc1Swenshuai.xi {
1352*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1353*53ee8cc1Swenshuai.xi {
1354*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1355*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1356*53ee8cc1Swenshuai.xi {
1357*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1358*53ee8cc1Swenshuai.xi return FALSE;
1359*53ee8cc1Swenshuai.xi }
1360*53ee8cc1Swenshuai.xi }
1361*53ee8cc1Swenshuai.xi
1362*53ee8cc1Swenshuai.xi stPNL_TCONMAP_DumpTable PNLArgs;
1363*53ee8cc1Swenshuai.xi PNLArgs.pTCONTable = pTCONTable;
1364*53ee8cc1Swenshuai.xi PNLArgs.u8Tcontype = u8Tcontype;
1365*53ee8cc1Swenshuai.xi PNLArgs.bReturn = FALSE;
1366*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_TCONMAP_DUMPTABLE, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1367*53ee8cc1Swenshuai.xi {
1368*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1369*53ee8cc1Swenshuai.xi return FALSE;
1370*53ee8cc1Swenshuai.xi }
1371*53ee8cc1Swenshuai.xi else
1372*53ee8cc1Swenshuai.xi {
1373*53ee8cc1Swenshuai.xi return PNLArgs.bReturn;
1374*53ee8cc1Swenshuai.xi }
1375*53ee8cc1Swenshuai.xi }
1376*53ee8cc1Swenshuai.xi
MApi_PNL_EX_TCONMAP_Power_Sequence(const PNL_DeviceId * pPNL_DeviceId,MS_U8 * pTCONTable,MS_BOOL bEnable)1377*53ee8cc1Swenshuai.xi MS_BOOL MApi_PNL_EX_TCONMAP_Power_Sequence(const PNL_DeviceId *pPNL_DeviceId, MS_U8 *pTCONTable, MS_BOOL bEnable)
1378*53ee8cc1Swenshuai.xi {
1379*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1380*53ee8cc1Swenshuai.xi {
1381*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1382*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1383*53ee8cc1Swenshuai.xi {
1384*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1385*53ee8cc1Swenshuai.xi return FALSE;
1386*53ee8cc1Swenshuai.xi }
1387*53ee8cc1Swenshuai.xi }
1388*53ee8cc1Swenshuai.xi
1389*53ee8cc1Swenshuai.xi stPNL_TCONMAP_Power_Sequence PNLArgs;
1390*53ee8cc1Swenshuai.xi PNLArgs.pTCONTable = pTCONTable;
1391*53ee8cc1Swenshuai.xi PNLArgs.bEnable = bEnable;
1392*53ee8cc1Swenshuai.xi PNLArgs.bReturn = FALSE;
1393*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_TCONMAP_POWER_SEQUENCE, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1394*53ee8cc1Swenshuai.xi {
1395*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1396*53ee8cc1Swenshuai.xi return FALSE;
1397*53ee8cc1Swenshuai.xi }
1398*53ee8cc1Swenshuai.xi else
1399*53ee8cc1Swenshuai.xi {
1400*53ee8cc1Swenshuai.xi return PNLArgs.bReturn;
1401*53ee8cc1Swenshuai.xi }
1402*53ee8cc1Swenshuai.xi }
1403*53ee8cc1Swenshuai.xi
MApi_PNL_EX_SetOutputPattern(const PNL_DeviceId * pPNL_DeviceId,MS_BOOL bEnable,MS_U16 u16Red,MS_U16 u16Green,MS_U16 u16Blue)1404*53ee8cc1Swenshuai.xi void MApi_PNL_EX_SetOutputPattern(const PNL_DeviceId *pPNL_DeviceId, MS_BOOL bEnable, MS_U16 u16Red , MS_U16 u16Green, MS_U16 u16Blue)
1405*53ee8cc1Swenshuai.xi {
1406*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1407*53ee8cc1Swenshuai.xi {
1408*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1409*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1410*53ee8cc1Swenshuai.xi {
1411*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1412*53ee8cc1Swenshuai.xi return;
1413*53ee8cc1Swenshuai.xi }
1414*53ee8cc1Swenshuai.xi }
1415*53ee8cc1Swenshuai.xi
1416*53ee8cc1Swenshuai.xi stPNL_SetOutputPattern PNLArgs;
1417*53ee8cc1Swenshuai.xi PNLArgs.bEnable = bEnable;
1418*53ee8cc1Swenshuai.xi PNLArgs.u16Red = u16Red;
1419*53ee8cc1Swenshuai.xi PNLArgs.u16Green = u16Green;
1420*53ee8cc1Swenshuai.xi PNLArgs.u16Blue = u16Blue;
1421*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_SET_OUTPUT_PATTERN, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1422*53ee8cc1Swenshuai.xi {
1423*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1424*53ee8cc1Swenshuai.xi }
1425*53ee8cc1Swenshuai.xi }
1426*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1427*53ee8cc1Swenshuai.xi /// Setup TCON Count Reset ON/OFF
1428*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: Enable or Disable
1429*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
MApi_PNL_EX_TCON_Count_Reset(const PNL_DeviceId * pPNL_DeviceId,MS_BOOL bEnable)1430*53ee8cc1Swenshuai.xi void MApi_PNL_EX_TCON_Count_Reset ( const PNL_DeviceId *pPNL_DeviceId, MS_BOOL bEnable )
1431*53ee8cc1Swenshuai.xi {
1432*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1433*53ee8cc1Swenshuai.xi {
1434*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1435*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1436*53ee8cc1Swenshuai.xi {
1437*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1438*53ee8cc1Swenshuai.xi return;
1439*53ee8cc1Swenshuai.xi }
1440*53ee8cc1Swenshuai.xi }
1441*53ee8cc1Swenshuai.xi
1442*53ee8cc1Swenshuai.xi stPNL_TCON_Count_Reset PNLArgs;
1443*53ee8cc1Swenshuai.xi PNLArgs.bEnable = bEnable;
1444*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_TCON_COUNT_RESET, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1445*53ee8cc1Swenshuai.xi {
1446*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1447*53ee8cc1Swenshuai.xi }
1448*53ee8cc1Swenshuai.xi }
1449*53ee8cc1Swenshuai.xi
MApi_PNL_EX_TCON_Init(const PNL_DeviceId * pPNL_DeviceId)1450*53ee8cc1Swenshuai.xi void MApi_PNL_EX_TCON_Init( const PNL_DeviceId *pPNL_DeviceId )
1451*53ee8cc1Swenshuai.xi {
1452*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1453*53ee8cc1Swenshuai.xi {
1454*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1455*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1456*53ee8cc1Swenshuai.xi {
1457*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1458*53ee8cc1Swenshuai.xi return;
1459*53ee8cc1Swenshuai.xi }
1460*53ee8cc1Swenshuai.xi }
1461*53ee8cc1Swenshuai.xi
1462*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_TCON_INIT, NULL) != UTOPIA_STATUS_SUCCESS)
1463*53ee8cc1Swenshuai.xi {
1464*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1465*53ee8cc1Swenshuai.xi }
1466*53ee8cc1Swenshuai.xi }
1467*53ee8cc1Swenshuai.xi
MApi_PNL_EX_GetDstInfo(const PNL_DeviceId * pPNL_DeviceId,PNL_EX_DST_DispInfo * pDstInfo,MS_U32 u32SizeofDstInfo)1468*53ee8cc1Swenshuai.xi MS_BOOL MApi_PNL_EX_GetDstInfo(const PNL_DeviceId *pPNL_DeviceId, PNL_EX_DST_DispInfo *pDstInfo, MS_U32 u32SizeofDstInfo)
1469*53ee8cc1Swenshuai.xi {
1470*53ee8cc1Swenshuai.xi if (_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1471*53ee8cc1Swenshuai.xi {
1472*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1473*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1474*53ee8cc1Swenshuai.xi {
1475*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1476*53ee8cc1Swenshuai.xi return FALSE;
1477*53ee8cc1Swenshuai.xi }
1478*53ee8cc1Swenshuai.xi }
1479*53ee8cc1Swenshuai.xi
1480*53ee8cc1Swenshuai.xi stPNL_GetDstInfo PNLArgs;
1481*53ee8cc1Swenshuai.xi PNLArgs.pDstInfo = (MS_PNL_DST_DispInfo*)pDstInfo;
1482*53ee8cc1Swenshuai.xi PNLArgs.u32SizeofDstInfo = u32SizeofDstInfo;
1483*53ee8cc1Swenshuai.xi PNLArgs.bReturn = FALSE;
1484*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GETDSTINFO, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1485*53ee8cc1Swenshuai.xi {
1486*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1487*53ee8cc1Swenshuai.xi return FALSE;
1488*53ee8cc1Swenshuai.xi }
1489*53ee8cc1Swenshuai.xi else
1490*53ee8cc1Swenshuai.xi {
1491*53ee8cc1Swenshuai.xi return PNLArgs.bReturn;
1492*53ee8cc1Swenshuai.xi }
1493*53ee8cc1Swenshuai.xi }
1494*53ee8cc1Swenshuai.xi
1495*53ee8cc1Swenshuai.xi
MApi_PNL_EX_Mod_Calibration_Setting(const PNL_DeviceId * pPNL_DeviceId,PNL_EX_ModCaliInfo * pstModCaliInfo)1496*53ee8cc1Swenshuai.xi void MApi_PNL_EX_Mod_Calibration_Setting(const PNL_DeviceId *pPNL_DeviceId, PNL_EX_ModCaliInfo *pstModCaliInfo)
1497*53ee8cc1Swenshuai.xi {
1498*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1499*53ee8cc1Swenshuai.xi {
1500*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1501*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1502*53ee8cc1Swenshuai.xi {
1503*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1504*53ee8cc1Swenshuai.xi return;
1505*53ee8cc1Swenshuai.xi }
1506*53ee8cc1Swenshuai.xi }
1507*53ee8cc1Swenshuai.xi
1508*53ee8cc1Swenshuai.xi if(pstModCaliInfo == NULL)
1509*53ee8cc1Swenshuai.xi {
1510*53ee8cc1Swenshuai.xi printf("MOD Calibration config setting is NULL\n");
1511*53ee8cc1Swenshuai.xi return;
1512*53ee8cc1Swenshuai.xi }
1513*53ee8cc1Swenshuai.xi
1514*53ee8cc1Swenshuai.xi stPNL_Mod_Calibration_Setting PNLArgs;
1515*53ee8cc1Swenshuai.xi PNLArgs.pstModCaliInfo = (MS_PNL_ModCaliInfo*)pstModCaliInfo;
1516*53ee8cc1Swenshuai.xi PNLArgs.bReturn = FALSE;
1517*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_MOD_CALIBRATION_SETTING, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1518*53ee8cc1Swenshuai.xi {
1519*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1520*53ee8cc1Swenshuai.xi }
1521*53ee8cc1Swenshuai.xi }
1522*53ee8cc1Swenshuai.xi
MApi_PNL_EX_Mod_Do_Calibration(const PNL_DeviceId * pPNL_DeviceId)1523*53ee8cc1Swenshuai.xi MS_BOOL MApi_PNL_EX_Mod_Do_Calibration(const PNL_DeviceId *pPNL_DeviceId)
1524*53ee8cc1Swenshuai.xi {
1525*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1526*53ee8cc1Swenshuai.xi {
1527*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1528*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1529*53ee8cc1Swenshuai.xi {
1530*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1531*53ee8cc1Swenshuai.xi return FALSE;
1532*53ee8cc1Swenshuai.xi }
1533*53ee8cc1Swenshuai.xi }
1534*53ee8cc1Swenshuai.xi
1535*53ee8cc1Swenshuai.xi stPNL_Mod_Do_Calibration PNLArgs;
1536*53ee8cc1Swenshuai.xi PNLArgs.bReturn = FALSE;
1537*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_MOD_DO_CALIBRATION, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1538*53ee8cc1Swenshuai.xi {
1539*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1540*53ee8cc1Swenshuai.xi return FALSE;
1541*53ee8cc1Swenshuai.xi }
1542*53ee8cc1Swenshuai.xi else
1543*53ee8cc1Swenshuai.xi {
1544*53ee8cc1Swenshuai.xi return PNLArgs.bReturn;
1545*53ee8cc1Swenshuai.xi }
1546*53ee8cc1Swenshuai.xi }
1547*53ee8cc1Swenshuai.xi
MApi_PNL_EX_BD_LVDS_Output_Type(const PNL_DeviceId * pPNL_DeviceId,MS_U16 Type)1548*53ee8cc1Swenshuai.xi void MApi_PNL_EX_BD_LVDS_Output_Type(const PNL_DeviceId *pPNL_DeviceId, MS_U16 Type)
1549*53ee8cc1Swenshuai.xi {
1550*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1551*53ee8cc1Swenshuai.xi {
1552*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1553*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1554*53ee8cc1Swenshuai.xi {
1555*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1556*53ee8cc1Swenshuai.xi return;
1557*53ee8cc1Swenshuai.xi }
1558*53ee8cc1Swenshuai.xi }
1559*53ee8cc1Swenshuai.xi
1560*53ee8cc1Swenshuai.xi stPNL_BD_LVDS_Output_Type PNLArgs;
1561*53ee8cc1Swenshuai.xi PNLArgs.Type = Type;
1562*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_BD_LVDS_OUTPUT_TYPE, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1563*53ee8cc1Swenshuai.xi {
1564*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1565*53ee8cc1Swenshuai.xi }
1566*53ee8cc1Swenshuai.xi }
1567*53ee8cc1Swenshuai.xi
MApi_PNL_EX_SetSSC_En(const PNL_DeviceId * pPNL_DeviceId,MS_BOOL bEnable)1568*53ee8cc1Swenshuai.xi int MApi_PNL_EX_SetSSC_En(const PNL_DeviceId *pPNL_DeviceId, MS_BOOL bEnable)
1569*53ee8cc1Swenshuai.xi {
1570*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1571*53ee8cc1Swenshuai.xi {
1572*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1573*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1574*53ee8cc1Swenshuai.xi {
1575*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1576*53ee8cc1Swenshuai.xi return E_PNL_EX_FAIL;
1577*53ee8cc1Swenshuai.xi }
1578*53ee8cc1Swenshuai.xi }
1579*53ee8cc1Swenshuai.xi
1580*53ee8cc1Swenshuai.xi stPNL_SetSSC_En PNLArgs;
1581*53ee8cc1Swenshuai.xi PNLArgs.bEnable = bEnable;
1582*53ee8cc1Swenshuai.xi PNLArgs.eReturn = E_APIPNL_FAIL;
1583*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_SETSSC_EN, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1584*53ee8cc1Swenshuai.xi {
1585*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1586*53ee8cc1Swenshuai.xi return E_APIPNL_FAIL;
1587*53ee8cc1Swenshuai.xi }
1588*53ee8cc1Swenshuai.xi else
1589*53ee8cc1Swenshuai.xi {
1590*53ee8cc1Swenshuai.xi return PNLArgs.eReturn;
1591*53ee8cc1Swenshuai.xi }
1592*53ee8cc1Swenshuai.xi }
1593*53ee8cc1Swenshuai.xi
MApi_PNL_EX_SetSSC_Fmodulation(const PNL_DeviceId * pPNL_DeviceId,MS_U16 u16Fmodulation)1594*53ee8cc1Swenshuai.xi int MApi_PNL_EX_SetSSC_Fmodulation(const PNL_DeviceId *pPNL_DeviceId, MS_U16 u16Fmodulation)
1595*53ee8cc1Swenshuai.xi {
1596*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1597*53ee8cc1Swenshuai.xi {
1598*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1599*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1600*53ee8cc1Swenshuai.xi {
1601*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1602*53ee8cc1Swenshuai.xi return E_PNL_EX_FAIL;
1603*53ee8cc1Swenshuai.xi }
1604*53ee8cc1Swenshuai.xi }
1605*53ee8cc1Swenshuai.xi
1606*53ee8cc1Swenshuai.xi stPNL_SetSSC_Fmodulation PNLArgs;
1607*53ee8cc1Swenshuai.xi PNLArgs.u16Fmodulation = u16Fmodulation;
1608*53ee8cc1Swenshuai.xi PNLArgs.eReturn = E_APIPNL_FAIL;
1609*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_SETSSC_FMODULATION, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1610*53ee8cc1Swenshuai.xi {
1611*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1612*53ee8cc1Swenshuai.xi return E_APIPNL_FAIL;
1613*53ee8cc1Swenshuai.xi }
1614*53ee8cc1Swenshuai.xi else
1615*53ee8cc1Swenshuai.xi {
1616*53ee8cc1Swenshuai.xi return PNLArgs.eReturn;
1617*53ee8cc1Swenshuai.xi }
1618*53ee8cc1Swenshuai.xi }
1619*53ee8cc1Swenshuai.xi
MApi_PNL_EX_SetSSC_Rdeviation(const PNL_DeviceId * pPNL_DeviceId,MS_U16 u16Rdeviation)1620*53ee8cc1Swenshuai.xi int MApi_PNL_EX_SetSSC_Rdeviation(const PNL_DeviceId *pPNL_DeviceId, MS_U16 u16Rdeviation)
1621*53ee8cc1Swenshuai.xi {
1622*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1623*53ee8cc1Swenshuai.xi {
1624*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1625*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1626*53ee8cc1Swenshuai.xi {
1627*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1628*53ee8cc1Swenshuai.xi return E_PNL_EX_FAIL;
1629*53ee8cc1Swenshuai.xi }
1630*53ee8cc1Swenshuai.xi }
1631*53ee8cc1Swenshuai.xi
1632*53ee8cc1Swenshuai.xi stPNL_SetSSC_Rdeviation PNLArgs;
1633*53ee8cc1Swenshuai.xi PNLArgs.u16Rdeviation = u16Rdeviation;
1634*53ee8cc1Swenshuai.xi PNLArgs.eReturn = E_APIPNL_FAIL;
1635*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_SETSSC_RDEVIATION, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1636*53ee8cc1Swenshuai.xi {
1637*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1638*53ee8cc1Swenshuai.xi return E_APIPNL_FAIL;
1639*53ee8cc1Swenshuai.xi }
1640*53ee8cc1Swenshuai.xi else
1641*53ee8cc1Swenshuai.xi {
1642*53ee8cc1Swenshuai.xi return PNLArgs.eReturn;
1643*53ee8cc1Swenshuai.xi }
1644*53ee8cc1Swenshuai.xi }
1645*53ee8cc1Swenshuai.xi
MApi_PNL_EX_SetLPLLTypeExt(const PNL_DeviceId * pPNL_DeviceId,PNL_EX_LINK_EXT_TYPE eLPLL_TypeExt)1646*53ee8cc1Swenshuai.xi void MApi_PNL_EX_SetLPLLTypeExt(const PNL_DeviceId *pPNL_DeviceId, PNL_EX_LINK_EXT_TYPE eLPLL_TypeExt)
1647*53ee8cc1Swenshuai.xi {
1648*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1649*53ee8cc1Swenshuai.xi {
1650*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1651*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1652*53ee8cc1Swenshuai.xi {
1653*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1654*53ee8cc1Swenshuai.xi return;
1655*53ee8cc1Swenshuai.xi }
1656*53ee8cc1Swenshuai.xi }
1657*53ee8cc1Swenshuai.xi
1658*53ee8cc1Swenshuai.xi stPNL_SetLPLLTypeExt PNLArgs;
1659*53ee8cc1Swenshuai.xi PNLArgs.eLPLL_TypeExt = (APIPNL_LINK_EXT_TYPE)eLPLL_TypeExt;
1660*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_SETLPLLTYPEEXT, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1661*53ee8cc1Swenshuai.xi {
1662*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1663*53ee8cc1Swenshuai.xi }
1664*53ee8cc1Swenshuai.xi }
1665*53ee8cc1Swenshuai.xi
MApi_PNL_EX_Init_MISC(const PNL_DeviceId * pPNL_DeviceId,PNL_EX_MISC ePNL_MISC)1666*53ee8cc1Swenshuai.xi void MApi_PNL_EX_Init_MISC(const PNL_DeviceId *pPNL_DeviceId, PNL_EX_MISC ePNL_MISC)
1667*53ee8cc1Swenshuai.xi {
1668*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1669*53ee8cc1Swenshuai.xi {
1670*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1671*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1672*53ee8cc1Swenshuai.xi {
1673*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1674*53ee8cc1Swenshuai.xi return;
1675*53ee8cc1Swenshuai.xi }
1676*53ee8cc1Swenshuai.xi }
1677*53ee8cc1Swenshuai.xi
1678*53ee8cc1Swenshuai.xi stPNL_Init_MISC PNLArgs;
1679*53ee8cc1Swenshuai.xi PNLArgs.ePNL_MISC = (APIPNL_MISC)ePNL_MISC;
1680*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_INIT_MISC, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1681*53ee8cc1Swenshuai.xi {
1682*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1683*53ee8cc1Swenshuai.xi }
1684*53ee8cc1Swenshuai.xi }
1685*53ee8cc1Swenshuai.xi
MApi_PNL_EX_MOD_OutputConfig_User(const PNL_DeviceId * pPNL_DeviceId,MS_U32 u32OutputCFG0_7,MS_U32 u32OutputCFG8_15,MS_U32 u32OutputCFG16_21)1686*53ee8cc1Swenshuai.xi void MApi_PNL_EX_MOD_OutputConfig_User(const PNL_DeviceId *pPNL_DeviceId, MS_U32 u32OutputCFG0_7, MS_U32 u32OutputCFG8_15, MS_U32 u32OutputCFG16_21)
1687*53ee8cc1Swenshuai.xi {
1688*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1689*53ee8cc1Swenshuai.xi {
1690*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1691*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1692*53ee8cc1Swenshuai.xi {
1693*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1694*53ee8cc1Swenshuai.xi return;
1695*53ee8cc1Swenshuai.xi }
1696*53ee8cc1Swenshuai.xi }
1697*53ee8cc1Swenshuai.xi
1698*53ee8cc1Swenshuai.xi stPNL_MOD_OutputConfig_User PNLArgs;
1699*53ee8cc1Swenshuai.xi PNLArgs.u32OutputCFG0_7 = u32OutputCFG0_7;
1700*53ee8cc1Swenshuai.xi PNLArgs.u32OutputCFG8_15 = u32OutputCFG8_15;
1701*53ee8cc1Swenshuai.xi PNLArgs.u32OutputCFG16_21 = u32OutputCFG16_21;
1702*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_MOD_OUTPUTCONFIG_USER, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1703*53ee8cc1Swenshuai.xi {
1704*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1705*53ee8cc1Swenshuai.xi }
1706*53ee8cc1Swenshuai.xi }
1707*53ee8cc1Swenshuai.xi
1708*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1709*53ee8cc1Swenshuai.xi /// Set Flag to bypass timing change in MApi_PNL_Init()
1710*53ee8cc1Swenshuai.xi /// @param bFlag \b IN: TRUE: initialize XC by skipping SW reset; FALSE: initialize XC in normal case
1711*53ee8cc1Swenshuai.xi /// @return APIPNL_Result
1712*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
MApi_PNL_EX_SkipTimingChange(const PNL_DeviceId * pPNL_DeviceId,MS_BOOL bFlag)1713*53ee8cc1Swenshuai.xi PNL_EX_Result MApi_PNL_EX_SkipTimingChange(const PNL_DeviceId *pPNL_DeviceId, MS_BOOL bFlag)
1714*53ee8cc1Swenshuai.xi {
1715*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1716*53ee8cc1Swenshuai.xi {
1717*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1718*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1719*53ee8cc1Swenshuai.xi {
1720*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1721*53ee8cc1Swenshuai.xi return E_PNL_EX_FAIL;
1722*53ee8cc1Swenshuai.xi }
1723*53ee8cc1Swenshuai.xi }
1724*53ee8cc1Swenshuai.xi
1725*53ee8cc1Swenshuai.xi stPNL_SkipTimingChange PNLArgs;
1726*53ee8cc1Swenshuai.xi PNLArgs.bFlag = bFlag;
1727*53ee8cc1Swenshuai.xi PNLArgs.eResult = E_APIPNL_FAIL;
1728*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_SKIPTIMINGCHANGE, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1729*53ee8cc1Swenshuai.xi {
1730*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1731*53ee8cc1Swenshuai.xi return E_PNL_EX_FAIL;
1732*53ee8cc1Swenshuai.xi }
1733*53ee8cc1Swenshuai.xi else
1734*53ee8cc1Swenshuai.xi {
1735*53ee8cc1Swenshuai.xi return (PNL_EX_Result)PNLArgs.eResult;
1736*53ee8cc1Swenshuai.xi }
1737*53ee8cc1Swenshuai.xi }
1738*53ee8cc1Swenshuai.xi
MApi_PNL_EX_HWLVDSReservedtoLRFlag(const PNL_DeviceId * pPNL_DeviceId,PNL_EX_HW_LVDSResInfo lvdsresinfo)1739*53ee8cc1Swenshuai.xi void MApi_PNL_EX_HWLVDSReservedtoLRFlag(const PNL_DeviceId *pPNL_DeviceId, PNL_EX_HW_LVDSResInfo lvdsresinfo)
1740*53ee8cc1Swenshuai.xi {
1741*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1742*53ee8cc1Swenshuai.xi {
1743*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1744*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1745*53ee8cc1Swenshuai.xi {
1746*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1747*53ee8cc1Swenshuai.xi return;
1748*53ee8cc1Swenshuai.xi }
1749*53ee8cc1Swenshuai.xi }
1750*53ee8cc1Swenshuai.xi
1751*53ee8cc1Swenshuai.xi stPNL_HWLVDSReservedtoLRFlag PNLArgs;
1752*53ee8cc1Swenshuai.xi PNLArgs.lvdsresinfo.u32pair = lvdsresinfo.u32pair;
1753*53ee8cc1Swenshuai.xi PNLArgs.lvdsresinfo.u16channel = lvdsresinfo.u16channel;
1754*53ee8cc1Swenshuai.xi PNLArgs.lvdsresinfo.bEnable = lvdsresinfo.bEnable;
1755*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_HWLVDSRESERVEDTOLRFLAG, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1756*53ee8cc1Swenshuai.xi {
1757*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1758*53ee8cc1Swenshuai.xi }
1759*53ee8cc1Swenshuai.xi }
1760*53ee8cc1Swenshuai.xi
1761*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////
1762*53ee8cc1Swenshuai.xi // Turn OD function
1763*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////
1764*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1765*53ee8cc1Swenshuai.xi /// Initialize OverDrive
1766*53ee8cc1Swenshuai.xi /// @param pXC_ODInitData \b IN: the Initialized Data
1767*53ee8cc1Swenshuai.xi /// @param u32ODInitDataLen \b IN: the length of the initialized data
1768*53ee8cc1Swenshuai.xi /// @return E_APIPNL_OK or E_APIPNL_FAIL
1769*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
MApi_PNL_EX_OverDriver_Init(const PNL_DeviceId * pPNL_DeviceId,PNL_EX_OD_INITDATA * pPNL_ODInitData,MS_U32 u32ODInitDataLen)1770*53ee8cc1Swenshuai.xi PNL_EX_Result MApi_PNL_EX_OverDriver_Init(const PNL_DeviceId *pPNL_DeviceId, PNL_EX_OD_INITDATA *pPNL_ODInitData, MS_U32 u32ODInitDataLen)
1771*53ee8cc1Swenshuai.xi {
1772*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1773*53ee8cc1Swenshuai.xi {
1774*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1775*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1776*53ee8cc1Swenshuai.xi {
1777*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1778*53ee8cc1Swenshuai.xi return E_PNL_EX_FAIL;
1779*53ee8cc1Swenshuai.xi }
1780*53ee8cc1Swenshuai.xi }
1781*53ee8cc1Swenshuai.xi
1782*53ee8cc1Swenshuai.xi stPNL_OverDriver_Init PNLArgs;
1783*53ee8cc1Swenshuai.xi PNLArgs.pPNL_ODInitData = (MS_PNL_OD_INITDATA*)pPNL_ODInitData;
1784*53ee8cc1Swenshuai.xi PNLArgs.u32ODInitDataLen = u32ODInitDataLen;
1785*53ee8cc1Swenshuai.xi PNLArgs.eResult = E_APIPNL_FAIL;
1786*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_OVERDRIVER_INIT, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1787*53ee8cc1Swenshuai.xi {
1788*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1789*53ee8cc1Swenshuai.xi return E_PNL_EX_FAIL;
1790*53ee8cc1Swenshuai.xi }
1791*53ee8cc1Swenshuai.xi else
1792*53ee8cc1Swenshuai.xi {
1793*53ee8cc1Swenshuai.xi return (PNL_EX_Result)PNLArgs.eResult;
1794*53ee8cc1Swenshuai.xi }
1795*53ee8cc1Swenshuai.xi }
1796*53ee8cc1Swenshuai.xi
1797*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1798*53ee8cc1Swenshuai.xi /// OverDrive Enable
1799*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE: Enable OverDrive; FALSE: Disable OverDrive
1800*53ee8cc1Swenshuai.xi /// @return E_APIPNL_OK or E_APIPNL_FAIL
1801*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
MApi_PNL_EX_OverDriver_Enable(const PNL_DeviceId * pPNL_DeviceId,MS_BOOL bEnable)1802*53ee8cc1Swenshuai.xi PNL_EX_Result MApi_PNL_EX_OverDriver_Enable(const PNL_DeviceId *pPNL_DeviceId, MS_BOOL bEnable)
1803*53ee8cc1Swenshuai.xi {
1804*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1805*53ee8cc1Swenshuai.xi {
1806*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1807*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1808*53ee8cc1Swenshuai.xi {
1809*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1810*53ee8cc1Swenshuai.xi return E_PNL_EX_FAIL;
1811*53ee8cc1Swenshuai.xi }
1812*53ee8cc1Swenshuai.xi }
1813*53ee8cc1Swenshuai.xi
1814*53ee8cc1Swenshuai.xi stPNL_OverDriver_Enable PNLArgs;
1815*53ee8cc1Swenshuai.xi PNLArgs.bEnable = bEnable;
1816*53ee8cc1Swenshuai.xi PNLArgs.eResult = E_APIPNL_FAIL;
1817*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_OVERDRIVER_ENABLE, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1818*53ee8cc1Swenshuai.xi {
1819*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1820*53ee8cc1Swenshuai.xi return E_PNL_EX_FAIL;
1821*53ee8cc1Swenshuai.xi }
1822*53ee8cc1Swenshuai.xi else
1823*53ee8cc1Swenshuai.xi {
1824*53ee8cc1Swenshuai.xi return (PNL_EX_Result)PNLArgs.eResult;
1825*53ee8cc1Swenshuai.xi }
1826*53ee8cc1Swenshuai.xi }
1827*53ee8cc1Swenshuai.xi
1828*53ee8cc1Swenshuai.xi
MApi_PNL_EX_MOD_PVDD_Power_Setting(const PNL_DeviceId * pPNL_DeviceId,MS_BOOL bIs2p5)1829*53ee8cc1Swenshuai.xi void MApi_PNL_EX_MOD_PVDD_Power_Setting(const PNL_DeviceId *pPNL_DeviceId, MS_BOOL bIs2p5)
1830*53ee8cc1Swenshuai.xi {
1831*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1832*53ee8cc1Swenshuai.xi {
1833*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1834*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1835*53ee8cc1Swenshuai.xi {
1836*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1837*53ee8cc1Swenshuai.xi return;
1838*53ee8cc1Swenshuai.xi }
1839*53ee8cc1Swenshuai.xi }
1840*53ee8cc1Swenshuai.xi
1841*53ee8cc1Swenshuai.xi stPNL_MOD_PVDD_Power_Setting PNLArgs;
1842*53ee8cc1Swenshuai.xi PNLArgs.bIs2p5 = bIs2p5;
1843*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_MOD_PVDD_POWER_SETTING, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1844*53ee8cc1Swenshuai.xi {
1845*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1846*53ee8cc1Swenshuai.xi }
1847*53ee8cc1Swenshuai.xi }
1848*53ee8cc1Swenshuai.xi
1849*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1850*53ee8cc1Swenshuai.xi ///-obosolte!! use MApi_PNL_Control_Out_Swing instead
1851*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
MApi_PNL_EX_SetDiffSwingLevel(const PNL_DeviceId * pPNL_DeviceId,MS_U8 u8Swing_Level)1852*53ee8cc1Swenshuai.xi MS_BOOL MApi_PNL_EX_SetDiffSwingLevel(const PNL_DeviceId *pPNL_DeviceId, MS_U8 u8Swing_Level)
1853*53ee8cc1Swenshuai.xi {
1854*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1855*53ee8cc1Swenshuai.xi {
1856*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1857*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1858*53ee8cc1Swenshuai.xi {
1859*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1860*53ee8cc1Swenshuai.xi return FALSE;
1861*53ee8cc1Swenshuai.xi }
1862*53ee8cc1Swenshuai.xi }
1863*53ee8cc1Swenshuai.xi
1864*53ee8cc1Swenshuai.xi stPNL_SetDiffSwingLevel PNLArgs;
1865*53ee8cc1Swenshuai.xi PNLArgs.u8Swing_Level = u8Swing_Level;
1866*53ee8cc1Swenshuai.xi PNLArgs.bReturn = FALSE;
1867*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_SETDIFFSWINGLEVEL, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1868*53ee8cc1Swenshuai.xi {
1869*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1870*53ee8cc1Swenshuai.xi return FALSE;
1871*53ee8cc1Swenshuai.xi }
1872*53ee8cc1Swenshuai.xi else
1873*53ee8cc1Swenshuai.xi {
1874*53ee8cc1Swenshuai.xi return PNLArgs.bReturn;
1875*53ee8cc1Swenshuai.xi }
1876*53ee8cc1Swenshuai.xi }
1877*53ee8cc1Swenshuai.xi
1878*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1879*53ee8cc1Swenshuai.xi /// Get real LPLL type from driver
1880*53ee8cc1Swenshuai.xi /// @return MS_U8
1881*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
MApi_Pnl_EX_Get_LPLL_Type(const PNL_DeviceId * pPNL_DeviceId)1882*53ee8cc1Swenshuai.xi MS_U8 MApi_Pnl_EX_Get_LPLL_Type(const PNL_DeviceId *pPNL_DeviceId)
1883*53ee8cc1Swenshuai.xi {
1884*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1885*53ee8cc1Swenshuai.xi {
1886*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1887*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1888*53ee8cc1Swenshuai.xi {
1889*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1890*53ee8cc1Swenshuai.xi return E_PNL_EX_FAIL;
1891*53ee8cc1Swenshuai.xi }
1892*53ee8cc1Swenshuai.xi }
1893*53ee8cc1Swenshuai.xi
1894*53ee8cc1Swenshuai.xi stPNL_Get_LPLL_Type PNLArgs;
1895*53ee8cc1Swenshuai.xi PNLArgs.u8Return = LINK_TTL;
1896*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GET_LPLL_TYPE, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1897*53ee8cc1Swenshuai.xi {
1898*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1899*53ee8cc1Swenshuai.xi return E_PNL_EX_LINK_TTL;
1900*53ee8cc1Swenshuai.xi }
1901*53ee8cc1Swenshuai.xi else
1902*53ee8cc1Swenshuai.xi {
1903*53ee8cc1Swenshuai.xi return (PNL_EX_LINK_TYPE)PNLArgs.u8Return;
1904*53ee8cc1Swenshuai.xi }
1905*53ee8cc1Swenshuai.xi }
1906*53ee8cc1Swenshuai.xi
1907*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1908*53ee8cc1Swenshuai.xi /// Get TCON capability
1909*53ee8cc1Swenshuai.xi /// @return MS_BOOL
1910*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
MApi_PNL_EX_Get_TCON_Capability(const PNL_DeviceId * pPNL_DeviceId)1911*53ee8cc1Swenshuai.xi MS_BOOL MApi_PNL_EX_Get_TCON_Capability(const PNL_DeviceId *pPNL_DeviceId)
1912*53ee8cc1Swenshuai.xi {
1913*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1914*53ee8cc1Swenshuai.xi {
1915*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1916*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1917*53ee8cc1Swenshuai.xi {
1918*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1919*53ee8cc1Swenshuai.xi return FALSE;
1920*53ee8cc1Swenshuai.xi }
1921*53ee8cc1Swenshuai.xi }
1922*53ee8cc1Swenshuai.xi
1923*53ee8cc1Swenshuai.xi stPNL_Get_TCON_Capability PNLArgs;
1924*53ee8cc1Swenshuai.xi PNLArgs.bReturn = FALSE;
1925*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_GET_TCON_CAPABILITY, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1926*53ee8cc1Swenshuai.xi {
1927*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1928*53ee8cc1Swenshuai.xi return FALSE;
1929*53ee8cc1Swenshuai.xi }
1930*53ee8cc1Swenshuai.xi else
1931*53ee8cc1Swenshuai.xi {
1932*53ee8cc1Swenshuai.xi return PNLArgs.bReturn;
1933*53ee8cc1Swenshuai.xi }
1934*53ee8cc1Swenshuai.xi }
1935*53ee8cc1Swenshuai.xi
1936*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1937*53ee8cc1Swenshuai.xi /// Set FRC MOD pair swap
1938*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: u8Polarity, (d:c:b:a)=([15:14],[13:12],[11:10],[9:8]) => (10,00,11,01), => (2,0,3,1)
1939*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
MApi_PNL_EX_SetPairSwap(const PNL_DeviceId * pPNL_DeviceId,MS_U32 u32Polarity)1940*53ee8cc1Swenshuai.xi void MApi_PNL_EX_SetPairSwap(const PNL_DeviceId *pPNL_DeviceId, MS_U32 u32Polarity)
1941*53ee8cc1Swenshuai.xi {
1942*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1943*53ee8cc1Swenshuai.xi {
1944*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1945*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1946*53ee8cc1Swenshuai.xi {
1947*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1948*53ee8cc1Swenshuai.xi return;
1949*53ee8cc1Swenshuai.xi }
1950*53ee8cc1Swenshuai.xi }
1951*53ee8cc1Swenshuai.xi
1952*53ee8cc1Swenshuai.xi stPNL_SetPairSwap PNLArgs;
1953*53ee8cc1Swenshuai.xi PNLArgs.u32Polarity = u32Polarity;
1954*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_SETPAIRSWAP, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1955*53ee8cc1Swenshuai.xi {
1956*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1957*53ee8cc1Swenshuai.xi }
1958*53ee8cc1Swenshuai.xi }
1959*53ee8cc1Swenshuai.xi
1960*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1961*53ee8cc1Swenshuai.xi /// Cal Ext LPLL Set by DCLK
1962*53ee8cc1Swenshuai.xi /// @param ldHz \b IN: ldHz = Htt*Vtt*Vfreq
1963*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
MApi_PNL_EX_CalExtLPLLSETbyDClk(const PNL_DeviceId * pPNL_DeviceId,MS_U32 ldHz)1964*53ee8cc1Swenshuai.xi void MApi_PNL_EX_CalExtLPLLSETbyDClk(const PNL_DeviceId *pPNL_DeviceId, MS_U32 ldHz)
1965*53ee8cc1Swenshuai.xi {
1966*53ee8cc1Swenshuai.xi if(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id) == NULL)
1967*53ee8cc1Swenshuai.xi {
1968*53ee8cc1Swenshuai.xi MS_U32 u32DevideID = pPNL_DeviceId->u32Id;
1969*53ee8cc1Swenshuai.xi if(UtopiaOpen(MODULE_PNL, _PNL_SELECT_INSTANCE_P(pPNL_DeviceId->u32Id), 0, &u32DevideID) != UTOPIA_STATUS_SUCCESS)
1970*53ee8cc1Swenshuai.xi {
1971*53ee8cc1Swenshuai.xi printf("UtopiaOpen PNL failed\n");
1972*53ee8cc1Swenshuai.xi return;
1973*53ee8cc1Swenshuai.xi }
1974*53ee8cc1Swenshuai.xi }
1975*53ee8cc1Swenshuai.xi
1976*53ee8cc1Swenshuai.xi stPNL_CalExtLPLLSETbyDClk PNLArgs;
1977*53ee8cc1Swenshuai.xi PNLArgs.ldHz = ldHz;
1978*53ee8cc1Swenshuai.xi if(UtopiaIoctl(_PNL_SELECT_INSTANCE(pPNL_DeviceId->u32Id), E_PNL_CMD_CALEXTLPLLSETBYDCLK, (void*)&PNLArgs) != UTOPIA_STATUS_SUCCESS)
1979*53ee8cc1Swenshuai.xi {
1980*53ee8cc1Swenshuai.xi printf("Obtain PNL engine fail\n");
1981*53ee8cc1Swenshuai.xi }
1982*53ee8cc1Swenshuai.xi }
1983*53ee8cc1Swenshuai.xi
1984*53ee8cc1Swenshuai.xi //} // Marked it by coverity_0553
1985*53ee8cc1Swenshuai.xi
1986*53ee8cc1Swenshuai.xi #endif
1987