1*53ee8cc1Swenshuai.xi //<MStar Software>
2*53ee8cc1Swenshuai.xi //******************************************************************************
3*53ee8cc1Swenshuai.xi // MStar Software
4*53ee8cc1Swenshuai.xi // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5*53ee8cc1Swenshuai.xi // All software, firmware and related documentation herein ("MStar Software") are
6*53ee8cc1Swenshuai.xi // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7*53ee8cc1Swenshuai.xi // law, including, but not limited to, copyright law and international treaties.
8*53ee8cc1Swenshuai.xi // Any use, modification, reproduction, retransmission, or republication of all
9*53ee8cc1Swenshuai.xi // or part of MStar Software is expressly prohibited, unless prior written
10*53ee8cc1Swenshuai.xi // permission has been granted by MStar.
11*53ee8cc1Swenshuai.xi //
12*53ee8cc1Swenshuai.xi // By accessing, browsing and/or using MStar Software, you acknowledge that you
13*53ee8cc1Swenshuai.xi // have read, understood, and agree, to be bound by below terms ("Terms") and to
14*53ee8cc1Swenshuai.xi // comply with all applicable laws and regulations:
15*53ee8cc1Swenshuai.xi //
16*53ee8cc1Swenshuai.xi // 1. MStar shall retain any and all right, ownership and interest to MStar
17*53ee8cc1Swenshuai.xi // Software and any modification/derivatives thereof.
18*53ee8cc1Swenshuai.xi // No right, ownership, or interest to MStar Software and any
19*53ee8cc1Swenshuai.xi // modification/derivatives thereof is transferred to you under Terms.
20*53ee8cc1Swenshuai.xi //
21*53ee8cc1Swenshuai.xi // 2. You understand that MStar Software might include, incorporate or be
22*53ee8cc1Swenshuai.xi // supplied together with third party`s software and the use of MStar
23*53ee8cc1Swenshuai.xi // Software may require additional licenses from third parties.
24*53ee8cc1Swenshuai.xi // Therefore, you hereby agree it is your sole responsibility to separately
25*53ee8cc1Swenshuai.xi // obtain any and all third party right and license necessary for your use of
26*53ee8cc1Swenshuai.xi // such third party`s software.
27*53ee8cc1Swenshuai.xi //
28*53ee8cc1Swenshuai.xi // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29*53ee8cc1Swenshuai.xi // MStar`s confidential information and you agree to keep MStar`s
30*53ee8cc1Swenshuai.xi // confidential information in strictest confidence and not disclose to any
31*53ee8cc1Swenshuai.xi // third party.
32*53ee8cc1Swenshuai.xi //
33*53ee8cc1Swenshuai.xi // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34*53ee8cc1Swenshuai.xi // kind. Any warranties are hereby expressly disclaimed by MStar, including
35*53ee8cc1Swenshuai.xi // without limitation, any warranties of merchantability, non-infringement of
36*53ee8cc1Swenshuai.xi // intellectual property rights, fitness for a particular purpose, error free
37*53ee8cc1Swenshuai.xi // and in conformity with any international standard. You agree to waive any
38*53ee8cc1Swenshuai.xi // claim against MStar for any loss, damage, cost or expense that you may
39*53ee8cc1Swenshuai.xi // incur related to your use of MStar Software.
40*53ee8cc1Swenshuai.xi // In no event shall MStar be liable for any direct, indirect, incidental or
41*53ee8cc1Swenshuai.xi // consequential damages, including without limitation, lost of profit or
42*53ee8cc1Swenshuai.xi // revenues, lost or damage of data, and unauthorized system use.
43*53ee8cc1Swenshuai.xi // You agree that this Section 4 shall still apply without being affected
44*53ee8cc1Swenshuai.xi // even if MStar Software has been modified by MStar in accordance with your
45*53ee8cc1Swenshuai.xi // request or instruction for your use, except otherwise agreed by both
46*53ee8cc1Swenshuai.xi // parties in writing.
47*53ee8cc1Swenshuai.xi //
48*53ee8cc1Swenshuai.xi // 5. If requested, MStar may from time to time provide technical supports or
49*53ee8cc1Swenshuai.xi // services in relation with MStar Software to you for your use of
50*53ee8cc1Swenshuai.xi // MStar Software in conjunction with your or your customer`s product
51*53ee8cc1Swenshuai.xi // ("Services").
52*53ee8cc1Swenshuai.xi // You understand and agree that, except otherwise agreed by both parties in
53*53ee8cc1Swenshuai.xi // writing, Services are provided on an "AS IS" basis and the warranty
54*53ee8cc1Swenshuai.xi // disclaimer set forth in Section 4 above shall apply.
55*53ee8cc1Swenshuai.xi //
56*53ee8cc1Swenshuai.xi // 6. Nothing contained herein shall be construed as by implication, estoppels
57*53ee8cc1Swenshuai.xi // or otherwise:
58*53ee8cc1Swenshuai.xi // (a) conferring any license or right to use MStar name, trademark, service
59*53ee8cc1Swenshuai.xi // mark, symbol or any other identification;
60*53ee8cc1Swenshuai.xi // (b) obligating MStar or any of its affiliates to furnish any person,
61*53ee8cc1Swenshuai.xi // including without limitation, you and your customers, any assistance
62*53ee8cc1Swenshuai.xi // of any kind whatsoever, or any information; or
63*53ee8cc1Swenshuai.xi // (c) conferring any license or right under any intellectual property right.
64*53ee8cc1Swenshuai.xi //
65*53ee8cc1Swenshuai.xi // 7. These terms shall be governed by and construed in accordance with the laws
66*53ee8cc1Swenshuai.xi // of Taiwan, R.O.C., excluding its conflict of law rules.
67*53ee8cc1Swenshuai.xi // Any and all dispute arising out hereof or related hereto shall be finally
68*53ee8cc1Swenshuai.xi // settled by arbitration referred to the Chinese Arbitration Association,
69*53ee8cc1Swenshuai.xi // Taipei in accordance with the ROC Arbitration Law and the Arbitration
70*53ee8cc1Swenshuai.xi // Rules of the Association by three (3) arbitrators appointed in accordance
71*53ee8cc1Swenshuai.xi // with the said Rules.
72*53ee8cc1Swenshuai.xi // The place of arbitration shall be in Taipei, Taiwan and the language shall
73*53ee8cc1Swenshuai.xi // be English.
74*53ee8cc1Swenshuai.xi // The arbitration award shall be final and binding to both parties.
75*53ee8cc1Swenshuai.xi //
76*53ee8cc1Swenshuai.xi //******************************************************************************
77*53ee8cc1Swenshuai.xi //<MStar Software>
78*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
79*53ee8cc1Swenshuai.xi //
80*53ee8cc1Swenshuai.xi // Copyright (c) 2008-2009 MStar Semiconductor, Inc.
81*53ee8cc1Swenshuai.xi // All rights reserved.
82*53ee8cc1Swenshuai.xi //
83*53ee8cc1Swenshuai.xi // Unless otherwise stipulated in writing, any and all information contained
84*53ee8cc1Swenshuai.xi // herein regardless in any format shall remain the sole proprietary of
85*53ee8cc1Swenshuai.xi // MStar Semiconductor Inc. and be kept in strict confidence
86*53ee8cc1Swenshuai.xi // ("MStar Confidential Information") by the recipient.
87*53ee8cc1Swenshuai.xi // Any unauthorized act including without limitation unauthorized disclosure,
88*53ee8cc1Swenshuai.xi // copying, use, reproduction, sale, distribution, modification, disassembling,
89*53ee8cc1Swenshuai.xi // reverse engineering and compiling of the contents of MStar Confidential
90*53ee8cc1Swenshuai.xi // Information is unlawful and strictly prohibited. MStar hereby reserves the
91*53ee8cc1Swenshuai.xi // rights to any and all damages, losses, costs and expenses resulting therefrom.
92*53ee8cc1Swenshuai.xi //
93*53ee8cc1Swenshuai.xi /// file drv_ACE.c
94*53ee8cc1Swenshuai.xi /// @brief Driver Interface
95*53ee8cc1Swenshuai.xi /// @author MStar Semiconductor Inc.
96*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////////////////////////
97*53ee8cc1Swenshuai.xi
98*53ee8cc1Swenshuai.xi
99*53ee8cc1Swenshuai.xi #define _MDRV_ACE_C_
100*53ee8cc1Swenshuai.xi #ifdef MSOS_TYPE_LINUX_KERNEL
101*53ee8cc1Swenshuai.xi #include <linux/string.h>
102*53ee8cc1Swenshuai.xi #else
103*53ee8cc1Swenshuai.xi #include <string.h>
104*53ee8cc1Swenshuai.xi #endif
105*53ee8cc1Swenshuai.xi #include "MsCommon.h"
106*53ee8cc1Swenshuai.xi #include "apiXC_Ace.h"
107*53ee8cc1Swenshuai.xi #include "drvACE.h"
108*53ee8cc1Swenshuai.xi #include "mhal_ace.h"
109*53ee8cc1Swenshuai.xi #include "hwreg_ace.h"
110*53ee8cc1Swenshuai.xi #include "ace_hwreg_utility2.h"
111*53ee8cc1Swenshuai.xi #include "MsAce_LIB.h"
112*53ee8cc1Swenshuai.xi
113*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
114*53ee8cc1Swenshuai.xi //
115*53ee8cc1Swenshuai.xi // ACE library function start
116*53ee8cc1Swenshuai.xi //
117*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
118*53ee8cc1Swenshuai.xi
119*53ee8cc1Swenshuai.xi MS_U8 ACE_VBuf[32] = {
120*53ee8cc1Swenshuai.xi 'M','S','V','C','0','0', //0,0 fixed
121*53ee8cc1Swenshuai.xi 'A','4', //LIB ID
122*53ee8cc1Swenshuai.xi '0','0', //Interface
123*53ee8cc1Swenshuai.xi '0','1','0','4', //Build number
124*53ee8cc1Swenshuai.xi '0','0','0','8','9','9','8','3', // Change List
125*53ee8cc1Swenshuai.xi 'A','E','0','0','0','0','0','0','0', // AE:Saturn4LE 0: MStar Trunk
126*53ee8cc1Swenshuai.xi 'T' // check sum
127*53ee8cc1Swenshuai.xi };
128*53ee8cc1Swenshuai.xi
129*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
130*53ee8cc1Swenshuai.xi // Local Defines
131*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
132*53ee8cc1Swenshuai.xi #define MAIN_WINDOW 0
133*53ee8cc1Swenshuai.xi #define SUB_WINDOW 1
134*53ee8cc1Swenshuai.xi
135*53ee8cc1Swenshuai.xi // for Utopia 2.0 to Utopia 1.0 compatibility.
136*53ee8cc1Swenshuai.xi #include "ACE_private.h"
137*53ee8cc1Swenshuai.xi #include "utopia_dapi.h"
138*53ee8cc1Swenshuai.xi #include "utopia.h"
139*53ee8cc1Swenshuai.xi
140*53ee8cc1Swenshuai.xi extern void* pu32ACEInst;
141*53ee8cc1Swenshuai.xi extern void* pu32ACERes[E_ACE_POOL_ID_MAX];
142*53ee8cc1Swenshuai.xi extern ACE_DRV_HDRinit g_ACEinitParameters;
143*53ee8cc1Swenshuai.xi #if 0
144*53ee8cc1Swenshuai.xi typedef struct
145*53ee8cc1Swenshuai.xi {
146*53ee8cc1Swenshuai.xi MS_U16 u16RedGain;
147*53ee8cc1Swenshuai.xi MS_U16 u16GreenGain;
148*53ee8cc1Swenshuai.xi MS_U16 u16BlueGain;
149*53ee8cc1Swenshuai.xi } ACE_PostRGBGainSetting;
150*53ee8cc1Swenshuai.xi
151*53ee8cc1Swenshuai.xi static ACE_PostRGBGainSetting stACEPostGainSetting[XC_ACE_EX_MAX_DEVICE_NUM][2];
152*53ee8cc1Swenshuai.xi #else
153*53ee8cc1Swenshuai.xi #define stACEPostGainSetting psACEResPri->stdrvACE.stACEPostGainSetting
154*53ee8cc1Swenshuai.xi #define MWEPanel psACEResPri->stdrvACE.MWEPanel
155*53ee8cc1Swenshuai.xi #endif
156*53ee8cc1Swenshuai.xi /******************************************************************************/
157*53ee8cc1Swenshuai.xi /* Function Prototypes */
158*53ee8cc1Swenshuai.xi /******************************************************************************/
159*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
160*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_ACE_GetVersion()
161*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Get version of ACE library
162*53ee8cc1Swenshuai.xi /// @param <IN> \b None
163*53ee8cc1Swenshuai.xi /// @param <OUT> \b None
164*53ee8cc1Swenshuai.xi /// @param <RET> \b Version
165*53ee8cc1Swenshuai.xi /// @param <GLOBAL> \b None
166*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
MDrv_ACE_GetVersion(void)167*53ee8cc1Swenshuai.xi MS_U16 MDrv_ACE_GetVersion(void)
168*53ee8cc1Swenshuai.xi {
169*53ee8cc1Swenshuai.xi return msACE_GetVersion();
170*53ee8cc1Swenshuai.xi }
171*53ee8cc1Swenshuai.xi
172*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
173*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: void MDrv_ACE_Init( MS_BOOL bScalerWin, MS_S16* psColorCorrectionTable, MS_S16* psPCsRGBTable )
174*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Initialize ACE varible
175*53ee8cc1Swenshuai.xi /// @param <IN> \b None
176*53ee8cc1Swenshuai.xi /// @param <OUT> \b None
177*53ee8cc1Swenshuai.xi /// @param <RET> \b None
178*53ee8cc1Swenshuai.xi /// @param <GLOBAL> \b None
179*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
180*53ee8cc1Swenshuai.xi
MDrv_ACE_Init(void * pInstance,MS_BOOL bScalerWin,MS_S16 * psColorCorrectionTable,MS_S16 * psPCsRGBTable)181*53ee8cc1Swenshuai.xi void MDrv_ACE_Init(void* pInstance, MS_BOOL bScalerWin, MS_S16* psColorCorrectionTable, MS_S16* psPCsRGBTable )
182*53ee8cc1Swenshuai.xi {
183*53ee8cc1Swenshuai.xi _ACE_GET_VARIABLE();
184*53ee8cc1Swenshuai.xi memset(stACEPostGainSetting, 0, sizeof(stACEPostGainSetting));
185*53ee8cc1Swenshuai.xi
186*53ee8cc1Swenshuai.xi if(psACEResPri->stapiACE.g_bACEModuleInited[bScalerWin] == FALSE)
187*53ee8cc1Swenshuai.xi {
188*53ee8cc1Swenshuai.xi InitACEVar(pInstance);
189*53ee8cc1Swenshuai.xi msACEPCForceYUVtoRGB(pInstance, bScalerWin, TRUE);
190*53ee8cc1Swenshuai.xi }
191*53ee8cc1Swenshuai.xi msACESetColorCorrectionTable(pInstance, bScalerWin, psColorCorrectionTable);
192*53ee8cc1Swenshuai.xi msACESetPCsRGBTable(pInstance, bScalerWin, psPCsRGBTable);
193*53ee8cc1Swenshuai.xi Hal_ACE_Set_Device_Bank_Offset();
194*53ee8cc1Swenshuai.xi }
195*53ee8cc1Swenshuai.xi
196*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
197*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_ACE_PCForceYUVtoRGB()
198*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Force transfer YUV to RGB
199*53ee8cc1Swenshuai.xi /// @param <IN> \b bScalerWin
200*53ee8cc1Swenshuai.xi /// @param <IN> \b bEnable
201*53ee8cc1Swenshuai.xi /// @param <OUT> \b None
202*53ee8cc1Swenshuai.xi /// @param <RET> \b None
203*53ee8cc1Swenshuai.xi /// @param <GLOBAL> \b None
204*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
MDrv_ACE_PCForceYUVtoRGB(void * pInstance,MS_BOOL bScalerWin,MS_BOOL bEnable)205*53ee8cc1Swenshuai.xi void MDrv_ACE_PCForceYUVtoRGB(void* pInstance, MS_BOOL bScalerWin, MS_BOOL bEnable )
206*53ee8cc1Swenshuai.xi {
207*53ee8cc1Swenshuai.xi msACEPCForceYUVtoRGB(pInstance, bScalerWin, bEnable);
208*53ee8cc1Swenshuai.xi }
209*53ee8cc1Swenshuai.xi
210*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
211*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_ACE_PicSetContrast()
212*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Adjust Contrast
213*53ee8cc1Swenshuai.xi /// @param <IN> \b bScalerWin
214*53ee8cc1Swenshuai.xi /// @param <IN> \b u8Contrast
215*53ee8cc1Swenshuai.xi /// @param <OUT> \b None
216*53ee8cc1Swenshuai.xi /// @param <RET> \b None
217*53ee8cc1Swenshuai.xi /// @param <GLOBAL> \b None
218*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
MDrv_ACE_PicSetContrast(void * pInstance,MS_BOOL bScalerWin,MS_BOOL bUseYUVSpace,MS_U8 u8Contrast)219*53ee8cc1Swenshuai.xi void MDrv_ACE_PicSetContrast(void* pInstance, MS_BOOL bScalerWin, MS_BOOL bUseYUVSpace, MS_U8 u8Contrast )
220*53ee8cc1Swenshuai.xi {
221*53ee8cc1Swenshuai.xi msAdjustVideoContrast(pInstance, bScalerWin, u8Contrast);
222*53ee8cc1Swenshuai.xi }
223*53ee8cc1Swenshuai.xi
224*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
225*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_ACE_PicSetRGB()
226*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Adjust RGB
227*53ee8cc1Swenshuai.xi /// @param <IN> \b bScalerWin
228*53ee8cc1Swenshuai.xi /// @param <IN> \b u8Red
229*53ee8cc1Swenshuai.xi /// @param <IN> \b u8Green
230*53ee8cc1Swenshuai.xi /// @param <IN> \b u8Blue
231*53ee8cc1Swenshuai.xi /// @param <OUT> \b None
232*53ee8cc1Swenshuai.xi /// @param <RET> \b None
233*53ee8cc1Swenshuai.xi /// @param <GLOBAL> \b None
234*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
MDrv_ACE_PicSetRGB(void * pInstance,MS_BOOL bScalerWin,MS_BOOL bUseYUVSpace,MS_U8 u8Red,MS_U8 u8Green,MS_U8 u8Blue)235*53ee8cc1Swenshuai.xi void MDrv_ACE_PicSetRGB(void* pInstance, MS_BOOL bScalerWin, MS_BOOL bUseYUVSpace, MS_U8 u8Red, MS_U8 u8Green, MS_U8 u8Blue )
236*53ee8cc1Swenshuai.xi {
237*53ee8cc1Swenshuai.xi if(bUseYUVSpace)
238*53ee8cc1Swenshuai.xi {
239*53ee8cc1Swenshuai.xi msAdjustVideoRGB(pInstance, bScalerWin, u8Red, u8Green, u8Blue);
240*53ee8cc1Swenshuai.xi }
241*53ee8cc1Swenshuai.xi else
242*53ee8cc1Swenshuai.xi {
243*53ee8cc1Swenshuai.xi msAdjustPCRGB(pInstance, bScalerWin, u8Red, u8Green, u8Blue);
244*53ee8cc1Swenshuai.xi }
245*53ee8cc1Swenshuai.xi }
246*53ee8cc1Swenshuai.xi
247*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
248*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_ACE_PicSetRGB_10Bits()
249*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Adjust RGB
250*53ee8cc1Swenshuai.xi /// @param <IN> \b bScalerWin
251*53ee8cc1Swenshuai.xi /// @param <IN> \b u16Red
252*53ee8cc1Swenshuai.xi /// @param <IN> \b u16Green
253*53ee8cc1Swenshuai.xi /// @param <IN> \b u16Blue
254*53ee8cc1Swenshuai.xi /// @param <OUT> \b None
255*53ee8cc1Swenshuai.xi /// @param <RET> \b None
256*53ee8cc1Swenshuai.xi /// @param <GLOBAL> \b None
257*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
MDrv_ACE_PicSetRGB_10Bits(void * pInstance,MS_BOOL bScalerWin,MS_BOOL bUseYUVSpace,MS_U16 u16Red,MS_U16 u16Green,MS_U16 u16Blue)258*53ee8cc1Swenshuai.xi void MDrv_ACE_PicSetRGB_10Bits( void* pInstance, MS_BOOL bScalerWin, MS_BOOL bUseYUVSpace, MS_U16 u16Red, MS_U16 u16Green, MS_U16 u16Blue )
259*53ee8cc1Swenshuai.xi {
260*53ee8cc1Swenshuai.xi if(bUseYUVSpace)
261*53ee8cc1Swenshuai.xi {
262*53ee8cc1Swenshuai.xi msAdjustVideoRGB_10Bits(pInstance, bScalerWin, u16Red, u16Green, u16Blue);
263*53ee8cc1Swenshuai.xi }
264*53ee8cc1Swenshuai.xi else
265*53ee8cc1Swenshuai.xi {
266*53ee8cc1Swenshuai.xi msAdjustPCRGB_10Bits(pInstance, bScalerWin, u16Red, u16Red, u16Red);
267*53ee8cc1Swenshuai.xi }
268*53ee8cc1Swenshuai.xi }
269*53ee8cc1Swenshuai.xi
270*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
271*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_ACE_PicSetPostRGBGainOffset()
272*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Adjust Post RGB Gain and Offset simultaneously
273*53ee8cc1Swenshuai.xi /// @param <IN> \b bScalerWin
274*53ee8cc1Swenshuai.xi /// @param <IN> \b u8RedGain
275*53ee8cc1Swenshuai.xi /// @param <IN> \b u8GreenGain
276*53ee8cc1Swenshuai.xi /// @param <IN> \b u8BlueGain
277*53ee8cc1Swenshuai.xi /// @param <IN> \b u16RedOffset
278*53ee8cc1Swenshuai.xi /// @param <IN> \b u16GreenOffset
279*53ee8cc1Swenshuai.xi /// @param <IN> \b u16BlueOffset
280*53ee8cc1Swenshuai.xi /// @param <OUT> \b None
281*53ee8cc1Swenshuai.xi /// @param <RET> \b None
282*53ee8cc1Swenshuai.xi /// @param <GLOBAL> \b None
283*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
MDrv_ACE_PicSetPostRGBGainOffset(void * pInstance,MS_BOOL bScalerWin,MS_U16 u8RedGain,MS_U16 u8GreenGain,MS_U16 u8BlueGain,MS_U16 u16RedOffset,MS_U16 u16GreenOffset,MS_U16 u16BlueOffset,MS_U8 u8Step)284*53ee8cc1Swenshuai.xi void MDrv_ACE_PicSetPostRGBGainOffset(void* pInstance, MS_BOOL bScalerWin,
285*53ee8cc1Swenshuai.xi MS_U16 u8RedGain, MS_U16 u8GreenGain, MS_U16 u8BlueGain,
286*53ee8cc1Swenshuai.xi MS_U16 u16RedOffset, MS_U16 u16GreenOffset, MS_U16 u16BlueOffset, MS_U8 u8Step)
287*53ee8cc1Swenshuai.xi {
288*53ee8cc1Swenshuai.xi MS_U8 u8Idx;
289*53ee8cc1Swenshuai.xi
290*53ee8cc1Swenshuai.xi u8Idx = (bScalerWin == TRUE) ? 1 : 0;
291*53ee8cc1Swenshuai.xi _ACE_GET_VARIABLE();
292*53ee8cc1Swenshuai.xi
293*53ee8cc1Swenshuai.xi stACEPostGainSetting[u8Idx].u16RedGain = u8RedGain ;
294*53ee8cc1Swenshuai.xi stACEPostGainSetting[u8Idx].u16GreenGain = u8GreenGain ;
295*53ee8cc1Swenshuai.xi stACEPostGainSetting[u8Idx].u16BlueGain = u8BlueGain ;
296*53ee8cc1Swenshuai.xi
297*53ee8cc1Swenshuai.xi Hal_ACE_SetPostRGBGainOffsetTogether(pInstance, bScalerWin,
298*53ee8cc1Swenshuai.xi stACEPostGainSetting[u8Idx].u16RedGain,
299*53ee8cc1Swenshuai.xi stACEPostGainSetting[u8Idx].u16GreenGain,
300*53ee8cc1Swenshuai.xi stACEPostGainSetting[u8Idx].u16BlueGain,
301*53ee8cc1Swenshuai.xi u16RedOffset << u8Step,
302*53ee8cc1Swenshuai.xi u16GreenOffset << u8Step,
303*53ee8cc1Swenshuai.xi u16BlueOffset << u8Step);
304*53ee8cc1Swenshuai.xi }
305*53ee8cc1Swenshuai.xi
306*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
307*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_ACE_PicSetPostRGBGain()
308*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Adjust Post RGB Gain
309*53ee8cc1Swenshuai.xi /// @param <IN> \b bScalerWin
310*53ee8cc1Swenshuai.xi /// @param <IN> \b u8RedGain
311*53ee8cc1Swenshuai.xi /// @param <IN> \b u8GreenGain
312*53ee8cc1Swenshuai.xi /// @param <IN> \b u8BlueGain
313*53ee8cc1Swenshuai.xi /// @param <OUT> \b None
314*53ee8cc1Swenshuai.xi /// @param <RET> \b None
315*53ee8cc1Swenshuai.xi /// @param <GLOBAL> \b None
316*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
MDrv_ACE_PicSetPostRGBGain(void * pInstance,MS_BOOL bScalerWin,MS_U16 u8RedGain,MS_U16 u8GreenGain,MS_U16 u8BlueGain)317*53ee8cc1Swenshuai.xi void MDrv_ACE_PicSetPostRGBGain(void* pInstance, MS_BOOL bScalerWin, MS_U16 u8RedGain, MS_U16 u8GreenGain, MS_U16 u8BlueGain)
318*53ee8cc1Swenshuai.xi {
319*53ee8cc1Swenshuai.xi MS_U8 u8Idx;
320*53ee8cc1Swenshuai.xi
321*53ee8cc1Swenshuai.xi u8Idx = (bScalerWin == TRUE) ? 1 : 0;
322*53ee8cc1Swenshuai.xi _ACE_GET_VARIABLE();
323*53ee8cc1Swenshuai.xi
324*53ee8cc1Swenshuai.xi stACEPostGainSetting[u8Idx].u16RedGain = u8RedGain ;
325*53ee8cc1Swenshuai.xi stACEPostGainSetting[u8Idx].u16GreenGain = u8GreenGain ;
326*53ee8cc1Swenshuai.xi stACEPostGainSetting[u8Idx].u16BlueGain = u8BlueGain ;
327*53ee8cc1Swenshuai.xi
328*53ee8cc1Swenshuai.xi Hal_ACE_SetPostRGBGain(pInstance, bScalerWin,
329*53ee8cc1Swenshuai.xi stACEPostGainSetting[u8Idx].u16RedGain,
330*53ee8cc1Swenshuai.xi stACEPostGainSetting[u8Idx].u16GreenGain,
331*53ee8cc1Swenshuai.xi stACEPostGainSetting[u8Idx].u16BlueGain);
332*53ee8cc1Swenshuai.xi }
333*53ee8cc1Swenshuai.xi
334*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
335*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_ACE_PicGetPostRGBGain()
336*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Get ACE Post RGB Gain Info
337*53ee8cc1Swenshuai.xi /// @param <IN> \b bScalerWin
338*53ee8cc1Swenshuai.xi /// @param <IN> \b ucInfoType
339*53ee8cc1Swenshuai.xi /// @param <OUT> \b None
340*53ee8cc1Swenshuai.xi /// @param <RET> \b wReturnValue
341*53ee8cc1Swenshuai.xi /// @param <GLOBAL> \b None
342*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
MDrv_ACE_PicGetPostRGBGain(void * pInstance,MS_BOOL bWindow,MS_U16 u16ACEinfo)343*53ee8cc1Swenshuai.xi MS_U16 MDrv_ACE_PicGetPostRGBGain(void* pInstance, MS_BOOL bWindow, MS_U16 u16ACEinfo)
344*53ee8cc1Swenshuai.xi {
345*53ee8cc1Swenshuai.xi EnuACEInfoType eACEInfoType = (EnuACEInfoType) u16ACEinfo;
346*53ee8cc1Swenshuai.xi MS_U16 u16ReturnValue = 0;
347*53ee8cc1Swenshuai.xi MS_U8 u8Idx;
348*53ee8cc1Swenshuai.xi _ACE_GET_VARIABLE();
349*53ee8cc1Swenshuai.xi
350*53ee8cc1Swenshuai.xi u8Idx = (bWindow == TRUE) ? 1 : 0;
351*53ee8cc1Swenshuai.xi
352*53ee8cc1Swenshuai.xi switch( eACEInfoType )
353*53ee8cc1Swenshuai.xi {
354*53ee8cc1Swenshuai.xi case ACE_INFO_TYPE_R_GAIN:
355*53ee8cc1Swenshuai.xi u16ReturnValue = stACEPostGainSetting[u8Idx].u16RedGain;
356*53ee8cc1Swenshuai.xi break;
357*53ee8cc1Swenshuai.xi
358*53ee8cc1Swenshuai.xi case ACE_INFO_TYPE_G_GAIN:
359*53ee8cc1Swenshuai.xi u16ReturnValue = stACEPostGainSetting[u8Idx].u16GreenGain;
360*53ee8cc1Swenshuai.xi break;
361*53ee8cc1Swenshuai.xi
362*53ee8cc1Swenshuai.xi case ACE_INFO_TYPE_B_GAIN:
363*53ee8cc1Swenshuai.xi u16ReturnValue = stACEPostGainSetting[u8Idx].u16BlueGain;
364*53ee8cc1Swenshuai.xi break;
365*53ee8cc1Swenshuai.xi
366*53ee8cc1Swenshuai.xi default:
367*53ee8cc1Swenshuai.xi {
368*53ee8cc1Swenshuai.xi MS_DEBUG_MSG(printf("Get Post RGB Gain fails\n"));
369*53ee8cc1Swenshuai.xi u16ReturnValue = 0;
370*53ee8cc1Swenshuai.xi break;
371*53ee8cc1Swenshuai.xi }
372*53ee8cc1Swenshuai.xi }
373*53ee8cc1Swenshuai.xi return u16ReturnValue;
374*53ee8cc1Swenshuai.xi }
375*53ee8cc1Swenshuai.xi
376*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
377*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_ACE_PicSetPostRGBOffset()
378*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Adjust Post RGB Offset
379*53ee8cc1Swenshuai.xi /// @param <IN> \b bScalerWin
380*53ee8cc1Swenshuai.xi /// @param <IN> \b u16RedOffset
381*53ee8cc1Swenshuai.xi /// @param <IN> \b u16GreenOffset
382*53ee8cc1Swenshuai.xi /// @param <IN> \b u16BlueOffset
383*53ee8cc1Swenshuai.xi /// @param <IN> \b u8Step
384*53ee8cc1Swenshuai.xi /// @param <OUT> \b None
385*53ee8cc1Swenshuai.xi /// @param <RET> \b None
386*53ee8cc1Swenshuai.xi /// @param <GLOBAL> \b None
387*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
MDrv_ACE_PicSetPostRGBOffset(void * pInstance,MS_BOOL bScalerWin,MS_U16 u16RedOffset,MS_U16 u16GreenOffset,MS_U16 u16BlueOffset,MS_U8 u8Step)388*53ee8cc1Swenshuai.xi void MDrv_ACE_PicSetPostRGBOffset(void* pInstance, MS_BOOL bScalerWin, MS_U16 u16RedOffset, MS_U16 u16GreenOffset, MS_U16 u16BlueOffset, MS_U8 u8Step)
389*53ee8cc1Swenshuai.xi {
390*53ee8cc1Swenshuai.xi Hal_ACE_SetPostRGBOffset(pInstance, bScalerWin, u16RedOffset << u8Step, u16GreenOffset << u8Step, u16BlueOffset << u8Step);
391*53ee8cc1Swenshuai.xi }
392*53ee8cc1Swenshuai.xi
393*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
394*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_ACE_PicGetPostRGBGain()
395*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Get ACE Post RGB Gain Info
396*53ee8cc1Swenshuai.xi /// @param <IN> \b bScalerWin
397*53ee8cc1Swenshuai.xi /// @param <IN> \b ucInfoType
398*53ee8cc1Swenshuai.xi /// @param <OUT> \b None
399*53ee8cc1Swenshuai.xi /// @param <RET> \b wReturnValue
400*53ee8cc1Swenshuai.xi /// @param <GLOBAL> \b None
401*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
MDrv_ACE_PicGetPostRGBOffset(void * pInstance,MS_BOOL bWindow,MS_U16 u16ACEinfo)402*53ee8cc1Swenshuai.xi MS_U16 MDrv_ACE_PicGetPostRGBOffset(void* pInstance, MS_BOOL bWindow, MS_U16 u16ACEinfo)
403*53ee8cc1Swenshuai.xi {
404*53ee8cc1Swenshuai.xi EnuACEInfoType eACEInfoType = (EnuACEInfoType) u16ACEinfo;
405*53ee8cc1Swenshuai.xi MS_U16 u16ReturnValue = 0;
406*53ee8cc1Swenshuai.xi _ACE_GET_INST_PRIVATE();
407*53ee8cc1Swenshuai.xi
408*53ee8cc1Swenshuai.xi switch( eACEInfoType )
409*53ee8cc1Swenshuai.xi {
410*53ee8cc1Swenshuai.xi case ACE_INFO_TYPE_COLOR_CORRECTION_OFFSET_R:
411*53ee8cc1Swenshuai.xi {
412*53ee8cc1Swenshuai.xi if(MAIN_WINDOW == bWindow)
413*53ee8cc1Swenshuai.xi {
414*53ee8cc1Swenshuai.xi u16ReturnValue = SC_R2BYTEMSK(psACEInstPri->u32DeviceID, REG_SC_BK25_21_L, 0x07FF);
415*53ee8cc1Swenshuai.xi }
416*53ee8cc1Swenshuai.xi else
417*53ee8cc1Swenshuai.xi {
418*53ee8cc1Swenshuai.xi u16ReturnValue = SC_R2BYTEMSK(psACEInstPri->u32DeviceID, REG_SC_BK25_27_L, 0x07FF);
419*53ee8cc1Swenshuai.xi }
420*53ee8cc1Swenshuai.xi break;
421*53ee8cc1Swenshuai.xi }
422*53ee8cc1Swenshuai.xi case ACE_INFO_TYPE_COLOR_CORRECTION_OFFSET_G:
423*53ee8cc1Swenshuai.xi {
424*53ee8cc1Swenshuai.xi if(MAIN_WINDOW == bWindow)
425*53ee8cc1Swenshuai.xi {
426*53ee8cc1Swenshuai.xi u16ReturnValue = SC_R2BYTEMSK(psACEInstPri->u32DeviceID, REG_SC_BK25_22_L, 0x07FF);
427*53ee8cc1Swenshuai.xi }
428*53ee8cc1Swenshuai.xi else
429*53ee8cc1Swenshuai.xi {
430*53ee8cc1Swenshuai.xi u16ReturnValue = SC_R2BYTEMSK(psACEInstPri->u32DeviceID, REG_SC_BK25_28_L, 0x07FF);
431*53ee8cc1Swenshuai.xi }
432*53ee8cc1Swenshuai.xi break;
433*53ee8cc1Swenshuai.xi }
434*53ee8cc1Swenshuai.xi case ACE_INFO_TYPE_COLOR_CORRECTION_OFFSET_B:
435*53ee8cc1Swenshuai.xi {
436*53ee8cc1Swenshuai.xi if(MAIN_WINDOW == bWindow)
437*53ee8cc1Swenshuai.xi {
438*53ee8cc1Swenshuai.xi u16ReturnValue = SC_R2BYTEMSK(psACEInstPri->u32DeviceID, REG_SC_BK25_23_L, 0x07FF);
439*53ee8cc1Swenshuai.xi }
440*53ee8cc1Swenshuai.xi else
441*53ee8cc1Swenshuai.xi {
442*53ee8cc1Swenshuai.xi u16ReturnValue = SC_R2BYTEMSK(psACEInstPri->u32DeviceID, REG_SC_BK25_29_L, 0x07FF);
443*53ee8cc1Swenshuai.xi }
444*53ee8cc1Swenshuai.xi break;
445*53ee8cc1Swenshuai.xi }
446*53ee8cc1Swenshuai.xi default:
447*53ee8cc1Swenshuai.xi {
448*53ee8cc1Swenshuai.xi MS_DEBUG_MSG(printf("Get Post RGB Offset fails\n"));
449*53ee8cc1Swenshuai.xi u16ReturnValue = 0;
450*53ee8cc1Swenshuai.xi break;
451*53ee8cc1Swenshuai.xi }
452*53ee8cc1Swenshuai.xi }
453*53ee8cc1Swenshuai.xi return u16ReturnValue;
454*53ee8cc1Swenshuai.xi }
455*53ee8cc1Swenshuai.xi
MDrv_ACE_GetPostRGBGain(void * pInstance,MS_BOOL bScalerWin,MS_U16 u16ACEinfo)456*53ee8cc1Swenshuai.xi MS_U8 MDrv_ACE_GetPostRGBGain(void* pInstance, MS_BOOL bScalerWin, MS_U16 u16ACEinfo)
457*53ee8cc1Swenshuai.xi {
458*53ee8cc1Swenshuai.xi EnuACEInfoType eACEInfoType;
459*53ee8cc1Swenshuai.xi eACEInfoType = (EnuACEInfoType) u16ACEinfo;
460*53ee8cc1Swenshuai.xi MS_U8 ret = 0;
461*53ee8cc1Swenshuai.xi _ACE_GET_INST_PRIVATE();
462*53ee8cc1Swenshuai.xi
463*53ee8cc1Swenshuai.xi if(MAIN_WINDOW == bScalerWin)
464*53ee8cc1Swenshuai.xi {
465*53ee8cc1Swenshuai.xi switch(eACEInfoType)
466*53ee8cc1Swenshuai.xi {
467*53ee8cc1Swenshuai.xi case ACE_INFO_TYPE_R_GAIN:
468*53ee8cc1Swenshuai.xi ret = (MS_U8)(SC_R2BYTEMSK(psACEInstPri->u32DeviceID, POST_R_CHANNEL_GAIN_MAIN, POST_R_CHANNEL_GAIN_MASK)>> 3);
469*53ee8cc1Swenshuai.xi break;
470*53ee8cc1Swenshuai.xi case ACE_INFO_TYPE_G_GAIN:
471*53ee8cc1Swenshuai.xi ret = (MS_U8)(SC_R2BYTEMSK(psACEInstPri->u32DeviceID, POST_G_CHANNEL_GAIN_MAIN, POST_G_CHANNEL_GAIN_MASK)>> 3);
472*53ee8cc1Swenshuai.xi break;
473*53ee8cc1Swenshuai.xi case ACE_INFO_TYPE_B_GAIN:
474*53ee8cc1Swenshuai.xi ret = (MS_U8)(SC_R2BYTEMSK(psACEInstPri->u32DeviceID, POST_B_CHANNEL_GAIN_MAIN, POST_B_CHANNEL_GAIN_MASK)>> 3);
475*53ee8cc1Swenshuai.xi break;
476*53ee8cc1Swenshuai.xi default:
477*53ee8cc1Swenshuai.xi ret = 0;
478*53ee8cc1Swenshuai.xi break;
479*53ee8cc1Swenshuai.xi }
480*53ee8cc1Swenshuai.xi }
481*53ee8cc1Swenshuai.xi else
482*53ee8cc1Swenshuai.xi #if (MAX_WINDOW_NUM > 1)
483*53ee8cc1Swenshuai.xi {
484*53ee8cc1Swenshuai.xi switch(eACEInfoType)
485*53ee8cc1Swenshuai.xi {
486*53ee8cc1Swenshuai.xi case ACE_INFO_TYPE_R_GAIN:
487*53ee8cc1Swenshuai.xi ret = (MS_U8)(SC_R2BYTEMSK(psACEInstPri->u32DeviceID, POST_R_CHANNEL_GAIN_SUB, POST_R_CHANNEL_GAIN_MASK)>>3);
488*53ee8cc1Swenshuai.xi break;
489*53ee8cc1Swenshuai.xi case ACE_INFO_TYPE_G_GAIN:
490*53ee8cc1Swenshuai.xi ret = (MS_U8)(SC_R2BYTEMSK(psACEInstPri->u32DeviceID, POST_G_CHANNEL_GAIN_SUB, POST_G_CHANNEL_GAIN_MASK)>>3);
491*53ee8cc1Swenshuai.xi break;
492*53ee8cc1Swenshuai.xi case ACE_INFO_TYPE_B_GAIN:
493*53ee8cc1Swenshuai.xi ret = (MS_U8)(SC_R2BYTEMSK(psACEInstPri->u32DeviceID, POST_B_CHANNEL_GAIN_SUB, POST_B_CHANNEL_GAIN_MASK)>>3);
494*53ee8cc1Swenshuai.xi break;
495*53ee8cc1Swenshuai.xi default:
496*53ee8cc1Swenshuai.xi ret = 0;
497*53ee8cc1Swenshuai.xi break;
498*53ee8cc1Swenshuai.xi }
499*53ee8cc1Swenshuai.xi }
500*53ee8cc1Swenshuai.xi #else
501*53ee8cc1Swenshuai.xi {
502*53ee8cc1Swenshuai.xi ret = 0;
503*53ee8cc1Swenshuai.xi }
504*53ee8cc1Swenshuai.xi #endif
505*53ee8cc1Swenshuai.xi MS_DEBUG_MSG(printf("[MDrv_ACE_GetPostRGBGain] ret = %d\n", ret));
506*53ee8cc1Swenshuai.xi return ret;
507*53ee8cc1Swenshuai.xi }
508*53ee8cc1Swenshuai.xi
509*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
510*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_ACE_SelectYUVtoRGBMatrix()
511*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Select YUV to RGB Matrix
512*53ee8cc1Swenshuai.xi /// @param <IN> \b bScalerWin
513*53ee8cc1Swenshuai.xi /// @param <IN> \b ucMatrix
514*53ee8cc1Swenshuai.xi /// @param <IN> \b psUserYUVtoRGBMatrix
515*53ee8cc1Swenshuai.xi /// @param <OUT> \b None
516*53ee8cc1Swenshuai.xi /// @param <RET> \b None
517*53ee8cc1Swenshuai.xi /// @param <GLOBAL> \b None
518*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
MDrv_ACE_SelectYUVtoRGBMatrix(void * pInstance,MS_BOOL bScalerWin,MS_U8 ucMatrix,MS_S16 * psUserYUVtoRGBMatrix)519*53ee8cc1Swenshuai.xi void MDrv_ACE_SelectYUVtoRGBMatrix(void* pInstance, MS_BOOL bScalerWin, MS_U8 ucMatrix, MS_S16* psUserYUVtoRGBMatrix )
520*53ee8cc1Swenshuai.xi {
521*53ee8cc1Swenshuai.xi msACESelectYUVtoRGBMatrix(pInstance, bScalerWin, ucMatrix, psUserYUVtoRGBMatrix);
522*53ee8cc1Swenshuai.xi }
523*53ee8cc1Swenshuai.xi
524*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
525*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_ACE_SetColorCorrectionTable()
526*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Set Color Correction Table
527*53ee8cc1Swenshuai.xi /// @param <IN> \b bScalerWin
528*53ee8cc1Swenshuai.xi /// @param <IN> \b psColorCorrectionTable
529*53ee8cc1Swenshuai.xi /// @param <OUT> \b None
530*53ee8cc1Swenshuai.xi /// @param <RET> \b None
531*53ee8cc1Swenshuai.xi /// @param <GLOBAL> \b None
532*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
MDrv_ACE_SetColorCorrectionTable(void * pInstance,MS_BOOL bScalerWin)533*53ee8cc1Swenshuai.xi void MDrv_ACE_SetColorCorrectionTable(void* pInstance, MS_BOOL bScalerWin)
534*53ee8cc1Swenshuai.xi {
535*53ee8cc1Swenshuai.xi msSetVideoColorMatrix(pInstance, bScalerWin );
536*53ee8cc1Swenshuai.xi }
537*53ee8cc1Swenshuai.xi
538*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
539*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_ACE_SetPCsRGBTable()
540*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Set PCs RGB Table
541*53ee8cc1Swenshuai.xi /// @param <IN> \b bScalerWin
542*53ee8cc1Swenshuai.xi /// @param <IN> \b psPCsRGBTable
543*53ee8cc1Swenshuai.xi /// @param <OUT> \b None
544*53ee8cc1Swenshuai.xi /// @param <RET> \b None
545*53ee8cc1Swenshuai.xi /// @param <GLOBAL> \b None
546*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
MDrv_ACE_SetPCsRGBTable(void * pInstance,MS_BOOL bScalerWin)547*53ee8cc1Swenshuai.xi void MDrv_ACE_SetPCsRGBTable(void* pInstance, MS_BOOL bScalerWin)
548*53ee8cc1Swenshuai.xi {
549*53ee8cc1Swenshuai.xi msSetPCColorMatrix(pInstance, bScalerWin);
550*53ee8cc1Swenshuai.xi }
551*53ee8cc1Swenshuai.xi
552*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
553*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_ACE_SetSaturation()
554*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Adjust Video Saturation
555*53ee8cc1Swenshuai.xi /// @param <IN> \b bScalerWin
556*53ee8cc1Swenshuai.xi /// @param <IN> \b u8Saturation
557*53ee8cc1Swenshuai.xi /// @param <OUT> \b None
558*53ee8cc1Swenshuai.xi /// @param <RET> \b None
559*53ee8cc1Swenshuai.xi /// @param <GLOBAL> \b None
560*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
MDrv_ACE_SetSaturation(void * pInstance,MS_BOOL bScalerWin,MS_U8 u8Saturation)561*53ee8cc1Swenshuai.xi void MDrv_ACE_SetSaturation(void* pInstance, MS_BOOL bScalerWin, MS_U8 u8Saturation )
562*53ee8cc1Swenshuai.xi {
563*53ee8cc1Swenshuai.xi msAdjustVideoSaturation(pInstance, bScalerWin, u8Saturation);
564*53ee8cc1Swenshuai.xi }
565*53ee8cc1Swenshuai.xi
566*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
567*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_ACE_SetHue()
568*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Adjust Video Hue
569*53ee8cc1Swenshuai.xi /// @param <IN> \b bScalerWin
570*53ee8cc1Swenshuai.xi /// @param <IN> \b u8Hue
571*53ee8cc1Swenshuai.xi /// @param <OUT> \b None
572*53ee8cc1Swenshuai.xi /// @param <RET> \b None
573*53ee8cc1Swenshuai.xi /// @param <GLOBAL> \b None
574*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
MDrv_ACE_SetHue(void * pInstance,MS_BOOL bScalerWin,MS_U8 u8Hue)575*53ee8cc1Swenshuai.xi void MDrv_ACE_SetHue(void* pInstance, MS_BOOL bScalerWin, MS_U8 u8Hue )
576*53ee8cc1Swenshuai.xi {
577*53ee8cc1Swenshuai.xi msAdjustVideoHue(pInstance, bScalerWin, u8Hue);
578*53ee8cc1Swenshuai.xi }
579*53ee8cc1Swenshuai.xi
MDrv_ACE_IsPostRGBGain(void * pInstance,MS_BOOL bWindow)580*53ee8cc1Swenshuai.xi MS_BOOL MDrv_ACE_IsPostRGBGain(void* pInstance, MS_BOOL bWindow)
581*53ee8cc1Swenshuai.xi {
582*53ee8cc1Swenshuai.xi MS_BOOL bRet;
583*53ee8cc1Swenshuai.xi _ACE_GET_INST_PRIVATE();
584*53ee8cc1Swenshuai.xi
585*53ee8cc1Swenshuai.xi if (MAIN_WINDOW == bWindow)
586*53ee8cc1Swenshuai.xi {
587*53ee8cc1Swenshuai.xi bRet = SC_R2BYTEMSK(psACEInstPri->u32DeviceID, REG_SC_BK25_01_L, BIT(5)) ? TRUE: FALSE;
588*53ee8cc1Swenshuai.xi }
589*53ee8cc1Swenshuai.xi else
590*53ee8cc1Swenshuai.xi {
591*53ee8cc1Swenshuai.xi bRet = SC_R2BYTEMSK(psACEInstPri->u32DeviceID, REG_SC_BK25_11_L, BIT(5)) ? TRUE: FALSE;
592*53ee8cc1Swenshuai.xi }
593*53ee8cc1Swenshuai.xi return bRet;
594*53ee8cc1Swenshuai.xi }
595*53ee8cc1Swenshuai.xi
MDrv_ACE_IsPostRGBOffset(void * pInstance,MS_BOOL bWindow)596*53ee8cc1Swenshuai.xi MS_BOOL MDrv_ACE_IsPostRGBOffset(void* pInstance, MS_BOOL bWindow)
597*53ee8cc1Swenshuai.xi {
598*53ee8cc1Swenshuai.xi MS_BOOL bRet = FALSE;
599*53ee8cc1Swenshuai.xi _ACE_GET_INST_PRIVATE();
600*53ee8cc1Swenshuai.xi
601*53ee8cc1Swenshuai.xi if (MAIN_WINDOW == bWindow)
602*53ee8cc1Swenshuai.xi {
603*53ee8cc1Swenshuai.xi bRet = SC_R2BYTEMSK(psACEInstPri->u32DeviceID, REG_SC_BK25_01_L, BIT(4)) ? TRUE: FALSE;
604*53ee8cc1Swenshuai.xi }
605*53ee8cc1Swenshuai.xi else
606*53ee8cc1Swenshuai.xi {
607*53ee8cc1Swenshuai.xi bRet = SC_R2BYTEMSK(psACEInstPri->u32DeviceID, REG_SC_BK25_11_L, BIT(4)) ? TRUE: FALSE;
608*53ee8cc1Swenshuai.xi }
609*53ee8cc1Swenshuai.xi return bRet;
610*53ee8cc1Swenshuai.xi }
611*53ee8cc1Swenshuai.xi
612*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
613*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_ACE_GetInfo()
614*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Get ACE Info
615*53ee8cc1Swenshuai.xi /// @param <IN> \b bScalerWin
616*53ee8cc1Swenshuai.xi /// @param <IN> \b ucInfoType
617*53ee8cc1Swenshuai.xi /// @param <OUT> \b None
618*53ee8cc1Swenshuai.xi /// @param <RET> \b wReturnValue
619*53ee8cc1Swenshuai.xi /// @param <GLOBAL> \b None
620*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
MDrv_ACE_GetACEInfo(void * pInstance,MS_BOOL bWindow,MS_U16 u16ACEinfo)621*53ee8cc1Swenshuai.xi MS_U16 MDrv_ACE_GetACEInfo(void* pInstance, MS_BOOL bWindow, MS_U16 u16ACEinfo )
622*53ee8cc1Swenshuai.xi {
623*53ee8cc1Swenshuai.xi EnuACEInfoType eACEInfoType;
624*53ee8cc1Swenshuai.xi eACEInfoType = (EnuACEInfoType) u16ACEinfo;
625*53ee8cc1Swenshuai.xi _ACE_GET_INST_PRIVATE();
626*53ee8cc1Swenshuai.xi
627*53ee8cc1Swenshuai.xi if(SC_R2BYTEMSK(psACEInstPri->u32DeviceID, REG_SC_BK25_01_L, BIT(5)) && ((eACEInfoType == ACE_INFO_TYPE_R_GAIN) || (eACEInfoType == ACE_INFO_TYPE_G_GAIN) || (eACEInfoType == ACE_INFO_TYPE_B_GAIN)))
628*53ee8cc1Swenshuai.xi {
629*53ee8cc1Swenshuai.xi return MDrv_ACE_PicGetPostRGBGain(pInstance, bWindow, u16ACEinfo);
630*53ee8cc1Swenshuai.xi }
631*53ee8cc1Swenshuai.xi else if ((eACEInfoType == ACE_INFO_TYPE_BRIGHTNESS_R) || (eACEInfoType == ACE_INFO_TYPE_BRIGHTNESS_G) || (eACEInfoType == ACE_INFO_TYPE_BRIGHTNESS_B))
632*53ee8cc1Swenshuai.xi {
633*53ee8cc1Swenshuai.xi return MDrv_ACE_GetBrightness(pInstance, bWindow, eACEInfoType);
634*53ee8cc1Swenshuai.xi }
635*53ee8cc1Swenshuai.xi else
636*53ee8cc1Swenshuai.xi return msACE_GetInfo(pInstance, bWindow, eACEInfoType);
637*53ee8cc1Swenshuai.xi }
638*53ee8cc1Swenshuai.xi
639*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
640*53ee8cc1Swenshuai.xi //
641*53ee8cc1Swenshuai.xi // ACE library function end
642*53ee8cc1Swenshuai.xi //
643*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
644*53ee8cc1Swenshuai.xi
645*53ee8cc1Swenshuai.xi
646*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
647*53ee8cc1Swenshuai.xi //
648*53ee8cc1Swenshuai.xi // DrvACE.c start
649*53ee8cc1Swenshuai.xi //
650*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
MDrv_ACE_DMS(void * pInstance,MS_BOOL bScalerWin,MS_BOOL bisATV)651*53ee8cc1Swenshuai.xi void MDrv_ACE_DMS(void* pInstance, MS_BOOL bScalerWin, MS_BOOL bisATV )
652*53ee8cc1Swenshuai.xi {
653*53ee8cc1Swenshuai.xi Hal_ACE_DMS(pInstance, bScalerWin, bisATV);
654*53ee8cc1Swenshuai.xi }
655*53ee8cc1Swenshuai.xi
MDrv_ACE_GetColorMatrix(void * pInstance,MS_BOOL bScalerWin,MS_U16 * pu16Matrix)656*53ee8cc1Swenshuai.xi void MDrv_ACE_GetColorMatrix(void* pInstance, MS_BOOL bScalerWin, MS_U16* pu16Matrix )
657*53ee8cc1Swenshuai.xi {
658*53ee8cc1Swenshuai.xi Hal_ACE_GetColorMatrix(pInstance, bScalerWin, pu16Matrix);
659*53ee8cc1Swenshuai.xi }
660*53ee8cc1Swenshuai.xi
MDrv_ACE_SetColorMatrix(void * pInstance,MS_BOOL bScalerWin,MS_U16 * pu16Matrix)661*53ee8cc1Swenshuai.xi void MDrv_ACE_SetColorMatrix(void* pInstance, MS_BOOL bScalerWin, MS_U16* pu16Matrix )
662*53ee8cc1Swenshuai.xi {
663*53ee8cc1Swenshuai.xi Hal_ACE_SetColorMatrix(pInstance, bScalerWin, pu16Matrix);
664*53ee8cc1Swenshuai.xi }
665*53ee8cc1Swenshuai.xi
MDrv_ACE_SetBypassColorMatrix(void * pInstance,MS_BOOL bEnable)666*53ee8cc1Swenshuai.xi MS_BOOL MDrv_ACE_SetBypassColorMatrix(void* pInstance, MS_BOOL bEnable )
667*53ee8cc1Swenshuai.xi {
668*53ee8cc1Swenshuai.xi msACESetBypassColorMatrix(pInstance, bEnable);
669*53ee8cc1Swenshuai.xi return TRUE;
670*53ee8cc1Swenshuai.xi }
671*53ee8cc1Swenshuai.xi
MDrv_ACE_PatchDTGColorChecker(void * pInstance,MS_U8 u8Mode)672*53ee8cc1Swenshuai.xi void MDrv_ACE_PatchDTGColorChecker(void* pInstance, MS_U8 u8Mode)
673*53ee8cc1Swenshuai.xi {
674*53ee8cc1Swenshuai.xi Hal_ACE_PatchDTGColorChecker(pInstance, u8Mode);
675*53ee8cc1Swenshuai.xi }
676*53ee8cc1Swenshuai.xi
677*53ee8cc1Swenshuai.xi
MDrv_ACE_SetFleshTone(void * pInstance,MS_BOOL bScalerWin,MS_BOOL bEn,MS_U8 u8FleshTone)678*53ee8cc1Swenshuai.xi void MDrv_ACE_SetFleshTone(void* pInstance, MS_BOOL bScalerWin, MS_BOOL bEn, MS_U8 u8FleshTone)
679*53ee8cc1Swenshuai.xi {
680*53ee8cc1Swenshuai.xi Hal_ACE_SetFCC_En(pInstance, bScalerWin, 0, bEn);
681*53ee8cc1Swenshuai.xi Hal_ACE_SetFCC_Cb(pInstance, 0, u8FleshTone);
682*53ee8cc1Swenshuai.xi }
683*53ee8cc1Swenshuai.xi
MDrv_ACE_SetBlackAdjust(void * pInstance,MS_BOOL bScalerWin,MS_U8 u8BlackAdjust)684*53ee8cc1Swenshuai.xi void MDrv_ACE_SetBlackAdjust(void* pInstance, MS_BOOL bScalerWin, MS_U8 u8BlackAdjust)
685*53ee8cc1Swenshuai.xi {
686*53ee8cc1Swenshuai.xi Hal_ACE_SetSlopValue(pInstance, bScalerWin, u8BlackAdjust);
687*53ee8cc1Swenshuai.xi }
688*53ee8cc1Swenshuai.xi
MDrv_ACE_init_riu_base(MS_VIRT ptr_riu_base)689*53ee8cc1Swenshuai.xi void MDrv_ACE_init_riu_base(MS_VIRT ptr_riu_base )
690*53ee8cc1Swenshuai.xi {
691*53ee8cc1Swenshuai.xi Hal_ACE_init_riu_base(ptr_riu_base);
692*53ee8cc1Swenshuai.xi }
693*53ee8cc1Swenshuai.xi
MDrv_ACE_SetSharpness(void * pInstance,MS_BOOL bScalerWin,MS_U8 u8Sharpness)694*53ee8cc1Swenshuai.xi void MDrv_ACE_SetSharpness(void* pInstance, MS_BOOL bScalerWin, MS_U8 u8Sharpness )
695*53ee8cc1Swenshuai.xi {
696*53ee8cc1Swenshuai.xi Hal_ACE_SetSharpness(pInstance, bScalerWin, u8Sharpness);
697*53ee8cc1Swenshuai.xi }
698*53ee8cc1Swenshuai.xi
699*53ee8cc1Swenshuai.xi /******************************************************************************/
700*53ee8cc1Swenshuai.xi ///Set brightness
701*53ee8cc1Swenshuai.xi ///@param u8Brightness \b IN
702*53ee8cc1Swenshuai.xi ///- brightness value from 0 -0xff
703*53ee8cc1Swenshuai.xi /******************************************************************************/
MDrv_ACE_SetBrightness(void * pInstance,MS_BOOL bScalerWin,MS_U8 u8RedBrightness,MS_U8 u8GreenBrightness,MS_U8 u8BlueBrightness)704*53ee8cc1Swenshuai.xi void MDrv_ACE_SetBrightness (void* pInstance, MS_BOOL bScalerWin, MS_U8 u8RedBrightness, MS_U8 u8GreenBrightness, MS_U8 u8BlueBrightness )
705*53ee8cc1Swenshuai.xi {
706*53ee8cc1Swenshuai.xi Hal_ACE_SetBrightness(pInstance, bScalerWin, u8RedBrightness, u8GreenBrightness, u8BlueBrightness);
707*53ee8cc1Swenshuai.xi }
708*53ee8cc1Swenshuai.xi
709*53ee8cc1Swenshuai.xi /******************************************************************************/
710*53ee8cc1Swenshuai.xi ///Set brightness
711*53ee8cc1Swenshuai.xi ///@param u16Brightness \b IN
712*53ee8cc1Swenshuai.xi ///- brightness value from 0-0x7ff
713*53ee8cc1Swenshuai.xi /******************************************************************************/
MDrv_ACE_SetBrightnessPrecise(void * pInstance,MS_BOOL bScalerWin,MS_U16 u16RedBrightness,MS_U16 u16GreenBrightness,MS_U16 u16BlueBrightness)714*53ee8cc1Swenshuai.xi void MDrv_ACE_SetBrightnessPrecise(void* pInstance, MS_BOOL bScalerWin, MS_U16 u16RedBrightness, MS_U16 u16GreenBrightness, MS_U16 u16BlueBrightness)
715*53ee8cc1Swenshuai.xi {
716*53ee8cc1Swenshuai.xi Hal_ACE_SetBrightnessPrecise(pInstance, bScalerWin, u16RedBrightness, u16GreenBrightness, u16BlueBrightness);
717*53ee8cc1Swenshuai.xi }
718*53ee8cc1Swenshuai.xi
719*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
720*53ee8cc1Swenshuai.xi /// @brief \b Function \b Name: MDrv_ACE_GetBrightness()
721*53ee8cc1Swenshuai.xi /// @brief \b Function \b Description: Get ACE brightness
722*53ee8cc1Swenshuai.xi /// @param <IN> \b pInstance pInstance
723*53ee8cc1Swenshuai.xi /// @param <IN> \b bScalerWin bScalerWin
724*53ee8cc1Swenshuai.xi /// @param <IN> \b eACEInfoType
725*53ee8cc1Swenshuai.xi /// @param <OUT> \b None
726*53ee8cc1Swenshuai.xi /// @param <RET> \b u16Val Brightness value from 0-0xff
727*53ee8cc1Swenshuai.xi /// @param <GLOBAL> \b None
728*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
729*53ee8cc1Swenshuai.xi
MDrv_ACE_GetBrightness(void * pInstance,MS_BOOL bScalerWin,EnuACEInfoType eACEInfoType)730*53ee8cc1Swenshuai.xi MS_U16 MDrv_ACE_GetBrightness(void* pInstance, MS_BOOL bScalerWin, EnuACEInfoType eACEInfoType)
731*53ee8cc1Swenshuai.xi {
732*53ee8cc1Swenshuai.xi MS_U16 u16Val = 0;
733*53ee8cc1Swenshuai.xi MS_U8 u8RedBrightness = 0;
734*53ee8cc1Swenshuai.xi MS_U8 u8GreenBrightness = 0;
735*53ee8cc1Swenshuai.xi MS_U8 u8BlueBrightness = 0;
736*53ee8cc1Swenshuai.xi
737*53ee8cc1Swenshuai.xi Hal_ACE_GetBrightness(pInstance, bScalerWin, &u8RedBrightness, &u8GreenBrightness, &u8BlueBrightness);
738*53ee8cc1Swenshuai.xi
739*53ee8cc1Swenshuai.xi switch(eACEInfoType)
740*53ee8cc1Swenshuai.xi {
741*53ee8cc1Swenshuai.xi case ACE_INFO_TYPE_BRIGHTNESS_R:
742*53ee8cc1Swenshuai.xi u16Val = (MS_U16) u8RedBrightness;
743*53ee8cc1Swenshuai.xi break;
744*53ee8cc1Swenshuai.xi
745*53ee8cc1Swenshuai.xi case ACE_INFO_TYPE_BRIGHTNESS_G:
746*53ee8cc1Swenshuai.xi u16Val = (MS_U16) u8GreenBrightness;
747*53ee8cc1Swenshuai.xi break;
748*53ee8cc1Swenshuai.xi
749*53ee8cc1Swenshuai.xi case ACE_INFO_TYPE_BRIGHTNESS_B:
750*53ee8cc1Swenshuai.xi u16Val = (MS_U16) u8BlueBrightness;
751*53ee8cc1Swenshuai.xi break;
752*53ee8cc1Swenshuai.xi
753*53ee8cc1Swenshuai.xi default:
754*53ee8cc1Swenshuai.xi u16Val = 0;
755*53ee8cc1Swenshuai.xi break;
756*53ee8cc1Swenshuai.xi }
757*53ee8cc1Swenshuai.xi
758*53ee8cc1Swenshuai.xi return u16Val;
759*53ee8cc1Swenshuai.xi }
760*53ee8cc1Swenshuai.xi
761*53ee8cc1Swenshuai.xi
762*53ee8cc1Swenshuai.xi #ifdef ENABLE_SET_PRE_Y_OFFSET
763*53ee8cc1Swenshuai.xi extern void* pu32ACE_XCInst;
764*53ee8cc1Swenshuai.xi extern MLOAD_TYPE MApi_XC_MLoad_GetStatus_U2(void *pInstance);
765*53ee8cc1Swenshuai.xi extern MS_BOOL MApi_XC_MLoad_Fire(void *pInstance, MS_BOOL bImmediate);
766*53ee8cc1Swenshuai.xi extern MS_BOOL MApi_XC_MLoad_WriteCmd(void *pInstance, MS_U32 u32Addr, MS_U16 u16Data, MS_U16 u16Mask);
767*53ee8cc1Swenshuai.xi #endif
768*53ee8cc1Swenshuai.xi /******************************************************************************/
769*53ee8cc1Swenshuai.xi ///Set Pre Y offset
770*53ee8cc1Swenshuai.xi ///@param bScalerMainWin \b IN
771*53ee8cc1Swenshuai.xi ///@param u8PreYOffset \b IN
772*53ee8cc1Swenshuai.xi ///- u16PreYOffset value from 0 -0xff
773*53ee8cc1Swenshuai.xi /// @return @ref MS_BOOL
774*53ee8cc1Swenshuai.xi /******************************************************************************/
MDrv_ACE_SetPreYOffset(void * pInstance,MS_BOOL bScalerWin,MS_U8 u8PreYOffset)775*53ee8cc1Swenshuai.xi MS_BOOL MDrv_ACE_SetPreYOffset(void* pInstance, MS_BOOL bScalerWin, MS_U8 u8PreYOffset)
776*53ee8cc1Swenshuai.xi {
777*53ee8cc1Swenshuai.xi #ifdef ENABLE_SET_PRE_Y_OFFSET
778*53ee8cc1Swenshuai.xi ACE_INSTANCE_PRIVATE *psACEInstPri = NULL;
779*53ee8cc1Swenshuai.xi UtopiaInstanceGetPrivate(pInstance, (void**)&psACEInstPri);
780*53ee8cc1Swenshuai.xi if((MApi_XC_MLoad_GetStatus_U2(pu32ACE_XCInst) == E_MLOAD_ENABLED) && (!Hal_ACE_GetSkipWaitVsync(pInstance, bScalerWin)))
781*53ee8cc1Swenshuai.xi {
782*53ee8cc1Swenshuai.xi if (bScalerWin == MAIN_WINDOW)
783*53ee8cc1Swenshuai.xi {
784*53ee8cc1Swenshuai.xi MApi_XC_MLoad_WriteCmd(pu32ACE_XCInst, REG_SC_BK1A_0F_L, ((MS_U16)u8PreYOffset), 0xFF);
785*53ee8cc1Swenshuai.xi }
786*53ee8cc1Swenshuai.xi else
787*53ee8cc1Swenshuai.xi {
788*53ee8cc1Swenshuai.xi MApi_XC_MLoad_WriteCmd(pu32ACE_XCInst, REG_SC_BK1A_0F_L, ((MS_U16)u8PreYOffset<<8), 0xFF00);
789*53ee8cc1Swenshuai.xi }
790*53ee8cc1Swenshuai.xi
791*53ee8cc1Swenshuai.xi MApi_XC_MLoad_Fire(pInstance, TRUE);
792*53ee8cc1Swenshuai.xi
793*53ee8cc1Swenshuai.xi }
794*53ee8cc1Swenshuai.xi else
795*53ee8cc1Swenshuai.xi {
796*53ee8cc1Swenshuai.xi if (bScalerWin == MAIN_WINDOW)
797*53ee8cc1Swenshuai.xi {
798*53ee8cc1Swenshuai.xi SC_W2BYTEMSK(psACEInstPri->u32DeviceID, REG_SC_BK1A_0F_L, ((MS_U16)u8PreYOffset), 0xFF);
799*53ee8cc1Swenshuai.xi }
800*53ee8cc1Swenshuai.xi else
801*53ee8cc1Swenshuai.xi {
802*53ee8cc1Swenshuai.xi SC_W2BYTEMSK(psACEInstPri->u32DeviceID, REG_SC_BK1A_0F_L, ((MS_U16)u8PreYOffset<<8), 0xFF00);
803*53ee8cc1Swenshuai.xi }
804*53ee8cc1Swenshuai.xi }
805*53ee8cc1Swenshuai.xi return TRUE;
806*53ee8cc1Swenshuai.xi #else
807*53ee8cc1Swenshuai.xi return FALSE;
808*53ee8cc1Swenshuai.xi #endif
809*53ee8cc1Swenshuai.xi }
810*53ee8cc1Swenshuai.xi
811*53ee8cc1Swenshuai.xi /******************************************************************************/
812*53ee8cc1Swenshuai.xi ///Get Pre Y offset
813*53ee8cc1Swenshuai.xi ///@param bScalerMainWin \b IN
814*53ee8cc1Swenshuai.xi ///@param pu8PreYOffset \b OUT
815*53ee8cc1Swenshuai.xi ///- pu8PreYOffset value from 0 -0xff
816*53ee8cc1Swenshuai.xi /// @return @ref MS_U8
817*53ee8cc1Swenshuai.xi /******************************************************************************/
MDrv_ACE_GetPreYOffset(void * pInstance,MS_BOOL bScalerWin)818*53ee8cc1Swenshuai.xi MS_U8 MDrv_ACE_GetPreYOffset(void* pInstance, MS_BOOL bScalerWin)
819*53ee8cc1Swenshuai.xi {
820*53ee8cc1Swenshuai.xi MS_U8 u8PreYOffset= 0;
821*53ee8cc1Swenshuai.xi #ifdef ENABLE_SET_PRE_Y_OFFSET
822*53ee8cc1Swenshuai.xi ACE_INSTANCE_PRIVATE *psACEInstPri = NULL;
823*53ee8cc1Swenshuai.xi UtopiaInstanceGetPrivate(pInstance, (void**)&psACEInstPri);
824*53ee8cc1Swenshuai.xi if (bScalerWin == MAIN_WINDOW)
825*53ee8cc1Swenshuai.xi {
826*53ee8cc1Swenshuai.xi u8PreYOffset = SC_R2BYTEMSK(psACEInstPri->u32DeviceID, REG_SC_BK1A_0F_L, 0xFF);
827*53ee8cc1Swenshuai.xi }
828*53ee8cc1Swenshuai.xi else
829*53ee8cc1Swenshuai.xi {
830*53ee8cc1Swenshuai.xi u8PreYOffset = (MS_U8)(SC_R2BYTEMSK(psACEInstPri->u32DeviceID, REG_SC_BK1A_0F_L, 0xFF00) >> 8);
831*53ee8cc1Swenshuai.xi }
832*53ee8cc1Swenshuai.xi #endif
833*53ee8cc1Swenshuai.xi return u8PreYOffset;
834*53ee8cc1Swenshuai.xi }
835*53ee8cc1Swenshuai.xi
836*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
837*53ee8cc1Swenshuai.xi //
838*53ee8cc1Swenshuai.xi // MWE start
839*53ee8cc1Swenshuai.xi //
840*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
841*53ee8cc1Swenshuai.xi
842*53ee8cc1Swenshuai.xi
843*53ee8cc1Swenshuai.xi MS_U8 MWE_Border_Color[] =
844*53ee8cc1Swenshuai.xi {
845*53ee8cc1Swenshuai.xi 0x00, // E_XC_FREE_RUN_COLOR_BLACK
846*53ee8cc1Swenshuai.xi 0xFF, // E_XC_FREE_RUN_COLOR_WHITE
847*53ee8cc1Swenshuai.xi 0x03, // E_XC_FREE_RUN_COLOR_BLUE
848*53ee8cc1Swenshuai.xi 0xE0, // E_XC_FREE_RUN_COLOR_RED
849*53ee8cc1Swenshuai.xi 0x1C, // E_XC_FREE_RUN_COLOR_GREEN
850*53ee8cc1Swenshuai.xi };
851*53ee8cc1Swenshuai.xi
MDrv_XC_ACE_MWEinit(void * pInstance,MS_U16 u16MWEHstart,MS_U16 u16MWEVstart,MS_U16 u16MWEWidth,MS_U16 u16MWEHeight)852*53ee8cc1Swenshuai.xi void MDrv_XC_ACE_MWEinit(void* pInstance, MS_U16 u16MWEHstart, MS_U16 u16MWEVstart, MS_U16 u16MWEWidth, MS_U16 u16MWEHeight)
853*53ee8cc1Swenshuai.xi {
854*53ee8cc1Swenshuai.xi _ACE_GET_VARIABLE();
855*53ee8cc1Swenshuai.xi MWEPanel.u16Pnl_Height = u16MWEHeight;
856*53ee8cc1Swenshuai.xi MWEPanel.u16Pnl_Width = u16MWEWidth;
857*53ee8cc1Swenshuai.xi MWEPanel.u16Pnl_Hstart = u16MWEHstart;
858*53ee8cc1Swenshuai.xi MWEPanel.u16Pnl_Vstart = u16MWEVstart;
859*53ee8cc1Swenshuai.xi }
860*53ee8cc1Swenshuai.xi
861*53ee8cc1Swenshuai.xi //===============================================================================
862*53ee8cc1Swenshuai.xi
MDrv_XC_ACE_MWESetWin(void * pInstance,MWE_RECT * pRect)863*53ee8cc1Swenshuai.xi void MDrv_XC_ACE_MWESetWin(void* pInstance, MWE_RECT *pRect)
864*53ee8cc1Swenshuai.xi {
865*53ee8cc1Swenshuai.xi MS_U16 u16hstart, u16hend, u16vstart, u16vend;
866*53ee8cc1Swenshuai.xi _ACE_GET_VARIABLE();
867*53ee8cc1Swenshuai.xi
868*53ee8cc1Swenshuai.xi u16hstart = pRect->Xpos + MWEPanel.u16Pnl_Hstart;
869*53ee8cc1Swenshuai.xi u16hend = u16hstart + pRect->Xsize - 1;
870*53ee8cc1Swenshuai.xi u16vstart = pRect->Ypos + MWEPanel.u16Pnl_Vstart;
871*53ee8cc1Swenshuai.xi u16vend = u16vstart + pRect->Ysize - 1;
872*53ee8cc1Swenshuai.xi
873*53ee8cc1Swenshuai.xi if(u16hend > MWEPanel.u16Pnl_Hstart + MWEPanel.u16Pnl_Width - 1)
874*53ee8cc1Swenshuai.xi u16hend = MWEPanel.u16Pnl_Hstart + MWEPanel.u16Pnl_Width - 1;
875*53ee8cc1Swenshuai.xi
876*53ee8cc1Swenshuai.xi if(u16vend > MWEPanel.u16Pnl_Vstart + MWEPanel.u16Pnl_Height - 1)
877*53ee8cc1Swenshuai.xi u16vend = MWEPanel.u16Pnl_Vstart + MWEPanel.u16Pnl_Height - 1;
878*53ee8cc1Swenshuai.xi MS_DEBUG_MSG(printf("[MWE] Hstart %4x Hend %4x Vstart %4x Vend %4x \n",
879*53ee8cc1Swenshuai.xi u16hstart, u16hend, u16vstart, u16vend));
880*53ee8cc1Swenshuai.xi Hal_ACE_MWESetWin(pInstance, u16hstart, u16hend, u16vstart, u16vend);
881*53ee8cc1Swenshuai.xi }
882*53ee8cc1Swenshuai.xi
MDrv_XC_ACE_MWECloneVisualEffect(void * pInstance)883*53ee8cc1Swenshuai.xi void MDrv_XC_ACE_MWECloneVisualEffect(void* pInstance)
884*53ee8cc1Swenshuai.xi {
885*53ee8cc1Swenshuai.xi Hal_ACE_MWECloneVisualEffect(pInstance);
886*53ee8cc1Swenshuai.xi }
887*53ee8cc1Swenshuai.xi
MDrv_ACE_3DClonePQMap(void * pInstance,XC_ACE_WEAVETYPE enWeaveType)888*53ee8cc1Swenshuai.xi void MDrv_ACE_3DClonePQMap(void* pInstance, XC_ACE_WEAVETYPE enWeaveType)
889*53ee8cc1Swenshuai.xi {
890*53ee8cc1Swenshuai.xi Hal_ACE_3DClonePQMap(pInstance, enWeaveType);
891*53ee8cc1Swenshuai.xi }
892*53ee8cc1Swenshuai.xi
MDrv_XC_ACE_MWESetRegRow(void * pInstance,MS_U32 u32Addr,MS_U8 u8Value,MS_U8 u8Mask)893*53ee8cc1Swenshuai.xi void MDrv_XC_ACE_MWESetRegRow(void* pInstance, MS_U32 u32Addr, MS_U8 u8Value, MS_U8 u8Mask)
894*53ee8cc1Swenshuai.xi {
895*53ee8cc1Swenshuai.xi _ACE_GET_INST_PRIVATE();
896*53ee8cc1Swenshuai.xi if(u32Addr & 0x1)
897*53ee8cc1Swenshuai.xi {
898*53ee8cc1Swenshuai.xi SC_W2BYTEMSK(psACEInstPri->u32DeviceID, (MS_U32)(u32Addr & 0xFFFFFE), (MS_U16)u8Value << 8, (MS_U16)u8Mask << 8);
899*53ee8cc1Swenshuai.xi }
900*53ee8cc1Swenshuai.xi else
901*53ee8cc1Swenshuai.xi {
902*53ee8cc1Swenshuai.xi SC_W2BYTEMSK(psACEInstPri->u32DeviceID, (MS_U32)u32Addr, (MS_U16)u8Value, (MS_U16)u8Mask);
903*53ee8cc1Swenshuai.xi }
904*53ee8cc1Swenshuai.xi }
905*53ee8cc1Swenshuai.xi
906*53ee8cc1Swenshuai.xi //===============================================================================
907*53ee8cc1Swenshuai.xi
MDrv_XC_ACE_MWESetBorder(void * pInstance,MS_BOOL bScalerWin,MS_BOOL ben,MS_U8 u8color,MS_U16 u16_l,MS_U16 u16_r,MS_U16 u16_t,MS_U16 u16_d)908*53ee8cc1Swenshuai.xi void MDrv_XC_ACE_MWESetBorder(void* pInstance, MS_BOOL bScalerWin, MS_BOOL ben, MS_U8 u8color, MS_U16 u16_l, MS_U16 u16_r, MS_U16 u16_t, MS_U16 u16_d)
909*53ee8cc1Swenshuai.xi {
910*53ee8cc1Swenshuai.xi MS_U16 u16color = (u8color >= MWE_BORDER_COLOR_MAX)
911*53ee8cc1Swenshuai.xi ? MWE_Border_Color[MWE_BORDER_COLOR_BLACK]
912*53ee8cc1Swenshuai.xi : MWE_Border_Color[u8color];
913*53ee8cc1Swenshuai.xi
914*53ee8cc1Swenshuai.xi if(ben)
915*53ee8cc1Swenshuai.xi {
916*53ee8cc1Swenshuai.xi Hal_ACE_MWESetBorder(pInstance, bScalerWin, u16color, u16_l, u16_r, u16_t, u16_d);
917*53ee8cc1Swenshuai.xi }
918*53ee8cc1Swenshuai.xi
919*53ee8cc1Swenshuai.xi }
920*53ee8cc1Swenshuai.xi
921*53ee8cc1Swenshuai.xi //===============================================================================
922*53ee8cc1Swenshuai.xi
923*53ee8cc1Swenshuai.xi
MDrv_XC_ACE_MWEEnable(void * pInstance,MS_BOOL bEnable,MS_BOOL bLoadFromTable)924*53ee8cc1Swenshuai.xi void MDrv_XC_ACE_MWEEnable(void* pInstance, MS_BOOL bEnable, MS_BOOL bLoadFromTable)
925*53ee8cc1Swenshuai.xi {
926*53ee8cc1Swenshuai.xi Hal_ACE_MWEEnable(pInstance, bEnable, bLoadFromTable);
927*53ee8cc1Swenshuai.xi }
928*53ee8cc1Swenshuai.xi
929*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
930*53ee8cc1Swenshuai.xi //
931*53ee8cc1Swenshuai.xi // MWE end
932*53ee8cc1Swenshuai.xi //
933*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
934*53ee8cc1Swenshuai.xi
MDrv_XC_ACE_Set_ICC_SRAM(void * pInstance,MS_U16 * pBuf,MS_U16 u16ByteSize)935*53ee8cc1Swenshuai.xi MS_BOOL MDrv_XC_ACE_Set_ICC_SRAM(void* pInstance, MS_U16 *pBuf, MS_U16 u16ByteSize)
936*53ee8cc1Swenshuai.xi {
937*53ee8cc1Swenshuai.xi if(u16ByteSize > 256*2)
938*53ee8cc1Swenshuai.xi return FALSE;
939*53ee8cc1Swenshuai.xi
940*53ee8cc1Swenshuai.xi Hal_ACE_Set_ICC_SRAM(pInstance, pBuf, u16ByteSize/2);
941*53ee8cc1Swenshuai.xi return TRUE;
942*53ee8cc1Swenshuai.xi }
943*53ee8cc1Swenshuai.xi
MDrv_XC_ACE_Set_IHC_SRAM(void * pInstance,MS_U16 * pBuf,MS_U16 u16ByteSize)944*53ee8cc1Swenshuai.xi MS_BOOL MDrv_XC_ACE_Set_IHC_SRAM(void* pInstance, MS_U16 *pBuf, MS_U16 u16ByteSize)
945*53ee8cc1Swenshuai.xi {
946*53ee8cc1Swenshuai.xi #define H_SIZE 17
947*53ee8cc1Swenshuai.xi #define V_SIZE 17
948*53ee8cc1Swenshuai.xi #define MAX_SRAM_SIZE 0x100
949*53ee8cc1Swenshuai.xi #define BUF_BYTE_SIZE 17*17
950*53ee8cc1Swenshuai.xi
951*53ee8cc1Swenshuai.xi MS_U8 v_idx, h_idx;
952*53ee8cc1Swenshuai.xi MS_U8 row, col;
953*53ee8cc1Swenshuai.xi MS_U16 data;
954*53ee8cc1Swenshuai.xi MS_U16 cont1, cont2, cont3, cont4;
955*53ee8cc1Swenshuai.xi MS_U16 SRAM1_IHC[MAX_SRAM_SIZE];
956*53ee8cc1Swenshuai.xi MS_U16 SRAM2_IHC[MAX_SRAM_SIZE];
957*53ee8cc1Swenshuai.xi MS_U16 SRAM3_IHC[MAX_SRAM_SIZE];
958*53ee8cc1Swenshuai.xi MS_U16 SRAM4_IHC[MAX_SRAM_SIZE];
959*53ee8cc1Swenshuai.xi
960*53ee8cc1Swenshuai.xi memset(SRAM1_IHC, 0, sizeof(SRAM1_IHC));
961*53ee8cc1Swenshuai.xi memset(SRAM2_IHC, 0, sizeof(SRAM2_IHC));
962*53ee8cc1Swenshuai.xi memset(SRAM3_IHC, 0, sizeof(SRAM3_IHC));
963*53ee8cc1Swenshuai.xi memset(SRAM4_IHC, 0, sizeof(SRAM4_IHC));
964*53ee8cc1Swenshuai.xi
965*53ee8cc1Swenshuai.xi if(u16ByteSize > BUF_BYTE_SIZE)
966*53ee8cc1Swenshuai.xi return FALSE;
967*53ee8cc1Swenshuai.xi
968*53ee8cc1Swenshuai.xi cont1 = cont2 = cont3 = cont4 = 0;
969*53ee8cc1Swenshuai.xi
970*53ee8cc1Swenshuai.xi for (v_idx=1; v_idx <= V_SIZE; v_idx++)
971*53ee8cc1Swenshuai.xi for (h_idx=1; h_idx <= H_SIZE-1; h_idx++)
972*53ee8cc1Swenshuai.xi {
973*53ee8cc1Swenshuai.xi data = pBuf[(v_idx-1)*H_SIZE + h_idx-1]; //pBuf[v_idx-1][h_idx-1]
974*53ee8cc1Swenshuai.xi
975*53ee8cc1Swenshuai.xi row = (int)(v_idx-(v_idx/2)*2);
976*53ee8cc1Swenshuai.xi col = (int)(h_idx-(h_idx/2)*2);
977*53ee8cc1Swenshuai.xi
978*53ee8cc1Swenshuai.xi if ( (row==1) & (col==1) )
979*53ee8cc1Swenshuai.xi {
980*53ee8cc1Swenshuai.xi SRAM1_IHC[cont1]=data;
981*53ee8cc1Swenshuai.xi cont1 = cont1 < MAX_SRAM_SIZE-1 ? cont1+1 : MAX_SRAM_SIZE-1;
982*53ee8cc1Swenshuai.xi }
983*53ee8cc1Swenshuai.xi
984*53ee8cc1Swenshuai.xi if ( (row==1) & (col==0) )
985*53ee8cc1Swenshuai.xi {
986*53ee8cc1Swenshuai.xi SRAM2_IHC[cont2]=data;
987*53ee8cc1Swenshuai.xi cont2 = cont2 < MAX_SRAM_SIZE-1 ? cont2+1 : MAX_SRAM_SIZE-1;
988*53ee8cc1Swenshuai.xi }
989*53ee8cc1Swenshuai.xi
990*53ee8cc1Swenshuai.xi if ( (row==0) & (col==1) )
991*53ee8cc1Swenshuai.xi {
992*53ee8cc1Swenshuai.xi SRAM3_IHC[cont3]=data;
993*53ee8cc1Swenshuai.xi cont3 = cont3 < MAX_SRAM_SIZE-1 ? cont3+1 : MAX_SRAM_SIZE-1;
994*53ee8cc1Swenshuai.xi }
995*53ee8cc1Swenshuai.xi
996*53ee8cc1Swenshuai.xi if ( (row==0) & (col==0) )
997*53ee8cc1Swenshuai.xi {
998*53ee8cc1Swenshuai.xi SRAM4_IHC[cont4]=data;
999*53ee8cc1Swenshuai.xi cont4 = cont4 < MAX_SRAM_SIZE-1 ? cont4+1 : MAX_SRAM_SIZE-1;
1000*53ee8cc1Swenshuai.xi }
1001*53ee8cc1Swenshuai.xi
1002*53ee8cc1Swenshuai.xi }
1003*53ee8cc1Swenshuai.xi
1004*53ee8cc1Swenshuai.xi for (v_idx=1; v_idx <= V_SIZE; v_idx++)
1005*53ee8cc1Swenshuai.xi {
1006*53ee8cc1Swenshuai.xi row = (v_idx-(v_idx/2)*2);
1007*53ee8cc1Swenshuai.xi
1008*53ee8cc1Swenshuai.xi data = pBuf[(v_idx-1)*H_SIZE+16];
1009*53ee8cc1Swenshuai.xi
1010*53ee8cc1Swenshuai.xi if (row==1)
1011*53ee8cc1Swenshuai.xi {
1012*53ee8cc1Swenshuai.xi SRAM1_IHC[cont1]=data;
1013*53ee8cc1Swenshuai.xi cont1 = cont1 < MAX_SRAM_SIZE-1 ? cont1+1 : MAX_SRAM_SIZE-1;
1014*53ee8cc1Swenshuai.xi }
1015*53ee8cc1Swenshuai.xi else
1016*53ee8cc1Swenshuai.xi {
1017*53ee8cc1Swenshuai.xi SRAM3_IHC[cont3]=data;
1018*53ee8cc1Swenshuai.xi cont3 = cont3 < MAX_SRAM_SIZE-1 ? cont3+1 : MAX_SRAM_SIZE-1;
1019*53ee8cc1Swenshuai.xi }
1020*53ee8cc1Swenshuai.xi }
1021*53ee8cc1Swenshuai.xi
1022*53ee8cc1Swenshuai.xi Hal_ACE_Set_IHC_SRAM(pInstance, &SRAM1_IHC[0], 0, cont1);
1023*53ee8cc1Swenshuai.xi Hal_ACE_Set_IHC_SRAM(pInstance, &SRAM2_IHC[0], 1, cont2);
1024*53ee8cc1Swenshuai.xi Hal_ACE_Set_IHC_SRAM(pInstance, &SRAM3_IHC[0], 2, cont3);
1025*53ee8cc1Swenshuai.xi Hal_ACE_Set_IHC_SRAM(pInstance, &SRAM4_IHC[0], 3, cont4);
1026*53ee8cc1Swenshuai.xi
1027*53ee8cc1Swenshuai.xi return TRUE;
1028*53ee8cc1Swenshuai.xi }
1029*53ee8cc1Swenshuai.xi
MDrv_XC_ACE_DNR_GetMotion(void * pInstance)1030*53ee8cc1Swenshuai.xi MS_U8 MDrv_XC_ACE_DNR_GetMotion(void* pInstance)
1031*53ee8cc1Swenshuai.xi {
1032*53ee8cc1Swenshuai.xi MS_U8 u8Ret;
1033*53ee8cc1Swenshuai.xi DECLARA_BANK_VARIABLE
1034*53ee8cc1Swenshuai.xi BACKUP_SC_BANK
1035*53ee8cc1Swenshuai.xi
1036*53ee8cc1Swenshuai.xi u8Ret = Hal_ACE_DNR_GetMotion(pInstance);
1037*53ee8cc1Swenshuai.xi
1038*53ee8cc1Swenshuai.xi RECOVER_SC_BANK
1039*53ee8cc1Swenshuai.xi
1040*53ee8cc1Swenshuai.xi return u8Ret;
1041*53ee8cc1Swenshuai.xi }
1042*53ee8cc1Swenshuai.xi
MDrv_ACE_DNR_GetCoringThreshold(void * pInstance,MS_BOOL bScalerWin)1043*53ee8cc1Swenshuai.xi MS_U8 MDrv_ACE_DNR_GetCoringThreshold(void* pInstance, MS_BOOL bScalerWin)
1044*53ee8cc1Swenshuai.xi {
1045*53ee8cc1Swenshuai.xi return Hal_ACE_DNR_GetCoringThreshold(pInstance, bScalerWin);
1046*53ee8cc1Swenshuai.xi }
1047*53ee8cc1Swenshuai.xi
MDrv_ACE_DNR_GetSharpnessAdjust(void * pInstance,MS_BOOL bScalerWin)1048*53ee8cc1Swenshuai.xi MS_U8 MDrv_ACE_DNR_GetSharpnessAdjust(void* pInstance, MS_BOOL bScalerWin)
1049*53ee8cc1Swenshuai.xi {
1050*53ee8cc1Swenshuai.xi return Hal_ACE_DNR_GetSharpnessAdjust(pInstance, bScalerWin);
1051*53ee8cc1Swenshuai.xi }
1052*53ee8cc1Swenshuai.xi
MDrv_ACE_DNR_GetGuassin_SNR_Threshold(void * pInstance,MS_BOOL bScalerWin)1053*53ee8cc1Swenshuai.xi MS_U8 MDrv_ACE_DNR_GetGuassin_SNR_Threshold(void* pInstance, MS_BOOL bScalerWin)
1054*53ee8cc1Swenshuai.xi {
1055*53ee8cc1Swenshuai.xi return Hal_ACE_DNR_GetGuassin_SNR_Threshold(pInstance, bScalerWin);
1056*53ee8cc1Swenshuai.xi }
1057*53ee8cc1Swenshuai.xi
MDrv_ACE_DNR_SetCoringThreshold(void * pInstance,MS_BOOL bScalerWin,MS_U16 u16val)1058*53ee8cc1Swenshuai.xi void MDrv_ACE_DNR_SetCoringThreshold(void* pInstance, MS_BOOL bScalerWin, MS_U16 u16val)
1059*53ee8cc1Swenshuai.xi {
1060*53ee8cc1Swenshuai.xi DECLARA_BANK_VARIABLE
1061*53ee8cc1Swenshuai.xi BACKUP_SC_BANK
1062*53ee8cc1Swenshuai.xi
1063*53ee8cc1Swenshuai.xi Hal_ACE_DNR_SetCoringThreshold(pInstance, bScalerWin, u16val);
1064*53ee8cc1Swenshuai.xi
1065*53ee8cc1Swenshuai.xi RECOVER_SC_BANK
1066*53ee8cc1Swenshuai.xi }
1067*53ee8cc1Swenshuai.xi
MDrv_ACE_DNR_SetSharpnessAdjust(void * pInstance,MS_BOOL bScalerWin,MS_U16 u16val)1068*53ee8cc1Swenshuai.xi void MDrv_ACE_DNR_SetSharpnessAdjust(void* pInstance, MS_BOOL bScalerWin, MS_U16 u16val)
1069*53ee8cc1Swenshuai.xi {
1070*53ee8cc1Swenshuai.xi DECLARA_BANK_VARIABLE
1071*53ee8cc1Swenshuai.xi BACKUP_SC_BANK
1072*53ee8cc1Swenshuai.xi
1073*53ee8cc1Swenshuai.xi Hal_ACE_DNR_SetSharpnessAdjust(pInstance, bScalerWin, u16val);
1074*53ee8cc1Swenshuai.xi
1075*53ee8cc1Swenshuai.xi RECOVER_SC_BANK
1076*53ee8cc1Swenshuai.xi
1077*53ee8cc1Swenshuai.xi }
1078*53ee8cc1Swenshuai.xi
MDrv_ACE_DNR_SetNM_V(void * pInstance,MS_BOOL bScalerWin,MS_U16 u16val)1079*53ee8cc1Swenshuai.xi void MDrv_ACE_DNR_SetNM_V(void* pInstance, MS_BOOL bScalerWin, MS_U16 u16val)
1080*53ee8cc1Swenshuai.xi {
1081*53ee8cc1Swenshuai.xi DECLARA_BANK_VARIABLE
1082*53ee8cc1Swenshuai.xi BACKUP_SC_BANK
1083*53ee8cc1Swenshuai.xi
1084*53ee8cc1Swenshuai.xi Hal_ACE_DNR_SetNM_V(pInstance, bScalerWin, u16val);
1085*53ee8cc1Swenshuai.xi
1086*53ee8cc1Swenshuai.xi RECOVER_SC_BANK
1087*53ee8cc1Swenshuai.xi }
1088*53ee8cc1Swenshuai.xi
MDrv_ACE_DNR_SetGNR_0(void * pInstance,MS_BOOL bScalerWin,MS_U16 u16val)1089*53ee8cc1Swenshuai.xi void MDrv_ACE_DNR_SetGNR_0(void* pInstance, MS_BOOL bScalerWin, MS_U16 u16val)
1090*53ee8cc1Swenshuai.xi {
1091*53ee8cc1Swenshuai.xi DECLARA_BANK_VARIABLE
1092*53ee8cc1Swenshuai.xi BACKUP_SC_BANK
1093*53ee8cc1Swenshuai.xi
1094*53ee8cc1Swenshuai.xi Hal_ACE_DNR_SetGNR_0(pInstance, bScalerWin, u16val);
1095*53ee8cc1Swenshuai.xi
1096*53ee8cc1Swenshuai.xi RECOVER_SC_BANK
1097*53ee8cc1Swenshuai.xi }
1098*53ee8cc1Swenshuai.xi
MDrv_ACE_DNR_SetGNR_1(void * pInstance,MS_BOOL bScalerWin,MS_U16 u16val)1099*53ee8cc1Swenshuai.xi void MDrv_ACE_DNR_SetGNR_1(void* pInstance, MS_BOOL bScalerWin, MS_U16 u16val)
1100*53ee8cc1Swenshuai.xi {
1101*53ee8cc1Swenshuai.xi DECLARA_BANK_VARIABLE
1102*53ee8cc1Swenshuai.xi BACKUP_SC_BANK
1103*53ee8cc1Swenshuai.xi
1104*53ee8cc1Swenshuai.xi Hal_ACE_DNR_SetGNR_1(pInstance, bScalerWin, u16val);
1105*53ee8cc1Swenshuai.xi
1106*53ee8cc1Swenshuai.xi RECOVER_SC_BANK
1107*53ee8cc1Swenshuai.xi }
1108*53ee8cc1Swenshuai.xi
MDrv_ACE_DNR_SetCP(void * pInstance,MS_BOOL bScalerWin,MS_U16 u16val)1109*53ee8cc1Swenshuai.xi void MDrv_ACE_DNR_SetCP(void* pInstance, MS_BOOL bScalerWin, MS_U16 u16val)
1110*53ee8cc1Swenshuai.xi {
1111*53ee8cc1Swenshuai.xi DECLARA_BANK_VARIABLE
1112*53ee8cc1Swenshuai.xi BACKUP_SC_BANK
1113*53ee8cc1Swenshuai.xi
1114*53ee8cc1Swenshuai.xi Hal_ACE_DNR_SetCP(pInstance, bScalerWin, u16val);
1115*53ee8cc1Swenshuai.xi
1116*53ee8cc1Swenshuai.xi RECOVER_SC_BANK
1117*53ee8cc1Swenshuai.xi }
1118*53ee8cc1Swenshuai.xi
MDrv_ACE_DNR_SetDP(void * pInstance,MS_BOOL bScalerWin,MS_U16 u16val)1119*53ee8cc1Swenshuai.xi void MDrv_ACE_DNR_SetDP(void* pInstance, MS_BOOL bScalerWin, MS_U16 u16val)
1120*53ee8cc1Swenshuai.xi {
1121*53ee8cc1Swenshuai.xi DECLARA_BANK_VARIABLE
1122*53ee8cc1Swenshuai.xi BACKUP_SC_BANK
1123*53ee8cc1Swenshuai.xi
1124*53ee8cc1Swenshuai.xi Hal_ACE_DNR_SetDP(pInstance, bScalerWin, u16val);
1125*53ee8cc1Swenshuai.xi
1126*53ee8cc1Swenshuai.xi RECOVER_SC_BANK
1127*53ee8cc1Swenshuai.xi }
1128*53ee8cc1Swenshuai.xi
MDrv_ACE_DNR_SetNM_H_0(void * pInstance,MS_BOOL bScalerWin,MS_U16 u16val)1129*53ee8cc1Swenshuai.xi void MDrv_ACE_DNR_SetNM_H_0(void* pInstance, MS_BOOL bScalerWin, MS_U16 u16val)
1130*53ee8cc1Swenshuai.xi {
1131*53ee8cc1Swenshuai.xi DECLARA_BANK_VARIABLE
1132*53ee8cc1Swenshuai.xi BACKUP_SC_BANK
1133*53ee8cc1Swenshuai.xi
1134*53ee8cc1Swenshuai.xi Hal_ACE_DNR_SetNM_H_0(pInstance, bScalerWin, u16val);
1135*53ee8cc1Swenshuai.xi }
1136*53ee8cc1Swenshuai.xi
MDrv_ACE_DNR_SetNM_H_1(void * pInstance,MS_BOOL bScalerWin,MS_U16 u16val)1137*53ee8cc1Swenshuai.xi void MDrv_ACE_DNR_SetNM_H_1(void* pInstance, MS_BOOL bScalerWin, MS_U16 u16val)
1138*53ee8cc1Swenshuai.xi {
1139*53ee8cc1Swenshuai.xi DECLARA_BANK_VARIABLE
1140*53ee8cc1Swenshuai.xi BACKUP_SC_BANK
1141*53ee8cc1Swenshuai.xi
1142*53ee8cc1Swenshuai.xi Hal_ACE_DNR_SetNM_H_1(pInstance, bScalerWin, u16val);
1143*53ee8cc1Swenshuai.xi
1144*53ee8cc1Swenshuai.xi RECOVER_SC_BANK
1145*53ee8cc1Swenshuai.xi }
1146*53ee8cc1Swenshuai.xi
MDrv_ACE_DNR_SetGray_Ground_Gain(void * pInstance,MS_U16 u16val)1147*53ee8cc1Swenshuai.xi void MDrv_ACE_DNR_SetGray_Ground_Gain(void* pInstance, MS_U16 u16val)
1148*53ee8cc1Swenshuai.xi {
1149*53ee8cc1Swenshuai.xi DECLARA_BANK_VARIABLE
1150*53ee8cc1Swenshuai.xi BACKUP_SC_BANK
1151*53ee8cc1Swenshuai.xi
1152*53ee8cc1Swenshuai.xi Hal_ACE_DNR_SetGray_Ground_Gain(pInstance, u16val);
1153*53ee8cc1Swenshuai.xi
1154*53ee8cc1Swenshuai.xi RECOVER_SC_BANK
1155*53ee8cc1Swenshuai.xi }
1156*53ee8cc1Swenshuai.xi
MDrv_ACE_DNR_SetGray_Ground_En(void * pInstance,MS_BOOL bScalerWin,MS_U16 u16val)1157*53ee8cc1Swenshuai.xi void MDrv_ACE_DNR_SetGray_Ground_En(void* pInstance, MS_BOOL bScalerWin, MS_U16 u16val)
1158*53ee8cc1Swenshuai.xi {
1159*53ee8cc1Swenshuai.xi DECLARA_BANK_VARIABLE
1160*53ee8cc1Swenshuai.xi BACKUP_SC_BANK
1161*53ee8cc1Swenshuai.xi
1162*53ee8cc1Swenshuai.xi Hal_ACE_DNR_SetGray_Ground_En(pInstance, bScalerWin, u16val);
1163*53ee8cc1Swenshuai.xi
1164*53ee8cc1Swenshuai.xi RECOVER_SC_BANK
1165*53ee8cc1Swenshuai.xi }
1166*53ee8cc1Swenshuai.xi
1167*53ee8cc1Swenshuai.xi
MDrv_ACE_DNR_SetSC_Coring(void * pInstance,MS_BOOL bScalerWin,MS_U16 u16val)1168*53ee8cc1Swenshuai.xi void MDrv_ACE_DNR_SetSC_Coring(void* pInstance, MS_BOOL bScalerWin, MS_U16 u16val)
1169*53ee8cc1Swenshuai.xi {
1170*53ee8cc1Swenshuai.xi DECLARA_BANK_VARIABLE
1171*53ee8cc1Swenshuai.xi BACKUP_SC_BANK
1172*53ee8cc1Swenshuai.xi
1173*53ee8cc1Swenshuai.xi Hal_ACE_DNR_SetSC_Coring(pInstance, bScalerWin, u16val);
1174*53ee8cc1Swenshuai.xi
1175*53ee8cc1Swenshuai.xi RECOVER_SC_BANK
1176*53ee8cc1Swenshuai.xi }
1177*53ee8cc1Swenshuai.xi
1178*53ee8cc1Swenshuai.xi
MDrv_ACE_DNR_SetSpikeNR_0(void * pInstance,MS_U16 u16val)1179*53ee8cc1Swenshuai.xi void MDrv_ACE_DNR_SetSpikeNR_0(void* pInstance, MS_U16 u16val)
1180*53ee8cc1Swenshuai.xi {
1181*53ee8cc1Swenshuai.xi DECLARA_BANK_VARIABLE
1182*53ee8cc1Swenshuai.xi BACKUP_SC_BANK
1183*53ee8cc1Swenshuai.xi
1184*53ee8cc1Swenshuai.xi Hal_ACE_DNR_SetSpikeNR_0(pInstance, u16val);
1185*53ee8cc1Swenshuai.xi }
1186*53ee8cc1Swenshuai.xi
MDrv_ACE_DNR_SetSpikeNR_1(void * pInstance,MS_U16 u16val)1187*53ee8cc1Swenshuai.xi void MDrv_ACE_DNR_SetSpikeNR_1(void* pInstance, MS_U16 u16val)
1188*53ee8cc1Swenshuai.xi {
1189*53ee8cc1Swenshuai.xi DECLARA_BANK_VARIABLE
1190*53ee8cc1Swenshuai.xi BACKUP_SC_BANK
1191*53ee8cc1Swenshuai.xi
1192*53ee8cc1Swenshuai.xi Hal_ACE_DNR_SetSpikeNR_1(pInstance, u16val);
1193*53ee8cc1Swenshuai.xi
1194*53ee8cc1Swenshuai.xi RECOVER_SC_BANK
1195*53ee8cc1Swenshuai.xi }
1196*53ee8cc1Swenshuai.xi
MDrv_ACE_DNR_SetSNR_NM(void * pInstance,MS_U16 u16val)1197*53ee8cc1Swenshuai.xi void MDrv_ACE_DNR_SetSNR_NM(void* pInstance, MS_U16 u16val)
1198*53ee8cc1Swenshuai.xi {
1199*53ee8cc1Swenshuai.xi DECLARA_BANK_VARIABLE
1200*53ee8cc1Swenshuai.xi BACKUP_SC_BANK
1201*53ee8cc1Swenshuai.xi
1202*53ee8cc1Swenshuai.xi Hal_ACE_DNR_SetSNR_NM(pInstance, u16val);
1203*53ee8cc1Swenshuai.xi
1204*53ee8cc1Swenshuai.xi RECOVER_SC_BANK
1205*53ee8cc1Swenshuai.xi }
1206*53ee8cc1Swenshuai.xi
1207*53ee8cc1Swenshuai.xi
MDrv_ACE_DNR_SetBank_Coring(void * pInstance,MS_BOOL bScalerWin,MS_U16 u16val)1208*53ee8cc1Swenshuai.xi void MDrv_ACE_DNR_SetBank_Coring(void* pInstance, MS_BOOL bScalerWin, MS_U16 u16val)
1209*53ee8cc1Swenshuai.xi {
1210*53ee8cc1Swenshuai.xi DECLARA_BANK_VARIABLE
1211*53ee8cc1Swenshuai.xi BACKUP_SC_BANK
1212*53ee8cc1Swenshuai.xi
1213*53ee8cc1Swenshuai.xi Hal_ACE_DNR_SetBank_Coring(pInstance, bScalerWin, u16val);
1214*53ee8cc1Swenshuai.xi
1215*53ee8cc1Swenshuai.xi RECOVER_SC_BANK
1216*53ee8cc1Swenshuai.xi }
1217*53ee8cc1Swenshuai.xi
MDrv_ACE_DNR_SetGuassin_SNR_Threshold(void * pInstance,MS_BOOL bScalerWin,MS_U16 u16val)1218*53ee8cc1Swenshuai.xi void MDrv_ACE_DNR_SetGuassin_SNR_Threshold(void* pInstance, MS_BOOL bScalerWin, MS_U16 u16val)
1219*53ee8cc1Swenshuai.xi {
1220*53ee8cc1Swenshuai.xi DECLARA_BANK_VARIABLE
1221*53ee8cc1Swenshuai.xi BACKUP_SC_BANK
1222*53ee8cc1Swenshuai.xi
1223*53ee8cc1Swenshuai.xi Hal_ACE_DNR_SetGuassin_SNR_Threshold(pInstance, bScalerWin, u16val);
1224*53ee8cc1Swenshuai.xi
1225*53ee8cc1Swenshuai.xi RECOVER_SC_BANK
1226*53ee8cc1Swenshuai.xi
1227*53ee8cc1Swenshuai.xi }
1228*53ee8cc1Swenshuai.xi
MDrv_ACE_DNR_SetNRTable(void * pInstance,MS_U8 * pTbl)1229*53ee8cc1Swenshuai.xi void MDrv_ACE_DNR_SetNRTable(void* pInstance, MS_U8 *pTbl)
1230*53ee8cc1Swenshuai.xi {
1231*53ee8cc1Swenshuai.xi MS_U8 i;
1232*53ee8cc1Swenshuai.xi MS_U16 u16val;
1233*53ee8cc1Swenshuai.xi
1234*53ee8cc1Swenshuai.xi DECLARA_BANK_VARIABLE
1235*53ee8cc1Swenshuai.xi
1236*53ee8cc1Swenshuai.xi for(i=0; i<8; i=i+2)
1237*53ee8cc1Swenshuai.xi {
1238*53ee8cc1Swenshuai.xi u16val = ((MS_U16)pTbl[i+1]<<8) | (MS_U16) pTbl[i];
1239*53ee8cc1Swenshuai.xi
1240*53ee8cc1Swenshuai.xi BACKUP_SC_BANK
1241*53ee8cc1Swenshuai.xi
1242*53ee8cc1Swenshuai.xi Hal_ACE_DNR_SetNRTbl_Y(pInstance, i, u16val);
1243*53ee8cc1Swenshuai.xi Hal_ACE_DNR_SetNRTbl_C(pInstance, i, u16val);
1244*53ee8cc1Swenshuai.xi
1245*53ee8cc1Swenshuai.xi RECOVER_SC_BANK
1246*53ee8cc1Swenshuai.xi
1247*53ee8cc1Swenshuai.xi }
1248*53ee8cc1Swenshuai.xi }
1249*53ee8cc1Swenshuai.xi
MDrv_ACE_ColorCorrectionTable(void * pInstance,MS_BOOL bScalerWin,MS_S16 * psColorCorrectionTable)1250*53ee8cc1Swenshuai.xi void MDrv_ACE_ColorCorrectionTable(void* pInstance, MS_BOOL bScalerWin, MS_S16 *psColorCorrectionTable )
1251*53ee8cc1Swenshuai.xi {
1252*53ee8cc1Swenshuai.xi msACESetColorCorrectionTable(pInstance, bScalerWin, psColorCorrectionTable);
1253*53ee8cc1Swenshuai.xi }
1254*53ee8cc1Swenshuai.xi
MDrv_ACE_SetColorMatrixControl(void * pInstance,MS_BOOL bScalerWin,MS_BOOL bEnable)1255*53ee8cc1Swenshuai.xi void MDrv_ACE_SetColorMatrixControl(void* pInstance, MS_BOOL bScalerWin, MS_BOOL bEnable )
1256*53ee8cc1Swenshuai.xi {
1257*53ee8cc1Swenshuai.xi msACE_SetColorMatrixControl(pInstance, bScalerWin, bEnable);
1258*53ee8cc1Swenshuai.xi }
1259*53ee8cc1Swenshuai.xi
MDrv_ACE_SetRBChannelRange(void * pInstance,MS_BOOL bScalerWin,MS_BOOL bRange)1260*53ee8cc1Swenshuai.xi void MDrv_ACE_SetRBChannelRange(void* pInstance, MS_BOOL bScalerWin, MS_BOOL bRange)
1261*53ee8cc1Swenshuai.xi {
1262*53ee8cc1Swenshuai.xi msACE_SetRBChannelRange(pInstance, bScalerWin, bRange);
1263*53ee8cc1Swenshuai.xi HAL_ACE_Set_RBChannelOffset(pInstance, bScalerWin, bRange);
1264*53ee8cc1Swenshuai.xi }
1265*53ee8cc1Swenshuai.xi
MDrv_ACE_WriteColorMatrixBurst(void * pInstance,MS_BOOL bWindow,MS_U16 * psMatrix)1266*53ee8cc1Swenshuai.xi void MDrv_ACE_WriteColorMatrixBurst(void* pInstance, MS_BOOL bWindow, MS_U16* psMatrix )
1267*53ee8cc1Swenshuai.xi {
1268*53ee8cc1Swenshuai.xi Hal_ACE_Write_Color_Matrix_Burst(pInstance, bWindow,psMatrix);
1269*53ee8cc1Swenshuai.xi }
1270*53ee8cc1Swenshuai.xi
MDrv_ACE_IsSupportMLoad(void * pInstance)1271*53ee8cc1Swenshuai.xi MS_BOOL MDrv_ACE_IsSupportMLoad(void* pInstance)
1272*53ee8cc1Swenshuai.xi {
1273*53ee8cc1Swenshuai.xi return Hal_ACE_Is_Support_MLoad(pInstance);
1274*53ee8cc1Swenshuai.xi }
1275*53ee8cc1Swenshuai.xi
1276*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1277*53ee8cc1Swenshuai.xi ///Set HDR Init
1278*53ee8cc1Swenshuai.xi /// @param pstDLC_HDRInitData \b IN: the HDR Init Data
1279*53ee8cc1Swenshuai.xi /// @return TRUE: DDI call success
1280*53ee8cc1Swenshuai.xi /// @attention
1281*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
MDrv_ACE_SetHDRInit(void * pInstance,ACE_DRV_HDRinit * pstACE_HDRInitData)1282*53ee8cc1Swenshuai.xi MS_BOOL MDrv_ACE_SetHDRInit(void* pInstance,ACE_DRV_HDRinit * pstACE_HDRInitData)
1283*53ee8cc1Swenshuai.xi {
1284*53ee8cc1Swenshuai.xi memset(&g_ACEinitParameters, 0 , sizeof(ACE_DRV_HDRinit));
1285*53ee8cc1Swenshuai.xi memcpy(&g_ACEinitParameters, pstACE_HDRInitData, sizeof(ACE_DRV_HDRinit));
1286*53ee8cc1Swenshuai.xi
1287*53ee8cc1Swenshuai.xi msACE_HDR_Main(pInstance);
1288*53ee8cc1Swenshuai.xi
1289*53ee8cc1Swenshuai.xi return TRUE;
1290*53ee8cc1Swenshuai.xi }
1291*53ee8cc1Swenshuai.xi
1292*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
1293*53ee8cc1Swenshuai.xi /// Skip Wait Vsync
1294*53ee8cc1Swenshuai.xi /// @param eWindow \b IN: Enable
1295*53ee8cc1Swenshuai.xi /// @param Skip wait Vsync \b IN: Disable wait Vsync
1296*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
MDrv_ACE_SetSkipWaitVsync(void * pInstance,MS_BOOL eWindow,MS_BOOL bIsSkipWaitVsyn)1297*53ee8cc1Swenshuai.xi void MDrv_ACE_SetSkipWaitVsync(void* pInstance, MS_BOOL eWindow,MS_BOOL bIsSkipWaitVsyn)
1298*53ee8cc1Swenshuai.xi {
1299*53ee8cc1Swenshuai.xi Hal_ACE_SetSkipWaitVsync(pInstance, eWindow, bIsSkipWaitVsyn);
1300*53ee8cc1Swenshuai.xi }
1301*53ee8cc1Swenshuai.xi
MDrv_ACE_GetSkipWaitVsync(void * pInstance,MS_BOOL bScalerWin)1302*53ee8cc1Swenshuai.xi MS_BOOL MDrv_ACE_GetSkipWaitVsync(void* pInstance, MS_BOOL bScalerWin)
1303*53ee8cc1Swenshuai.xi {
1304*53ee8cc1Swenshuai.xi return Hal_ACE_GetSkipWaitVsync(pInstance, bScalerWin);
1305*53ee8cc1Swenshuai.xi }
1306*53ee8cc1Swenshuai.xi
MDrv_ACE_SetIHC(void * pInstance,MS_BOOL bScalerWin,XC_ACE_IHC_COLOR_TYPE eIHC,MS_U8 u8Val)1307*53ee8cc1Swenshuai.xi MS_BOOL MDrv_ACE_SetIHC(void* pInstance, MS_BOOL bScalerWin, XC_ACE_IHC_COLOR_TYPE eIHC, MS_U8 u8Val)
1308*53ee8cc1Swenshuai.xi {
1309*53ee8cc1Swenshuai.xi return Hal_ACE_SetIHC(pInstance, bScalerWin, eIHC, u8Val);
1310*53ee8cc1Swenshuai.xi }
1311*53ee8cc1Swenshuai.xi
MDrv_ACE_GetIHC(void * pInstance,MS_BOOL bScalerWin,XC_ACE_IHC_COLOR_TYPE eIHC,MS_U8 * pu8Val)1312*53ee8cc1Swenshuai.xi MS_BOOL MDrv_ACE_GetIHC(void* pInstance, MS_BOOL bScalerWin, XC_ACE_IHC_COLOR_TYPE eIHC, MS_U8* pu8Val)
1313*53ee8cc1Swenshuai.xi {
1314*53ee8cc1Swenshuai.xi return Hal_ACE_GetIHC(pInstance, bScalerWin, eIHC, pu8Val);
1315*53ee8cc1Swenshuai.xi }
1316*53ee8cc1Swenshuai.xi
MDrv_ACE_SetICC(void * pInstance,MS_BOOL bScalerWin,XC_ACE_ICC_COLOR_TYPE eICC,MS_U8 u8Val)1317*53ee8cc1Swenshuai.xi MS_BOOL MDrv_ACE_SetICC(void* pInstance, MS_BOOL bScalerWin, XC_ACE_ICC_COLOR_TYPE eICC, MS_U8 u8Val)
1318*53ee8cc1Swenshuai.xi {
1319*53ee8cc1Swenshuai.xi return Hal_ACE_SetICC(pInstance, bScalerWin, eICC, u8Val);
1320*53ee8cc1Swenshuai.xi }
1321*53ee8cc1Swenshuai.xi
MDrv_ACE_GetICC(void * pInstance,MS_BOOL bScalerWin,XC_ACE_ICC_COLOR_TYPE eICC,MS_U8 * pu8Val)1322*53ee8cc1Swenshuai.xi MS_BOOL MDrv_ACE_GetICC(void* pInstance, MS_BOOL bScalerWin, XC_ACE_ICC_COLOR_TYPE eICC, MS_U8* pu8Val)
1323*53ee8cc1Swenshuai.xi {
1324*53ee8cc1Swenshuai.xi return Hal_ACE_GetICC(pInstance, bScalerWin, eICC, pu8Val);
1325*53ee8cc1Swenshuai.xi }
1326*53ee8cc1Swenshuai.xi
MDrv_ACE_SetIBC(void * pInstance,MS_BOOL bScalerWin,XC_ACE_IBC_COLOR_TYPE eIBC,MS_U8 u8Val)1327*53ee8cc1Swenshuai.xi MS_BOOL MDrv_ACE_SetIBC(void* pInstance, MS_BOOL bScalerWin, XC_ACE_IBC_COLOR_TYPE eIBC, MS_U8 u8Val)
1328*53ee8cc1Swenshuai.xi {
1329*53ee8cc1Swenshuai.xi return Hal_ACE_SetIBC(pInstance, bScalerWin, eIBC, u8Val);
1330*53ee8cc1Swenshuai.xi }
1331*53ee8cc1Swenshuai.xi
MDrv_ACE_GetIBC(void * pInstance,MS_BOOL bScalerWin,XC_ACE_IBC_COLOR_TYPE eIBC,MS_U8 * pu8Val)1332*53ee8cc1Swenshuai.xi MS_BOOL MDrv_ACE_GetIBC(void* pInstance, MS_BOOL bScalerWin, XC_ACE_IBC_COLOR_TYPE eIBC, MS_U8* pu8Val)
1333*53ee8cc1Swenshuai.xi {
1334*53ee8cc1Swenshuai.xi return Hal_ACE_GetIBC(pInstance, bScalerWin, eIBC, pu8Val);
1335*53ee8cc1Swenshuai.xi }
1336*53ee8cc1Swenshuai.xi
MDrv_ACE_GetDeviceNum(void)1337*53ee8cc1Swenshuai.xi MS_U32 MDrv_ACE_GetDeviceNum(void)
1338*53ee8cc1Swenshuai.xi {
1339*53ee8cc1Swenshuai.xi return XC_ACE_SUPPORT_DEVICE_NUM;
1340*53ee8cc1Swenshuai.xi }
1341*53ee8cc1Swenshuai.xi
1342*53ee8cc1Swenshuai.xi #undef _MDRV_ACE_C_
1343*53ee8cc1Swenshuai.xi
1344