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