/**
 * @file hv_drv_DpuCommon.h
 * @brief Header file of dpu module.
 *
 * @verbatim
 * ==============================================================================
 *                        ##### How to use #####
 * ==============================================================================
 *
 * @endverbatim
 *
 * @author HiView SoC Software Team
 * @version 1.0.0
 * @date 2022-08-22
 */
#ifndef __HV_DRV_DPU_SUB_SCALER_H__
#define __HV_DRV_DPU_SUB_SCALER_H__

#include "hv_comm_DataType.h"
#include "hv_comm_Define.h"

/*******************************************/
VOID Hv_Drv_DpuScaler_CalcSubWindowOutPut(VideoConfigParams* pstVideoConfigParams);

VOID Hv_Drv_DpuScaler_SubWindowConfig(USHORT16 usPanelHactive, USHORT16 usPanelVactive);

VOID Hv_Drv_DpuScaler_UpdataSubCapOutMask(const VideoConfigParams* pstVideoConfigParams);

Status Hv_Drv_DpuScaler_CapVgsfSettingsSub(const VideoConfigParams* pstVideoConfigParams);

Status Hv_Drv_DpuScaler_DpcCapSubSettings(const VideoConfigParams* pstVideoConfigParams);

Status Hv_Drv_DpuScaler_DpcSrpSubSettings(const VideoConfigParams* pstVideoConfigParams);


VOID Hv_Drv_DpuScaler_SubVdmReadAddrSwap(VOID);
VOID Hv_Drv_DpuScaler_SubVdmWriteAddrSwap(VOID);

Status Hv_Drv_DpuScaler_SrpTopSubSettings(const VideoConfigParams* pstVideoConfigParams);

Status Hv_Drv_DpuScaler_SubLdgTopSubSettings(const VideoConfigParams* pstVideoConfigParams);

Status Hv_Drv_DpuScaler_SetSubPathInterlaceMode(const VideoConfigParams* pstVideoConfigParams, UCHAR8 ucFieldPolar);

Status Hv_Drv_DpuScaler_CapVgsfSubHdrSetting(const VideoConfigParams* pstVideoConfigParams);

VOID Hv_Drv_DpuScaler_SubChannelClose(VOID);
Status Hv_Drv_DpuScaler_LDGSubInsertBlackCableDetect();
Status Hv_Drv_DpuSubScaler_Config(const VideoConfigParams* pstVideoConfigParams);

VOID Hv_Drv_DpuScaler_LdgSubBorderEn(BOOL bEn);

VOID Hv_Drv_DpuScaler_InitFrcModeSub(BOOL bStart);

VOID Hv_Drv_DpuScaler_SubLdgTopSubBlendEn(BOOL bEn);

VOID Hv_Drv_DpuScaler_DtcSubWindowEn(BOOL bEn);

VOID Hv_Drv_DpuScaler_SetSubSeamlessApplyInEn(BOOL bEn);

VOID Hv_Drv_DpuScaler_SetSubPathClkEn(BOOL bEn);

USHORT16 Hv_Drv_DpuScaler_GetPbpMainWindowHSize(USHORT16 usPanelHactive);

USHORT16 Hv_Drv_DpuScaler_GetPbpMainWindowHTotal(USHORT16 usPanelHactive, USHORT16 usPanelHtotal);

USHORT16 Hv_Drv_DpuScaler_GetPbpSubWindowHSize(VOID);
/***********************************************/ 
#endif
