/**
 * @file hv_drv_MainMute.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_MAIN_MUTE_H__
#define __HV_DRV_DPU_MAIN_MUTE_H__

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



/**
 * @brief chip dpu scaler mute module init.
 * @param[in] None.
 * @return void.
 */
Status Hv_Drv_DpuScaler_MainMute_Init( VOID );
/**
 * @brief  set mute timing.
 * @param[in] None.
 * @return void.
 */
Status Hv_Drv_DpuScaler_SetMainMuteTiming(const VideoTimingParam* pstVideoTiming,UINT32 uiPixelClock, BOOL bOsdVrrEnable);

/**
 * @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_GetMainMuteState(VOID);

UINT32 Hv_Drv_DpuScaler_GetMainMuteIntReason(VOID);

Status Hv_Drv_DpuScaler_MainMuteForceFreeRun(BOOL bSwitch);

VOID Hv_Drv_DpuScaler_MainMuteClearEn(VOID);

UINT32 Hv_Drv_DpuScaler_GetMainMuteStatus(VOID);

#endif

