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 #include "hwreg_sc.h" 103*53ee8cc1Swenshuai.xi #include "hwreg_mod.h" 104*53ee8cc1Swenshuai.xi 105*53ee8cc1Swenshuai.xi //============================================================================== 106*53ee8cc1Swenshuai.xi // Scaling Ratio Macro 107*53ee8cc1Swenshuai.xi 108*53ee8cc1Swenshuai.xi // H_PreScalingDownRatio() was refined to reduce the calculation error. 109*53ee8cc1Swenshuai.xi // Use round up (x+y/2)/y might reduce the scaling ratio and induce right vertical garbage line. 110*53ee8cc1Swenshuai.xi // So use un-conditional add by 1 (x+y)/y. 111*53ee8cc1Swenshuai.xi #define H_PreScalingDownRatio(Input, Output) ( (((MS_U32)(Output)) * 1048576ul)/ (Input) + 1 ) 112*53ee8cc1Swenshuai.xi #define H_PreScalingDownRatioAdv(Input, Output) ( (((MS_U32)(Input)-1) * 1048576ul)/ ((Output)-1) ) //Advance scaling 113*53ee8cc1Swenshuai.xi #define H_PreScalingDownRatioAdv_No_Minus1(Input, Output) ( (((MS_U32)(Input)) * 1048576ul)/ ((Output)) ) //Advance scaling without minus 1 114*53ee8cc1Swenshuai.xi #define V_PreScalingDownRatio(Input, Output) ( (((MS_U32)(Output)) * 1048576ul)/ (Input) + 1 ) // CB mode 115*53ee8cc1Swenshuai.xi #define V_PreScalingDownRatioBilinear(Input, Output) ( (((MS_U32)(Input)-1) * 1048576ul)/ ((Output) -1)) // Bilinear 116*53ee8cc1Swenshuai.xi 117*53ee8cc1Swenshuai.xi #define H_PostScalingRatio(Input, Output) ( ((MS_U32)(Input)) * 1048576ul / (Output) + 1 ) 118*53ee8cc1Swenshuai.xi //#define H_PostScalingRatioAdv(Input, Output) ( ((MS_U32)(Input)-1) * 1048576ul / ((Output)-1) + 1 ) 119*53ee8cc1Swenshuai.xi #define V_PostScalingRatio(Input, Output) ( ((MS_U32)(Input)-1) * 1048576ul / ((Output)-1) + 1 ) 120*53ee8cc1Swenshuai.xi #define V_PostScalingRatio_P2I(Input, Output) ( ((MS_U32)(Input)) * 1048576ul / (Output)) 121*53ee8cc1Swenshuai.xi #define HW_CLK_CTRL FALSE 122*53ee8cc1Swenshuai.xi 123*53ee8cc1Swenshuai.xi // In MDrv_SC_3D_Adjust_PreHorDstSize(), 124*53ee8cc1Swenshuai.xi // do a rough check after all, for 2 frame case. 125*53ee8cc1Swenshuai.xi #define ENABLE_2_FRAME_SIZE_PROTECTION TRUE 126*53ee8cc1Swenshuai.xi 127*53ee8cc1Swenshuai.xi typedef struct 128*53ee8cc1Swenshuai.xi { 129*53ee8cc1Swenshuai.xi MS_U32 u32IPMBase0; 130*53ee8cc1Swenshuai.xi MS_U32 u32IPMBase1; 131*53ee8cc1Swenshuai.xi MS_U32 u32IPMBase2; 132*53ee8cc1Swenshuai.xi MS_U16 u16IPMOffset; 133*53ee8cc1Swenshuai.xi MS_U16 u16IPMFetch; 134*53ee8cc1Swenshuai.xi MS_U16 u16VLength; 135*53ee8cc1Swenshuai.xi MS_U32 u32WriteLimitBase; 136*53ee8cc1Swenshuai.xi 137*53ee8cc1Swenshuai.xi MS_BOOL bLinearAddrMode; 138*53ee8cc1Swenshuai.xi MS_BOOL bYCSeparate; 139*53ee8cc1Swenshuai.xi 140*53ee8cc1Swenshuai.xi MS_BOOL bMemFormat422; 141*53ee8cc1Swenshuai.xi MS_BOOL bInterlace; 142*53ee8cc1Swenshuai.xi MS_U8 u8BitPerPixel; 143*53ee8cc1Swenshuai.xi MS_U8 u8FBNum; 144*53ee8cc1Swenshuai.xi } SC_FRAMEBUF_INFO_t; 145*53ee8cc1Swenshuai.xi 146*53ee8cc1Swenshuai.xi typedef struct 147*53ee8cc1Swenshuai.xi { 148*53ee8cc1Swenshuai.xi MS_U16 u16MiuG0Mask; 149*53ee8cc1Swenshuai.xi MS_U16 u16MiuG1Mask; 150*53ee8cc1Swenshuai.xi MS_U16 u16MiuG2Mask; 151*53ee8cc1Swenshuai.xi MS_U16 u16MiuG3Mask; 152*53ee8cc1Swenshuai.xi } SC_MIUMASK_t; 153*53ee8cc1Swenshuai.xi 154*53ee8cc1Swenshuai.xi typedef struct 155*53ee8cc1Swenshuai.xi { 156*53ee8cc1Swenshuai.xi MS_U8 u8MainFBSel; 157*53ee8cc1Swenshuai.xi MS_U8 u8SubFBSel; 158*53ee8cc1Swenshuai.xi } SC_MIUSEL_t; 159*53ee8cc1Swenshuai.xi 160*53ee8cc1Swenshuai.xi typedef enum 161*53ee8cc1Swenshuai.xi { 162*53ee8cc1Swenshuai.xi E_XC_FPLL_DIR_UNKNOWN, 163*53ee8cc1Swenshuai.xi E_XC_FPLL_DIR_UP, 164*53ee8cc1Swenshuai.xi E_XC_FPLL_DIR_DOWN, 165*53ee8cc1Swenshuai.xi } MS_XC_FPLL_DIRECTION; 166*53ee8cc1Swenshuai.xi 167*53ee8cc1Swenshuai.xi typedef enum 168*53ee8cc1Swenshuai.xi { 169*53ee8cc1Swenshuai.xi E_XC_FPLL_RES_WAITING, 170*53ee8cc1Swenshuai.xi E_XC_FPLL_RES_TIMEOUT, 171*53ee8cc1Swenshuai.xi E_XC_FPLL_RES_FINISHED, 172*53ee8cc1Swenshuai.xi } MS_XC_FPLL_RESULT; 173*53ee8cc1Swenshuai.xi 174*53ee8cc1Swenshuai.xi typedef struct 175*53ee8cc1Swenshuai.xi { 176*53ee8cc1Swenshuai.xi MS_U8 u8Debounce; 177*53ee8cc1Swenshuai.xi MS_U16 u16PhaseDiff; 178*53ee8cc1Swenshuai.xi MS_XC_FPLL_DIRECTION eFpllDir; 179*53ee8cc1Swenshuai.xi MS_XC_FPLL_RESULT eFpllResult; 180*53ee8cc1Swenshuai.xi } MS_XC_GET_FPLL_PHASEDIFF; 181*53ee8cc1Swenshuai.xi 182*53ee8cc1Swenshuai.xi typedef enum 183*53ee8cc1Swenshuai.xi { 184*53ee8cc1Swenshuai.xi E_XC_OP1_PATTERN_TYPE_PURE = 0, 185*53ee8cc1Swenshuai.xi E_XC_OP1_PATTERN_TYPE_FADE, 186*53ee8cc1Swenshuai.xi E_XC_OP1_PATTERN_TYPE_LINEDOT, 187*53ee8cc1Swenshuai.xi E_XC_OP1_PATTERN_TYPE_CALIBRATION, 188*53ee8cc1Swenshuai.xi E_XC_OP1_PATTERN_TYPE_DOTFADE, 189*53ee8cc1Swenshuai.xi } E_XC_OP1_PATTERN_DTAT_TYPE; 190*53ee8cc1Swenshuai.xi 191*53ee8cc1Swenshuai.xi typedef enum 192*53ee8cc1Swenshuai.xi { 193*53ee8cc1Swenshuai.xi E_HAL_SC_3D_LRCHGMODE_OFF = 0, 194*53ee8cc1Swenshuai.xi E_HAL_SC_3D_LRCHGMODE_FRAME = 1, 195*53ee8cc1Swenshuai.xi E_HAL_SC_3D_LRCHGMODE_BLOCK = 2, 196*53ee8cc1Swenshuai.xi E_HAL_SC_3D_LRCHGMODE_LINE = 3, 197*53ee8cc1Swenshuai.xi } HAL_SC_3D_LRCHGMODE; 198*53ee8cc1Swenshuai.xi 199*53ee8cc1Swenshuai.xi typedef struct 200*53ee8cc1Swenshuai.xi { 201*53ee8cc1Swenshuai.xi void* pInstance; 202*53ee8cc1Swenshuai.xi MS_BOOL bEnable; 203*53ee8cc1Swenshuai.xi SCALER_WIN eWindow; 204*53ee8cc1Swenshuai.xi }SC_SET_FORCE_CURRENT_READ_BANK_t; 205*53ee8cc1Swenshuai.xi 206*53ee8cc1Swenshuai.xi //============================================================================== 207*53ee8cc1Swenshuai.xi //============================================================================== 208*53ee8cc1Swenshuai.xi #ifdef MHAL_SC_C 209*53ee8cc1Swenshuai.xi #define INTERFACE 210*53ee8cc1Swenshuai.xi #else 211*53ee8cc1Swenshuai.xi #define INTERFACE extern 212*53ee8cc1Swenshuai.xi #endif 213*53ee8cc1Swenshuai.xi 214*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_setfield(void *pInstance, MS_U16 reg_1D, MS_U16 reg_21, MS_U16 reg_23, SCALER_WIN eWindow); 215*53ee8cc1Swenshuai.xi 216*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_ficlk(void *pInstance, MS_BOOL bPreDown, SCALER_WIN eWindow); 217*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_shiftline(void *pInstance, MS_U8 u8Val, SCALER_WIN eWindow); 218*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_422_cbcr_swap(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow); 219*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_pre_align_pixel(void *pInstance, MS_BOOL bEnable, MS_U16 pixels, SCALER_WIN eWindow); 220*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_Set_FreeFRCMD(void *pInstance, MS_BOOL bEnable); 221*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_force3fb(MS_BOOL bEnable, SCALER_WIN eWindow); 222*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_force4fb(MS_BOOL bEnable, SCALER_WIN eWindow); 223*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_force8fb(MS_BOOL bEnable, SCALER_WIN eWindow); 224*53ee8cc1Swenshuai.xi INTERFACE XC_FRAME_STORE_NUMBER Hal_SC_GetFrameStoreMode(void *pInstance, SCALER_WIN eWindow); 225*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_csc(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow); 226*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_wr_bank_mapping(void *pInstance, MS_U8 u8val, SCALER_WIN eWindow); 227*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_wr_bank_mapping_num(void *pInstance, MS_U8 u8val, SCALER_WIN eWindow); 228*53ee8cc1Swenshuai.xi INTERFACE MS_U8 Hal_SC_Get_WR_Bank_Mapping(void *pInstance, SCALER_WIN eWindow); 229*53ee8cc1Swenshuai.xi INTERFACE MS_U8 Hal_SC_Get_WR_Bank_Mapping_Num(void *pInstance, SCALER_WIN eWindow); 230*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_delayline(void *pInstance, MS_U8 u8DelayLines, SCALER_WIN eWindow); 231*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_write_limit(void *pInstance, MS_U32 u32WritelimitAddrBase, SCALER_WIN eWindow); 232*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_opm_write_limit(void *pInstance, MS_BOOL bEnable, MS_BOOL bFlag, MS_U32 u32OPWlimitAddr, SCALER_WIN eWindow); 233*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_sw_db(void *pInstance, P_SC_SWDB_INFO pDBreg, SCALER_WIN eWindow); 234*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_sw_db_burst(void *pInstance, P_SC_SWDB_INFO pDBreg, SCALER_WIN eWindow); 235*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_dual_sw_db_burst(void *pInstance, P_SC_SWDB_INFO pMainDBreg, P_SC_SWDB_INFO pSubDBreg); 236*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_VIP_Peaking_Setting(void *pInstance, SCALER_WIN eWindow); 237*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_support_source_to_ve(void *pInstance, MS_U16* OutputCapability); 238*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_set_output_capture_enable(void *pInstance, MS_BOOL bEnable,E_XC_SOURCE_TO_VE eSourceToVE); 239*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_de_window(void *pInstance, XC_PANEL_INFO *pPanel_Info); 240*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_get_disp_de_window(void *pInstance, MS_WINDOW_TYPE *pWin); 241*53ee8cc1Swenshuai.xi INTERFACE MS_U32 Hal_SC_Get_DNRBase0(void *pInstance, SCALER_WIN eWindow); 242*53ee8cc1Swenshuai.xi INTERFACE MS_U32 Hal_SC_Get_DNRBase1(void *pInstance, SCALER_WIN eWindow); 243*53ee8cc1Swenshuai.xi INTERFACE MS_U32 Hal_SC_Get_OPMBase0(void *pInstance, SCALER_WIN eWindow); 244*53ee8cc1Swenshuai.xi INTERFACE MS_U32 Hal_SC_Get_OPMBase1(void *pInstance, SCALER_WIN eWindow); 245*53ee8cc1Swenshuai.xi INTERFACE MS_U32 Hal_SC_Get_OPMBase2(SCALER_WIN eWindow); 246*53ee8cc1Swenshuai.xi INTERFACE MS_U8 Hal_SC_Get_LBOffset(SCALER_WIN eWindow); 247*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_Set_LBOffset(MS_U8 u8LBOffset, SCALER_WIN eWindow); 248*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_DNRBase0(void *pInstance, MS_U32 u32DNRBase0, SCALER_WIN eWindow); 249*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_DNRBase1(void *pInstance, MS_U32 u32DNRBase1, SCALER_WIN eWindow); 250*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_DNRBase2(void *pInstance, MS_U32 u32DNRBase2, SCALER_WIN eWindow); 251*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_OPMBase0(void *pInstance, MS_U32 u32OPMBase0, SCALER_WIN eWindow); 252*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_OPMBase1(void *pInstance, MS_U32 u32OPMBase1, SCALER_WIN eWindow); 253*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_OPMBase2(void *pInstance, MS_U32 u32OPMBase2, SCALER_WIN eWindow); 254*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_memoryaddress(void *pInstance, MS_U32 u32DNRBase0, MS_U32 u32DNRBase1, MS_U32 u32DNRBase2, MS_U32 u32OPMBase0, MS_U32 u32OPMBase1, MS_U32 u32OPMBase2, SCALER_WIN eWindow); 255*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_Enable_MiuMask(void *pInstance); 256*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_Disable_MiuMask(void *pInstance); 257*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_miusel(void *pInstance,MS_U8 u8MIUSel); 258*53ee8cc1Swenshuai.xi 259*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_blsk(void *pInstance,MS_BOOL bEn); 260*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_blsk_burst(void *pInstance,MS_BOOL bEn); 261*53ee8cc1Swenshuai.xi 262*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_main_black_screen_burst(void *pInstance,MS_BOOL bEn); 263*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_main_sub_black_screen_burst(void *pInstance,MS_BOOL bEn); 264*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_sub_blue_screen_burst(void *pInstance,MS_BOOL bEn, MS_BOOL bBlue); 265*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_main_black_screen(void *pInstance,MS_BOOL bEn); 266*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_main_sub_black_screen(void *pInstance,MS_BOOL bEn); 267*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_sub_blue_screen(void *pInstance,MS_BOOL bEn, MS_BOOL bBlue); 268*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_IP_Memory_Write_Request(void *pInstance,MS_BOOL bEnable, SCALER_WIN eWindow); 269*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_IP_Memory_Read_Request(void *pInstance,MS_BOOL bEnable, SCALER_WIN eWindow); 270*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_OP_Memory_Write_Request(void *pInstance,MS_BOOL bEnable, SCALER_WIN eWindow); 271*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_disable_inputsource_burst(void *pInstance,MS_BOOL bDisable, SCALER_WIN eWindow); 272*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_disable_inputsource(void *pInstance,MS_BOOL bDisable, SCALER_WIN eWindow); 273*53ee8cc1Swenshuai.xi INTERFACE MS_U16 Hal_SC_Is_InputSource_Disable(void *pInstance,SCALER_WIN eWindow); 274*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_nosignal_color(void *pInstance,MS_U8 u8Color,SCALER_WIN eWindow); 275*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_fbl(void *pInstance,MS_BOOL bEn); 276*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_get_fbl(void *pInstance); 277*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_Set_FB_Num(void *pInstance,SCALER_WIN eWindow, XC_FRAME_STORE_NUMBER eBestFBNum, MS_BOOL bInterlace); 278*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_freezeimg_burst(void *pInstance,MS_BOOL bEn, SCALER_WIN eWindow); 279*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_freezeimg(void *pInstance,MS_BOOL bEn, SCALER_WIN eWindow); 280*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_get_freezeimg(void *pInstance,SCALER_WIN eWindow); 281*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_ip_Init_for_internal_timing(void *pInstance,XC_Internal_TimingType timingtype, SCALER_WIN eWindow); 282*53ee8cc1Swenshuai.xi INTERFACE MS_U16 Hal_SC_rgb_average_info(void *pInstance,MS_U16 u16mask, SCALER_WIN eWindow); 283*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_autogain_enable(void *pInstance,MS_BOOL bEnable, SCALER_WIN eWindow); 284*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_autogain_status(void *pInstance,SCALER_WIN eWindow); 285*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_init_riu_base(MS_U32 u32riu_base, MS_U32 u32PMriu_base); 286*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_mirror(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow); 287*53ee8cc1Swenshuai.xi INTERFACE MS_U16 Hal_SC_GetAVDStatus(void); 288*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); 289*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_disp_window(void *pInstance, SCALER_WIN eWindow, MS_WINDOW_TYPE *pdspwin); 290*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_get_disp_window(void *pInstance, SCALER_WIN eWindow, MS_WINDOW_TYPE *pdspwin); 291*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_Fclk(void *pInstance, EN_SET_FCLK_CASE enCase); 292*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_get_framebuf_Info(void *pInstance, SC_FRAMEBUF_INFO_t *pFrameBufInfo, SCALER_WIN eWindow); 293*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_framebuf_Info(void *pInstance, SC_FRAMEBUF_INFO_t pFrameBufInfo); 294*53ee8cc1Swenshuai.xi INTERFACE MS_U8 HAL_SC_get_dnr_setting(void *pInstance, SCALER_WIN eWindow); 295*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_enable_dnr(void *pInstance, MS_U8 u8Val, SCALER_WIN eWindow); 296*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_enable_field_avg_y(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow); 297*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_enable_field_avg_c(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow); 298*53ee8cc1Swenshuai.xi INTERFACE MS_U8 Hal_SC_get_cs_det_cnt(void *pInstance, SCALER_WIN eWindow); 299*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_linearmem_mode(MS_BOOL bEnable, SCALER_WIN eWindow); 300*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_cs_det_cnt(void *pInstance, MS_U8 u8val, SCALER_WIN eWindow); 301*53ee8cc1Swenshuai.xi INTERFACE MS_U8 Hal_SC_get_plus_width(void *pInstance, SCALER_WIN eWindow); 302*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_opm_fetch(void *pInstance, SCALER_WIN eWindow, MS_U16 u16OPMFetch); 303*53ee8cc1Swenshuai.xi INTERFACE MS_U16 Hal_SC_get_opm_fetch(void *pInstance, SCALER_WIN eWindow); 304*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_SWDS_AddCmd(void *pInstance, P_SC_SWDB_INFO pDBreg, SCALER_WIN eWindow); 305*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_SWDS_Fire(void *pInstance, P_SC_SWDB_INFO pDBreg, SCALER_WIN eWindow); 306*53ee8cc1Swenshuai.xi 307*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_VOP_Set_Contrast_En(void *pInstance, MS_BOOL bEenable, SCALER_WIN eWindow); 308*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); 309*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_VOP_Set_Brightness_En(void *pInstance, MS_BOOL bEenable, SCALER_WIN eWindow); 310*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); 311*53ee8cc1Swenshuai.xi 312*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL HAL_SC_Set_DynamicScaling(void *pInstance,MS_U32 u32MemBaseAddr, MS_U8 u8MIU_Select, MS_U8 u8IdxDepth, MS_BOOL bOP_On, MS_BOOL bIPS_On, MS_BOOL bIPM_On); 313*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL HAL_SC_Get_DynamicScaling_Status(void); 314*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_Enable_VInitFactor(void *pInstance,MS_BOOL bEnable,SCALER_WIN eWindow); 315*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_Set_VInitFactorOne(void *pInstance,MS_U32 u32Value,SCALER_WIN eWindow); 316*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_Set_VInitFactorTwo(void *pInstance,MS_U32 u32Value,SCALER_WIN eWindow); 317*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); 318*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_Set_vsd_output_line_count(void *pInstance,MS_BOOL bEnable,MS_U32 u32LineCount,SCALER_WIN eWindow); 319*53ee8cc1Swenshuai.xi INTERFACE MS_U32 Hal_SC_CheckSubWinPreScaling(MS_U16 u16ScaleDst,MS_BOOL bInterlace); 320*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_EnableFPLL(void); 321*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL HAL_SC_WaitFPLLDone(void *pInstance); 322*53ee8cc1Swenshuai.xi INTERFACE MS_U16 HAL_SC_GetOutputVFreqX100(MS_U32 u32XTAL_Clock); 323*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_get_csc(void *pInstance,SCALER_WIN eWindow); 324*53ee8cc1Swenshuai.xi 325*53ee8cc1Swenshuai.xi //Add for T3 326*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_FilmMode_Patch1(void *pInstance); 327*53ee8cc1Swenshuai.xi 328*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_SetMainLineBufferOffset(void *pInstance, MS_U16 u16Linebuffer); 329*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_SetSubLineBufferOffset(void *pInstance, MS_U16 u16Linebuffer); 330*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_SetDisplay_LineBuffer_Mode(void *pInstance, MS_BOOL bEnable); 331*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_SetDisplay_Start_Mode(void *pInstance, MS_BOOL bEnable); 332*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_FillLineBuffer(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow); 333*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_enable_window(void *pInstance, MS_BOOL bEn,SCALER_WIN eWindow); 334*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_enable_window_burst(void *pInstance, MS_BOOL bEn,SCALER_WIN eWindow); 335*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_trigger_signal(void); 336*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_Set_extra_fetch_line(void *pInstance, MS_U8 u8val); 337*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_Set_extra_adv_line(void *pInstance, MS_U8 u8val); 338*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_SetOPWriteOff(void *pInstance, MS_BOOL bEna); 339*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_GetOPWriteOff(void *pInstance); 340*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_get_pixel_rgb(void *pInstance, XC_Get_Pixel_RGB *pData); 341*53ee8cc1Swenshuai.xi 342*53ee8cc1Swenshuai.xi // FPLL 343*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); 344*53ee8cc1Swenshuai.xi 345*53ee8cc1Swenshuai.xi //Add for U4 346*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_Set_OSD2VE(void *pInstance, EN_VOP_SEL_OSD_XC2VE_MUX eVOPSelOSD_MUX); 347*53ee8cc1Swenshuai.xi //Add for T4/Janus 348*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_IsOPMFetchPatch_Enable(void); 349*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_Check_HNonLinearScaling(void *pInstance); 350*53ee8cc1Swenshuai.xi 351*53ee8cc1Swenshuai.xi //Add for T8 H3D reg handle 352*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_Enable(void *pInstance, MS_BOOL bEn); 353*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_Input3DType(void *pInstance, E_XC_3D_INPUT_MODE e3DType); 354*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_Breakline_Enable(void *pInstance, MS_BOOL bEn); 355*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_HDE(void *pInstance, MS_U16 u16Hde); 356*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_LR_Toggle_Enable(void *pInstance, MS_BOOL bEn, MS_BOOL b2DTo3D, MS_BOOL bSkipDefaultLRFlag); 357*53ee8cc1Swenshuai.xi INTERFACE void HAL_XC_H3D_OPM_SBYS_PIP_Enable(void *pInstance, MS_BOOL bEn); 358*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_HDE(void *pInstance,MS_U16 u16Hde); 359*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_VDE_F0(void *pInstance,MS_U16 u16Vde); 360*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_VDE_F2(void *pInstance,MS_U16 u16Vde); 361*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_HBLANK(void *pInstance,MS_U16 u16Hblank); 362*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_INIT_VBLANK(void *pInstance,MS_U8 u8Vblank); 363*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_VBLANK0(void *pInstance,MS_U8 u8Vblank); 364*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_VBLANK1(void *pInstance,MS_U8 u8Vblank); 365*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_VBLANK2(void *pInstance,MS_U8 u8Vblank); 366*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_VSYNC_WIDTH(void *pInstance,MS_U8 u8Width); 367*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_H3D_VSYNC_POSITION(void *pInstance,MS_U16 u16Position); 368*53ee8cc1Swenshuai.xi 369*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_Detect_RequestFBL_Mode(void *pInstance); 370*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_SetFrameColor(void *pInstance, MS_U32 u32aRGB); 371*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); 372*53ee8cc1Swenshuai.xi INTERFACE MS_U8 Hal_SC_getVSyncWidth(void *pInstance, SCALER_WIN eWindow); 373*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_enable_cursor_report(void *pInstance, MS_BOOL bEn); 374*53ee8cc1Swenshuai.xi 375*53ee8cc1Swenshuai.xi //Add for K1, just a dummy function at this chip 376*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_Set_OSDLayer(void *pInstance, E_VOP_OSD_LAYER_SEL eVOPOSDLayer, SCALER_WIN eWindow); 377*53ee8cc1Swenshuai.xi INTERFACE E_VOP_OSD_LAYER_SEL Hal_SC_Get_OSDLayer(void *pInstance, SCALER_WIN eWindow); 378*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_Set_VideoAlpha(void *pInstance, MS_U8 u8Val, SCALER_WIN eWindow); 379*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_Get_VideoAlpha(void *pInstance, MS_U8 *pu8Val, SCALER_WIN eWindow); 380*53ee8cc1Swenshuai.xi INTERFACE void Hal_XC_ClearScalingFactorForInternalCalib(void *pInstance ); 381*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_XC_SetFRCMBufAddress(void *pInstance, MS_U32 u32BaseAddr, SCALER_WIN eWindow); 382*53ee8cc1Swenshuai.xi 383*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_XC_SetFRCMBufSize(void *pInstance, MS_U32 u32BufSize, SCALER_WIN eWindow); 384*53ee8cc1Swenshuai.xi 385*53ee8cc1Swenshuai.xi INTERFACE MS_U8 MHal_SC_cal_usedgain_to_reggain(MS_U32 u16UsedGain_x32); 386*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_OP2VOPDESel(void *pInstance,E_OP2VOP_DE_SEL eVopDESel); 387*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_XC_SVOutput_GetCaps(void *pInstance); 388*53ee8cc1Swenshuai.xi 389*53ee8cc1Swenshuai.xi #define _MHal_SC_Flock_Caculate_LPLLSet(args...) 390*53ee8cc1Swenshuai.xi #define _MHal_SC_Set_LPLL_Limit(args...) 391*53ee8cc1Swenshuai.xi #define _MHal_SC_Flock_Set_IGainPGain(args...) 392*53ee8cc1Swenshuai.xi #define _MHal_SC_Flock_Set_LPLL_Enable(args...) 393*53ee8cc1Swenshuai.xi 394*53ee8cc1Swenshuai.xi #define MHal_CLKGEN_FRC_Bypass_Enable(args...) 395*53ee8cc1Swenshuai.xi 396*53ee8cc1Swenshuai.xi #define Hal_XC_IsForcePrescaling_3D Hal_XC_IsForcePrescaling 397*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_XC_IsForcePrescaling(void *pInstance,const XC_InternalStatus *pSrcInfo, MS_BOOL *pbForceV, MS_BOOL *pbForceH, SCALER_WIN eWindow); 398*53ee8cc1Swenshuai.xi INTERFACE MS_U32 MHal_SC_Get_LpllSet_Factor(void *pInstance,MS_U8 u8LPLL_Mode,MS_U8 u8LPLL_Type, MS_U32 u32DefaultDClk); 399*53ee8cc1Swenshuai.xi INTERFACE MS_U32 MHal_SC_Get_LpllSet_Factor_denominator(void *pInstance,MS_U8 u8LPLL_Mode,MS_U8 u8LPLL_Type, MS_U32 u32DefaultDClk); 400*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_Enable_AVMute(void *pInstance,SCALER_WIN eWindow); 401*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_XC_ReportPixelInfo(void *pInstance,MS_XC_REPORT_PIXELINFO *pstRepPixInfo); 402*53ee8cc1Swenshuai.xi 403*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); 404*53ee8cc1Swenshuai.xi 405*53ee8cc1Swenshuai.xi #define Hal_SC_set_mrq_miusel(args...) 406*53ee8cc1Swenshuai.xi #define Hal_SC_set_mcdi_memoryaddress(args...) 407*53ee8cc1Swenshuai.xi #define Hal_SC_set_mcdi_write_limit(args...) 408*53ee8cc1Swenshuai.xi #define Hal_SC_enable_mcdi(args...); 409*53ee8cc1Swenshuai.xi 410*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_bws_mode(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow); 411*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_sw_lcnt_en(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow); 412*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_sw_lcnt(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow); 413*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_ipmw_lcnt_inv(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow); 414*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_ipmr_lcnt_inv(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow); 415*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_opm_lcnt_inv(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow); 416*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_opm_lcnt_inv_pre(void *pInstance,MS_BOOL bEnable, SCALER_WIN eWindow); 417*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); 418*53ee8cc1Swenshuai.xi 419*53ee8cc1Swenshuai.xi 420*53ee8cc1Swenshuai.xi #define MHAL_SC_set_osdc_tgen_hsync_start(args...) 421*53ee8cc1Swenshuai.xi #define MHAL_SC_set_osdc_tgen_hsync_end(args...) 422*53ee8cc1Swenshuai.xi #define MHAL_SC_set_osdc_tgen_hframe_de_start(args...) 423*53ee8cc1Swenshuai.xi #define MHAL_SC_set_osdc_tgen_hframe_de_end(args...) 424*53ee8cc1Swenshuai.xi #define MHAL_SC_set_osdc_tgen_htotal(args...) 425*53ee8cc1Swenshuai.xi #define MHAL_SC_set_osdc_tgen_vtotal(args...) 426*53ee8cc1Swenshuai.xi #define MHAL_SC_set_osdc_tgen_vframe_de_start(args...) 427*53ee8cc1Swenshuai.xi #define MHAL_SC_set_osdc_tgen_vframe_de_end(args...) 428*53ee8cc1Swenshuai.xi #define MHAL_SC_set_osdc_tgen_vsync_start(args...) 429*53ee8cc1Swenshuai.xi #define MHAL_SC_set_osdc_tgen_vsync_end(args...) 430*53ee8cc1Swenshuai.xi #define MHAL_SC_set_osdc_tgen_reset_enable(args...) 431*53ee8cc1Swenshuai.xi #define MHAL_SC_set_osdc_swreset_enable(args...) 432*53ee8cc1Swenshuai.xi #define MHAL_SC_set_osdc_mixer_bypass_enable(args...) 433*53ee8cc1Swenshuai.xi #define MHAL_SC_set_osdc_mixer_inv_alpha_enable(args...) 434*53ee8cc1Swenshuai.xi #define MHAL_SC_set_osdc_mixer_hs_n_vfde_enable(args...) 435*53ee8cc1Swenshuai.xi #define MHAL_SC_set_osdc_mixer_hfde_n_vfde_enable(args...) 436*53ee8cc1Swenshuai.xi #define MHAL_SC_set_osdc_clk_mux(args...) 437*53ee8cc1Swenshuai.xi #define MHAL_SC_enable_osdc(args...) 438*53ee8cc1Swenshuai.xi 439*53ee8cc1Swenshuai.xi #define MHAL_SC_get_osdc_tgen_hsync_start(args...) 0 440*53ee8cc1Swenshuai.xi #define MHAL_SC_get_osdc_tgen_hsync_end(args...) 0 441*53ee8cc1Swenshuai.xi #define MHAL_SC_get_osdc_tgen_hframe_de_start(args...) 0 442*53ee8cc1Swenshuai.xi #define MHAL_SC_get_osdc_tgen_hframe_de_end(args...) 0 443*53ee8cc1Swenshuai.xi #define MHAL_SC_get_osdc_tgen_htotal(args...) 0 444*53ee8cc1Swenshuai.xi #define MHAL_SC_get_osdc_tgen_vtotal(args...) 0 445*53ee8cc1Swenshuai.xi #define MHAL_SC_get_osdc_tgen_vframe_de_start(args...) 0 446*53ee8cc1Swenshuai.xi #define MHAL_SC_get_osdc_tgen_vframe_de_end(args...) 0 447*53ee8cc1Swenshuai.xi #define MHAL_SC_get_osdc_tgen_vsync_start(args...) 0 448*53ee8cc1Swenshuai.xi #define MHAL_SC_get_osdc_tgen_vsync_end(args...) 0 449*53ee8cc1Swenshuai.xi #define MHAL_SC_get_osdc_mixer_bypass_status(args...) 0 450*53ee8cc1Swenshuai.xi #define MHAL_SC_get_osdc_mixer_inv_alpha_status(args...) 0 451*53ee8cc1Swenshuai.xi #define MHAL_SC_get_osdc_mixer_hs_n_vfde_status(args...) 0 452*53ee8cc1Swenshuai.xi #define MHAL_SC_get_osdc_mixer_hfde_n_vfde_status(args...) 0 453*53ee8cc1Swenshuai.xi #define MHAL_SC_get_osdc_onoff_status(args...) 0 454*53ee8cc1Swenshuai.xi 455*53ee8cc1Swenshuai.xi #define MHal_XC_ByPass_SetOSDVsyncPos(args...) 456*53ee8cc1Swenshuai.xi #define MHal_XC_Bypass_SetinputSrc(args...) 457*53ee8cc1Swenshuai.xi #define MHal_XC_BYPASS_Setinputclk(args...) 458*53ee8cc1Swenshuai.xi #define MHal_XC_BYPASS_SetCSC(args...) 459*53ee8cc1Swenshuai.xi 460*53ee8cc1Swenshuai.xi INTERFACE void MHal_XC_SetForceReadBank(void *pInstance, MS_BOOL bEnable, MS_U8 u8Bank, SCALER_WIN eWindow); 461*53ee8cc1Swenshuai.xi INTERFACE void MHal_XC_SetForceCurrentReadBank(void *pInstance,MS_BOOL bEnable, SCALER_WIN eWindow); 462*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_SetPX2MemFormat(void *pInstance, SCALER_WIN eWindow); 463*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_IsPX2MemFormat(void *pInstance, SCALER_WIN eWindow); 464*53ee8cc1Swenshuai.xi //#define MHal_XC_Set_DSIndexSourceSelect(args...) 465*53ee8cc1Swenshuai.xi //#define MHal_XC_Set_DSForceIndex(args...) 466*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_XC_SetDNRBufAddress(void *pInstance, MS_U32 u32DNRBaseAddr, SCALER_WIN eWindow); 467*53ee8cc1Swenshuai.xi INTERFACE MS_U32 MHal_XC_GetDNRBufAddress(void *pInstance, SCALER_WIN eWindow); 468*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_XC_SetDNRBufSize(void *pInstance, MS_U32 u32DNRBufSize, SCALER_WIN eWindow); 469*53ee8cc1Swenshuai.xi INTERFACE MS_U32 MHal_XC_GetDNRBufSize(void *pInstance, SCALER_WIN eWindow); 470*53ee8cc1Swenshuai.xi #define MHal_XC_Init_Patch(args...) 0 471*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_SetOSDDetect(void *pInstance, MS_BOOL bEnable, MS_U32 Threhold); 472*53ee8cc1Swenshuai.xi INTERFACE E_APIXC_ReturnValue Hal_SC_GetOSDDetect(void *pInstance, MS_BOOL *pbOSD); 473*53ee8cc1Swenshuai.xi 474*53ee8cc1Swenshuai.xi //Vtrack 475*53ee8cc1Swenshuai.xi #define MHal_XC_Vtrack_SetPayloadData(args...) 2 476*53ee8cc1Swenshuai.xi #define MHal_XC_Vtrack_SetUserDefindedSetting(args...)2 477*53ee8cc1Swenshuai.xi #define MHal_XC_Vtrack_Enable(args...) 2 478*53ee8cc1Swenshuai.xi 479*53ee8cc1Swenshuai.xi // scaling without mute 480*53ee8cc1Swenshuai.xi INTERFACE void MHAL_SC_enable_vsd_shift(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow); 481*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_XC_IsPNLYUVOutput(void *pInstance); 482*53ee8cc1Swenshuai.xi INTERFACE void MHal_SC_set_manual_rbank_switch_cnt(void *pInstance, MS_BOOL bEnable, MS_U16 u16SwitchCnt, SCALER_WIN eWindow); 483*53ee8cc1Swenshuai.xi #define HAL_SC_Set_LB_MergeAddress(args...) 484*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_Init(void *pInstance); 485*53ee8cc1Swenshuai.xi INTERFACE MS_U32 Hal_SC_Get_Device_Offset(MS_U8 deviceIdx); 486*53ee8cc1Swenshuai.xi 487*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_ficlk2(void *pInstance, MS_U8 u8Clk_Mux, MS_BOOL bEnable, SCALER_WIN eWindow); 488*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_EnableLegacyMode(void *pInstance, MS_BOOL bEnable); 489*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_SwitchIPMWriteBank(void *pInstance, MS_BOOL bEnable, E_XC_IPM_CONNECT_ID eIPMConnect); 490*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_SwitchFRCMWriteBank(void *pInstance, MS_BOOL bEnable, E_XC_FRCMW_CONNECT_ID eFRCMConnect); 491*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_Enable_FEOP1(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow); 492*53ee8cc1Swenshuai.xi 493*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_set_fmclk(void *pInstance, MS_BOOL bEnable); 494*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_3D_Is_LR_Sbs2Line(void *pInstance); 495*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_SetLRChgMode(void *pInstance, HAL_SC_3D_LRCHGMODE eLRChgMode); 496*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_SetInitialLRIndex(void *pInstance, MS_BOOL bRFirst); 497*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_3D_SetSplitHalf(void *pInstance, MS_BOOL bEnable); 498*53ee8cc1Swenshuai.xi INTERFACE void HAL_SC_Set_vsd_3D_autofactor_reset(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow); 499*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_CheckMuteStatusByRegister(void *pInstance, SCALER_WIN eWindow); 500*53ee8cc1Swenshuai.xi #define Hal_SC_set_frcm_freezeimg(args...) 501*53ee8cc1Swenshuai.xi #define Hal_SC_set_frcm_memoryaddress(args...) 502*53ee8cc1Swenshuai.xi #define Hal_SC_set_frcm_write_limit(args...) 503*53ee8cc1Swenshuai.xi #define Hal_SC_set_frcm_mirror(args...) 504*53ee8cc1Swenshuai.xi #define Hal_SC_set_edclk(args...) 505*53ee8cc1Swenshuai.xi #define Hal_SC_set_T3D_setting(args...) 506*53ee8cc1Swenshuai.xi #define Hal_SC_set_T3D_H_size(args...) 507*53ee8cc1Swenshuai.xi #define MHAL_SC_set_2p_mode(args...) 0 508*53ee8cc1Swenshuai.xi 509*53ee8cc1Swenshuai.xi #define Hal_SC_set_frcm_to_FD_mask(args...) 510*53ee8cc1Swenshuai.xi #define Hal_SC_set_frcm_to_freeze(args...) 511*53ee8cc1Swenshuai.xi 512*53ee8cc1Swenshuai.xi #define Hal_SC_3D_set_top_win_6Tap(args...) 513*53ee8cc1Swenshuai.xi 514*53ee8cc1Swenshuai.xi #ifdef ENABLE_SPREADMODE 515*53ee8cc1Swenshuai.xi //not implemnet 516*53ee8cc1Swenshuai.xi #define MHal_XC_IsSupportSpreadMode(args...) FALSE 517*53ee8cc1Swenshuai.xi #endif 518*53ee8cc1Swenshuai.xi 519*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL Hal_SC_get_ip2_csc(void *pInstance, SCALER_WIN eWindow); 520*53ee8cc1Swenshuai.xi INTERFACE void Hal_SC_get_miusel(void *pInstance, SC_MIUSEL_t* stMIUSel); 521*53ee8cc1Swenshuai.xi 522*53ee8cc1Swenshuai.xi // HW internal pattern 523*53ee8cc1Swenshuai.xi INTERFACE void MHal_SC_OP1_Pattern_backup_setting(void); 524*53ee8cc1Swenshuai.xi INTERFACE void MHal_SC_OP1_Pattern_enable(MS_BOOL bEnable); 525*53ee8cc1Swenshuai.xi INTERFACE void MHal_SC_OP1_Pattern_init_setting(void); 526*53ee8cc1Swenshuai.xi INTERFACE void MHal_SC_OP1_Pattern_restore_setting(void); 527*53ee8cc1Swenshuai.xi INTERFACE void MHal_SC_OP1_Pattern_set_jump_threshold(MS_U16 u16Threshold); 528*53ee8cc1Swenshuai.xi INTERFACE void MHal_SC_OP1_Pattern_set_wraddr(MS_U16 u16Addr); 529*53ee8cc1Swenshuai.xi INTERFACE void MHal_SC_OP1_Pattern_sram_write_enable(MS_BOOL bEn); 530*53ee8cc1Swenshuai.xi INTERFACE void MHal_SC_OP1_Pattern_sram_write_fastmode(MS_BOOL bEn); 531*53ee8cc1Swenshuai.xi INTERFACE void MHal_SC_OP1_Pattern_sram_writestart(void); 532*53ee8cc1Swenshuai.xi INTERFACE void MHal_SC_OP1_Pattern_sram_writedone(void); 533*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MHal_SC_OP1_Pattern_set_patgen_mode(EN_XC_OP1_PATGEN_MODE mode); 534*53ee8cc1Swenshuai.xi INTERFACE void MHal_SC_OP1_PatGen_adjust_frame_size(MS_U16 u16HSize, MS_U16 u16VSize); 535*53ee8cc1Swenshuai.xi INTERFACE void MHal_SC_OP1_Pattern_set_frame_size(MS_U16 u16HSize, MS_U16 u16VSize); 536*53ee8cc1Swenshuai.xi INTERFACE void MHal_SC_OP1_Pattern_set_dotfade_value(MS_U8 RVal, MS_U8 GVal, MS_U8 BVal); 537*53ee8cc1Swenshuai.xi INTERFACE void MHal_SC_OP1_Pattern_set_dotfade_overfollow_protection(MS_BOOL REn, MS_BOOL GEn, MS_BOOL BEn); 538*53ee8cc1Swenshuai.xi INTERFACE void MHal_SC_OP1_Pattern_pure_color(MS_U8 u8Color); 539*53ee8cc1Swenshuai.xi INTERFACE void MHal_SC_OP1_Pattern_set_sram(MS_U16 u16Tbl0, MS_U16 u16Tbl1, MS_U16 u16Tbl2, MS_U16 u16Tbl3); 540*53ee8cc1Swenshuai.xi INTERFACE void MHal_SC_OP1_Pattern_define_tile(MS_U16 hTile, MS_U16 vTile); 541*53ee8cc1Swenshuai.xi INTERFACE void MHal_SC_OP1_Pattern_enable_border(MS_BOOL bEnable, MS_U16 RVal, MS_U16 GVal, MS_U16 BVal); 542*53ee8cc1Swenshuai.xi INTERFACE void MHal_SC_OP1_Pattern_customize_blcok(MS_U8 block_Size, MS_U8 repeat_Num, MS_BOOL isLineStart, MS_BOOL isLineEnd, MS_U16 RVal, MS_U16 GVal, MS_U16 BVal, E_XC_OP1_PATTERN_DTAT_TYPE eType); 543*53ee8cc1Swenshuai.xi INTERFACE void MHal_SC_OP1_Pattern_set_border_sram(XC_OP1_PatGen_Border tile1, XC_OP1_PatGen_Border tile2, XC_OP1_PatGen_Border tile3, XC_OP1_PatGen_Border tile4, XC_OP1_PatGen_Border tile5); 544*53ee8cc1Swenshuai.xi INTERFACE void MHAL_SC_set_r2y_en(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow); 545*53ee8cc1Swenshuai.xi INTERFACE void MHAL_SC_set_VOP(void *pInstance, MS_XC_VOP_Data *pstVOPData); 546*53ee8cc1Swenshuai.xi 547*53ee8cc1Swenshuai.xi #undef INTERFACE 548*53ee8cc1Swenshuai.xi #endif /* MHAL_SC_H */ 549*53ee8cc1Swenshuai.xi 550