xref: /utopia/UTPA2-700.0.x/modules/xc/hal/maserati/xc/include/mhal_sc.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi //<MStar Software>
2*53ee8cc1Swenshuai.xi //******************************************************************************
3*53ee8cc1Swenshuai.xi // MStar Software
4*53ee8cc1Swenshuai.xi // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5*53ee8cc1Swenshuai.xi // All software, firmware and related documentation herein ("MStar Software") are
6*53ee8cc1Swenshuai.xi // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7*53ee8cc1Swenshuai.xi // law, including, but not limited to, copyright law and international treaties.
8*53ee8cc1Swenshuai.xi // Any use, modification, reproduction, retransmission, or republication of all
9*53ee8cc1Swenshuai.xi // or part of MStar Software is expressly prohibited, unless prior written
10*53ee8cc1Swenshuai.xi // permission has been granted by MStar.
11*53ee8cc1Swenshuai.xi //
12*53ee8cc1Swenshuai.xi // By accessing, browsing and/or using MStar Software, you acknowledge that you
13*53ee8cc1Swenshuai.xi // have read, understood, and agree, to be bound by below terms ("Terms") and to
14*53ee8cc1Swenshuai.xi // comply with all applicable laws and regulations:
15*53ee8cc1Swenshuai.xi //
16*53ee8cc1Swenshuai.xi // 1. MStar shall retain any and all right, ownership and interest to MStar
17*53ee8cc1Swenshuai.xi //    Software and any modification/derivatives thereof.
18*53ee8cc1Swenshuai.xi //    No right, ownership, or interest to MStar Software and any
19*53ee8cc1Swenshuai.xi //    modification/derivatives thereof is transferred to you under Terms.
20*53ee8cc1Swenshuai.xi //
21*53ee8cc1Swenshuai.xi // 2. You understand that MStar Software might include, incorporate or be
22*53ee8cc1Swenshuai.xi //    supplied together with third party`s software and the use of MStar
23*53ee8cc1Swenshuai.xi //    Software may require additional licenses from third parties.
24*53ee8cc1Swenshuai.xi //    Therefore, you hereby agree it is your sole responsibility to separately
25*53ee8cc1Swenshuai.xi //    obtain any and all third party right and license necessary for your use of
26*53ee8cc1Swenshuai.xi //    such third party`s software.
27*53ee8cc1Swenshuai.xi //
28*53ee8cc1Swenshuai.xi // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29*53ee8cc1Swenshuai.xi //    MStar`s confidential information and you agree to keep MStar`s
30*53ee8cc1Swenshuai.xi //    confidential information in strictest confidence and not disclose to any
31*53ee8cc1Swenshuai.xi //    third party.
32*53ee8cc1Swenshuai.xi //
33*53ee8cc1Swenshuai.xi // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34*53ee8cc1Swenshuai.xi //    kind. Any warranties are hereby expressly disclaimed by MStar, including
35*53ee8cc1Swenshuai.xi //    without limitation, any warranties of merchantability, non-infringement of
36*53ee8cc1Swenshuai.xi //    intellectual property rights, fitness for a particular purpose, error free
37*53ee8cc1Swenshuai.xi //    and in conformity with any international standard.  You agree to waive any
38*53ee8cc1Swenshuai.xi //    claim against MStar for any loss, damage, cost or expense that you may
39*53ee8cc1Swenshuai.xi //    incur related to your use of MStar Software.
40*53ee8cc1Swenshuai.xi //    In no event shall MStar be liable for any direct, indirect, incidental or
41*53ee8cc1Swenshuai.xi //    consequential damages, including without limitation, lost of profit or
42*53ee8cc1Swenshuai.xi //    revenues, lost or damage of data, and unauthorized system use.
43*53ee8cc1Swenshuai.xi //    You agree that this Section 4 shall still apply without being affected
44*53ee8cc1Swenshuai.xi //    even if MStar Software has been modified by MStar in accordance with your
45*53ee8cc1Swenshuai.xi //    request or instruction for your use, except otherwise agreed by both
46*53ee8cc1Swenshuai.xi //    parties in writing.
47*53ee8cc1Swenshuai.xi //
48*53ee8cc1Swenshuai.xi // 5. If requested, MStar may from time to time provide technical supports or
49*53ee8cc1Swenshuai.xi //    services in relation with MStar Software to you for your use of
50*53ee8cc1Swenshuai.xi //    MStar Software in conjunction with your or your customer`s product
51*53ee8cc1Swenshuai.xi //    ("Services").
52*53ee8cc1Swenshuai.xi //    You understand and agree that, except otherwise agreed by both parties in
53*53ee8cc1Swenshuai.xi //    writing, Services are provided on an "AS IS" basis and the warranty
54*53ee8cc1Swenshuai.xi //    disclaimer set forth in Section 4 above shall apply.
55*53ee8cc1Swenshuai.xi //
56*53ee8cc1Swenshuai.xi // 6. Nothing contained herein shall be construed as by implication, estoppels
57*53ee8cc1Swenshuai.xi //    or otherwise:
58*53ee8cc1Swenshuai.xi //    (a) conferring any license or right to use MStar name, trademark, service
59*53ee8cc1Swenshuai.xi //        mark, symbol or any other identification;
60*53ee8cc1Swenshuai.xi //    (b) obligating MStar or any of its affiliates to furnish any person,
61*53ee8cc1Swenshuai.xi //        including without limitation, you and your customers, any assistance
62*53ee8cc1Swenshuai.xi //        of any kind whatsoever, or any information; or
63*53ee8cc1Swenshuai.xi //    (c) conferring any license or right under any intellectual property right.
64*53ee8cc1Swenshuai.xi //
65*53ee8cc1Swenshuai.xi // 7. These terms shall be governed by and construed in accordance with the laws
66*53ee8cc1Swenshuai.xi //    of Taiwan, R.O.C., excluding its conflict of law rules.
67*53ee8cc1Swenshuai.xi //    Any and all dispute arising out hereof or related hereto shall be finally
68*53ee8cc1Swenshuai.xi //    settled by arbitration referred to the Chinese Arbitration Association,
69*53ee8cc1Swenshuai.xi //    Taipei in accordance with the ROC Arbitration Law and the Arbitration
70*53ee8cc1Swenshuai.xi //    Rules of the Association by three (3) arbitrators appointed in accordance
71*53ee8cc1Swenshuai.xi //    with the said Rules.
72*53ee8cc1Swenshuai.xi //    The place of arbitration shall be in Taipei, Taiwan and the language shall
73*53ee8cc1Swenshuai.xi //    be English.
74*53ee8cc1Swenshuai.xi //    The arbitration award shall be final and binding to both parties.
75*53ee8cc1Swenshuai.xi //
76*53ee8cc1Swenshuai.xi //******************************************************************************
77*53ee8cc1Swenshuai.xi //<MStar Software>
78*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
79*53ee8cc1Swenshuai.xi //
80*53ee8cc1Swenshuai.xi // Copyright (c) 2008-2009 MStar Semiconductor, Inc.
81*53ee8cc1Swenshuai.xi // All rights reserved.
82*53ee8cc1Swenshuai.xi //
83*53ee8cc1Swenshuai.xi // Unless otherwise stipulated in writing, any and all information contained
84*53ee8cc1Swenshuai.xi // herein regardless in any format shall remain the sole proprietary of
85*53ee8cc1Swenshuai.xi // MStar Semiconductor Inc. and be kept in strict confidence
86*53ee8cc1Swenshuai.xi // ("MStar Confidential Information") by the recipient.
87*53ee8cc1Swenshuai.xi // Any unauthorized act including without limitation unauthorized disclosure,
88*53ee8cc1Swenshuai.xi // copying, use, reproduction, sale, distribution, modification, disassembling,
89*53ee8cc1Swenshuai.xi // reverse engineering and compiling of the contents of MStar Confidential
90*53ee8cc1Swenshuai.xi // Information is unlawful and strictly prohibited. MStar hereby reserves the
91*53ee8cc1Swenshuai.xi // rights to any and all damages, losses, costs and expenses resulting therefrom.
92*53ee8cc1Swenshuai.xi //
93*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
94*53ee8cc1Swenshuai.xi //==============================================================================
95*53ee8cc1Swenshuai.xi // [mhal_sc.h]
96*53ee8cc1Swenshuai.xi // Date: 20081203
97*53ee8cc1Swenshuai.xi // Descriptions: Add a new layer for HW setting
98*53ee8cc1Swenshuai.xi //==============================================================================
99*53ee8cc1Swenshuai.xi #ifndef MHAL_SC_H
100*53ee8cc1Swenshuai.xi #define MHAL_SC_H
101*53ee8cc1Swenshuai.xi 
102*53ee8cc1Swenshuai.xi #ifdef MSOS_TYPE_LINUX_KERNEL
103*53ee8cc1Swenshuai.xi #include <asm/div64.h>
104*53ee8cc1Swenshuai.xi #else
105*53ee8cc1Swenshuai.xi #define do_div(x,y) ((x)/=(y))
106*53ee8cc1Swenshuai.xi #endif
107*53ee8cc1Swenshuai.xi 
108*53ee8cc1Swenshuai.xi 
109*53ee8cc1Swenshuai.xi #include "hwreg_sc.h"
110*53ee8cc1Swenshuai.xi #include "hwreg_mod.h"
111*53ee8cc1Swenshuai.xi #include "mhal_xc_chip_config.h"
112*53ee8cc1Swenshuai.xi 
113*53ee8cc1Swenshuai.xi //==============================================================================
114*53ee8cc1Swenshuai.xi // Scaling Ratio Macro
115*53ee8cc1Swenshuai.xi #ifdef MSOS_TYPE_LINUX_KERNEL
116*53ee8cc1Swenshuai.xi #define H_PreScalingDownRatio(Input, Output)                { u64_result = ((MS_U64)(Output))    * 2097152ul;do_div(u64_result,(Input));     u64_result +=1;do_div(u64_result,2);}
117*53ee8cc1Swenshuai.xi #define H_PreScalingDownRatioAdv(Input, Output)             { u64_result = ((MS_U64)(Input)-1)   * 2097152ul;do_div(u64_result,(Output-1));  u64_result +=1;do_div(u64_result,2);} //Advance scaling
118*53ee8cc1Swenshuai.xi #define H_PreScalingDownRatioAdv_No_Minus1(Input, Output)   { u64_result = ((MS_U64)(Input))     * 2097152ul;do_div(u64_result,((Output)) *2);}   //Advance scaling without minus 1
119*53ee8cc1Swenshuai.xi #define V_PreScalingDownRatio(Input, Output)                { u64_result = ((MS_U64)(Output))    * 1048576ul;do_div(u64_result,(Input));     u64_result +=1;} // CB mode
120*53ee8cc1Swenshuai.xi #define V_PreScalingDownRatioBilinear(Input, Output)        { u64_result = ((MS_U64)(Input)-1)   * 1048576ul;do_div(u64_result,((Output) -1));} // Bilinear
121*53ee8cc1Swenshuai.xi 
122*53ee8cc1Swenshuai.xi #define H_PostScalingRatio(Input, Output)                   { u64_result = ((MS_U64)(Input))     * 2097152ul;do_div(u64_result,(Output));    u64_result +=1;do_div(u64_result,2);}
123*53ee8cc1Swenshuai.xi #define V_PostScalingRatio(Input, Output)                   { u64_result = ((MS_U64)(Input)-1)   * 2097152ul;do_div(u64_result,(Output-1));  u64_result +=1;do_div(u64_result,2);}
124*53ee8cc1Swenshuai.xi #define V_PostScalingRatio_P2I(Input, Output)               { u64_result = ((MS_U64)(Input))     * 2097152ul;do_div(u64_result,(Output*2));}
125*53ee8cc1Swenshuai.xi #else
126*53ee8cc1Swenshuai.xi // H_PreScalingDownRatio() was refined to reduce the calculation error.
127*53ee8cc1Swenshuai.xi // Use round up (x+y/2)/y might reduce the scaling ratio and induce right vertical garbage line.
128*53ee8cc1Swenshuai.xi // So use un-conditional add by 1 (x+y)/y.
129*53ee8cc1Swenshuai.xi #define H_PreScalingDownRatio(Input, Output)                ((MS_U32)( (((MS_U64)(Output)) * 2097152ul)/ (Input) + 1 ) /2)
130*53ee8cc1Swenshuai.xi #define H_PreScalingDownRatioAdv(Input, Output)             ((MS_U32)( (((MS_U64)(Input)-1) * 2097152ul)/ ((Output)-1) +1) /2) //Advance scaling
131*53ee8cc1Swenshuai.xi #define H_PreScalingDownRatioAdv_No_Minus1(Input, Output)   ((MS_U32)( (((MS_U64)(Input)) * 2097152ul)/ ((Output)) /2 ) )    //Advance scaling without minus 1
132*53ee8cc1Swenshuai.xi #define V_PreScalingDownRatio(Input, Output)                ((MS_U32)( (((MS_U64)(Output)) * 1048576ul)/ (Input) + 1 )) // CB mode
133*53ee8cc1Swenshuai.xi #define V_PreScalingDownRatioBilinear(Input, Output)        ((MS_U32)( (((MS_U64)(Input)-1) * 1048576ul)/ ((Output) -1))) // Bilinear
134*53ee8cc1Swenshuai.xi 
135*53ee8cc1Swenshuai.xi #define H_PostScalingRatio(Input, Output)        ((MS_U32)( ((MS_U64)(Input)) * 2097152ul / (Output) + 1 )/2 )
136*53ee8cc1Swenshuai.xi //#define H_PostScalingRatioAdv(Input, Output)     ( ((MS_U32)(Input)-1) * 1048576ul / ((Output)-1) + 1 )
137*53ee8cc1Swenshuai.xi #define V_PostScalingRatio(Input, Output)        ((MS_U32)( ((MS_U64)(Input)-1) * 2097152ul / ((Output)-1) + 1 ) / 2)
138*53ee8cc1Swenshuai.xi #define V_PostScalingRatio_P2I(Input, Output)        ((MS_U32)( ((MS_U64)(Input)) * 2097152ul / (Output) /2) )
139*53ee8cc1Swenshuai.xi #endif
140*53ee8cc1Swenshuai.xi // In MDrv_SC_3D_Adjust_PreHorDstSize(),
141*53ee8cc1Swenshuai.xi // do a rough check after all, for 2 frame case.
142*53ee8cc1Swenshuai.xi #define ENABLE_2_FRAME_SIZE_PROTECTION  TRUE
143*53ee8cc1Swenshuai.xi 
144*53ee8cc1Swenshuai.xi #if IRQ_CLEAN_INKERNEL
145*53ee8cc1Swenshuai.xi #define INTERRUPT_DUMMY_REGISTER  REG_SC_BK30_4C_L
146*53ee8cc1Swenshuai.xi #define INTERRUPT_DUMMY_REGISTER_H  REG_SC_BK30_4D_L
147*53ee8cc1Swenshuai.xi #endif
148*53ee8cc1Swenshuai.xi 
149*53ee8cc1Swenshuai.xi typedef struct
150*53ee8cc1Swenshuai.xi {
151*53ee8cc1Swenshuai.xi     MS_PHY u32IPMBase0;
152*53ee8cc1Swenshuai.xi     MS_PHY u32IPMBase1;
153*53ee8cc1Swenshuai.xi     MS_PHY u32IPMBase2;
154*53ee8cc1Swenshuai.xi     MS_U16 u16IPMOffset;
155*53ee8cc1Swenshuai.xi     MS_U16 u16IPMFetch;
156*53ee8cc1Swenshuai.xi     MS_U16 u16VLength;
157*53ee8cc1Swenshuai.xi     MS_PHY u32WriteLimitBase;
158*53ee8cc1Swenshuai.xi 
159*53ee8cc1Swenshuai.xi     MS_BOOL bLinearAddrMode;
160*53ee8cc1Swenshuai.xi     MS_BOOL bYCSeparate;
161*53ee8cc1Swenshuai.xi 
162*53ee8cc1Swenshuai.xi     MS_BOOL bMemFormat422;
163*53ee8cc1Swenshuai.xi     MS_BOOL bInterlace;
164*53ee8cc1Swenshuai.xi     MS_U8 u8BitPerPixel;
165*53ee8cc1Swenshuai.xi     MS_U8 u8FBNum;
166*53ee8cc1Swenshuai.xi } SC_FRAMEBUF_INFO_t;
167*53ee8cc1Swenshuai.xi 
168*53ee8cc1Swenshuai.xi typedef struct __attribute__((packed))
169*53ee8cc1Swenshuai.xi {
170*53ee8cc1Swenshuai.xi     MS_U16 u16MiuG0Mask;
171*53ee8cc1Swenshuai.xi     MS_U16 u16MiuG1Mask;
172*53ee8cc1Swenshuai.xi     MS_U16 u16MiuG2Mask;
173*53ee8cc1Swenshuai.xi     MS_U16 u16MiuG3Mask;
174*53ee8cc1Swenshuai.xi     MS_U16 u16MiuG4Mask;
175*53ee8cc1Swenshuai.xi     MS_U16 u16MiuG5Mask;
176*53ee8cc1Swenshuai.xi     MS_U16 u16MiuG6Mask;
177*53ee8cc1Swenshuai.xi } SC_MIUMASK_t;
178*53ee8cc1Swenshuai.xi 
179*53ee8cc1Swenshuai.xi typedef struct
180*53ee8cc1Swenshuai.xi {
181*53ee8cc1Swenshuai.xi     MS_U8 u8MainFBSel;
182*53ee8cc1Swenshuai.xi     MS_U8 u8SubFBSel;
183*53ee8cc1Swenshuai.xi } SC_MIUSEL_t;
184*53ee8cc1Swenshuai.xi 
185*53ee8cc1Swenshuai.xi typedef enum
186*53ee8cc1Swenshuai.xi {
187*53ee8cc1Swenshuai.xi     E_XC_FPLL_DIR_UNKNOWN,
188*53ee8cc1Swenshuai.xi     E_XC_FPLL_DIR_UP,
189*53ee8cc1Swenshuai.xi     E_XC_FPLL_DIR_DOWN,
190*53ee8cc1Swenshuai.xi } MS_XC_FPLL_DIRECTION;
191*53ee8cc1Swenshuai.xi 
192*53ee8cc1Swenshuai.xi typedef enum
193*53ee8cc1Swenshuai.xi {
194*53ee8cc1Swenshuai.xi     E_XC_FPLL_RES_WAITING,
195*53ee8cc1Swenshuai.xi     E_XC_FPLL_RES_TIMEOUT,
196*53ee8cc1Swenshuai.xi     E_XC_FPLL_RES_FINISHED,
197*53ee8cc1Swenshuai.xi } MS_XC_FPLL_RESULT;
198*53ee8cc1Swenshuai.xi 
199*53ee8cc1Swenshuai.xi typedef struct
200*53ee8cc1Swenshuai.xi {
201*53ee8cc1Swenshuai.xi     MS_U8  u8Debounce;
202*53ee8cc1Swenshuai.xi     MS_U16 u16PhaseDiff;
203*53ee8cc1Swenshuai.xi     MS_XC_FPLL_DIRECTION eFpllDir;
204*53ee8cc1Swenshuai.xi     MS_XC_FPLL_RESULT eFpllResult;
205*53ee8cc1Swenshuai.xi } MS_XC_GET_FPLL_PHASEDIFF;
206*53ee8cc1Swenshuai.xi 
207*53ee8cc1Swenshuai.xi typedef enum
208*53ee8cc1Swenshuai.xi {
209*53ee8cc1Swenshuai.xi     E_HAL_SC_3D_LRCHGMODE_OFF   = 0,
210*53ee8cc1Swenshuai.xi     E_HAL_SC_3D_LRCHGMODE_FRAME = 1,
211*53ee8cc1Swenshuai.xi     E_HAL_SC_3D_LRCHGMODE_BLOCK = 2,
212*53ee8cc1Swenshuai.xi     E_HAL_SC_3D_LRCHGMODE_LINE  = 3,
213*53ee8cc1Swenshuai.xi } HAL_SC_3D_LRCHGMODE;
214*53ee8cc1Swenshuai.xi 
215*53ee8cc1Swenshuai.xi typedef struct
216*53ee8cc1Swenshuai.xi {
217*53ee8cc1Swenshuai.xi     void* pInstance;
218*53ee8cc1Swenshuai.xi     MS_BOOL bEnable;
219*53ee8cc1Swenshuai.xi     SCALER_WIN eWindow;
220*53ee8cc1Swenshuai.xi }SC_SET_FORCE_CURRENT_READ_BANK_t;
221*53ee8cc1Swenshuai.xi 
222*53ee8cc1Swenshuai.xi typedef enum {
223*53ee8cc1Swenshuai.xi     EN_XC_PIXEL_SHIFT_INVALID = 0,
224*53ee8cc1Swenshuai.xi     EN_XC_PIXEL_SHIFT_DISABLE,
225*53ee8cc1Swenshuai.xi     EN_XC_PIXEL_SHIFT_ENABLE,
226*53ee8cc1Swenshuai.xi     EN_XC_PIXEL_SHIFT_FORCE_UPDATE,
227*53ee8cc1Swenshuai.xi } XC_PIXEL_SHIFT_STATUS;
228*53ee8cc1Swenshuai.xi 
229*53ee8cc1Swenshuai.xi typedef struct {
230*53ee8cc1Swenshuai.xi     //BK10
231*53ee8cc1Swenshuai.xi     MS_U16 u16RegTGenDeVstart;
232*53ee8cc1Swenshuai.xi     MS_U16 u16RegTGenDeVend;
233*53ee8cc1Swenshuai.xi 
234*53ee8cc1Swenshuai.xi     // BK68
235*53ee8cc1Swenshuai.xi     MS_U16 u16RegSTGenDeVstart;
236*53ee8cc1Swenshuai.xi     MS_U16 u16RegSTGenDeVend;
237*53ee8cc1Swenshuai.xi } XC_VSYNC_VSTART;
238*53ee8cc1Swenshuai.xi 
239*53ee8cc1Swenshuai.xi typedef enum
240*53ee8cc1Swenshuai.xi {
241*53ee8cc1Swenshuai.xi         E_DELAY_TIME_UNKNOWN = 0,
242*53ee8cc1Swenshuai.xi         E_DELAY_TIME_FRC = 1,
243*53ee8cc1Swenshuai.xi }XC_DELAY_TIME_STATUS;
244*53ee8cc1Swenshuai.xi 
245*53ee8cc1Swenshuai.xi 
246*53ee8cc1Swenshuai.xi //==============================================================================
247*53ee8cc1Swenshuai.xi //==============================================================================
248*53ee8cc1Swenshuai.xi #ifdef MHAL_SC_C
249*53ee8cc1Swenshuai.xi #define INTERFACE
250*53ee8cc1Swenshuai.xi #else
251*53ee8cc1Swenshuai.xi #define INTERFACE extern
252*53ee8cc1Swenshuai.xi #endif
253*53ee8cc1Swenshuai.xi 
254*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_setfield(void *pInstance, MS_U16 reg_1D, MS_U16 reg_21, MS_U16 reg_23, SCALER_WIN eWindow);
255*53ee8cc1Swenshuai.xi 
256*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_ficlk(void *pInstance, MS_BOOL bPreDown, SCALER_WIN eWindow);
257*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_shiftline(void *pInstance, MS_U8 u8Val, SCALER_WIN eWindow);
258*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_422_cbcr_swap(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
259*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_pre_align_pixel(void *pInstance, MS_BOOL bEnable, MS_U16 pixels, SCALER_WIN eWindow);
260*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_Set_FreeFRCMD(void *pInstance, MS_BOOL bEnable);
261*53ee8cc1Swenshuai.xi #define Hal_SC_force3fb(args...)
262*53ee8cc1Swenshuai.xi #define Hal_SC_force4fb(args...)
263*53ee8cc1Swenshuai.xi #define Hal_SC_force8fb(args...)
264*53ee8cc1Swenshuai.xi INTERFACE XC_FRAME_STORE_NUMBER Hal_SC_GetFrameStoreMode(void *pInstance, SCALER_WIN eWindow);
265*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_csc(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
266*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_wr_bank_mapping(void *pInstance, MS_U8 u8val, SCALER_WIN eWindow);
267*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_frcm_wr_bank_mapping(void *pInstance, MS_U8 u8val, SCALER_WIN eWindow);
268*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_wr_bank_mapping_num(void *pInstance, MS_U8 u8val, SCALER_WIN eWindow);
269*53ee8cc1Swenshuai.xi INTERFACE MS_U8 Hal_SC_Get_WR_Bank_Mapping(void *pInstance, SCALER_WIN eWindow);
270*53ee8cc1Swenshuai.xi INTERFACE MS_U8 Hal_SC_Get_WR_Bank_Mapping_Num(void *pInstance, SCALER_WIN eWindow);
271*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_delayline(void *pInstance, MS_U8 u8DelayLines, SCALER_WIN eWindow);
272*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_write_limit(void *pInstance, MS_PHY u32WritelimitAddrBase, SCALER_WIN eWindow);
273*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_dual_write_limit(void *pInstance, MS_PHY u32WritelimitAddrBase, SCALER_WIN eWindow);
274*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_frcm_write_limit(void *pInstance, MS_PHY u32WritelimitAddrBase, SCALER_WIN eWindow);
275*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_opm_write_limit(void *pInstance, MS_BOOL bEnable, MS_BOOL bFlag, MS_PHY u32OPWlimitAddr, SCALER_WIN eWindow);
276*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_sw_db(void *pInstance, P_SC_SWDB_INFO pDBreg, SCALER_WIN eWindow);
277*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_sw_db_burst(void *pInstance, P_SC_SWDB_INFO pDBreg, SCALER_WIN eWindow);
278*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_dual_sw_db_burst(void *pInstance, P_SC_SWDB_INFO pMainDBreg, P_SC_SWDB_INFO pSubDBreg);
279*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_VIP_Peaking_Setting(void *pInstance, SCALER_WIN eWindow);
280*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_support_source_to_ve(void *pInstance, MS_U16* OutputCapability);
281*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_set_output_capture_enable(void *pInstance, MS_BOOL bEnable,E_XC_SOURCE_TO_VE eSourceToVE);
282*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_de_window(void *pInstance, XC_PANEL_INFO *pPanel_Info);
283*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_get_disp_de_window(void *pInstance, MS_WINDOW_TYPE *pWin);
284*53ee8cc1Swenshuai.xi INTERFACE MS_PHY Hal_SC_Get_DNRBase0(void *pInstance, SCALER_WIN eWindow);
285*53ee8cc1Swenshuai.xi INTERFACE MS_PHY Hal_SC_Get_DNRBase1(void *pInstance, SCALER_WIN eWindow);
286*53ee8cc1Swenshuai.xi INTERFACE MS_PHY Hal_SC_Get_OPMBase0(void *pInstance, SCALER_WIN eWindow);
287*53ee8cc1Swenshuai.xi INTERFACE MS_PHY Hal_SC_Get_OPMBase1(void *pInstance, SCALER_WIN eWindow);
288*53ee8cc1Swenshuai.xi INTERFACE MS_PHY Hal_SC_Get_OPMBase2(void *pInstance, SCALER_WIN eWindow);
289*53ee8cc1Swenshuai.xi INTERFACE MS_PHY Hal_SC_Get_FRCMBaseAddr(void *pInstance, MS_U8 u8id,SCALER_WIN eWindow);
290*53ee8cc1Swenshuai.xi INTERFACE MS_U8  Hal_SC_Get_LBOffset(void *pInstance, SCALER_WIN eWindow);
291*53ee8cc1Swenshuai.xi INTERFACE void   Hal_SC_Set_LBOffset(void *pInstance, MS_U8 u8LBOffset, SCALER_WIN eWindow);
292*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_DNRBase0(void *pInstance, MS_PHY u32DNRBase0, SCALER_WIN eWindow);
293*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_DNRBase1(void *pInstance, MS_PHY u32DNRBase1, SCALER_WIN eWindow);
294*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_DNRBase2(void *pInstance, MS_PHY u32DNRBase2, SCALER_WIN eWindow);
295*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_OPMBase0(void *pInstance, MS_PHY u32OPMBase0, SCALER_WIN eWindow);
296*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_OPMBase1(void *pInstance, MS_PHY u32OPMBase1, SCALER_WIN eWindow);
297*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_OPMBase2(void *pInstance, MS_PHY u32OPMBase2, SCALER_WIN eWindow);
298*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_FRCM_WBase0(void *pInstance, MS_PHY u32FRCM_WBase0, SCALER_WIN eWindow);
299*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_FRCM_WBase1(void *pInstance, MS_PHY u32FRCM_WBase1, SCALER_WIN eWindow);
300*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_FRCM_WBase2(void *pInstance, MS_PHY u32FRCM_WBase2, SCALER_WIN eWindow);
301*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_FRCM_RBase0(void *pInstance, MS_PHY u32FRCM_RBase0, SCALER_WIN eWindow);
302*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_FRCM_RBase1(void *pInstance, MS_PHY u32FRCM_RBase1, SCALER_WIN eWindow);
303*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_FRCM_RBase2(void *pInstance, MS_PHY u32FRCM_RBase2, SCALER_WIN eWindow);
304*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_memoryaddress(void *pInstance, MS_PHY u32DNRBase0, MS_PHY u32DNRBase1, MS_PHY u32DNRBase2, MS_PHY u32OPMBase0, MS_PHY u32OPMBase1, MS_PHY u32OPMBase2, SCALER_WIN eWindow);
305*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_frcm_memoryaddress(void *pInstance, MS_PHY u32FRCM_WBase0, MS_PHY u32FRCM_WBase1, MS_PHY u32FRCM_WBase2, MS_PHY u32FRCM_RBase0, MS_PHY u32FRCM_RBase1, MS_PHY u32FRCM_RBase2, SCALER_WIN eWindow);
306*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_dual_memoryaddress(void *pInstance, MS_PHY u32DNRBase0, MS_PHY u32DNRBase1, MS_PHY u32DNRBase2, MS_PHY u32OPMBase0, MS_PHY u32OPMBase1, MS_PHY u32OPMBase2, SCALER_WIN eWindow);
307*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_Enable_MiuMask(void *pInstance);
308*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_Disable_MiuMask(void *pInstance);
309*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_miusel(void *pInstance, MS_U8 u8MIUSel);
310*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_get_miusel(void *pInstance, SC_MIUSEL_t* stMIUSel);
311*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_dual_miusel(void *pInstance, MS_U8 u8MIUSel);
312*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_get_dual_miusel(void *pInstance, SC_MIUSEL_t* stMIUSel);
313*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_dual_disable(void *pInstance);
314*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_blsk(void *pInstance, MS_BOOL bEn);
315*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_blsk_burst(void *pInstance, MS_BOOL bEn);
316*53ee8cc1Swenshuai.xi 
317*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_main_black_screen_burst(void *pInstance, MS_BOOL bEn);
318*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_main_sub_black_screen_burst(void *pInstance, MS_BOOL bEn);
319*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_sub_blue_screen_burst(void *pInstance, MS_BOOL bEn, MS_BOOL bBlue);
320*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_main_black_screen(void *pInstance, MS_BOOL bEn);
321*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_main_sub_black_screen(void *pInstance, MS_BOOL bEn);
322*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_sub_blue_screen(void *pInstance, MS_BOOL bEn, MS_BOOL bBlue);
323*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_IP_Memory_Write_Request(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
324*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_IP_Memory_Read_Request(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
325*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_OP_Memory_Write_Request(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
326*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_frcmw_Memory_Write_Request(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
327*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_frcmr_Memory_Read_Request(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
328*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_disable_inputsource_burst(void *pInstance, MS_BOOL bDisable, SCALER_WIN eWindow);
329*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_disable_inputsource(void *pInstance, MS_BOOL bDisable, SCALER_WIN eWindow);
330*53ee8cc1Swenshuai.xi INTERFACE MS_U16 Hal_SC_Is_InputSource_Disable(void *pInstance, SCALER_WIN eWindow);
331*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_nosignal_color(void *pInstance, MS_U8 u8Color,SCALER_WIN eWindow);
332*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_fbl(void *pInstance, MS_BOOL bEn);
333*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_get_fbl(void *pInstance);
334*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_Set_FB_Num(void *pInstance, SCALER_WIN eWindow, XC_FRAME_STORE_NUMBER eBestFBNum, MS_BOOL bInterlace);
335*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_freezeimg_burst(void *pInstance, MS_BOOL bEn, SCALER_WIN eWindow);
336*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_freezeimg(void *pInstance, MS_BOOL bEn, SCALER_WIN eWindow);
337*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_frcm_freezeimg(void *pInstance, MS_BOOL bEn, SCALER_WIN eWindow);
338*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_get_freezeimg(void *pInstance, SCALER_WIN eWindow);
339*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_ip_Init_for_internal_timing(void *pInstance, XC_Internal_TimingType timingtype, SCALER_WIN eWindow);
340*53ee8cc1Swenshuai.xi INTERFACE MS_U16 Hal_SC_rgb_average_info(void *pInstance, MS_U16 u16mask, SCALER_WIN eWindow);
341*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_autogain_enable(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
342*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_autogain_status(void *pInstance, SCALER_WIN eWindow);
343*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_init_riu_base(MS_VIRT u32riu_base, MS_VIRT u32PMriu_base);
344*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_mirror(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
345*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_frcm_mirror(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
346*53ee8cc1Swenshuai.xi INTERFACE MS_U16 Hal_SC_GetAVDStatus(void);
347*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_rep_window(void *pInstance, MS_BOOL bEnable,MS_U16 x,MS_U16 y,MS_U16 w,MS_U16 h,MS_U8 u8Color);
348*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_disp_window(void *pInstance, SCALER_WIN eWindow, MS_WINDOW_TYPE *pdspwin);
349*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_get_disp_window(void *pInstance, SCALER_WIN eWindow, MS_WINDOW_TYPE *pdspwin);
350*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_Fclk(void *pInstance, EN_SET_FCLK_CASE enCase);
351*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_get_framebuf_Info(void *pInstance, SC_FRAMEBUF_INFO_t *pFrameBufInfo, SCALER_WIN eWindow);
352*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_framebuf_Info(void *pInstance, SC_FRAMEBUF_INFO_t pFrameBufInfo);
353*53ee8cc1Swenshuai.xi INTERFACE MS_U8 HAL_SC_get_dnr_setting(void *pInstance, SCALER_WIN eWindow);
354*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_enable_dnr(void *pInstance, MS_U8 u8Val, SCALER_WIN eWindow);
355*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_enable_field_avg_y(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
356*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_enable_field_avg_c(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
357*53ee8cc1Swenshuai.xi INTERFACE MS_U8 Hal_SC_get_cs_det_cnt(void *pInstance, SCALER_WIN eWindow);
358*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_linearmem_mode(MS_BOOL bEnable, SCALER_WIN eWindow);
359*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_cs_det_cnt(void *pInstance, MS_U8 u8val, SCALER_WIN eWindow);
360*53ee8cc1Swenshuai.xi INTERFACE MS_U8 Hal_SC_get_plus_width(void *pInstance, SCALER_WIN eWindow);
361*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_opm_fetch(void *pInstance, SCALER_WIN eWindow, MS_U16 u16OPMFetch);
362*53ee8cc1Swenshuai.xi INTERFACE MS_U16 Hal_SC_get_opm_fetch(void *pInstance, SCALER_WIN eWindow);
363*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_SWDS_AddCmd(void *pInstance, P_SC_SWDB_INFO pDBreg, SCALER_WIN eWindow);
364*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_SWDS_Fire(void *pInstance, SCALER_WIN eWindow);
365*53ee8cc1Swenshuai.xi 
366*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_VOP_Set_Contrast_En(void *pInstance, MS_BOOL bEenable, SCALER_WIN eWindow);
367*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_VOP_Set_Contrast_Value(void *pInstance, MS_XC_VOP_CHANNEL_t eVop_Channel, MS_U16 u16Val, SCALER_WIN eWindow);
368*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_VOP_Set_Brightness_En(void *pInstance, MS_BOOL bEenable, SCALER_WIN eWindow);
369*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_VOP_Set_Brightness_Value(void *pInstance, MS_XC_VOP_CHANNEL_t eVop_Channel, MS_U16 u16Val, SCALER_WIN eWindow);
370*53ee8cc1Swenshuai.xi 
371*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_Enable_VInitFactor(void *pInstance, MS_BOOL bEnable,SCALER_WIN eWindow);
372*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_Set_VInitFactorOne(void *pInstance, MS_U32 u32Value,SCALER_WIN eWindow);
373*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_Set_VInitFactorTwo(void *pInstance, MS_U32 u32Value,SCALER_WIN eWindow);
374*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_Set_vsd_input_line_count(void *pInstance, MS_BOOL bEnable,MS_BOOL bUserMode,MS_U32 u32UserLineCount,SCALER_WIN eWindow);
375*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_Set_vsd_output_line_count(void *pInstance, MS_BOOL bEnable,MS_U32 u32LineCount,SCALER_WIN eWindow);
376*53ee8cc1Swenshuai.xi INTERFACE MS_U32 Hal_SC_CheckSubWinPreScaling(MS_U16 u16ScaleDst,MS_BOOL bInterlace);
377*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_EnableFPLL(void);
378*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL HAL_SC_WaitFPLLDone(void *pInstance);
379*53ee8cc1Swenshuai.xi INTERFACE MS_U16 HAL_SC_GetOutputVFreqX100(MS_U32 u32XTAL_Clock);
380*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_get_ip2_csc(void *pInstance, SCALER_WIN eWindow);
381*53ee8cc1Swenshuai.xi 
382*53ee8cc1Swenshuai.xi //Add for T3
383*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_FilmMode_Patch1(void *pInstance);
384*53ee8cc1Swenshuai.xi 
385*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_SetMainLineBufferOffset(void *pInstance, MS_U16 u16Linebuffer);
386*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_SetSubLineBufferOffset(void *pInstance, MS_U16 u16Linebuffer);
387*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_SetDisplay_LineBuffer_Mode(void *pInstance, MS_BOOL bEnable);
388*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_SetDisplay_Start_Mode(void *pInstance, MS_BOOL bEnable);
389*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_FillLineBuffer(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
390*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_enable_window(void *pInstance, MS_BOOL bEn,SCALER_WIN eWindow);
391*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_enable_window_burst(void *pInstance, MS_BOOL bEn,SCALER_WIN eWindow);
392*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_trigger_signal(void);
393*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_Set_extra_fetch_line(void *pInstance, MS_U8 u8val);
394*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_Set_extra_adv_line(void *pInstance, MS_U8 u8val);
395*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_SetOPWriteOff(void *pInstance, MS_BOOL bEna);
396*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_GetOPWriteOff(void *pInstance);
397*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_get_pixel_rgb(void *pInstance, XC_Get_Pixel_RGB *pData);
398*53ee8cc1Swenshuai.xi 
399*53ee8cc1Swenshuai.xi // FPLL
400*53ee8cc1Swenshuai.xi void HAL_SC_Set_FPLL_Limit(void *pInstance, MS_U32 *u32PllSet, MS_U32 u32LowBound, MS_U32 u32UpBound, MS_BOOL _bInFPLLDbgMode, MS_U32 _U32LimitD5D6D7);
401*53ee8cc1Swenshuai.xi 
402*53ee8cc1Swenshuai.xi //Add for U4
403*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_Set_OSD2VE(void *pInstance, EN_VOP_SEL_OSD_XC2VE_MUX  eVOPSelOSD_MUX);
404*53ee8cc1Swenshuai.xi //Add for T4/Janus
405*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_IsOPMFetchPatch_Enable(void);
406*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_Check_HNonLinearScaling(void *pInstance);
407*53ee8cc1Swenshuai.xi 
408*53ee8cc1Swenshuai.xi //Add for T8 H3D reg handle
409*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_Enable(void *pInstance, MS_BOOL bEn);
410*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_Input3DType(void *pInstance, E_XC_3D_INPUT_MODE e3DType);
411*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_Breakline_Enable(void *pInstance, MS_BOOL bEn);
412*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_HDE(void *pInstance, MS_U16 u16Hde);
413*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_VDE_F0(MS_U16 u16Vde);
414*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_VDE_F2(MS_U16 u16Vde);
415*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_HBLANK(MS_U16 u16Hblank);
416*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_INIT_VBLANK(MS_U8 u8Vblank);
417*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_VBLANK0(MS_U8 u8Vblank);
418*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_VBLANK1(MS_U8 u8Vblank);
419*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_VBLANK2(MS_U8 u8Vblank);
420*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_VSYNC_WIDTH(MS_U8 u8Width);
421*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_VSYNC_POSITION(MS_U16 u16Position);
422*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_SELECT_REGEN_TIMING(MS_BOOL bEn);
423*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_LR_Toggle_Enable(void *pInstance, MS_BOOL bEn, MS_BOOL b2DTo3D, MS_BOOL bSkipDefaultLRFlag);
424*53ee8cc1Swenshuai.xi INTERFACE void HAL_XC_H3D_OPM_SBYS_PIP_Enable(void *pInstance, MS_BOOL bEn);
425*53ee8cc1Swenshuai.xi 
426*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_Detect_RequestFBL_Mode(void *pInstance);
427*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_Set_RequestFBL_Mode(void *pInstance, MS_BOOL bEn);
428*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_SetFrameColor(void *pInstance, MS_U32 u32aRGB);
429*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_is_extra_req_en(void *pInstance, MS_U16 *pu16MainHStart, MS_U16 *pu16MainHEnd, MS_U16 *pu16SubHStart,  MS_U16 *pu16SubHEnd);
430*53ee8cc1Swenshuai.xi INTERFACE MS_U8 Hal_SC_getVSyncWidth(void *pInstance, SCALER_WIN eWindow);
431*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_enable_cursor_report(void *pInstance, MS_BOOL bEn);
432*53ee8cc1Swenshuai.xi 
433*53ee8cc1Swenshuai.xi //Add for K1, just a dummy function at this chip
434*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_Set_OSDLayer(void *pInstance, E_VOP_OSD_LAYER_SEL  eVOPOSDLayer, SCALER_WIN eWindow);
435*53ee8cc1Swenshuai.xi INTERFACE E_VOP_OSD_LAYER_SEL Hal_SC_Get_OSDLayer(void *pInstance, SCALER_WIN eWindow);
436*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_Set_VideoAlpha(void *pInstance, MS_U8 u8Val, SCALER_WIN eWindow);
437*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_Get_VideoAlpha(void *pInstance, MS_U8 *pu8Val, SCALER_WIN eWindow);
438*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_SetOSDBlendingFormula(void *pInstance, E_XC_OSD_INDEX enOsdIndex, E_XC_OSD_BlENDING_TYPE enType, SCALER_WIN eWindow);
439*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_ClearScalingFactorForInternalCalib(void *pInstance );
440*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_IsHW2Dto3DPatch_Enable(void);
441*53ee8cc1Swenshuai.xi 
442*53ee8cc1Swenshuai.xi INTERFACE MS_U8 MHal_SC_cal_usedgain_to_reggain(MS_U32 u16UsedGain_x32);
443*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_OP2VOPDESel(void *pInstance, E_OP2VOP_DE_SEL eVopDESel);
444*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_XC_SVOutput_GetCaps(void *pInstance);
445*53ee8cc1Swenshuai.xi 
446*53ee8cc1Swenshuai.xi INTERFACE void _MHal_SC_Flock_Caculate_LPLLSet(MS_U32 u32Dclk);
447*53ee8cc1Swenshuai.xi INTERFACE void _MHal_SC_Set_LPLL_Limit(MS_U32 u32LpllLimitHigh, MS_U32 u32LpllLimitLow, MS_U8 u8Lpll_bank);
448*53ee8cc1Swenshuai.xi INTERFACE void _MHal_SC_Flock_Set_IGainPGain(void *pInstance, MS_U8 u8FRC_Out, MS_U16 u16OutputVfreqAfterFRC, MS_U16 Htt, MS_U16 Vtt);
449*53ee8cc1Swenshuai.xi INTERFACE void _MHal_SC_Flock_Set_LPLL_Enable(E_XC_FLOCK_TYPE eFlock_type);
450*53ee8cc1Swenshuai.xi 
451*53ee8cc1Swenshuai.xi INTERFACE void MHal_CLKGEN_FRC_Init(void *pInstance, MS_U8 u8LPLL_Mode);
452*53ee8cc1Swenshuai.xi INTERFACE void MHal_CLKGEN_FRC_Bypass_Enable(MS_BOOL bEnable);
453*53ee8cc1Swenshuai.xi 
454*53ee8cc1Swenshuai.xi #define Hal_XC_IsForcePrescaling_3D Hal_XC_IsForcePrescaling
455*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_XC_IsForcePrescaling(void *pInstance, const XC_InternalStatus *pSrcInfo, MS_BOOL *pbForceV, MS_BOOL *pbForceH, SCALER_WIN eWindow);
456*53ee8cc1Swenshuai.xi INTERFACE MS_U32 MHal_SC_Get_LpllSet_Factor(void *pInstance, MS_U8 u8LPLL_Mode, MS_U8 u8LPLL_Type,MS_U32 u32DefaultDClk);
457*53ee8cc1Swenshuai.xi INTERFACE MS_U32 MHal_SC_Get_LpllSet_Div(void *pInstance, MS_U8 u8LPLL_Mode, MS_U8 u8LPLL_Type,MS_U32 u32DefaultDClk);
458*53ee8cc1Swenshuai.xi 
459*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_Enable_AVMute(void *pInstance, SCALER_WIN eWindow);
460*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_XC_ReportPixelInfo(void *pInstance, MS_XC_REPORT_PIXELINFO *pstRepPixInfo);
461*53ee8cc1Swenshuai.xi 
462*53ee8cc1Swenshuai.xi INTERFACE void MHal_XC_Calc_IGainPGain(void *pInstance, MS_U8 *u8GainI, MS_U8 *u8GainP, MS_U32 u32XTAL_Clock, MS_U8 u8LGain, MS_U8 u8Vco, MS_U16 u16HTotal, MS_U16 u16VTotal, MS_U8 u8FRC_Out);
463*53ee8cc1Swenshuai.xi 
464*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_mrq_miusel(void *pInstance, MS_U8 u8MIUSel);
465*53ee8cc1Swenshuai.xi INTERFACE MS_PHY Hal_SC_get_mcdi_memoryaddressfromreg(void *pInstance, E_XC_MCDI_TYPE eType);
466*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_mcdi_memoryaddress(void *pInstance, MS_PHY u32FBAddress, E_XC_MCDI_TYPE eType);
467*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_mcdi_write_limit(void *pInstance, MS_BOOL bEn, MS_PHY u32LimitAddress, E_XC_MCDI_TYPE eType);
468*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_enable_mcdi(void *pInstance, MS_BOOL bEn, E_XC_MCDI_TYPE eType);
469*53ee8cc1Swenshuai.xi 
470*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_bws_mode(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
471*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_sw_lcnt_en(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
472*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_sw_lcnt(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
473*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_ipmw_lcnt_inv(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
474*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_ipmr_lcnt_inv(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
475*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_opm_lcnt_inv(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
476*53ee8cc1Swenshuai.xi 
477*53ee8cc1Swenshuai.xi INTERFACE void MHAL_SC_set_osdc_tgen_hsync_start(void *pInstance, MS_U16 u16Value);
478*53ee8cc1Swenshuai.xi INTERFACE void MHAL_SC_set_osdc_tgen_hsync_end(void *pInstance, MS_U16 u16Value);
479*53ee8cc1Swenshuai.xi INTERFACE void MHAL_SC_set_osdc_tgen_hframe_de_start(void *pInstance, MS_U16 u16Value);
480*53ee8cc1Swenshuai.xi INTERFACE void MHAL_SC_set_osdc_tgen_hframe_de_end(void *pInstance, MS_U16 u16Value);
481*53ee8cc1Swenshuai.xi INTERFACE void MHAL_SC_set_osdc_tgen_htotal(void *pInstance, MS_U16 u16Value);
482*53ee8cc1Swenshuai.xi INTERFACE void MHAL_SC_set_osdc_tgen_vtotal(void *pInstance, MS_U16 u16Value);
483*53ee8cc1Swenshuai.xi INTERFACE void MHAL_SC_set_osdc_tgen_vframe_de_start(void *pInstance, MS_U16 u16Value);
484*53ee8cc1Swenshuai.xi INTERFACE void MHAL_SC_set_osdc_tgen_vframe_de_end(void *pInstance, MS_U16 u16Value);
485*53ee8cc1Swenshuai.xi INTERFACE void MHAL_SC_set_osdc_tgen_vsync_start(void *pInstance, MS_U16 u16Value);
486*53ee8cc1Swenshuai.xi INTERFACE void MHAL_SC_set_osdc_tgen_vsync_end(void *pInstance, MS_U16 u16Value);
487*53ee8cc1Swenshuai.xi INTERFACE void MHAL_SC_set_osdc_tgen_reset_enable(void *pInstance, MS_BOOL bEnable);
488*53ee8cc1Swenshuai.xi INTERFACE void MHAL_SC_set_osdc_swreset_enable(void *pInstance, MS_BOOL bEnable);
489*53ee8cc1Swenshuai.xi INTERFACE void MHAL_SC_set_osdc_mixer_bypass_enable(void *pInstance, MS_BOOL bEnable);
490*53ee8cc1Swenshuai.xi INTERFACE void MHAL_SC_set_osdc_mixer_inv_alpha_enable(void *pInstance, MS_BOOL bEnable);
491*53ee8cc1Swenshuai.xi INTERFACE void MHAL_SC_set_osdc_mixer_hs_n_vfde_enable(void *pInstance, MS_BOOL bEnable);
492*53ee8cc1Swenshuai.xi INTERFACE void MHAL_SC_set_osdc_mixer_hfde_n_vfde_enable(void *pInstance, MS_BOOL bEnable);
493*53ee8cc1Swenshuai.xi INTERFACE void MHAL_SC_enable_osdc(void *pInstance, MS_BOOL bEnable);
494*53ee8cc1Swenshuai.xi INTERFACE void MHAL_SC_set_osdc_clk_mux(void *pInstance, MS_U8 u8Clk_Mux);
495*53ee8cc1Swenshuai.xi 
496*53ee8cc1Swenshuai.xi INTERFACE MS_U16 MHAL_SC_get_osdc_tgen_hsync_start(void *pInstance);
497*53ee8cc1Swenshuai.xi INTERFACE MS_U16 MHAL_SC_get_osdc_tgen_hsync_end(void *pInstance);
498*53ee8cc1Swenshuai.xi INTERFACE MS_U16 MHAL_SC_get_osdc_tgen_hframe_de_start(void *pInstance);
499*53ee8cc1Swenshuai.xi INTERFACE MS_U16 MHAL_SC_get_osdc_tgen_hframe_de_end(void *pInstance);
500*53ee8cc1Swenshuai.xi INTERFACE MS_U16 MHAL_SC_get_osdc_tgen_htotal(void *pInstance);
501*53ee8cc1Swenshuai.xi INTERFACE MS_U16 MHAL_SC_get_osdc_tgen_vtotal(void *pInstance);
502*53ee8cc1Swenshuai.xi INTERFACE MS_U16 MHAL_SC_get_osdc_tgen_vframe_de_start(void *pInstance);
503*53ee8cc1Swenshuai.xi INTERFACE MS_U16 MHAL_SC_get_osdc_tgen_vframe_de_end(void *pInstance);
504*53ee8cc1Swenshuai.xi INTERFACE MS_U16 MHAL_SC_get_osdc_tgen_vsync_start(void *pInstance);
505*53ee8cc1Swenshuai.xi INTERFACE MS_U16 MHAL_SC_get_osdc_tgen_vsync_end(void *pInstance);
506*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHAL_SC_get_osdc_mixer_bypass_status(void *pInstance);
507*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHAL_SC_get_osdc_mixer_inv_alpha_status(void *pInstance);
508*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHAL_SC_get_osdc_mixer_hs_n_vfde_status(void *pInstance);
509*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHAL_SC_get_osdc_mixer_hfde_n_vfde_status(void *pInstance);
510*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHAL_SC_get_osdc_onoff_status(void *pInstance);
511*53ee8cc1Swenshuai.xi 
512*53ee8cc1Swenshuai.xi INTERFACE void MHal_XC_SetForceReadBank(void *pInstance, MS_BOOL bEnable, MS_U8 u8Bank, SCALER_WIN eWindow);
513*53ee8cc1Swenshuai.xi INTERFACE void MHal_XC_SetForceCurrentReadBank(void *pInstance,MS_BOOL bEnable, SCALER_WIN eWindow);
514*53ee8cc1Swenshuai.xi #define Hal_SC_SetPX2MemFormat(args...) 0
515*53ee8cc1Swenshuai.xi #define Hal_SC_IsPX2MemFormat(args...) 0
516*53ee8cc1Swenshuai.xi 
517*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_XC_SetDNRBufAddress(void *pInstance, MS_PHY u32DNRBaseAddr, SCALER_WIN eWindow);
518*53ee8cc1Swenshuai.xi INTERFACE MS_PHY MHal_XC_GetDNRBufAddress(void *pInstance, SCALER_WIN eWindow);
519*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_XC_SetDNRBufSize(void *pInstance, MS_PHY u32DNRBufSize, SCALER_WIN eWindow);
520*53ee8cc1Swenshuai.xi INTERFACE MS_PHY MHal_XC_GetDNRBufSize(void *pInstance, SCALER_WIN eWindow);
521*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_XC_SetFRCMBufAddress(void *pInstance, MS_PHY u32BaseAddr, SCALER_WIN eWindow);
522*53ee8cc1Swenshuai.xi INTERFACE MS_PHY MHal_XC_GetFRCMBufAddress(void *pInstance, SCALER_WIN eWindow);
523*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_XC_SetFRCMBufSize(void *pInstance, MS_PHY u32BufSize, SCALER_WIN eWindow);
524*53ee8cc1Swenshuai.xi INTERFACE MS_PHY MHal_XC_GetFRCMBufSize(void *pInstance, SCALER_WIN eWindow);
525*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_XC_SetDualDNRBufAddress(void *pInstance, MS_PHY u32DNRBaseAddr, SCALER_WIN eWindow);
526*53ee8cc1Swenshuai.xi INTERFACE MS_PHY MHal_XC_GetDualDNRBufAddress(void *pInstance, SCALER_WIN eWindow);
527*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_XC_SetDualDNRBufSize(void *pInstance, MS_PHY u32DNRBufSize, SCALER_WIN eWindow);
528*53ee8cc1Swenshuai.xi INTERFACE MS_PHY MHal_XC_GetDualDNRBufSize(void *pInstance, SCALER_WIN eWindow);
529*53ee8cc1Swenshuai.xi 
530*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_XC_Init_Patch(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
531*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_SetOSDDetect(void *pInstance, MS_BOOL bEnable, MS_U32 Threhold);
532*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_GetOSDDetect(void *pInstance, MS_BOOL *pbOSD);
533*53ee8cc1Swenshuai.xi 
534*53ee8cc1Swenshuai.xi #define MHal_XC_ByPass_SetOSDVsyncPos(args...)
535*53ee8cc1Swenshuai.xi #define MHal_XC_Bypass_SetinputSrc(args...)
536*53ee8cc1Swenshuai.xi #define MHal_XC_BYPASS_Setinputclk(args...)
537*53ee8cc1Swenshuai.xi #define MHal_XC_BYPASS_SetCSC(args...)
538*53ee8cc1Swenshuai.xi 
539*53ee8cc1Swenshuai.xi //Vtrack
540*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue MHal_XC_Vtrack_SetPayloadData(void *pInstance, MS_U16 u16Timecode, MS_U8 u8OperatorID);
541*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue MHal_XC_Vtrack_SetUserDefindedSetting(void *pInstance, MS_BOOL bUserDefinded, MS_U8 *pu8Setting);
542*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue MHal_XC_Vtrack_Enable(void *pInstance, MS_U8 u8FrameRate, MS_BOOL bEnable);
543*53ee8cc1Swenshuai.xi //Bypass mode
544*53ee8cc1Swenshuai.xi #define MHal_XC_Check_Bypass(args...) 0
545*53ee8cc1Swenshuai.xi 
546*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_Set_LB_MergeAddress(void *pInstance);
547*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_XC_IsPNLYUVOutput(void *pInstance);
548*53ee8cc1Swenshuai.xi INTERFACE void MHal_XC_DTVPatch(void *pInstance, SCALER_WIN eWindow);
549*53ee8cc1Swenshuai.xi 
550*53ee8cc1Swenshuai.xi #ifndef DONT_USE_CMA
551*53ee8cc1Swenshuai.xi #if (XC_SUPPORT_CMA ==TRUE)
552*53ee8cc1Swenshuai.xi INTERFACE void MHal_XC_CMAPatch(void *pInstance, SCALER_WIN eWindow);
553*53ee8cc1Swenshuai.xi INTERFACE void MHal_XC_CMAPatchClose(void *pInstance, SCALER_WIN eWindow);
554*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_XC_Get_CMA_UsingCondition(void *pInstance, MS_BOOL bIsGetCMABuff[], MS_U32 au32CMAMemSCMSize[],MS_U32 au32CMAMemFRCMSize[], MS_U32* pu32DualMiuMemSize, MS_U32 u32DataSize, SCALER_WIN eWindow);
555*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_XC_Release_CMA(void *pInstance, XC_CMA_CLIENT enCmaClient, SCALER_WIN eWindow);
556*53ee8cc1Swenshuai.xi INTERFACE MS_U64 MHal_XC_Get_CMA_Addr(void *pInstance, XC_CMA_CLIENT enCmaClient, MS_U32 u32GetCMASize, SCALER_WIN eWindow);
557*53ee8cc1Swenshuai.xi #endif
558*53ee8cc1Swenshuai.xi #endif
559*53ee8cc1Swenshuai.xi 
560*53ee8cc1Swenshuai.xi #define HAL_SC_Set_vsd_3D_autofactor_reset(args...)
561*53ee8cc1Swenshuai.xi 
562*53ee8cc1Swenshuai.xi INTERFACE void MHal_SC_set_manual_rbank_switch_cnt(void *pInstance, MS_BOOL bEnable, MS_U16 u16SwitchCnt, SCALER_WIN eWindow);
563*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_Init(void *pInstance);
564*53ee8cc1Swenshuai.xi INTERFACE MS_U32 Hal_SC_Get_Device_Offset(MS_U8 deviceIdx);
565*53ee8cc1Swenshuai.xi 
566*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_edclk(void *pInstance, MS_U8 u8Clk_Mux, MS_BOOL bEnable, SCALER_WIN eWindow);
567*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_ficlk2(void *pInstance, MS_U8 u8Clk_Mux, MS_BOOL bEnable, SCALER_WIN eWindow);
568*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_fmclk(void *pInstance, MS_BOOL bEnable);
569*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_EnableLegacyMode(void *pInstance, MS_BOOL bEnable);
570*53ee8cc1Swenshuai.xi INTERFACE void MHAL_SC_set_r2y_en(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
571*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHAL_SC_get_r2y_en_status(void *pInstance, SCALER_WIN eWindow);
572*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_T3D_setting(void *pInstance, MS_BOOL bEnable);
573*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_T3D_H_size(void *pInstance, MS_U16 u16Hsize);
574*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_3D_Is_LR_Sbs2Line(void *pInstance);
575*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_SetLRChgMode(void *pInstance, HAL_SC_3D_LRCHGMODE eLRChgMode);
576*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_SetInitialLRIndex(void *pInstance, MS_BOOL bRFirst);
577*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_SetSplitHalf(void *pInstance, MS_BOOL bEnable);
578*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_CopyDispWinToSTGEN(void *pInstance, SCALER_WIN eWindow);
579*53ee8cc1Swenshuai.xi 
580*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_frcm_to_FD_mask(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
581*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_set_top_win_6Tap(void *pInstance, MS_BOOL bEnable);
582*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_frcm_to_freeze(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow);
583*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_SetActiveVideoHeight(void *pInstance, MS_U16 u16VideoSize);
584*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_SetActiveBlankSize0(void *pInstance, MS_U16 u16BlankSize);
585*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_SetActiveBlankSize1(void *pInstance, MS_U16 u16BlankSize);
586*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_SetActiveVideoWidth(void *pInstance, MS_U16 u16VideoSize);
587*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_SetActiveVideoHeightAfterVSD(void *pInstance, MS_U16 u16VideoSize);
588*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_SetFRCMActiveVideoHeightAfterVSD(void *pInstance, MS_U16 u16VideoSize);
589*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_SetPixelSeparationWidth(void *pInstance, MS_U16 u16VideoSize);
590*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_SetSoftware_F2VBottomEndPosition(void *pInstance, MS_U16 u16VideoSize);
591*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_SetSoftware_F1VBottomStartPosition(void *pInstance, MS_U16 u16VideoSize);
592*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_SetSoftware_F1VBottomEndPosition(void *pInstance, MS_U16 u16VideoSize);
593*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_SetHDMI_Spliter(void *pInstance,XC_IP_SYNC_STATUS *sXC_Sync_Status,E_MUX_INPUTPORT enInputPort ,SCALER_WIN eWindow);
594*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_Set_2pmode(void *pInstance,MS_BOOL benable_IP2p,MS_BOOL benable_OP2p,MS_BOOL benable_bypass_all_2p,SCALER_WIN eWindow);
595*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL HAL_SC_set_bwr_config(void *pInstance, void *pstParam, SCALER_WIN eWindow);
596*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL HAL_SC_set_bwr_config_burst(void *pInstance, void *pstParam, SCALER_WIN eWindow);
597*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_AdjustIpmWriteLimite(void *pInstance, MS_BOOL bIsLeft, MS_BOOL bNeedSwap, SCALER_WIN eWindow);
598*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_enable_FALLRR_out(void *pInstance, MS_BOOL bEnable);
599*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_Adjust_PreHVscaling_SaveBW(void *pInstance, XC_InternalStatus *pSrcInfo, MS_BOOL *pb3DPreHScaling,MS_BOOL *pb3DPreVScaling,MS_BOOL bForcePreHScalingDown,MS_BOOL bForcePreVScalingDown,SCALER_WIN eWindow);
600*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_InvertMemsyncInterlaceMode(void *pInstance);
601*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_Set_T3D_MiuSelectExternal(void *pInstance, MS_U8 u8MIUSel);
602*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_XC_GetPQPathStatus(void* pInstance, E_XC_PQ_Path_Type ePqPathType, MS_U16 u16Width, MS_U16 u16Height);
603*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_Enable_FRC_LR_Flag(void *pInstance, MS_BOOL bEnable);
604*53ee8cc1Swenshuai.xi 
605*53ee8cc1Swenshuai.xi #if FRC_INSIDE
606*53ee8cc1Swenshuai.xi INTERFACE void MHal_XC_FRCR2_IP_Patch(void *pInstance, SCALER_WIN eWindow);
607*53ee8cc1Swenshuai.xi INTERFACE void MHal_XC_FRCR2_IP_PatchClose(void *pInstance, SCALER_WIN eWindow);
608*53ee8cc1Swenshuai.xi INTERFACE void MHal_XC_FRCR2_OP_Patch(void *pInstance, SCALER_WIN eWindow);
609*53ee8cc1Swenshuai.xi INTERFACE void MHal_XC_FRCR2_OP_PatchClose(void *pInstance, SCALER_WIN eWindow);
610*53ee8cc1Swenshuai.xi #endif
611*53ee8cc1Swenshuai.xi 
612*53ee8cc1Swenshuai.xi #ifdef ENABLE_SPREADMODE
613*53ee8cc1Swenshuai.xi #define MHal_XC_IsSupportSpreadMode(args...) TRUE
614*53ee8cc1Swenshuai.xi #endif
615*53ee8cc1Swenshuai.xi 
616*53ee8cc1Swenshuai.xi #ifdef UFO_XC_AUTO_DOWNLOAD
617*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue MHal_XC_AutoDownload_Config(void* pInstance, EN_XC_AUTODOWNLOAD_CLIENT enClient, MS_PHY phyBaseAddr, EN_XC_AUTODOWNLOAD_MODE enMode);
618*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue MHal_XC_AutoDownload_Write(void* pInstance, EN_XC_AUTODOWNLOAD_CLIENT enClient, MS_U8* pu8Data, MS_U32 u32Size, void* pParam);
619*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue MHal_XC_AutoDownload_Fire(void* pInstance, EN_XC_AUTODOWNLOAD_CLIENT enClient);
620*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue MHal_XC_GetAutoDownloadCaps(EN_XC_AUTODOWNLOAD_CLIENT enClient, MS_BOOL *pbSupported);
621*53ee8cc1Swenshuai.xi #endif
622*53ee8cc1Swenshuai.xi 
623*53ee8cc1Swenshuai.xi #ifdef UFO_XC_HDR
624*53ee8cc1Swenshuai.xi #if (UFO_XC_HDR_VERSION == 2)
625*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue MHal_XC_HDR_Control(void* pInstance, EN_XC_HDR_CTRL_TYPE enCtrlType, void *pParam);
626*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue MHal_XC_HDR_GetCaps(void *pInstance, XC_HDR_SUPPORTED_CAPS *pstHDRCaps);
627*53ee8cc1Swenshuai.xi #endif
628*53ee8cc1Swenshuai.xi #endif
629*53ee8cc1Swenshuai.xi 
630*53ee8cc1Swenshuai.xi #ifdef CONFIG_MSTAR_SRAMPD
631*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue MHal_XC_SRAM_PowerDown_Control(void* pInstance, MS_BOOL bEnable);
632*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_XC_Is_SRAM_PowerDown(void* pInstance);
633*53ee8cc1Swenshuai.xi INTERFACE void MHal_XC_Set_LD_SRAM_Power_Down(void* pInstance, MS_BOOL bIsSRAMPowerDown);
634*53ee8cc1Swenshuai.xi INTERFACE void MHal_XC_Set_ADC_SRAM_Power_Down(void* pInstance, MS_BOOL bIsSRAMPowerDown);
635*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_Sub_SRAM_PowerDown_Control(void *pInstance, MS_BOOL bPipEnable);
636*53ee8cc1Swenshuai.xi #endif
637*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_get_pre_align_pixel(void * pInstance, SCALER_WIN eWindow);
638*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_XC_PixelShiftStatusChange(void* pInstance, XC_PIXEL_SHIFT_STATUS enStatus);
639*53ee8cc1Swenshuai.xi INTERFACE void MHal_XC_SetVopVttByBK68(void* pInstance, MS_U16 u16Vtt, MS_BOOL bMLoadEnable);
640*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_CheckMuteStatusByRegister(void *pInstance, SCALER_WIN eWindow);
641*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_add_reg_to_shm(void *pInstance,SCALER_WIN eWindow,MS_U32 u32_bk,MS_U16 u16_value,MS_U16 u16_mask);
642*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_add_dram_to_shm(void *pInstance,SCALER_WIN eWindow,MS_PHY u32address,MS_U32 u32length);
643*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_secure_lock(void *pInstance, SCALER_WIN eWindow, MS_U32 u32SecureDMA, MS_U32 u32OperationMode);
644*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_secure_Check_RBase(void *pInstance);
645*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_update_to_shm(void *pInstance, SCALER_WIN eWindow);
646*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_Dual_DNRBase0(void *pInstance, MS_PHY u32DNRBase0, SCALER_WIN eWindow);
647*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_Dual_OPMBase0(void *pInstance, MS_PHY u32OPMBase0, SCALER_WIN eWindow);
648*53ee8cc1Swenshuai.xi #if PIP_PATCH_USING_SC1_MAIN_AS_SC0_SUB
649*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_3D_IsDualViewMode(void *pInstance, SCALER_WIN eWindow);
650*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_Set_DualView(void *pInstance, MS_BOOL bEnable);
651*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_dualview_clone(void *pInstance, MS_BOOL bEnable);
652*53ee8cc1Swenshuai.xi #endif
653*53ee8cc1Swenshuai.xi 
654*53ee8cc1Swenshuai.xi INTERFACE E_XC_FB_LEVEL MHal_XC_Get_FB_Level(void* pInstance, MS_WINDOW_TYPE* pstCropWin, MS_WINDOW_TYPE* pstDispWin, MS_BOOL bInterlace, MS_U16* pu16HSize, MS_U16* pu16VSize);
655*53ee8cc1Swenshuai.xi INTERFACE MS_U32 Hal_SC_get_HDMIpolicy(void *pInstance);
656*53ee8cc1Swenshuai.xi INTERFACE MS_U16 MHal_XC_GetDelayTime(void* pInstance,XC_DELAY_TIME_STATUS enStatus);
657*53ee8cc1Swenshuai.xi 
658*53ee8cc1Swenshuai.xi #undef INTERFACE
659*53ee8cc1Swenshuai.xi #endif /* MHAL_SC_H */
660*53ee8cc1Swenshuai.xi 
661