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