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

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



/**
 * @brief chip dpu scaler mute module init.
 * @param[in] None.
 * @return void.
 */
Status Hv_Drv_DpuScaler_SubMute_Init( VOID );

/**
 * @brief chip dpu scaler sub mute module init.
 * @param[in] None.
 * @return void.
 */
void Hv_Drv_DpuScaler_MuteSubInit();

/**
 * @brief get mut result.
 * @param[in] None.
 * @return status:
    Readback of internal state machine.
    [9]:wait4;
    [8]:wait3;
    [7]:wait2;
    [6]:wait1;
    [5]:normal;
    [4]:wait0;
    [3]:freerun;
    [2]:idle;
    [1]:freerun state;
    [0]:normal state;
 **/
UINT32 Hv_Drv_DpuScaler_GetSubMuteState(VOID);
 
Status Hv_Drv_DpuScaler_SubMuteISRHandler(VOID);

UINT32 Hv_Drv_DpuScaler_GetSubMuteIntReason(VOID);

Status Hv_Drv_DpuScaler_SetSubMuteTiming(const VideoTimingParam*  pstVideoTiming, UINT32 uiPixelClock, BOOL bOsdVrrEnable);

Status Hv_Drv_DpuScaler_SubMuteForceFreeRun(BOOL bSwitch);

VOID Hv_Drv_DpuScaler_SubMuteClearEn(VOID);

UINT32 Hv_Drv_DpuScaler_GetSubMuteStatus(VOID);

#endif

