/**
 * @file hv_mem_Parser.h
 * @brief Header file of Project.
 *
 * @verbatim
 * ==============================================================================
 *                        ##### How to use #####
 * ==============================================================================
 *
 *
 * @endverbatim
 *
 * @author HiView SoC Software Team
 * @version 1.0.0
 * @date 2023-05-18
 */

#include "hv_comm_MemoryConfig.h"
#include "hv_comm_FlashConfig.h"
#include "hv_comm_DataType.h"

#include "hv_vos_Comm.h"
#include "hv_comm_Define.h"
 typedef enum _PqTableType
{
    TABLE_PQ_NONE,
    TABLE_PQ_INIt_REG,
    TABLE_PQ_DITHER,
    TABLE_PQ_SCL,
    TABLE_PQ_LDC,
    TABLE_PQ_OD,
    TABLE_PQ_CONTRAST,
    TABLE_PQ_YCCM,
    TABLE_PQ_SHARPNESS,
    TABLE_PQ_CONTRAST_PARAM,
    TABLE_PQ_SHARPNESS_PARAM,
    TABLE_PQ_GAMMA_T,
    TABLE_PQ_GAMMA_D,
    TABLE_PQ_OSD_GMD,
    TABLE_PQ_OSD_GMI,
    TABLE_PQ_WCG_CM,
    TABLE_PQ_WCG_GMD,
    TABLE_PQ_WCG_GMI,
    TABLE_PQ_HDR,
    TABLE_PQ_DEMURA,

    TABLE_PQ_MAX,
}PqTableType;

/**
 * @brief get pq table addr & size
  * @param[in] enType: PqTableType
  * @param[in] uiIndex: index
  * @param[out] puiAddr: table addr
  * @param[out] puiSize: table size
 */
 Status Hv_Pq_GetTable(PqTableType enType, UINT32 uiIndex, UINT32 *puiAddr, UINT32 *puiSize);
/**
 * @brief show pq table addr & size
 */
 Status Hv_Pq_ShowTable(void);
 /**
 * @brief decompress pq partition, and then move to ddr positon.
 */
void Hv_Pq_DecompressPart(void);

/**
 * @brief get code superblock version.
 */
UINT32 Hv_Comm_GetCodeVersion(void);

/* copy logo and monitor data from flash to ddr, only rom version used. */
void Hv_Comm_CopyLogoData(void);

/* return address */
UINT32  Hv_Board_Memory_FRCStart(void);

/* return bytes */
UINT32 Hv_Board_Memory_RemainSizeForFRC(void);

/* return xxMbit/s */
UINT32 Hv_Board_Memory_RemainBandForFRC(UINT32 PanelFreq);

VOID Hv_Comm_SetHotfixRegister(UCHAR8 ucMain, UCHAR8 ucSub);
