/*----------------------------------------------------------------------------*
 * No Warranty                                                                *
 * Except as may be otherwise agreed to in writing, no warranties of any      *
 * kind, whether express or implied, are given by MTK with respect to any MTK *
 * Deliverables or any use thereof, and MTK Deliverables are provided on an   *
 * "AS IS" basis.  MTK hereby expressly disclaims all such warranties,        *
 * including any implied warranties of merchantability, non-infringement and  *
 * fitness for a particular purpose and any warranties arising out of course  *
 * of performance, course of dealing or usage of trade.  Parties further      *
 * acknowledge that Company may, either presently and/or in the future,       *
 * instruct MTK to assist it in the development and the implementation, in    *
 * accordance with Company's designs, of certain softwares relating to        *
 * Company's product(s) (the "Services").  Except as may be otherwise agreed  *
 * to in writing, no warranties of any kind, whether express or implied, are  *
 * given by MTK with respect to the Services provided, and the Services are   *
 * provided on an "AS IS" basis.  Company further acknowledges that the       *
 * Services may contain errors, that testing is important and Company is      *
 * solely responsible for fully testing the Services and/or derivatives       *
 * thereof before they are used, sublicensed or distributed.  Should there be *
 * any third party action brought against MTK, arising out of or relating to  *
 * the Services, Company agree to fully indemnify and hold MTK harmless.      *
 * If the parties mutually agree to enter into or continue a business         *
 * relationship or other arrangement, the terms and conditions set forth      *
 * hereunder shall remain effective and, unless explicitly stated otherwise,  *
 * shall prevail in the event of a conflict in the terms in any agreements    *
 * entered into between the parties.                                          *
 *---------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
 * Copyright (c) 2004, MediaTek Inc.
 * All rights reserved.
 *
 * Unauthorized use, practice, perform, copy, distribution, reproduction,
 * or disclosure of this information in whole or in part is prohibited.
 *-----------------------------------------------------------------------------
 * $RCSfile: d_sony_2k12_cust.h,v $
 * $Revision: #28 $
 * $Date: 2016/02/25 $
 * $Author: robin.zhang $
 *
 * Description:
 *---------------------------------------------------------------------------*/

#ifndef _D_SAKURA_CUST_H_
#define _D_SAKURA_CUST_H_

/*-----------------------------------------------------------------------------
                    include files
-----------------------------------------------------------------------------*/
#include "u_common.h"
/*-----------------------------------------------------------------------------
                    macros, defines, typedefs, enums
-----------------------------------------------------------------------------*/
/* TV Source */
#define UART_WAKEUP_SUB_REASON_TV_CH_MIN 0
#define UART_WAKEUP_SUB_REASON_TV_CH_MAX 199

/* AV Source */
#define UART_WAKEUP_SUB_REASON_AV_START  UART_WAKEUP_SUB_REASON_CVBS_1
#define UART_WAKEUP_SUB_REASON_CVBS_1    200
#define UART_WAKEUP_SUB_REASON_CVBS_2    201
#define UART_WAKEUP_SUB_REASON_CVBS_3    202
#define UART_WAKEUP_SUB_REASON_CVBS_4    203
#define UART_WAKEUP_SUB_REASON_HDMI_1    204
#define UART_WAKEUP_SUB_REASON_HDMI_2    205
#define UART_WAKEUP_SUB_REASON_HDMI_3    206
#define UART_WAKEUP_SUB_REASON_HDMI_4    207
#define UART_WAKEUP_SUB_REASON_YPBPR_1   208
#define UART_WAKEUP_SUB_REASON_YPBPR_2   209
#define UART_WAKEUP_SUB_REASON_YPBPR_3   210
#define UART_WAKEUP_SUB_REASON_YPBPR_4   211
#define UART_WAKEUP_SUB_REASON_PC_1      212
#define UART_WAKEUP_SUB_REASON_AV_END    UART_WAKEUP_SUB_REASON_PC_1

/* PCB configuration */
#define DRV_CUSTOM_MODEL_60HZ_PANEL                 (0)
#define DRV_CUSTOM_MODEL_120HZ_PANEL                (1 <<  0)
#define DRV_CUSTOM_MODEL_AUD_NORMAL                 (0 <<  1)
#define DRV_CUSTOM_MODEL_AUD_5_1_CHANEL             (1 <<  1)
#define DRV_CUSTOM_MODEL_FACTORY_WISTRON            (0 <<  2)
#define DRV_CUSTOM_MODEL_FACTORY_SONY               (1 <<  2)
#define DRV_CUSTOM_MODEL_WXGA_PANEL                 (0 <<  3)
#define DRV_CUSTOM_MODEL_FHD_PANEL                  (1 <<  3)
#define DRV_CUSTOM_MODEL_NO_CI						(0 <<  4)
#define DRV_CUSTOM_MODEL_CI							(1 <<  4)

#define DRV_CUSTOM_MODEL_NO_DVD                     (0 <<  5)
#define DRV_CUSTOM_MODEL_WITH_DVD                   (1 <<  5)
#define DRV_CUSTOM_MODEL_AUD_NO_WOOFER              (0 <<  6)
#define DRV_CUSTOM_MODEL_AUD_WOOFER                 (1 <<  6)
#define DRV_CUSTOM_MODEL_SHIPPING_REGION_GA         (0 <<  7)
#define DRV_CUSTOM_MODEL_SHIPPING_REGION_CHINA      (1 <<  7)
#define DRV_CUSTOM_MODEL_NO_TCON_PANEL              (1 <<  8)
#define DRV_CUSTOM_MODEL_WITH_TCON_PANEL            (0 <<  8)
#define DRV_CUSTOM_MODEL_1H			                (0 <<  7)
#define DRV_CUSTOM_MODEL_2H			                (1 <<  7)

#define DRV_CUSTOM_MODEL_NO_RTC                     (0 <<  9)
#define DRV_CUSTOM_MODEL_WITH_RTC                   (1 <<  9)
#define DRV_CUSTOM_MODEL_NO_4K                      (0 << 10)
#define DRV_CUSTOM_MODEL_4K                         (1 << 10)
/* Sakura model only: B2B, C4, DSUB */
#define DRV_CUSTOM_MODEL_NO_B2B                     (0 << 11)
#define DRV_CUSTOM_MODEL_B2B                        (1 << 11)
#define DRV_CUSTOM_MODEL_NO_C4                      (0 << 12)
#define DRV_CUSTOM_MODEL_C4                         (1 << 12)
#define DRV_CUSTOM_MODEL_NO_DSUB                    (0 << 13)
#define DRV_CUSTOM_MODEL_DSUB                       (1 << 13)
/**/
#define DRV_CUSTOM_MODEL_PLF_OPT					(0xFF<<16)

#define DRV_CUSTOM_LOGO_ACTIVE                      (1 << 0)
#define DRV_CUSTOM_LOGO_DISABLE                     (0 << 0)
#define DRV_CUSTOM_LOGO_MUSIC_ACTIVE                (1 << 1)
#define DRV_CUSTOM_LOGO_MUSIC_DISABLE               (0 << 1)

/* Country code */
#define DRV_CUSTOM_COUNTRY_EU                       0
#define DRV_CUSTOM_COUNTRY_ARIB                     1
#define DRV_CUSTOM_COUNTRY_BZ                       2
#define DRV_CUSTOM_COUNTRY_SA                       3
#define DRV_CUSTOM_COUNTRY_PAA                      4
#define DRV_CUSTOM_COUNTRY_PAD                      5
#define DRV_CUSTOM_COUNTRY_TW                       6
#define DRV_CUSTOM_COUNTRY_COL                      7
#define DRV_CUSTOM_COUNTRY_US                       8
#define DRV_CUSTOM_COUNTRY_UNKOWN                   0xFFFFFFFF

#define DRV_CUSTOM_COUNTRY_OPTION_EU                0
#define DRV_CUSTOM_COUNTRY_OPTION_ARIB              1
#define DRV_CUSTOM_COUNTRY_OPTION_BZ                2
#define DRV_CUSTOM_COUNTRY_OPTION_SA                3
#define DRV_CUSTOM_COUNTRY_OPTION_PAA               4
#define DRV_CUSTOM_COUNTRY_OPTION_PAD               5
#define DRV_CUSTOM_COUNTRY_OPTION_TW                6
#define DRV_CUSTOM_COUNTRY_OPTION_COL               7
#define DRV_CUSTOM_COUNTRY_OPTION_US                8

#define DRV_CUSTOM_MONITOR_OUT_GPIO                 (24)
#ifndef WAFFLE_PCB_PROTO
#define DRV_CUSTOM_MONITOR_OUT_POLARITY             (1)
#define DRV_CUSTOM_CVBS_IN_POLARITY                 (0)
#else
#define DRV_CUSTOM_MONITOR_OUT_POLARITY             (0)
#define DRV_CUSTOM_CVBS_IN_POLARITY                 (1)
#endif

/* follow AP option bit definition */
#define DRV_CUSTOM_MODELID_REGION                   (0x6C7)
#define DRV_CUSTOM_MODELID_DVD                      (0x6CA)

/*Sony WB spec*/
#ifdef __KERNEL__
#define PANEL_BINT_PIN GPIO(54)
#endif

/*
UART_SELECTION	
0: CLI command
1: SONY Factory command
2: Hotel - SONY Standard (Reserved)
3: Hotel - VDA (Reserved)
4. Hotel - Locatel (Reserved)
5: No CLI command and log
*/
#define CUSTOM_UART_SELECTION_ADDR				0x06C8
#define UART_SELECTION_NORMAL					0
#define UART_SELECTION_SONY_FACTORY				1
#define UART_SELECTION_HOTEL_SONY_STANDARD		2
#define UART_SELECTION_HOTEL_SONY_VDA			3
#define UART_SELECTION_HOTEL_SONY_LOCATEL		4
#define UART_SELECTION_SILENT					5
#define UART_SELECTION_USB_LOG					6
#define UART_SELECTION_USB_FACTORY				7

#define UART_SELECTION_TTY_USB_LOG					8
#define UART_SELECTION_TTY_USB_FACTORY				9

/* follow MVI definition */
#define DRV_CUSTOM_EEP_OFFSET_MVI_PLATFORM_SERIES   (0x10000)
#define DRV_CUSTOM_EEP_OFFSET_MVI_B2B               (0x10081)
#define DRV_CUSTOM_EEP_OFFSET_MVI_C4                (0x10082)
#define DRV_CUSTOM_EEP_OFFSET_MVI_DSUB              (0x10083)
#define DRV_CUSTOM_EEP_OFFSET_MVI_CI                (0x10086)
#define DRV_CUSTOM_EEP_OFFSET_TERMINAL_VARIATION    (0x1008A)
#define DRV_CUSTOM_EEP_OFFSET_MVI_Destination       (0x10200)
#define DRV_CUSTOM_EEP_OFFSET_MVI_B_BOARD_TYPE      (0x10210)

/* MVI:Destination */
#define DRV_CUSTOM_MVI_DESTINATION_HK               (0x08)

/* The information of DRV_CUSTOM_EEP_OFFSET_MVI_SERIES */
#define CUSTOM_PLATFORM_SERIES_TYPE_INVALID                 (0x00)
#define CUSTOM_PLATFORM_SERIES_TYPE_FY15                    (0x01)
#define CUSTOM_PLATFORM_SERIES_TYPE_FY16                    (0x02)
#define CUSTOM_PLATFORM_SERIES_TYPE_FY17                    (0x03)

/* The information of DRV_CUSTOM_EEP_OFFSET_MVI_B_BOARD_TYPE */
#define CUSTOM_B_BOARD_TYPE_FY15_2K_BME              (0x00)     
#define CUSTOM_B_BOARD_TYPE_FY15_2K_BMX              (0x01)
#define CUSTOM_B_BOARD_TYPE_FY15_4K_BMFL             (0x02)
#define CUSTOM_B_BOARD_TYPE_FY15_4K_BMFW             (0x03)
#define CUSTOM_B_BOARD_TYPE_FY16_BMFW2               (0x04)
#define CUSTOM_B_BOARD_TYPE_FY16_BM1                 (0x05)
#define CUSTOM_B_BOARD_TYPE_FY16_Reserved_for_M1     (0x06)
#define CUSTOM_B_BOARD_TYPE_FY16_Reserved_for_M1_1   (0x07)
#define CUSTOM_B_BOARD_TYPE_FY16_4K_BM2              (0x08)
#define CUSTOM_B_BOARD_TYPE_FY16_4K_BMA              (0x09)
#define CUSTOM_B_BOARD_TYPE_FY16_4K_BFM              (0x0A)
#define CUSTOM_B_BOARD_TYPE_FY17_4K_NO1              (0x0B)
#define CUSTOM_B_BOARD_TYPE_FY17_4K_NO2              (0x0C)
#define CUSTOM_B_BOARD_TYPE_FY17_4K_NO3              (0x0D) // 4KL(PA) Same BR with FY16

typedef struct DRV_CUSTOM_LIGHT_SENSOR_TYPE_T
{
	UINT8 u1CHannelID;
	UINT16 u2ClkDiv;
	UINT8 u1DevAddr;
	UINT8 u1WordAddrNum;
	UINT32 u4WordAddr;
	UINT8 *pu1Buf;
	UINT16 u2ByteCnt;
}   DRV_CUSTOM_LIGHT_SENSOR_TYPE_T;
typedef struct _DRV_CUSTOM_IRRX_TYPE_T
{
    UINT16 ui1_channel;
    UINT32 ui4_irrx_read;
}   DRV_CUSTOM_IRRX_TYPE_T;

typedef struct _DRV_CUSTOM_GAMMA_WB_TYPE_T
{
    BOOL ui1_gamma_onoff;                   
}   DRV_CUSTOM_GAMMA_WB_TYPE_T;
typedef struct _DRV_CUSTOM_HDMI_5V_TYPE_T
{
    UINT8 ui1_hdmi_comp_id;                   /* port*/
    UINT8 ui1_5V_status;
}   DRV_CUSTOM_HDMI_5V_TYPE_T;
typedef struct _DRV_CUSTOM_GPIO_INPUT_TYPE_T
{
    UINT8 ui1_gpio_input_id;                   /* port*/
    UINT8 ui1_gpio_input_status;
}   DRV_CUSTOM_GPIO_INPUT_TYPE_T;
typedef struct _DRV_CUSTOM_GPIO_OUTPUT_TYPE_T
{
    INT32 ui1_gpio_output_id;                   /* port*/
    INT32* ui1_gpio_output_status;
}   DRV_CUSTOM_GPIO_OUTPUT_TYPE_T;

typedef struct _DRV_CUSTOM_GAMMA_REFRESH_T
{
	UINT8  ui1_OnOff;	/*Input*/
}   DRV_CUSTOM_GAMMA_REFRESH_T;
typedef struct _DRV_CUSTOM_ADC_RGB_GAIN_OFFSET__T
{
	UINT16  ui1_r_gain;		/*Input*/
	UINT16  ui1_g_gain;	/*Input*/
	UINT16  ui1_b_gain;	/*Input*/
	UINT16  ui1_r_offset;	/*Input*/
	UINT16  ui1_g_offset;	/*Input*/
	UINT16  ui1_b_offset;	/*Input*/
}   _DRV_CUSTOM_ADC_RGB_GAIN_OFFSET__T;

/*typedef enum
{
    MD_QPSK = 0,
	MD_16QAM,
	MD_64QAM,
	MD_256QAM,
	MD_QPSK_R,
	MD_16QAM_R,
	MD_64QAM_R,
	MD_256QAM_R,
	MD_UNKNOWN
} DRV_CUSTOM_CUST_T2_MODULATION_MODE_TYPE_T;*/

typedef enum
{
    DRV_CFFT_1K_N = 0,
	DRV_CFFT_1K_E,
	DRV_CFFT_2K_N,
	DRV_CFFT_2K_E,
	DRV_CFFT_4K_N,
	DRV_CFFT_4K_E,
	DRV_CFFT_8K_N,
	DRV_CFFT_8K_E,
	DRV_CFFT_16K_N,
	DRV_CFFT_16K_E,
	DRV_CFFT_32K_N,
	DRV_CFFT_32K_E,
	DRV_CFFT_XK_UNKNOWN
	
} DRV_CUSTOM_CUST_T2_CARRIER_FFT_MODE_TYPE_T;

/*typedef enum
{
    SISO = 0,
	MISO,
	XIXO_UNKNOWN
	
} DRV_CUSTOM_CUST_T2_TRANSMISSION_MODE_TYPE_T;*/

/*typedef enum
{
    PP1= 0,
	PP2,
	PP3,
	PP4,
	PP5,
	PP6,
	PP7,
	PP8,
	PPX_UNKNOWN
	
} DRV_CUSTOM_CUST_T2_PILOT_PATTERN_MODE_TYPE_T;*/


/*typedef enum
{
    PAPR_NONE= 0,
	PAPR_ACE,
	PAPR_TR,
	PAPR_BOTH,
	PAPR_UNKNOWN
	
} DRV_CUSTOM_CUST_T2_PAPR_MODE_TYPE_T;*/


/*typedef enum
{
    FEF_YES = 0,
	FEF_NO
	
} DRV_CUSTOM_CUST_T2_FEF_MODE_TYPE_T;*/

/*typedef enum
{
    LDPC_SHORT = 0,
	LDPC_NORMAL,
	LDPC_UNKNOWN
	
} DRV_CUSTOM_CUST_T2_FEC_MODE_TYPE_T;*/

/*typedef enum
{
    FECH_HEM = 0,
	FECH_NORMAL
	
} DRV_CUSTOM_CUST_T2_FECHEADER_MODE_TYPE_T;*/

/*typedef enum
{
    L1_BPSK = 0,
	L1_QPSK,
	L1_16QAM,
	L1_64QAM,
	L1_UNKNOWN
	
} DRV_CUSTOM_CUST_T2_L1MODULATION_MODE_TYPE_T;*/

typedef struct _DRV_CUSTOM_TUNER_DVB_T2_T
{
	//DRV_CUSTOM_CUST_T2_MODULATION_MODE_TYPE_T  eModulation;
	DRV_CUSTOM_CUST_T2_CARRIER_FFT_MODE_TYPE_T eCarrierFFT;
	//DRV_CUSTOM_CUST_T2_TRANSMISSION_MODE_TYPE_T	eTransmisson;
	//DRV_CUSTOM_CUST_T2_PILOT_PATTERN_MODE_TYPE_T ePilotPattern;
	//DRV_CUSTOM_CUST_T2_PAPR_MODE_TYPE_T ePapr;
	//DRV_CUSTOM_CUST_T2_FEF_MODE_TYPE_T eFef;
	UINT8   ui1_plp_num;      /* the number of PLPs. */	
	UINT8   ui1_CurrPlpId;
	//DRV_CUSTOM_CUST_T2_FEC_MODE_TYPE_T eFecMode;
	//DRV_CUSTOM_CUST_T2_FECHEADER_MODE_TYPE_T eFecHeaderMode;
	//DRV_CUSTOM_CUST_T2_L1MODULATION_MODE_TYPE_T eL1Modulation;

}   DRV_CUSTOM_TUNER_DVB_T2_T;

typedef enum
{
    DRV_CUSTOM_MODEL_OPTION_E = 0,
    DRV_CUSTOM_MODEL_OPTION_E_PLUS,
    DRV_CUSTOM_MODEL_OPTION_L,
    DRV_CUSTOM_MODEL_OPTION_P,
    DRV_CUSTOM_MODEL_OPTION_C,
    DRV_CUSTOM_MODEL_OPTION_F1,
    DRV_CUSTOM_MODEL_OPTION_F1S,
    DRV_CUSTOM_MODEL_OPTION_LAST_VALID_ENTRY,
} DRV_CUSTOM_CUST_MODEL_TYPE_T;

/* need to conform to u_drv_cust.h */
#define DRV_CUSTOM_ARG_NO_REF_OFFSET                      ((UINT32) 0x00010000)    /**<        */
#define DRV_CUSTOM_ARG_USE_REF_OFFSET                     ((UINT32) 0x00020000)    /**<        */
#define DRV_CUSTOM_ARG_END_OFFSET                         ((UINT32) 0x000f0000)    /**<        */

typedef enum
{
    DRV_CUSTOM_CUST_SPEC_TYPE_BEGIN = 0,

    /* Following CUST_SPEC_TYPE needs AP to bring the pointer */
    DRV_CUSTOM_CUST_SPEC_TYPE_USE_REF_OFFSET_START  = DRV_CUSTOM_ARG_USE_REF_OFFSET,

    DRV_CUSTOM_CUST_SPEC_TYPE_DEMO_MODE,
    DRV_CUSTOM_CUST_SPEC_TYPE_PATH,
    DRV_CUSTOM_CUST_SPEC_TYPE_MOTIONFLOW_MODE,
    DRV_CUSTOM_CUST_SPEC_TYPE_4KSCALING_ONOFF,  /* size = sizeof(UINT8) pv_set_info = (UINT8*) */
    DRV_CUSTOM_CUST_SPEC_TYPE_PICTURE_MODE,
    DRV_CUSTOM_CUST_SPEC_TYPE_CINE_MOTION_MODE,
    DRV_CUSTOM_CUST_SPEC_TYPE_GRAPHIC_AREA,
    DRV_CUSTOM_CUST_SPEC_TYPE_DCC,
    DRV_CUSTOM_CUST_SPEC_TYPE_MASK_AREA,
    DRV_CUSTOM_CUST_SPEC_TYPE_INPUT_MODE,
    DRV_CUSTOM_CUST_SPEC_TYPE_MICRO_P_NVM_UPGRADE,
    DRV_CUSTOM_CUST_SPEC_TYPE_GET_4K_TYPE,
    DRV_CUSTOM_CUST_SPEC_TYPE_FACTORY_READ_REGISTER,
    DRV_CUSTOM_CUST_SPEC_TYPE_FACTORY_WRITE_REGISTER,
    DRV_CUSTOM_CUST_SPEC_TYPE_FACTORY_EXC_COMMAND,

    DRV_CUSTOM_CUST_SPEC_TYPE_PCB_MODE,
    DRV_CUSTOM_CUST_SPEC_TYPE_HDMI_NUM,
    DRV_CUSTOM_CUST_SPEC_TYPE_LED_MODE,
    DRV_CUSTOM_CUST_SPEC_TYPE_BRIGHTNESS_PLUS,
    DRV_CUSTOM_CUST_SPEC_TYPE_STANDBY_LED_DISABLE_MODE,
    DRV_CUSTOM_CUST_SPEC_TYPE_SELF_DIAG_MODE,
    DRV_CUSTOM_CUST_SPEC_TYPE_BOOT_COUNT_MODE,
    DRV_CUSTOM_CUST_SPEC_TYPE_CLEAR_COUNTER,
    DRV_CUSTOM_CUST_SPEC_TYPE_CLEAR_STDWNCNT_ERRORLOG,
    DRV_CUSTOM_CUST_SPEC_TYPE_LOADER_UPGRADE_MODE,

    DRV_CUSTOM_CUST_SPEC_TYPE_LOGO_STATE,
    DRV_CUSTOM_CUST_SPEC_TYPE_LOGO_DISPLAY,
    DRV_CUSTOM_CUST_SPEC_GET_TAG_VERSION,
    DRV_CUSTOM_CUST_SPEC_TYPE_BACKLIGHT_STATUS,
	DRV_CUSTOM_CUST_SPEC_TYPE_SYNC_MENU_FLAG,
    #if 1//cox 110829 modify
	DRV_CUSTOM_CUST_SPEC_SET_GAMMA_REFRESH,
	DRV_CUSTOM_CUST_SPEC_GET_DEEPCOLOR,
	DRV_CUSTOM_CUST_SPEC_GET_ADC_RGB_GAIN_OFFSET,
	DRV_CUSTOM_CUST_SPEC_GET_LIGHT_SENSOR_STATS,
	DRV_CUSTOM_CUST_SPEC_GET_IRRX,
	DRV_CUSTOM_CUST_SPEC_SET_WB_GAMMA_ORIGINAL,
	DRV_CUSTOM_CUST_SPEC_TYPE_HDMI_POWER5V_STATUS,
	DRV_CUSTOM_CUST_SPEC_TYPE_GPIO_INPUT_STATUS,
	DRV_CUSTOM_CUST_SPEC_TYPE_GPIO_OUTPUT_STATUS,
	DRV_CUSTOM_CUST_SPEC_TYPE_GET_HDMI_STATUS,
	DRV_CUSTOM_SPEC_TYPE_DBC_DEBUG,
	DRV_CUSTOM_SPEC_TYPE_YAPL,
        DRV_CUSTOM_SPEC_TYPE_MHL_OCP_STATUS,	/*20121114 Cox*/
        DRV_CUSTOM_SPEC_TYPE_MHL_HDMI_STATUS,
    DRV_CUSTOM_SPEC_TYPE_GET_MHL_CABLE_DETECT,
    DRV_CUSTOM_SPEC_TYPE_GET_MHL_CBUS_STATUS,
    DRV_CUSTOM_SPEC_TYPE_GET_MHL_CBUS_STATUS_BOSTON,
    DRV_CUSTOM_SPEC_TYPE_GET_HDMI_RECEIVER_BOSTON,
    DRV_CUSTOM_SPEC_TYPE_GET_HDMI_BKSV_BOSTON,
    DRV_CUSTOM_SPEC_TYPE_GET_FIRMWARE_VERSION_BOSTON,
    DRV_CUSTOM_SPEC_TYPE_GET_HDMI_5V_STATUS_BOSTON, // Zarinah add 03 OCt 2014 - Get Hdmi 5V status Boston
    DRV_CUSTOM_SPEC_TYPE_GET_HDMI_HDCP,
    DRV_CUSTOM_SPEC_TYPE_GET_MHL_OCP,
	DRV_CUSTOM_CUST_SPEC_FB_STATUS,    //FactorySW Inspection
	DRV_CUSTOM_CUST_SPEC_PIN8_STATUS,  //FactorySW Inspection
	#endif
	DRV_CUSTOM_CUST_SPEC_TYPE_HOTEL_UART_PINMUX_EN,		/* Weijia: set PAD_TCON7, PAD_TCON8 for Hotel UART dev/ttyMT4 */
    DRV_CUSTOM_CUST_SPEC_TYPE_HDMI_EDID,
    DRV_CUSTOM_CUST_SPEC_TYPE_HDMI_HDCP,  //jiewen.hdcp
    DRV_CUSTOM_CUST_SPEC_TYPE_HDCP_ENABLE,
    DRV_CUSTOM_CUST_SPEC_TYPE_GET_MHL_STATUS,

    DRV_CUSTOM_CUST_SPEC_TYPE_MONITOR_OUT,
    DRV_CUSTOM_CUST_SPEC_TYPE_STARTUP_SOUND_STATUS,         /* Allen Kao: wait for start-up sound playback over */
    DRV_CUSTOM_CUST_SPEC_GET_DIMMING_FREQ_48,
    DRV_CUSTOM_CUST_SPEC_GET_DIMMING_FREQ_50,
    DRV_CUSTOM_CUST_SPEC_GET_DIMMING_FREQ_60,

    DRV_CUSTOM_CUST_SPEC_TYPE_SS_PERMILLAGE,
    DRV_CUSTOM_CUST_SPEC_TYPE_TUNER_CIS,
    DRV_CUSTOM_CUST_SPEC_TYPE_PCB_TYPE,

    /*Customer specific command start*/
    DRV_CUSTOM_CUST_SPEC_TYPE_MMP_MODE,                     /* Ramesh: Set USB Photo/Music/Video/None */
    DRV_CUSTOM_CUST_SPEC_TYPE_MMP_OSD_STATE,                /* Ramesh: Set MMP OSD State */
    DRV_CUSTOM_CUST_SPEC_TYPE_MMP_PHOTO_FRAME_MODE,			/* set photo frame mode state*/
    DRV_CUSTOM_CUST_SPEC_TYPE_OSD_TYPE,                     /* Ramesh: Set Full Screen OSD YES/NO */
//#ifdef THIRD_PARTY_LIB_EMCS_ATV_ONLY   /* Not Used in ATSC Project */  
    DRV_CUSTOM_CUST_SPEC_TYPE_FM_RADIO_STATE,               /* Ramesh: Set FM Radio ON/OFF */
//#endif
    DRV_CUSTOM_CUST_SPEC_TYPE_AUTOMAN_SCAN_STATE,           /* Ramesh: Set auto tuning status */
#ifdef THIRD_PARTY_LIB_EMCS_ATV_ONLY   /* Not Used in ATSC Project */
    DRV_CUSTOM_CUST_SPEC_TYPE_TELETEXT_MODE,                /* Ramesh: Set Teletext ON/OFF */
#endif
    DRV_CUSTOM_CUST_SPEC_TYPE_SCENE_SELECT_MODE,            /* Ramesh: Set scene select mode */
    DRV_CUSTOM_CUST_SPEC_TYPE_MOTIONFLOW_PATTERN,           /* SY: Generate Motion Flow Status */
/* Start: Hotel Clock */
    DRV_CUSTOM_CUST_SPEC_TYPE_HTL_CLK_TIME,                 /* Liew: Set/Get time into Hotel Clock */
    DRV_CUSTOM_CUST_SPEC_TYPE_HTL_CLK_CFG,                  /* Liew: Configure Hotel Clock */
    DRV_CUSTOM_CUST_SPEC_TYPE_HTL_CLK_MODE,                 /* Liew: Query Hotel Clock module's mode */
    DRV_CUSTOM_CUST_SPEC_TYPE_HTL_CLK_VERSION,              /* Liew: Query Hotel Clock module's SW version */
/* End: Hotel Clock */
    DRV_CUSTOM_CUST_SPEC_TYPE_TOUCH_SENSOR_READ,            /*Added 5 March 2012 Touch Sensor*/
    DRV_CUSTOM_CUST_SPEC_GET_SONY_LIB_VERSION,              /* SY: Read Sony Library Version */
    DRV_CUSTOM_CUST_SPEC_GET_TEMP_SENSOR_VALUE,             /* SY: Read Temp Sensor Temperature Value */
    DRV_CUSTOM_CUST_SPEC_SET_INTERNAL_SIG_PTN,				      /* Marina: Internal Signal Pattern ( 31 July 2009)*/
#ifdef THIRD_PARTY_LIB_EMCS_ATV_ONLY   /* Not Used in ATSC Project */ 
    DRV_CUSTOM_CUST_SPEC_GET_SIGNAL_LEVEL,					        /* Azlan : Get signal level value (03/08/2009) */
#endif
    /*Tsen - ADC*/
    DRV_CUSTOM_CUST_SPEC_GET_A_GAIN,                        /* Tsen : AD Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_GET_D_GAIN,                        /* Tsen : AD Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_GET_R_OFFSET,                      /* Tsen : AD Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_GET_G_OFFSET,                      /* Tsen : AD Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_GET_B_OFFSET,                      /* Tsen : AD Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_GET_R_GAIN,                        /* Tsen : AD Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_GET_G_GAIN,                        /* Tsen : AD Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_GET_B_GAIN,                        /* Tsen : AD Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_GET_CVBS_TARGET,                   /* Tsen : AD Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_GET_COMP_CHANNEL1_TARGET,          /* Tsen : AD Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_GET_COMP_CHANNEL2_TARGET,          /* Tsen : AD Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_GET_COMP_CHANNEL3_TARGET,          /* Tsen : AD Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_GET_EFUSE_GAIN,                    /* Tsen : AD Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_YPBPR_VGA_MAX_LVL,                 /* Tsen : AD Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_YPBPR_VGA_BLANK_LVL,               /* Tsen : AD Adjustment for Sony factory */
    /*Tsen - ADC*/
#ifdef THIRD_PARTY_LIB_EMCS_ATV_ONLY   /* Not Used in ATSC Project */ 
    /* Ooi Start - IP TH */
    DRV_CUSTOM_CUST_SPEC_SET_IP_NOISE_TH,                   /* Ooi : IP Noise threshold to NVM  */
    DRV_CUSTOM_CUST_SPEC_GET_IP_NOISE_TH,                   /* Ooi : IP Noise threshold from NVM  */
    /* Ooi END */
#endif
    /* Ooi Start - SCREEN (11/8/09) */
    DRV_CUSTOM_CUST_SPEC_SET_SOURCE_MAIN,                   /* Ooi : Screen test for Sony factory */
    DRV_CUSTOM_CUST_SPEC_GET_SOURCE_MAIN,                   /* Ooi : Screen test for Sony factory */
    DRV_CUSTOM_CUST_SPEC_SET_SOURCE_SUB,                    /* Ooi : Screen test for Sony factory */
    DRV_CUSTOM_CUST_SPEC_GET_SOURCE_SUB,                    /* Ooi : Screen test for Sony factory */
    DRV_CUSTOM_CUST_SPEC_SET_OVERSCAN_MAIN,                 /* Ooi : Screen test for Sony factory */
    DRV_CUSTOM_CUST_SPEC_GET_OVERSCAN_MAIN,                 /* Ooi : Screen test for Sony factory */
    DRV_CUSTOM_CUST_SPEC_SET_OVERSCAN_SUB,                  /* Ooi : Screen test for Sony factory */
    DRV_CUSTOM_CUST_SPEC_GET_OVERSCAN_SUB,                  /* Ooi : Screen test for Sony factory */
    DRV_CUSTOM_CUST_SPEC_SET_DISPLAY_MAIN,                  /* Ooi : Screen test for Sony factory */
    DRV_CUSTOM_CUST_SPEC_GET_DISPLAY_MAIN,                  /* Ooi : Screen test for Sony factory */
    DRV_CUSTOM_CUST_SPEC_SET_DISPLAY_SUB,                   /* Ooi : Screen test for Sony factory */
    DRV_CUSTOM_CUST_SPEC_GET_DISPLAY_SUB,                   /* Ooi : Screen test for Sony factory */
    DRV_CUSTOM_CUST_SPEC_SET_NONLINEAR_PARAM,               /* Ooi : Screen test for Sony factory */
    DRV_CUSTOM_CUST_SPEC_GET_NONLINEAR_SLOPE,               /* Ooi : Screen test for Sony factory */
    DRV_CUSTOM_CUST_SPEC_GET_NONLINEAR_ENDFACTOR,           /* Ooi : Screen test for Sony factory */
    /* Ooi END */

#ifdef THIRD_PARTY_LIB_EMCS_ATV_ONLY   /* Not Used in ATSC Project */ 
    DRV_CUSTOM_CUST_SPEC_GET_TUNER_REG,                     /* Chow : Get tuner register for factory application */
    DRV_CUSTOM_CUST_SPEC_SET_TUNER_AGC,                     /* Chow : Tuner registers to NVM */
    DRV_CUSTOM_CUST_SPEC_SET_CIS_AGC,                       /* Chow : Tuner registers to CIS case */
    DRV_CUSTOM_CUST_SPEC_SET_INT_PIC_SIG_BSTR,              /* Chow : Intelligent Booster and Signal Booster relation */
#endif    
    DRV_CUSTOM_CUST_SPEC_GET_DRV_SREG,                      /* Ramesh : Get value Factory app from Sony driver */
    DRV_CUSTOM_CUST_SPEC_SET_DRV_SREG,                      /* Ramesh : Set value Factory app to Sony driver */

    /*>>> START Cheah: Sony GammaWB callback func 07Sep09 */
    DRV_CUSTOM_CUST_SPEC_SET_GAMMA_SETUP,                   /* Cheah : Gamma Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_GET_GAMMA_SETUP,
    DRV_CUSTOM_CUST_SPEC_SET_GAMMA_SAVE,                    /* Cheah : Gamma Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_SET_GAMMA_QUIT,                    /* Cheah : Gamma Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_SET_GAMMA_EXIT,                    /* Cheah : Gamma Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_SET_GAMMA_RESET,                   /* Cheah : Gamma Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_SET_GAMMA_SAMPLE,                  /* Cheah : Gamma Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_SET_WB_SETUP,                      /* Cheah : Gamma Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_SET_WB_SAVE,                       /* Cheah : Gamma Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_SET_WB_QUIT,                       /* Cheah : Gamma Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_SET_WB_EXIT,                       /* Cheah : Gamma Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_SET_WB_RESET,                      /* Cheah : Gamma Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_SET_WB_SETLVL,                     /* Cheah : Gamma Adjustment for Sony factory */
    DRV_CUSTOM_CUST_SPEC_SET_WB_SETCLR,                     /* Cheah : Gamma Adjustment for Sony factory */
    /*<<< END Cheah: Sony GammaWB callback func 07Sep09 */
    
#ifndef THIRD_PARTY_LIB_EMCS_ATV_ONLY   /* For IRIS only */
    DRV_CUSTOM_CUST_SPEC_GET_DYN_GAMMA_EN,                  /* Cheah : IRIS Dynamic Gamma control */
	DRV_CUSTOM_CUST_SPEC_SET_DYN_GAMMA_EN,					/* Cheah : IRIS Dynamic Gamma control */
#endif

    DRV_CUSTOM_CUST_SPEC_SET_GAMMA_PAT_GEN,                   /* Lim : Set test pattern for Sony factory */
    DRV_CUSTOM_CUST_SPEC_GET_COLOR_LEVEL,                     /* Marina : Get RGB level at a specific point */


    DRV_CUSTOM_CUST_SPEC_GET_PANEL_INCH_SIZE,                /* YiFen 021009 Read Panel Size for product information*/

    DRV_CUSTOM_CUST_SPEC_SET_AUDIO_INTERDAC_MUTE,            /* Gallen : For Ibiza internal dac mute control  */

    /* Hotel IR Pass Through */
    DRV_CUSTOM_CUST_SPEC_SET_HTL_IR_PASS_THROUGH,           /* Set IR Pass Through of hotel mode */

/* Aizul Start: Hotel Volume */    
    DRV_CUSTOM_CUST_SPEC_TYPE_HTL_VOL_MODE,                 /* Aizul: Set/Query Hotel Volume module's mode */
    DRV_CUSTOM_CUST_SPEC_TYPE_HTL_VOL_INITVOL,              /* Aizul: Set/Query Hotel Volume initial volume */
    DRV_CUSTOM_CUST_SPEC_TYPE_HTL_VOL_STEPTIMER,            /* Aizul: Set/Query Hotel Volume step timer */
    DRV_CUSTOM_CUST_SPEC_TYPE_HTL_VOL_VOLLVL,               /* Aizul: Set/Query Hotel Volume volume level */       
/* Aizul End: Hotel Volume */
    DRV_CUSTOM_CUST_SPEC_SET_RGB_GAISOU,        /* Ramesh: Set RGB sensor gaisou for SONY factory and service menu */
    DRV_CUSTOM_CUST_SPEC_GET_RGB_GAISOU,        /* Ramesh: Set RGB sensor gaisou for SONY factory and service menu */
    DRV_CUSTOM_CUST_SPEC_TYPE_DEMO_MODE_USB_VIDEO_MODE,     /* Ramesh: Set for USB demo mode video */

/* Aizul Start: Hotel SI */    
    DRV_CUSTOM_CUST_SPEC_TYPE_HTLSI_ONLINEMODE,                 /* Aizul: Set/Query Hotel SI module's online mode */
/* Aizul End: Hotel SI */    
    DRV_CUSTOM_CUST_SPEC_TYPE_DITHER, /* Hew: Dither on/off 29Oct2009*/

    DRV_CUSTOM_CUST_SPEC_RESET_IRIS_MUTE_PIN,   /*Lim 9nov09: Control IRIS mute pin*/

    DRV_CUSTOM_CUST_SPEC_TYPE_APP_COUNTRY,
    DRV_CUSTOM_CUST_SPEC_TYPE_OSD_STATUS_CHANGE,

    /* VGA wakeup on BGM mode*/
    DRV_CUSTOM_CUST_SPEC_TYPE_VGA_DETECT_WAKEUP,
    DRV_CUSTOM_CUST_SPEC_TYPE_VGA_STATUS,

    DRV_CUSTOM_CUST_SPEC_TYPE_PANEL_ID,

    /* Model ID from AP eeprom */
    DRV_CUSTOM_CUST_SPEC_TYPE_DVD_ENABLE,
    DRV_CUSTOM_CUST_SPEC_TYPE_PCB_REGION,

    /* Signal Diagnostics Status */
    DRV_CUSTOM_CUST_SPEC_TYPE_ATV_STATUS, /*[LINUX] FIXED! NOT IMPLEMENTED YET!*/
	DRV_CUSTOM_CUST_SPEC_TYPE_WB_PBM_PQP_PGRAM_LUT_SET,
	DRV_CUSTOM_CUST_SPEC_TYPE_WB_PBM_PQP_PGRAM_LUT_GET_PRESET,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_PBM_PQP_PGRAM_LUT_GET_BY_ELEMENT,

    DRV_CUSTOM_CUST_SPEC_TYPE_WB_WBT_IDX,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_ADJ_METHOD,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_EASY_SET_LVL,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_EASY_SET_EN,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_Y_SUM_POS,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_Y_SUM_MEAS,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_PIXEL_POS,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_PIXEL_MEAS_Y,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_PIXEL_MEAS_CB,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_PIXEL_MEAS_CR,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_ON,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_WBT_IDX_CHANGE_STS,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_INP_EASY_SET_R,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_INP_EASY_SET_G,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_INP_EASY_SET_B,

    /* Do not insert any item among xxx_WB_LUT_xxx - Start */
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R00,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R01,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R02,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R03,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R04,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R05,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R06,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R07,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R08,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R09,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R10,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R11,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R12,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R13,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R14,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R15,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R16,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R17,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R18,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R19,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R20,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R21,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R22,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R23,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R24,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R25,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R26,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R27,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R28,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R29,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R30,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R31,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R32,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R33,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R34,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R35,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R36,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R37,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R38,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R39,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R40,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R41,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R42,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R43,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R44,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R45,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R46,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R47,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R48,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R49,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R50,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R51,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R52,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R53,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R54,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R55,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_R56,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G00,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G01,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G02,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G03,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G04,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G05,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G06,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G07,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G08,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G09,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G10,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G11,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G12,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G13,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G14,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G15,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G16,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G17,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G18,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G19,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G20,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G21,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G22,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G23,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G24,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G25,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G26,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G27,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G28,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G29,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G30,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G31,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G32,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G33,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G34,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G35,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G36,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G37,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G38,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G39,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G40,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G41,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G42,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G43,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G44,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G45,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G46,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G47,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G48,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G49,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G50,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G51,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G52,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G53,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G54,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G55,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_G56,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B00,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B01,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B02,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B03,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B04,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B05,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B06,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B07,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B08,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B09,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B10,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B11,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B12,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B13,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B14,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B15,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B16,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B17,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B18,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B19,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B20,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B21,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B22,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B23,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B24,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B25,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B26,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B27,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B28,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B29,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B30,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B31,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B32,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B33,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B34,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B35,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B36,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B37,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B38,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B39,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B40,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B41,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B42,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B43,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B44,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B45,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B46,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B47,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B48,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B49,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B50,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B51,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B52,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B53,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B54,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B55,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_LUT_ADJ_B56,
    /* Do not insert any item among xxx_WB_LUT_xxx - End */

    DRV_CUSTOM_CUST_SPEC_TYPE_AGING_LAST_POWER_CONTROL,
    DRV_CUSTOM_CUST_SPEC_TYPE_DMPLL_SPECTRUM_PERMILLAGE,
    DRV_CUSTOM_CUST_SPEC_TYPE_TUNER_LNA,
    DRV_CUSTOM_CUST_SPEC_TYPE_TUNER_DVB_T2_STATUS,
    DRV_CUSTOM_CUST_SPEC_TYPE_TUNE_STOP_MONITOR_ANA,
    DRV_CUSTOM_CUST_SPEC_TYPE_FREE_ALL_DMX_PID,
    DRV_CUSTOM_CUST_SPEC_TYPE_TUNE_STOP_MONITOR_DIG,
    DRV_CUSTOM_CUST_SPEC_TYPE_TUNE_DMX_CONNECT,
    DRV_CUSTOM_CUST_SPEC_TYPE_TUNE_DMX_DISCONNECT,
    DRV_CUSTOM_CUST_SPEC_TYPE_TUNE_SET_PID,
    DRV_CUSTOM_CUST_SPEC_TYPE_TUNE_ANALOG,
    DRV_CUSTOM_CUST_SPEC_TYPE_TUNE_ATSC,
    DRV_CUSTOM_CUST_SPEC_TYPE_TUNE_DTMB,
    DRV_CUSTOM_CUST_SPEC_TYPE_TUNE_DVBS,
    DRV_CUSTOM_CUST_SPEC_TYPE_TUNE_DVBT,
    DRV_CUSTOM_CUST_SPEC_TYPE_TUNE_ISDBT,
    DRV_CUSTOM_CUST_SPEC_TYPE_TUNE_DVBC,
    DRV_CUSTOM_CUST_SPEC_TYPE_TUNE_SET_TUNER_PATH,
    DRV_CUSTOM_CUST_SPEC_TYPE_DISPLAY_AUDIO_JP,
	DRV_CUSTOM_CUST_SPEC_TYPE_DISPLAY_VIDEO_JP,
    DRV_CUSTOM_VID_TYPE_LED_MOTION,
    DRV_CUSTOM_CUST_SPEC_TYPE_LED_BLINK_CONTROL,
    DRV_CUSTOM_CUST_SPEC_TYPE_TEST_PTN_RAMP,
    DRV_CUSTOM_CUST_SPEC_TYPE_MOVE_OS_OPTION_POS,
    DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_PTN_PRESET_BEFORE_GET_LVL,
    DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_PTN_SET_LVL,
    DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_SET_SELECT_LVL,
    DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_PTN_GET_LVL,
    DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_GET_SELECT_LVL,
    DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_SETUP_STATUS_GET,
    DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_PTN_REFRESH,
    DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_VID_PRESET,
    DRV_CUSTOM_CUST_SPEC_TYPE_WBS_TO_NVM_PRESET,
    DRV_CUSTOM_CUST_SPEC_TYPE_WBS_TO_NVM_SET,
    DRV_CUSTOM_CUST_SPEC_TYPE_WBS_TO_NVM_GET,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_CLRIDX_GET,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_WBLVL_GET,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_SETUP_STATUS_GET,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAIN_GET,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_CLR_TEMP_IDX_SET,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_CLR_TEMP_IDX_GET,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_ACFG_UPDATE_SET,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_ACFG_UPDATE_GET,    
	DRV_CUSTOM_CUST_SPEC_TYPE_WB_UPDATE_PARM_GET,
	DRV_CUSTOM_CUST_SPEC_TYPE_WB_UPDATE_ADJ_CLR_IDX_GET,

    /* Do not insert any item among xxx_GAMMA_xxx - Start */
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_R00,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_R01,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_R02,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_R03,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_R04,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_R05,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_R06,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_R07,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_R08,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_R09,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_R10,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_G00,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_G01,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_G02,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_G03,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_G04,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_G05,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_G06,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_G07,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_G08,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_G09,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_G10,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_B00,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_B01,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_B02,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_B03,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_B04,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_B05,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_B06,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_B07,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_B08,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_B09,
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_B10,
	#if 1	//wwj_modify_for_input_performance step 1 ignore unnecessary pic mode update
	DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_UPDATE_ALL,
	#endif	
    /* Do not insert any item among xxx_GAMMA_xxx - End */

    /* Do not insert any item among xxx_WB_xxx - Start */
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_R_00,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_R_01,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_R_02,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_R_03,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_R_04,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_R_05,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_R_06,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_R_07,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_R_08,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_R_09,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_R_10,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_G_00,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_G_01,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_G_02,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_G_03,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_G_04,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_G_05,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_G_06,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_G_07,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_G_08,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_G_09,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_G_10,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_B_00,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_B_01,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_B_02,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_B_03,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_B_04,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_B_05,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_B_06,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_B_07,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_B_08,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_B_09,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM0_B_10,

    DRV_CUSTOM_CUST_SPEC_TYPE_INP_LVL_WB_00,
    DRV_CUSTOM_CUST_SPEC_TYPE_INP_LVL_WB_01,
    DRV_CUSTOM_CUST_SPEC_TYPE_INP_LVL_WB_02,
    DRV_CUSTOM_CUST_SPEC_TYPE_INP_LVL_WB_03,
    DRV_CUSTOM_CUST_SPEC_TYPE_INP_LVL_WB_04,
    DRV_CUSTOM_CUST_SPEC_TYPE_INP_LVL_WB_05,
    DRV_CUSTOM_CUST_SPEC_TYPE_INP_LVL_WB_06,
    DRV_CUSTOM_CUST_SPEC_TYPE_INP_LVL_WB_07,
    DRV_CUSTOM_CUST_SPEC_TYPE_INP_LVL_WB_08,
    DRV_CUSTOM_CUST_SPEC_TYPE_INP_LVL_WB_09,
    DRV_CUSTOM_CUST_SPEC_TYPE_INP_LVL_WB_10,

    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM_GAIN_00,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM_GAIN_01,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM_GAIN_02,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM_GAIN_03,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM_GAIN_04,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM_GAIN_05,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM_GAIN_06,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM_GAIN_07,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM_GAIN_08,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM_GAIN_09,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM_GAIN_10,

    DRV_CUSTOM_CUST_SPEC_TYPE_WB_GAM_SEL,

    DRV_CUSTOM_CUST_SPEC_TYPE_WB_BASE_GAIN_R,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_BASE_GAIN_G,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_BASE_GAIN_B,

    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_R00,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_R01,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_R02,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_R03,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_R04,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_R05,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_R06,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_R07,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_R08,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_R09,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_R10,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_G00,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_G01,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_G02,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_G03,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_G04,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_G05,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_G06,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_G07,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_G08,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_G09,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_G10,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_B00,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_B01,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_B02,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_B03,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_B04,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_B05,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_B06,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_B07,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_B08,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_B09,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_OFST_B10,
    /* Do not insert any item among xxx_WB_xxx - End */

    DRV_CUSTOM_CUST_SPEC_TYPE_EEP_WB_GAM0_RGB,
	DRV_CUSTOM_CUST_SPEC_TYPE_EEP_INP_LVL_WB,
	DRV_CUSTOM_CUST_SPEC_TYPE_EEP_WB_GAM_GAIN,
	DRV_CUSTOM_CUST_SPEC_TYPE_EEP_WB_BASE_GAIN_RGB,
	DRV_CUSTOM_CUST_SPEC_TYPE_EEP_WB_OFST_RGB,

	DRV_CUSTOM_CUST_SPEC_TYPE_WBADJ_GODID,
	DRV_CUSTOM_CUST_SPEC_TYPE_WBADJ_PON_TIME,
    DRV_CUSTOM_CUST_SPEC_TYPE_WBADJ_JIG_VER,
    DRV_CUSTOM_CUST_SPEC_TYPE_WBADJ_DS_DATE,
    DRV_CUSTOM_CUST_SPEC_TYPE_WBADJ_ADJ_DATE,
    DRV_CUSTOM_CUST_SPEC_TYPE_WBADJ_AGING1,
    DRV_CUSTOM_CUST_SPEC_TYPE_WBADJ_AGING2,
    DRV_CUSTOM_CUST_SPEC_TYPE_WBADJ_JIG_INFO1,
    DRV_CUSTOM_CUST_SPEC_TYPE_WBADJ_JIG_INFO2,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_INFO0,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_INFO1,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_INFO2,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_INFO3,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_INFO4,
    DRV_CUSTMO_CUST_TYPE_MACBETH_PTN,
    DRV_CUSTOM_CUST_TYPE_WB_TEST_PTN,
#if 1 //aging ptn related
    DRV_CUSTOM_CUST_SPEC_TYPE_AGING_PTN,
#endif
#if 1 //BL related
    DRV_CUSTOM_CUST_SPEC_TYPE_BACKLIGHT_CONTROL,
#endif
#if 1 //cox 110811
    DRV_CUSTOM_CUST_SPEC_SET_DYN_GAMMA,					/*Write Gamma*///cox 110810 for write gamma
    DRV_CUSTOM_CUST_SPEC_GET_DYN_GAMMA,					/*Write Gamma*///cox 110810 for write gamma
    DRV_CUSTOM_VID_TYPE_GAMMA_REFRESH,						/*trigger gamma*///cox 110812
    DRV_CUSTOM_VID_TYPE_YAPL,									/*YAPL*///cox 110812
    DRV_CUSTOM_CUST_SPEC_ADC_LIGHT_SENSOR_GAIN,
    DRV_CUSTOM_CUST_SPEC_ADC_LIGHT_SENSOR_OFFSET,
    DRV_CUSTOM_CUST_SPEC_ADC_LIGHT_SENSOR_ADC_VALUE,
#endif

	DRV_CUSTOM_CUST_SPEC_SET_PQ_MODULE_ONOFF,
	DRV_CUSTOM_CUST_SPEC_TYPE_PQ_BU_FLASH,
    DRV_CUSTOM_CUST_SPEC_TYPE_PQ_BU_TRANS,
    DRV_CUSTOM_CUST_SPEC_TYPE_WB_FLAT_PQP,
	
    /*maple be api*/
    DRV_CUSTOM_CUST_SPEC_SET_BEPQ_INP_SRC_INFO_FROM_AP,
    DRV_CUSTOM_CUST_SPEC_GET_BEPQ_INP_SRC_INFO_FROM_AP,
    DRV_CUSTOM_CUST_SPEC_SET_BEPQ_PIC_INFO_FROM_AP,
    DRV_CUSTOM_CUST_SPEC_GET_BEPQ_PIC_INFO_FROM_AP,
    DRV_CUSTOM_CUST_SPEC_SET_BEPQ_SCREEN_INFO_FROM_AP,
    DRV_CUSTOM_CUST_SPEC_GET_BEPQ_SCREEN_INFO_FROM_AP,
    DRV_CUSTOM_CUST_SPEC_SET_BEPQ_3D_INFO_FROM_AP,
    DRV_CUSTOM_CUST_SPEC_GET_BEPQ_3D_INFO_FROM_AP,
    DRV_CUSTOM_CUST_SPEC_SET_BEPQ_ECO_INFO_FROM_AP,
    DRV_CUSTOM_CUST_SPEC_GET_BEPQ_ECO_INFO_FROM_AP,
    DRV_CUSTOM_CUST_SPEC_SET_BEPQ_SERVICE_INFO_FROM_AP,
    DRV_CUSTOM_CUST_SPEC_GET_BEPQ_SERVICE_INFO_FROM_AP,
    DRV_CUSTOM_CUST_SPEC_SET_BESYS_HISTORY_INFO_FROM_AP,
    DRV_CUSTOM_CUST_SPEC_GET_BESYS_HISTORY_INFO_FROM_AP,
    DRV_CUSTOM_CUST_SPEC_SET_BESYS_POWER_STATE_INFO_FROM_AP,
    DRV_CUSTOM_CUST_SPEC_GET_BESYS_POWER_STATE_INFO_FROM_AP,
    /*maple be api*/
    DRV_CUSTOM_CUST_SPEC_TYPE_POP_CVBS_COMP_NOTIFY,  
    DRV_CUSTOM_CUST_SPEC_EPG_FLAG,
	DRV_CUSTOM_CUST_SPEC_DBC_DEBUG,
	DRV_CUSTOM_CUST_SPEC_GAMMA_BUF,
    DRV_CUSTOM_CUST_SPEC_OSD_ON_OFF,
	DRV_CUSTOM_CUST_SPEC_TYPE_ALL_TOUCH_KEY_ENA,
	DRV_CUSTOM_CUST_SPEC_TYPE_TOUCH_SENSOR_RECALIBRATION,
#if 1 /* use in sony interface for sony facotry */
	DRV_CUSTOM_CUST_SPEC_V_COM_DRV,
	DRV_CUSTOM_CUST_SPEC_SCART_DRV,
	DRV_CUSTOM_CUST_SPEC_WB_EDID_WRITE,
	DRV_CUSTOM_CUST_SPEC_MICRO_OPTION_RMVB,
	DRV_CUSTOM_CUST_SPEC_EEP_UPDATE,
	DRV_CUSTOM_CUST_SPEC_WB_EDID_WRITE_STATUS,
#endif
	DRV_CUSTOM_CUST_SPEC_AGING_EEP_UPDATE,
	
    DRV_CUSTOM_CUST_SPEC_BATTERY_MODE,
	DRV_CUSTOM_CUST_SPEC_FORMAT_PARTITION,
#if 1 
    DRV_CUSTOM_CUST_SPEC_DISP_PANEL_ID,             /* Panel ID */
    DRV_CUSTOM_CUST_SPEC_DISP_PANEL_NAME,           /* Panel Name */
    DRV_CUSTOM_CUST_SPEC_DISP_PANEL_BACK_LIGHT_HI,  /* Panel Attribute backlight hi */
    DRV_CUSTOM_CUST_SPEC_DISP_PANEL_BACK_LIGHT_LOW, /* Panel Attribute backlight low */
    DRV_CUSTOM_CUST_SPEC_DISP_PANEL_SELECT,         /* Panel ID Selection */
    DRV_CUSTOM_CUST_SPEC_DISP_PANEL_TOTAL_NUM,      /* Panel Total Number */
    DRV_CUSTOM_CUST_SPEC_DISP_REG_WB_R_GAIN,        /* REG WB R-Gain (Register) */
    DRV_CUSTOM_CUST_SPEC_DISP_REG_WB_G_GAIN,        /* REG WB G-Gain (Register) */
    DRV_CUSTOM_CUST_SPEC_DISP_REG_WB_B_GAIN,        /* REG WB B-Gain (Register) */
    DRV_CUSTOM_CUST_SPEC_DISP_REG_WB_R_OFFSET,      /* REG WB R-Offset (Register) */
    DRV_CUSTOM_CUST_SPEC_DISP_REG_WB_G_OFFSET,      /* REG WB G-Offset (Register) */
    DRV_CUSTOM_CUST_SPEC_DISP_REG_WB_B_OFFSET,      /* REG WB B-Offset (Register) */
    DRV_CUSTOM_CUST_SPEC_DISP_EEP_WB_MAGIC,         /* EEP WB Magic Number (EEPROM) */
    DRV_CUSTOM_CUST_SPEC_DISP_EEP_WB_R_GAIN,        /* EEP WB R-Gain (EEPROM) */
    DRV_CUSTOM_CUST_SPEC_DISP_EEP_WB_G_GAIN,        /* EEP WB G-Gain (EEPROM) */
    DRV_CUSTOM_CUST_SPEC_DISP_EEP_WB_B_GAIN,        /* EEP WB B-Gain (EEPROM) */
    DRV_CUSTOM_CUST_SPEC_DISP_EEP_WB_R_OFFSET,      /* EEP WB R-Offset (EEPROM) */
    DRV_CUSTOM_CUST_SPEC_DISP_EEP_WB_G_OFFSET,      /* EEP WB G-Offset (EEPROM) */
    DRV_CUSTOM_CUST_SPEC_DISP_EEP_WB_B_OFFSET,      /* EEP WB B-Offset (EEPROM) */
    DRV_CUSTOM_CUST_SPEC_DISP_HDCP_KSV0,            /* HDCP KSV 0 */
    DRV_CUSTOM_CUST_SPEC_DISP_HDCP_KSV1,            /* HDCP KSV 1 */
    DRV_CUSTOM_CUST_SPEC_DISP_HDCP_KSV2,            /* HDCP KSV 2 */
    DRV_CUSTOM_CUST_SPEC_DISP_HDCP_KSV3,            /* HDCP KSV 3 */
    DRV_CUSTOM_CUST_SPEC_DISP_HDCP_KSV4,            /* HDCP KSV 4 */
    DRV_CUSTOM_CUST_SPEC_USBUART_STATUS,
	DRV_CUSTOM_CUST_SPEC_INIT_FAC_RESET_TUNER,		/* dual tuner init factory reset tuner */
    DRV_CUSTOM_CUST_SPEC_DISP_BLUE_STRETCH,         /* Blue Stretch */
    DRV_CUSTOM_CUST_SPEC_DISP_DYN_GAMMA_MAGIC_NUM,  /* Dynamic GAMMA Magic number */
    DRV_CUSTOM_CUST_SPEC_DISP_DYN_GAMMA,            /* Dynamic GAMMA */
    DRV_CUSTOM_CUST_SPEC_DISP_DYN_GAMMA_RELOAD,     /* Dynamic GAMMA Reload Setting */
    DRV_CUSTOM_CUST_SPEC_DISP_DYN_GAMMA_REMAP,      /* Dynamic GAMMA Remap Calculate */
    DRV_CUSTOM_CUST_SPEC_DISP_DYN_GAMMA_LINEAR,     /* Linear GAMMA Remapping */
    DRV_CUSTOM_CUST_SPEC_DISP_SCE_ON_OFF,           /* SCE On/Off */
    DRV_CUSTOM_CUST_SPEC_DISP_DCR_ON_OFF,           /* DCR/Light sensor On/Off */    
    DRV_CUSTOM_CUST_SPEC_DISP_WR_VGA_EDID,          /* Write VGA EDID */ //Soar add 20101007 for VGA EDID
    DRV_CUSTOM_CUST_SPEC_DISP_CVBS_AUTO_COLOR,      /* CVBS Auto Color */
    DRV_CUSTOM_CUST_SPEC_DISP_CVBS_D_GAIN,          /* CVBS D_GAIN */
    DRV_CUSTOM_CUST_SPEC_DISP_CVBS_A_GAIN,          /* CVBS A_GAIN */
    DRV_CUSTOM_CUST_SPEC_DISP_Y_LEVEL,              /* Y Level */
    DRV_CUSTOM_CUST_SPEC_DISP_PQ_VERSION,           /* PQ Version */
    DRV_CUSTOM_CUST_SPEC_DISP_PQ_GAMMA_VER,         /* GAMMA QTY Version */
    DRV_CUSTOM_CUST_SPEC_DISP_PQ_SCE_VER,           /* GAMMA QTY Version */
    DRV_CUSTOM_CUST_SPEC_DISP_PQ_QTY_VER,           /* PQ QTY Version */
    DRV_CUSTOM_CUST_SPEC_DISP_AQ_VERSION,           /* AQ Version */
    DRV_CUSTOM_CUST_SPEC_DISP_PANEL_FLASH_VERSION,  /* Panel Flash Version */
    DRV_CUSTOM_CUST_SPEC_DISP_PANEL_FLASH_NUMBER,   /* Flash Panel total panel Number */
    DRV_CUSTOM_CUST_SPEC_DISP_PANEL_FLASH_ID_LIST,  /* List of Panel ID */
    DRV_CUSTOM_CUST_SPEC_DISP_FRC_VERSION,          /* FRC version */
    DRV_CUSTOM_CUST_SPEC_DISP_4KBE_VERSION_NUMBER,      /*4K BE version (number of entries)*/
    DRV_CUSTOM_CUST_SPEC_DISP_4KBE_VERSION,          /*4K BE version (data string)*/
    DRV_CUSTOM_CUST_SPEC_IS_PANEL_MODE,             /* PANEL or PANELLESS */
    DRV_CUSTOM_CUST_SPEC_SERVO_ADC,                 /* Read Servo ADC value */
    //DRV_CUSTOM_CUST_SPEC_DISP_PANEL_INCH_SIZE,      /* Panel Inch Size */
    DRV_CUSTOM_CUST_SPEC_DISP_PANEL_LUT_SEL,        /* Panel LUT Select */
	
    DRV_CUSTOM_CUST_SPEC_VGA_EDID_DATA,            /* VGA EDID Data */
    DRV_CUSTOM_CUST_SPEC_HDMI_EDID_DATA,           /* HDMI EDID Data */

    DRV_CUSTOM_CUST_SPEC_TUNER_REG,                /* Tuner Register */

    DRV_CUSTOM_CUST_SPEC_SIF,                      /* SIF Read/Write */

    DRV_CUSTOM_CUST_SPEC_COLOR_MATRIX_DEF,         /* Default Color Matrix */
    DRV_CUSTOM_CUST_SPEC_COLOR_MATRIX_PQ,          /* Default Color Matrix */

    DRV_CUSTOM_CUST_SPEC_EEP_RW,                   /* R/W EEPROM */

#endif
#if 1//def STELLAR_LED_SPEC
	DRV_CUSTOM_CUST_SPEC_LED_MODE,
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_LED_ALL,
#endif/* STELLAR_LED_SPEC */
    DRV_CUSTOM_CUST_SPEC_UPDATE_LED_FIX_PATTERN,/*d130805_Haibo:To indicate if now is led fixed pattern.LED fixed pattern has the topest priority*/
	
#if 1//def PCMCIA_ENABLED//FAC_CMD_FOR_CI
	DRV_CUSTOM_CUST_SPEC_CI_PLUG_IN,
	DRV_CUSTOM_CUST_SPEC_CI_DESCRAMBLE,
#endif
    DRV_CUSTOM_CUST_SPEC_TYPE_TUNER_LNA_CTRL,
	DRV_CUSTOM_CUST_SPEC_TYPE_DTV_PACKET_RX_STATUS,
	DRV_CUSTOM_CUST_SPEC_TYPE_DTV_PACKET_RX_STATUS_SUB,
	DRV_CUSTOM_CUST_SPEC_TYPE_HDCP2X_RW,
	DRV_CUSTOM_CUST_SPEC_READ_ECC_UNCRRCT,//362
  	DRV_CUSTOM_CUST_SPEC_TYPE_TCON_NVM_WRITE,
	DRV_CUSTOM_CUST_SPEC_TYPE_TCON_NVM_READ,
	DRV_CUSTOM_CUST_SPEC_TYPE_V_COM_DRV,
	DRV_CUSTOM_CUST_SPEC_TYPE_SCART_OUT,
	DRV_CUSTOM_CUST_SPEC_TYPE_DVBS_LNB_VOL_CTRL,//367
	DRV_CUSTOM_CUST_SPEC_TYPE_DVBS_LNB_VOL_CTRL_SUB,//367
	DRV_CUSTOM_CUST_SPEC_TYPE_DVBS_LNB_TONE_CTRL,//368
	DRV_CUSTOM_CUST_SPEC_TYPE_DVBS_LNB_TONE_CTRL_SUB,//368
	DRV_CUSTOM_CUST_SPEC_TYPE_DVBS_LNB_SHORT_STATUS,//369
	DRV_CUSTOM_CUST_SPEC_TYPE_DVBS_LNB_SHORT_STATUS_SUB,//369
	DRV_CUSTOM_CUST_SPEC_TYPE_DVBS_DEMOD_CLK_CTRL,//370
	DRV_CUSTOM_CUST_SPEC_TYPE_DVBS_DEMOD_CLK_CTRL_SUB,//370
	DRV_CUSTOM_CUST_SPEC_TYPE_DEMOD_MOUNT_STATUS,
	DRV_CUSTOM_CUST_SPEC_TYPE_DEMOD_MOUNT_STATUS_SUB,
	DRV_CUSTOM_CUST_SPEC_TYPE_LNB_MOUNT_STATUS,
	DRV_CUSTOM_CUST_SPEC_TYPE_LNB_MOUNT_STATUS_SUB,
    DRV_CUSTOM_CUST_SPEC_TYPE_UPDATE_REC_STATUS,
    DRV_CUSTOM_CUST_SPEC_TYPE_IS_SIGNAL_LOSS,
    DRV_CUSTOM_CUST_SPEC_TYPE_START_LED_BLINK,
    DRV_CUSTOM_CUST_SPEC_TYPE_STOP_LED_BLINK,	
        
    DRV_CUSTOM_CUST_SPEC_TYPE_SCREEN_SAVER,         /* size = sizeof(UINT8), pv_set_info = (UINT8*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_DI_DATAMODE,
	#if 1//def CC_UART_ON_OFF_SUPPORT
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_UART_ON_OFF,
	#endif
	DRV_CUSTOM_CUST_SPEC_TYPE_GET_LOCATEL_SETTING,        
    /*JNI D-interface*/
	DRV_CUSTOM_CUST_SPEC_TYPE_GET_HDMI_HPD_INFOFRAME,        /* size = sizeof(DRV_HPD_INFOFRAME_T), pv_get_info = (DRV_HPD_INFOFRAME_T*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_REALITY_CREATION_SETTING,  /* size = sizeof(D_AP_PIC_REALITY_CREATION), pv_set_info = (D_AP_PIC_REALITY_CREATION*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_RESOLUTION_SETTING,        /* size = sizeof(UINT8), pv_set_info = (UINT8*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_3D_DISPLAY_SETTING,        /* size = sizeof(D_AP_3D_DISPLAY), pv_set_info = (D_AP_3D_DISPLAY*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_3D_DEPTH_ADJUSTMENT_SETTING,        /* size = sizeof(INT8), pv_set_info = (INT8*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_3D_GLASS_BRIGHTNESS_SETTING,        /* size = sizeof(D_AP_3D_GLASS_BRIGHTNESS), pv_set_info = (D_AP_3D_GLASS_BRIGHTNESS*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_GET_TUNER_DETECTION_INFO,		  /* size = sizeof(D_TUNER_DET_INFO), pv_set_info = (D_TUNER_DET_INFO*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_GET_ORI_HDR_TYPE,				/*size=sizeof(D_HDR_TYPE_MODE),pv_get_info = (D_HDR_TYPE_MODE*)*/
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_VP9_HDR_TYPE, 			/*size=sizeof(D_VP9_HDR_TYPE),pv_get_info = (D_VP9_HDR_TYPE*)*/
		/*panel dimension */
	DRV_CUSTOM_CUST_SPEC_TYPE_GET_PANEL_WIDTH,              /* size = sizeof(UINT32), pv_set_info = (UINT32*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_GET_PANEL_HEIGHT,             /* size = sizeof(UINT32), pv_set_info = (UINT32*) */
    DRV_CUSTOM_CUST_SPEC_TYPE_GET_PANEL_CONTROLWORD_3,      /* size = sizeof(UINT32), pv_set_info = (UINT32*) */
    //demo mode
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_DEMO_MODE,              /* size = sizeof(DRV_DEMO_MASK_AREA_INFO_T), pv_set_info = (DRV_DEMO_MASK_AREA_INFO_T*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_DEMO_MASK_AREA,		  /* size = sizeof(DRV_DEMO_MASK_AREA_SETTING_T), pv_set_info = (DRV_DEMO_MASK_AREA_SETTING_T*) */
	//Service menu
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_SERVICE_TRANS,			/* size = sizeof(DRV_AP_SERVICE_TRANS_T), pv_set_info = (DRV_AP_SERVICE_TRANS_T*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_SERVICE_VCOM,			/* size = sizeof(DRV_AP_SERVICE_VCOM_T), pv_set_info = (DRV_AP_SERVICE_VCOM_T*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_GET_SERVICE_VIDEO, 		
	//ecs2ko
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_ECS_CMD_TO_KO,              /* size = sizeof(DRV_ECS_CMD_TO_KO_T), pv_set_info = (DRV_ECS_CMD_TO_KO_T*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_GET_ECS_CMD_FROM_KO,				/* size = sizeof(DRV_ECS_CMD_TO_KO_T), pv_set_info = (DRV_ECS_CMD_TO_KO_T*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_CMD_TO_BEIC,			  /* size = sizeof(DRV_CMD_TO_BE_IC_T), pv_set_info = (DRV_CMD_TO_BE_IC_T*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_GET_CMD_FROM_BEIC,			  /* size = sizeof(DRV_CMD_TO_BE_IC_T), pv_get_info = (DRV_CMD_TO_BE_IC_T*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_GEN_PARAM_TO_BEIC_KO,			  /* size = sizeof(DRV_GEN_PARAM_BE_KO_T), pv_get_info = (DRV_GEN_PARAM_BE_KO_T*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_GET_GEN_PARAM_FROM_BEIC_KO,			  /* size = sizeof(DRV_GEN_PARAM_BE_KO_T), pv_get_info = (DRV_GEN_PARAM_BE_KO_T*) */

	//AP info set to 4KBE
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_PIC_MASTERIN4K_TO_KO,              /* size = sizeof(D_AP_PIC_MASTERED_IN_4K), pv_set_info = (D_AP_PIC_MASTERED_IN_4K*) */
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_PIC_NOISEFLTR_TO_KO,			  /* size = sizeof(UINT8), pv_set_info = (UINT8*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_PIC_LEDCTRL_TO_KO,			  /* size = sizeof(D_AP_PIC_LED_DYNAMIC_CTRL), pv_get_info = (D_AP_PIC_LED_DYNAMIC_CTRL*) */	
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_PIC_XDR_TO_KO,              /* size = sizeof(D_AP_XDR), pv_set_info = (D_AP_XDR*) */
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_PIC_SMOOTHNESS_TO_KO,			  /* size = sizeof(UINT8), pv_set_info = (UINT8*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_PIC_CLEARNESS_TO_KO,			  /* size = sizeof(UINT8), pv_get_info = (UINT8*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_PIC_DYNAMICRANGE_TO_KO, 		  /* size = sizeof(D_AP_DRANGE_UI), pv_get_info = (D_AP_DRANGE_UI*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_PIC_COLORSPACE_TO_KO, 		  /* size = sizeof(D_AP_PHOTO_COL_SPACE_UI), pv_get_info = (D_AP_PHOTO_COL_SPACE_UI*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_PIC_R_GAIN_TO_KO,			  /* size = sizeof(INT8), pv_get_info = (INT8*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_PIC_G_GAIN_TO_KO,			  /* size = sizeof(INT8), pv_get_info = (INT8*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_PIC_B_GAIN_TO_KO,			  /* size = sizeof(INT8), pv_get_info = (INT8*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_PIC_R_BIAS_TO_KO,			  /* size = sizeof(INT8), pv_get_info = (INT8*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_PIC_G_BIAS_TO_KO,			  /* size = sizeof(INT8), pv_get_info = (INT8*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_PIC_B_BIAS_TO_KO,			  /* size = sizeof(INT8), pv_get_info = (INT8*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_WFD_PROTOCOL_TO_KO,			  /* size = sizeof(UINT8), pv_set_info = (UINT8*) */
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_BT_DELAY_TO_KO,             /* size = sizeof(D_AP_BT_DELAY_MODE), pv_set_info = (D_AP_BT_DELAY_MODE*) */
    DRV_CUSTOM_CUST_SPEC_TYPE_GET_BT_DELAY_FROM_KO,   /* size = sizeof(D_AP_BT_DELAY_MODE), pv_set_info = (D_AP_BT_DELAY_MODE*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_PIC_SMOOTH_GRADATION_TO_KO, /* size = sizeof(D_AP_SMOOTH_GRADATION_UI), pv_set_info = (D_AP_SMOOTH_GRADATION_UI*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_PIC_TRANSFR_FUNC_TO_KO,	/* size = sizeof(D_AP_TRANSFER_FUNC_UI), pv_set_info = (D_AP_TRANSFER_FUNC_UI*) */
	DRV_CUSTOM_CUST_SPEC_TYPE_SET_PQ_DYNAMIC_CONTROL_TO_KO, /* size = sizeof(E_CUST_PIC_CONTROL_STATE), pv_set_info = (E_CUST_PIC_CONTROL_STATE*) */
	
    //WSW
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_WSW_LVL,                /* size = sizeof(UINT8), pv_set_info = (UINT8*) */
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_WSW_FREQ,               /* size = sizeof(UINT8), pv_set_info = (UINT8*) */
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_WSW_PHASE,              /* size = sizeof(UINT8), pv_set_info = (UINT8*) */  
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_WSW_OUTPUT,                /* size = sizeof(UINT8), pv_set_info = (UINT8*) */
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_WSW_ENABLE,             /* size = sizeof(UINT8), pv_set_info = (UINT8*) */

    //Maple LED
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_LED_ON_OFF,
    //
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_AGING_MODE,

    //Light Sensor
    DRV_CUSTOM_CUST_SPEC_GET_LIGHT_SENSOR_VALUE,

    // FactorySW Inspection 
    DRV_CUSTOM_CUST_AUDIO_OUTPUT_CTRL,                   /* size = sizeof(DRV_AUDIO_OUTPUT_CTRL_T), pv_set_info = (DRV_AUDIO_OUTPUT_CTRL_T*) */  
    DRV_CUSTOM_CUST_SCART_OUT_VIDEO_CTRL,                /* size = sizeof(DRV_CUSTOM_CUST_SCART_OUT_VIDEO_CTRL), pv_set_info = (DRV_CUSTOM_CUST_SCART_OUT_VIDEO_CTRL*) */  
    DRV_CUSTOM_CUST_TEST_AUDIO,                          /* size = sizeof(DRV_TEST_AUDIO_T), pv_set_info = (DRV_TEST_AUDIO_T*) */ 
    DRV_CUSTOM_CUST_TEST_AUDIO_MUTE,                     /* size = sizeof(DRV_TEST_AUDIO_T), pv_set_info = (DRV_TEST_AUDIO_T*) */ 
    DRV_CUSTOM_CUST_AUDIO_DB_LEVEL,                      /* size = sizeof(DRV_AUDIO_DB_LEVEL_T), pv_set_info = (DRV_AUDIO_DB_LEVEL_T*) */ 
    DRV_CUSTOM_CUST_AUDIO_SOFT_MUTE,                     /* size = sizeof(DRV_AUDIO_SOFT_MUTE_T), pv_set_info = (DRV_AUDIO_SOFT_MUTE_T*) */ 
	DRV_CUSTOM_CUST_AUDIO_VOLUME_CTRL,

    // Audio new UI items
    DRV_CUSTOM_AUD_SOUND_MODE,                          /* size = sizeof(E_CUST_AUD_SOUND_MODE), pv_set_info = (E_CUST_AUD_SOUND_MODE*) */ 
    DRV_CUSTOM_AUD_SURROUND_MODE,                       /* size = sizeof(E_CUST_AUD_AUTO_SURROUND), pv_set_info = (E_CUST_AUD_AUTO_SURROUND*) */ 
    DRV_CUSTOM_AUD_SURROUND_EFFECT,                     /* size = sizeof(INT8), pv_set_info = (INT8*) */ 
    DRV_CUSTOM_AUD_UP_SCL,                              /* size = sizeof(E_CUST_AUD_UP_SCL), pv_set_info = (E_CUST_AUD_UP_SCL*) */ 
    DRV_CUSTOM_AUD_VOICE_ZOOM,                          /* size = sizeof(INT8), pv_set_info = (INT8*) */ 
    DRV_CUSTOM_AUD_SCENE_SEL,                           /* size = sizeof(E_CUST_AUD_SCENE_SELECT_AUTO), pv_set_info = (E_CUST_AUD_SCENE_SELECT_AUTO*) */ 
    DRV_CUSTOM_AUD_NIGHT_MODE,                          /* size = sizeof(E_CUST_AUD_NIGHT_MODE), pv_set_info = (E_CUST_AUD_NIGHT_MODE*) */ 
    DRV_CUSTOM_AUD_WSW_POWER,                           /* size = sizeof(E_CUST_AUD_SUBWOOFER_POWER), pv_set_info = (E_CUST_AUD_SUBWOOFER_POWER*) */ 
    DRV_CUSTOM_AUD_ADV_AUTO_VOLUME,                     /* size = sizeof(E_CUST_AUD_AUTO_VOLUME), pv_set_info = (E_CUST_AUD_AUTO_VOLUME*) */ 
    DRV_CUSTOM_AUD_INP_LVL_OFFSET,                      /* size = sizeof(INT8), pv_set_info = (INT8*) */ 
    DRV_CUSTOM_AUD_DOLBY_DR,                            /* size = sizeof(E_CUST_AUD_DOLBY_DRANGE), pv_set_info = (E_CUST_AUD_DOLBY_DRANGE*) */ 
    DRV_CUSTOM_AUD_MPEG_AUDIO_LVL,                      /* size = sizeof(INT8), pv_set_info = (INT8*) */ 
    DRV_CUSTOM_AUD_HEAAC_AUDIO_LVL,                     /* size = sizeof(INT8), pv_set_info = (INT8*) */ 
    DRV_CUSTOM_AUD_HEAAC_DR,                            /* size = sizeof(E_CUST_AUD_DYNAMIC_RANGE), pv_set_info = (E_CUST_AUD_DYNAMIC_RANGE*) */ 
    DRV_CUSTOM_AUD_GEQ_BAND1,                           /* size = sizeof(INT8), pv_set_info = (INT8*) */ 
    DRV_CUSTOM_AUD_GEQ_BAND2,                           /* size = sizeof(INT8), pv_set_info = (INT8*) */ 
    DRV_CUSTOM_AUD_GEQ_BAND3,                           /* size = sizeof(INT8), pv_set_info = (INT8*) */ 
    DRV_CUSTOM_AUD_GEQ_BAND4,                           /* size = sizeof(INT8), pv_set_info = (INT8*) */ 
    DRV_CUSTOM_AUD_GEQ_BAND5,                           /* size = sizeof(INT8), pv_set_info = (INT8*) */ 
    DRV_CUSTOM_AUD_GEQ_BAND6,                           /* size = sizeof(INT8), pv_set_info = (INT8*) */ 
    DRV_CUSTOM_AUD_GEQ_BAND7,                           /* size = sizeof(INT8), pv_set_info = (INT8*) */ 
    DRV_CUSTOM_AUD_LFM_NC,                              /* size = sizeof(E_CUST_AUD_LFM_NC), pv_set_info = (E_CUST_AUD_LFM_NC*) */ 
    DRV_CUSTOM_AUD_WSW_DELAY,                           /* size = sizeof(INT8), pv_set_info = (INT8*) */ 
    DRV_CUSTOM_AUD_HP_AUD_OUT,                          /* size = sizeof(E_CUST_AUD_HP_AUD_OUT), pv_set_info = (E_CUST_AUD_HP_AUD_OUT*) */ 
    DRV_CUSTOM_AUD_DIGI_OUT,                            /* size = sizeof(E_CUST_AUD_DIGI_OUT), pv_set_info = (E_CUST_AUD_DIGI_OUT*) */ 
	DRV_CUSTOM_AUD_DDP_OUT,								/* size = sizeof(E_CUST_AUD_DDP_OUT), pv_set_info = (E_CUST_AUD_DDP_OUT*) */
	DRV_CUSTOM_AUD_DDP_CAPABILITY,						/* size = sizeof(E_CUST_AUD_DDP_CAPABILITY), pv_set_info = (E_CUST_AUD_DDP_CAPABILITY*) */
	DRV_CUSTOM_AUD_KEY_TONE,                            /* size = sizeof(E_CUST_AUD_KEY_TONE), pv_set_info = (E_CUST_AUD_KEY_TONE*) */ 
    DRV_CUSTOM_AUD_BT_VOL,
    DRV_CUSTOM_AUD_BT_LNK,
    DRV_CUSTOM_AUD_BALANCE,                             /* size = sizeof(INT8), pv_set_info = (INT8*) */
    DRV_CUSTOM_AUD_SPK_OUT,                             /* size = sizeof(E_CUST_AUD_SPEAKERS), pv_set_info = (E_CUST_AUD_SPEAKERS*) */
    DRV_CUSTOM_AUD_DVI_IN,                              /* size = sizeof(E_CUST_AUD_HDMI_SRC), pv_set_info = (E_CUST_AUD_HDMI_SRC*) */
    DRV_CUSTOM_AUD_TV_STORE_DISP_MODE,                  /* size = sizeof(INT8), pv_set_info = (INT8*) */
    DRV_CUSTOM_AUD_BT_CONNECT,                          /* size = sizeof(UINT8), pv_set_info = (UINT8*) */
    DRV_CUSTOM_AUD_SPDIF_DELAY,                         /* size = sizeof(UINT8), pv_set_info = (UINT8*) */
    DRV_CUSTOM_AUD_GET_SPDIF_DELAY,                     /* size = sizeof(INT8), pv_get_info = (INT8*) */

    DRV_CUSTOM_CUST_SPEC_TYPE_SOUND_SYSTEM,
    DRV_CUSTOM_CUST_SPEC_TYPE_SOUND_DET_MODE,
    DRV_CUSTOM_CUST_SPEC_TYPE_SOUND_SET_MODE,
    DRV_CUSTOM_CUST_SPEC_TYPE_SOUND_MAIN_CARR_LVL,
    DRV_CUSTOM_CUST_SPEC_TYPE_SOUND_SUB_CARR_LVL,
    DRV_CUSTOM_CUST_SPEC_TYPE_SOUND_CUE_LVL,
    DRV_CUSTOM_CUST_SPEC_TYPE_SOUND_MAIN_NOISE_LVL,
    DRV_CUSTOM_CUST_SPEC_TYPE_SOUND_SUB_NOISE_LVL,
    DRV_CUSTOM_CUST_SPEC_TYPE_SOUND_NICAM_ERROR,
    DRV_CUSTOM_CUST_SPEC_TYPE_SOUND_OUTPUT_FS,

    //other
    DRV_CUSTOM_CUST_SPEC_TYPE_PGAM_EN,
    DRV_CUSTOM_CUST_SPEC_TYPE_U_WB_FLAT,
    DRV_CUSTOM_AUDIO_FILTER_COUNTRY_TYPE,
    DRV_CUSTOM_CUST_SPEC_TYPE_MODEL_3D_SUPPORT,

    //LED Illuminiation
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_LED_ILLUMINATION_PATTERN,
    DRV_CUSTOM_CUST_SPEC_TYPE_GET_LED_ILLUMINATION_PATTERN,
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_LED_POWERON_PATTERN,  /* size = sizeof(LED_PATTERN_IDX_T), pv_set_info = (LED_PATTERN_IDX_T *) */
    DRV_CUSTOM_CUST_SPEC_TYPE_GET_LED_POWERON_PATTERN,  /* size = sizeof(LED_PATTERN_IDX_T), pv_set_info = (LED_PATTERN_IDX_T *) */
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_LED_STANDBY_PATTERN,  /* size = sizeof(LED_PATTERN_IDX_T), pv_set_info = (LED_PATTERN_IDX_T *) */
    DRV_CUSTOM_CUST_SPEC_TYPE_GET_LED_STANDBY_PATTERN,  /* size = sizeof(LED_PATTERN_IDX_T), pv_set_info = (LED_PATTERN_IDX_T *) */
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_LED_BRIGHTNESS,
    DRV_CUSTOM_CUST_SPEC_TYPE_GET_LED_BRIGHTNESS,
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_LED_ONOFFMS,/* size = sizeof(UINT8), pv_set_info = (UINT8*) */
    DRV_CUSTOM_CUST_SPEC_TYPE_GET_LED_ONOFFMS,/* size = sizeof(UINT8), pv_set_info = (UINT8*) */

    DRV_CUSTOM_CUST_SPEC_TYPE_SET_COLOR_PICKUP,/* size = sizeof(DRV_CUSTOM_COLOR_PICKUP), pv_set_info = (DRV_CUSTOM_COLOR_PICKUP*) */
    DRV_CUSTOM_CUST_SPEC_TYPE_GET_COLOR_PICKUP,/* size = sizeof(DRV_CUSTOM_COLOR_PICKUP), pv_set_info = (DRV_CUSTOM_COLOR_PICKUP*) */ 
    //Fariha add 4/7/2014 - KEY_AD_STATUS implementation
    DRV_CUSTOM_CUST_SPEC_ADC_KEY_AD_STATUS,
	DRV_CUSTOM_CUST_SPEC_TCON_NVM_R, //Mariam add 21 July 2014 - Tcon NVM Direct Access implementation
	DRV_CUSTOM_CUST_SPEC_TYPE_PWM_BACKLIGHT_CONTROL, //Mariam add 24 July 2014 - Backlight PWM Control implementation

    // UI range setting
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_UI_RANGE,
    DRV_CUSTOM_CUST_SPEC_TYPE_QUERY_IC_PART,  /* size = sizeof(UINT32), pv_set_info = (UINT32*) */
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_CLI_PARSER,
    DRV_CUSTOM_CUST_SPEC_TYPE_PQ_BL_LEVEL, //Mariam add 24 Sept 2014 - backlight control by PQ.ko
    DRV_CUSTOM_CUST_SPEC_TYPE_PQ_MURA_BKUP,
    DRV_CUSTOM_CUST_SPEC_TYPE_PQ_CUC_BKUP,
    DRV_CUSTOM_CUST_SPEC_TYPE_PQ_MURA_TRANS,
    DRV_CUSTOM_CUST_SPEC_TYPE_PQ_CUC_TRANS,
    DRV_CUSTOM_CUST_SPEC_TYPE_GET_TVD_LOCK,
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_LED_PWM,

    //Video Path 422/444
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_VDP_COLOR_MODE,

    DRV_CUSTOM_CUST_SPEC_TYPE_GET_FACTORY_AGC,
    DRV_CUSTOM_CUST_SPEC_TYPE_FSW_ENABLE_HDMI_CEC,
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_SPHP_FORCE_OUTPUT, /* use this command to force SP output even HP is connected */
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_SCART_YPBPR_PARAM,
    DRV_CUSTOM_CUST_SPEC_TYPE_GET_SCART_YPBPR_PARAM,
  
    //Application state
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_HDMI_HF_VSDB_INFO,
    DRV_CUSTOM_CUST_SPEC_TYPE_GET_HDMI_HF_VSDB_INFO,
    DRV_CUSTOM_CUST_SPEC_TYPE_GET_HDMI_SIGNAL_STATUS,
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_ARC_DD_PLUS_DDDP,
    DRV_CUSTOM_CUST_SPEC_TYPE_DD_OUT,
    DRV_CUSTOM_CUST_SPEC_AUDIO_SPEAKERS_UI_TYPE_DD,

    DRV_CUSTOM_CUST_SPEC_PLATFORM_SERIES,
    DRV_CUSTOM_CUST_SPEC_B_BOARD_TYPE,
    DRV_CUSTOM_CUST_SPEC_TERMINAL_VARIATION,
    DRV_CUSTOM_CUST_SPEC_POWER_TRIGGER_EX,   // size=sizeof(UINT32) pt_set_info/pt_get_info is (UNIT32 *) type
    DRV_CUSTOM_CUST_SPEC_B2B_HOTEL,
    DRV_CUSTOM_CUST_SPEC_TYPE_SET_HDMI_HPD_RTC_FLAG,

    /*Customer specific command END*/
    DRV_CUSTOM_CUST_SPEC_TYPE_END

} DRV_CUSTOM_CUST_SPEC_TYPE_T;


typedef enum {
	DRV_CUSTOM_VDP_COLOR_444,
	DRV_CUSTOM_VDP_COLOR_422,
	DRV_CUSTOM_VDP_COLOR_AUTO,
	NUM_OF_DRV_CUSTOM_VDP_COLOR,
} DRV_CUSTOM_VDP_COLOR_MODE_T;


typedef enum
{
        DRV_CUSTOM_VGA_ENABLE_DETECTION,
        DRV_CUSTOM_VGA_DISABLE_DETECTION
} DRV_CUSTOM_VGA_DETECT_WAKEUP_T;

typedef enum
{
        DRV_CUSTOM_VGA_SIGNAL_STABLE,
        DRV_CUSTOM_VGA_SIGNAL_NO_SIGNAL,
        DRV_CUSTOM_VGA_SIGNAL_NOT_SUPPORT
}DRV_CUSTOM_VGA_STATUS_T;

typedef enum {
	D_DEMO_OFF = 0,
	D_BRAVIA_ENGINE = 1,
	D_MOTION_FLOW = 3,
	NUM_OF_D_DEMO_MODE
} D_DEMO_MODE;

typedef enum {
	D_FORMAT_422 = 0,
	D_FORMAT_444,
	NUM_OF_D_PATH
} D_PATH;

typedef enum {
	D_MOTION_OFF = 0,
	D_MOTION_STANDARD,
	D_MOTION_HIGH,
	NUM_OF_D_MOTIONFLOW_MODE
} D_MOTIONFLOW_MODE;

typedef enum {
D_HDR_TYPE_SDR,
D_HDR_TYPE_HDR1,
D_HDR_TYPE_HDR2,
D_HDR_TYPE_HDR3,
D_HDR_TYPE_UNKNOWN
} D_HDR_TYPE_MODE;
typedef enum
{
	D_VP9_HDR_TYPE_NONE,
	D_VP9_HDR_TYPE_HDR1,	
	D_VP9_HDR_TYPE_HDR2,
	D_VP9_HDR_TYPE_HDR3,
}D_VP9_HDR_TYPE;

typedef enum {
	D_PICTURE_VIVID = 0,
	D_PICTURE_STANDARD,
	D_PICTURE_CUSTOM,
	D_PICTURE_CINEMA1,
	D_PICTURE_CINEMA2,
	D_PICTURE_GAME,
	D_PICTURE_TEXT,
	D_PICTURE_SPORTS,
	D_PICTURE_PHOTO_VIVID,
	D_PICTURE_PHOTO_STANDARD,
	D_PICTURE_PHOTO_CUSTOM,
	D_PICTURE_PHOTO_ORIGINAL,
	D_PICTURE_GAME2,
	NUM_OF_D_PICTURE_MODE
} D_PICTURE_MODE;

typedef enum {
	D_CINE_MOTION_OFF = 0,
	D_CINE_MOTION_AUTO2,
	D_CINE_MOTION_AUTO1,
	NUM_OF_D_CINE_MOTION
} D_CINE_MOTION_MODE;

typedef struct _SMicroMaskArea
{
    UINT8 u1Index;
    UINT16 u2Width;
    UINT16 u2Height;
    UINT16 u2X;
    UINT16 u2Y;
} D_SMicroMaskArea;


typedef enum {
	D_INPUT_RF = 0,
	D_INPUT_OTHER,
	NUM_OF_D_INPUT_MODE
} D_INPUT_MODE;

typedef struct _SMicroFactory
{
    UINT32 u4InDataSize;
    UINT32 u4OutDataSize;
    UINT8 *pInData;
    UINT8 *pOutData;
} D_SMicroFactory;

/* Start - Hew: Dither on/off 29Oct2009*/
typedef struct _PARAM_DITHER{
	UINT16 write_data;
	UINT8 lsb_off;
	UINT8 round_en;
	UINT8 rdither_en;
	UINT8 edither_en;
	UINT8 dither_lfsr_en;
}PARAM_DITHER;
/* End - Hew: Dither on/off 29Oct2009*/

typedef struct _D_TUNER_DET_INFO
{
   INT32  i4GPIOStatus;
   UINT32 u4ADValues;
} D_TUNER_DET_INFO;

typedef enum
{
    D_LED_GENERIC_ON,
    D_LED_GENERIC_OFF,
} D_LED_GENERIC_STATE;

typedef enum
{
    D_LED_POWER_ON,
    D_LED_POWER_OFF
} D_LED_POWER_STATE;

typedef enum
{
    D_LED_STANDBY_ON,
    D_LED_STANDBY_OFF
} D_LED_STANDBY_STATE;

typedef enum
{
    D_LED_TIMER_ORANGE,
    D_LED_TIMER_GREEN,
    D_LED_TIMER_BOTH,
    D_LED_TIMER_WHITE,
    D_LED_TIMER_WHITE_BLUE_ON,
    D_LED_TIMER_WHITE_BLUE_OFF,
	D_LED_TIMER_WHITE_OFF,
	D_LED_TIMER_RECORD,
    D_LED_TIMER_OFF,
} D_LED_TIMER_STATE;

typedef enum
{
    D_LED_POWER = 0,
    D_LED_STANDBY,
    D_LED_TIMER,
    D_LED_TIMER_2,
    D_LED_TOTAL
} D_LED_TYPE;

typedef struct _ATVLedDisplay
{
    D_LED_TYPE eLedType;
    UINT32 eLedState;
} D_LED_DISPLAY;

typedef enum
{
    D_SYSTEM_NORMAL,
    D_SYSTEM_PANEL_ONOFF
} D_SYSTEM_STATE;

#if 0
typedef enum
{
    D_12V_AMP_ERROR,
    D_12V_SW_ERROR,
    D_24V_PWR_ERROR,
    D_AUD_ERROR,
    D_3V3_5V_ERROR,
    D_PANEL_POWER_ERROR,
    D_BACKLIGHT_ERROR,
    D_TEMPERATURE_ERROR,
    D_BALANCER_ERROR,    
    D_TCON_ERROR,
    D_PANEL_NVM_ERROR,//atm-liang add        
    D_TUNER_ERROR,
    D_RTC_ERROR,
    D_TOUCHSNR_ERR,
    D_CAR_BATTERY,
    D_ALL_ERROR//Should be put at last (for i4SelfDiagClearCounterCmd())
} D_SELF_DIAG_ERROR_TYPE;

#else
typedef enum
{
    D_MAIN_POWER_ERROR, //bit0
    D_DC_ALERT_ERROR,
    D_AUD_ERROR,
    D_TU_DEMOD_ERROR,    
    D_LD_ERROR,
    D_VLED_ERROR,
    D_TCON_ERROR,
    D_PANEL_ID_ERROR,
    D_BACKLIGHT_ERROR,
    D_TEMPERATURE_ERROR,
    D_SW_ERROR,
    D_4K_BE_OUT_ERROR,
    D_4K_BE_ERROR,
    D_HDMI_EQ_ERROR,
    D_FRCTC_I2C_ERROR,  //bit14
    D_AUD_I2C_ERROR,      //bit15
    D_4KPQ_ERROR,
    D_4KPQ_ERROR_I2C,
    D_RSV04_ERROR,
    D_RSV05_ERROR,
    D_RSV06_ERROR,
    D_RSV07_ERROR,
    D_RSV08_ERROR,         
    D_RSV09_ERROR,
    D_RSV10_ERROR,
    D_RSV11_ERROR,
    D_RSV12_ERROR,
    D_RSV13_ERROR,
    D_RSV14_ERROR,
    D_RSV15_ERROR,
    D_RSV16_ERROR,
    D_ALL_ERROR//Should be put at last (for i4SelfDiagClearCounterCmd())
} D_SELF_DIAG_ERROR_TYPE;
#endif
typedef enum {
    D_COUNTRY_UNKNOWN = 0,
    D_COUNTRY_GA,
    D_COUNTRY_INDIA,
    D_COUNTRY_PHILIPPINE,
    D_COUNTRY_CIS,
    D_COUNTRY_CHINA,
    D_COUNTRY_LATIN
} APP_COUNTRY_SEL;

typedef struct _DRV_CUSTOM_PANEL_ID_T
{
    CHAR   aui1_panel_id_buf[16];
    UINT16 u2_offset;
    UINT16 u2_length;
} DRV_CUSTOM_PANEL_ID_T;

typedef struct _SelfDiagState
{
    D_SELF_DIAG_ERROR_TYPE eErrorType;
    BOOL   bErrorOccur;
    BOOL   bResetErrorCnt;
    UINT32 u4ErrorCnt;
    CHAR   aui1_timeStr[36];
} D_SELF_DIAG_STATE;

typedef struct DRV_CUSTOM_TAG_VERSION_TYPE_T
{
    UINT8 ui1_tag_type;                      /* tag*/
    CHAR szVerStr[20];						//version string
}   DRV_CUSTOM_TAG_VERSION_TYPE_T;

/* Liew: Hotel Clock related */
typedef struct _DRV_CUSTOM_HTL_CLK_TIME_T
{
    UINT8 ui1_hour;
    UINT8 ui1_minute;
    UINT8 ui1_second;
    UINT8 ui1_day_of_week;
    UINT8 ui1_is_valid;     /* Only used when we get time from hotel clock */
} DRV_CUSTOM_HTL_CLK_TIME_T;
           
typedef struct _DRV_CUSTOM_HTL_CLK_CFG_T
{ 
    UINT8 ui1_display;
    UINT8 ui1_intensity;
    UINT8 ui1_reset;
}  DRV_CUSTOM_HTL_CLK_CFG_T;
/* Liew: End Hotel Clock related */
#if 1	//wwj_modify_for_input_performance step 1 ignore unnecessary pic mode update
/*
for DRV_CUSTOM_CUST_SPEC_TYPE_GAMMA_UI_OFST_UPDATE_ALL use
*/
typedef struct _DRV_CUSTOM_GAMMA_UI_OFST_UPDATE_ALL_T
{ 
	UINT8 ui1_gamma_ui_ofst_r01;
	UINT8 ui1_gamma_ui_ofst_r02;
	UINT8 ui1_gamma_ui_ofst_r03;
	UINT8 ui1_gamma_ui_ofst_r04;
	UINT8 ui1_gamma_ui_ofst_r05;
	UINT8 ui1_gamma_ui_ofst_r06;
	UINT8 ui1_gamma_ui_ofst_r07;
	UINT8 ui1_gamma_ui_ofst_r08;
	UINT8 ui1_gamma_ui_ofst_r09;
	UINT8 ui1_gamma_ui_ofst_r10;

	UINT8 ui1_gamma_ui_ofst_g01;
	UINT8 ui1_gamma_ui_ofst_g02;
	UINT8 ui1_gamma_ui_ofst_g03;
	UINT8 ui1_gamma_ui_ofst_g04;
	UINT8 ui1_gamma_ui_ofst_g05;
	UINT8 ui1_gamma_ui_ofst_g06;
	UINT8 ui1_gamma_ui_ofst_g07;
	UINT8 ui1_gamma_ui_ofst_g08;
	UINT8 ui1_gamma_ui_ofst_g09;
	UINT8 ui1_gamma_ui_ofst_g10;

	UINT8 ui1_gamma_ui_ofst_b01;
	UINT8 ui1_gamma_ui_ofst_b02;
	UINT8 ui1_gamma_ui_ofst_b03;
	UINT8 ui1_gamma_ui_ofst_b04;
	UINT8 ui1_gamma_ui_ofst_b05;
	UINT8 ui1_gamma_ui_ofst_b06;
	UINT8 ui1_gamma_ui_ofst_b07;
	UINT8 ui1_gamma_ui_ofst_b08;
	UINT8 ui1_gamma_ui_ofst_b09;
	UINT8 ui1_gamma_ui_ofst_b10;
	
}  DRV_CUSTOM_GAMMA_UI_OFST_UPDATE_ALL;
#endif

typedef enum
{
	DRV_CUSTOM_TAG_TYPE_LOADER= 0,    /* loader by luis     */
	DRV_CUSTOM_TAG_TYPE_FIRMWARE,     /* firmware by luis   */
	DRV_CUSTOM_TAG_TYPE_PQ ,	      /* PQ data by norman  */
	DRV_CUSTOM_TAG_TYPE_PANEL,  	  /* panel data by cosh */
	DRV_CUSTOM_TAG_TYPE_AQ ,	      /* AQ data by Andrew  */
	DRV_CUSTOM_TAG_TYPE_UPEEP ,       /* uP nvm by Cosh     */
	DRV_CUSTOM_TAG_TYPE_UPIMG ,	      /* uP image by Cosh   */
	DRV_CUSTOM_TAG_TYPE_NVRAM ,       /* eeprom by Jifeng   */
	DRV_CUSTOM_TAG_TYPE_EDID,  	      /* EDID by CI         */
	DRV_CUSTOM_TAG_TYPE_UPBT,  	      /* uP Bootloader      */
    DRV_CUSTOM_TAG_TYPE_KEYPAD,       /* keypad version     */
    DRV_CUSTOM_TAG_TYPE_MHL,          /* MHL version        */
	DRV_CUSTOM_TAG_TYPE_MAX
}DRV_CUSTOM_TAG_TYPE_T;

typedef enum
{
    D_MMP_NONE = 0,
    D_MMP_PHOTO,
    D_MMP_MUSIC,
    D_MMP_MOVIE,
    D_MMP_PHOTO_FRAME,
    NUM_OF_MMP_MODE
} D_MMP_MODE;

typedef enum
{
    D_MMP_OSD_NONE = 0,
    D_MMP_OSD_THUMBNAIL,
    D_MMP_OSD_DEVICE,
    D_MMP_OSD_PLAYBACK,
    NUM_OF_MMP_OSD_STATE
} D_MMP_OSD_STATE;

typedef enum
{
    D_MMP_OSD_NOT_FULL = 0,
    D_MMP_OSD_FULL,
    NUM_OF_OSD_TYPE
} D_MMP_OSD_TYPE;

typedef enum
{
    D_FM_RADIO_OFF = 0,
    D_FM_RADIO_ON,
    NUM_OF_FM_RADIO_STATE
} D_FM_RADIO_STATE;

typedef enum
{
    D_SYNC_MENU_OFF = 0,
    D_SYNC_MENU_ON,
    NUM_OF_SYNC_MENU_STATE
} D_SYNC_MENU_STATE;

typedef enum
{
    D_PICBACKLT_OFF = 0,
    D_PICBACKLT_ON,
    NUM_OF_PICBACKLT_STATE
} D_PICBACKLT_STATE;

typedef enum
{
    D_NOT_SCANNING = 0,
    D_IS_SCANNING,
    NUM_OF_SCAN_STATE
} D_AUTOMAN_SCAN_STATE;

typedef enum
{
    D_TELETEXT_OFF = 0,
    D_TELETEXT_ON,
    NUM_OF_TELETEXT_MODE
} D_TELETEXT_MODE;

typedef enum
{
    D_SCENE_AUTO = 0,
    D_SCENE_GENERAL,
    D_SCENE_PHOTO,
    D_SCENE_MUSIC,
    D_SCENE_CINEMA,
    D_SCENE_GAME,
    D_SCENE_GRAPHICS,
    D_SCENE_SPORTS,
    NUM_OF_SCENE_SELECT_MODE
} D_SCENE_SELECT_MODE;

typedef enum
{
    D_AGING_OFF,
    D_AGING_ON,
    NUM_OF_AGING_MODE  
} D_AGING_MODE;

typedef enum
{
    D_RGB_SREG,
    D_DBL_SREG,
    D_SIG_BSTR_SREG,
    D_TUNER_SREG,
    NUM_OF_DRV_SREG  
} D_DRV_SREG;

typedef enum
{
    D_DEMO_MODE_USB_OFF = 0,
    D_DEMO_MODE_USB_ON,
    NUM_OF_DEMO_MODE_USB
} D_DEMO_MODE_USB_VIDEO_MODE;

/* Marina - Start : Internal Signal Pattern ( 31 July 2009)*/  
typedef struct DRV_CUSTOM_INT_SIG_PTN
{
    UINT8 path;                      /*path*/
    UINT8 pattern;					 /*pattern*/
    UINT8 tag;                       /*tag*/
    UINT16 gamma_r;                  /*gamma_r_value*/
    UINT16 gamma_g;                  /*gamma_g_value*/
    UINT16 gamma_b;                  /*gamma_b_value*/
} DRV_CUSTOM_INT_SIG_PTN;
/* Marina - End : Internal Signal Pattern ( 31 July 2009)*/  

/* Marina - Start : HDMI EDID Read/Write( 10 August 2009)*/  
typedef enum
{
    D_HDMI_PORT1,
    D_HDMI_PORT2,
    D_HDMI_PORT3,
    D_HDMI_PORT4,
} D_HDMI_PORT_NUM;

typedef struct DRV_CUSTOM_EDID_DATA
{
    D_HDMI_PORT_NUM hdmi_port;                      /*HDMI port*/
    UINT8 edid_buffer[256];               /*HDMI EDID Buffer */
} DRV_CUSTOM_EDID_DATA;
/* Marina - End : HDMI EDID Read/Write( 10 August 2009)*/  

/* Ooi START: callback func for IP (1/9/09) */
typedef struct DRV_CUSTOM_IP_NOISE_TH_T
{
	UINT8 lvl;
	UINT8 data;
}DRV_CUSTOM_IP_NOISE_TH;
/* Ooi END */
/*TSEN start*/
typedef struct DRV_PARAM_ADC
{
    UINT8   adc_input;
    UINT8   adc_ch_num;
    UINT16  adc_ch_value;
}DRV_PARAM_ADC;

typedef struct DRV_PARAM_ADC_LVL
{
    UINT8   adc_ch_num;
    UINT16  adc_ch_value;
}DRV_PARAM_ADC_LVL;
/*TSEN end*/

typedef struct DRV_SREG
{
    D_DRV_SREG  type;
    UINT16      sreg;
    UINT16*     value;
}DRV_SREG;
typedef enum
{
    TU_FreqData,
    TU_StepData,
    TU_BandData,
} DRV_SONY_TUNER_DATA;

/* Marina -Start: Color Level(25 September 09)*/
typedef struct DRV_COLOR_LEVEL
{
    UINT16 h_pixel;
    UINT16 v_pixel;
    UINT16 rgb_level;
    UINT8 rgb_tag;
    UINT16 h_pixel_area;
    UINT16 v_pixel_area;
}DRV_COLOR_LEVEL;
/* Marina End */
/* Chow -Start: Sig bstr IP(09 Oct 09)*/
typedef struct DRV_SIG_BSTR_IP_ST
{
    BOOL IP_status;
    BOOL SigBstr_status;
}DRV_SIG_BSTR_IP_ST;
/* Chow End */
typedef enum
{
    SDCVCOM,
    LGDVCOM,
    SDPVCOM,
    AUOVCOM,
} DRV_VCOM_TYPE;
typedef struct _DRV_CUSTOM_VCOM_ST
{ 
    DRV_VCOM_TYPE   vcom_type;
    UINT16          *vcom_value;
}  DRV_CUSTOM_VCOM_ST;

typedef enum
{
    DRV_VDEC_FMT_MPV,
    DRV_VDEC_FMT_MP4,
    DRV_VDEC_FMT_H264,
    DRV_VDEC_FMT_WMV,
    DRV_VDEC_FMT_H264VER,
    DRV_VDEC_FMT_MJPEG,
    DRV_VDEC_FMT_RV,
    DRV_VDEC_FMT_AVS,
    DRV_VDEC_FMT_VP6,
    DRV_VDEC_FMT_VP8,
    DRV_VDEC_FMT_RAW,
    DRV_VDEC_FMT_OGG,
    DRV_VDEC_FMT_JPG,
    DRV_VDEC_FMT_PNG,
    DRV_VDEC_FMT_H265,
    DRV_VDEC_FMT_MAX
}   DRV_VDEC_FMT_TYPE;

typedef struct _DRV_CUSTOM_VIDEO_TYPE
{ 
    DRV_VDEC_FMT_TYPE   eCodecType;
    UINT32              u4BitRate;
}  DRV_CUSTOM_VIDEO_TYPE;


/* 2K14 */
typedef struct _DRV_CUSTOM_SCART_ST
{ 
    
    UINT16          *scart_value;
}  DRV_CUSTOM_SCART_ST;


#if 1
typedef struct _WB_T
{
    UINT8                       ui1_magic[2];     // Magic Number
    UINT8                       ui1_color_temp ;  // 0~2 : 0-Cool, 1-Neutral, 2-Warm
    UINT16                      ui2_val;          // 0~1023 : 10bit value of RGB Gain/Offset.
} WB_T;

typedef struct _DYN_GAMMA_T
{
    UINT8       ui1_gamma_point;  // 0~10
    UINT16      ui2_r;            // 0~4095
    UINT16      ui2_g;            // 0~4095
    UINT16      ui2_b;            // 0~4095
    UINT8       ui1_magic_num[8];
} DYN_GAMMA_T;
typedef struct _GAMMA_PTN_RGB_T
{
	//UINT16 idx;	//for debug use only
	UINT16 LUMA_R;
	UINT16 LUMA_G; 
	UINT16 LUMA_B;
} GAMMA_PTN_RGB_T;

typedef struct _GAMMA_SET_PTN_RGB_T
{
	UINT8 ui1Rgb;
	UINT16 ui4Val;
} GAMMA_SET_PTN_RGB_T;

typedef struct _set_LNA_CTRL
{
	UINT16 *u1LNA;
	
} set_LNA_CTRL;

typedef struct _FAC_DCR_T
{
    BOOL        b_onoff;
    BOOL        b_get_bl_max;
    UINT8       ui1_bl_level;
} FAC_DCR_T;
typedef struct _FAC_EDID_T //Soar add 20101007 for VGA EDID
{
    BOOL        b_onoff;
    BOOL        b_finish;
} FAC_EDID_T;

typedef struct _FAC_SERVO_ADC_T
{
    UINT8       ui1_servo_pin;
    INT32       i4_val;

} FAC_SERVO_ADC_T;
typedef struct _FAC_TUNER_REG_T
{
    UINT16      ui2_ret;            /* Actual number of bytes read/write. */
    UINT8       ui1_sub_addr;       /* Serial interface word address. */
    UINT16      ui2_cnt;            /* Number of byte to read. Max = 256 bytes. */
    UINT8       aui1_val[256];      /* Pointer to user's buffer */
} FAC_TUNER_REG_T;

typedef struct _FAC_SIF_T
{
    UINT16      ui2_ret;            /* Actual number of bytes read/write. */
    UINT8       u1CHannelID;        /* SIF bus ID. */
    UINT16      u2ClkDiv;           /* Parameter of divider to divide 27Mhz for SCL. */
    UINT8       u1DevAddr;          /* Serial interface device address. */
    UINT8       u1WordAddrNum;      /* Serial interface word address length. */
    UINT32      u4WordAddr;         /* Serial interface word address. Format XX B2 B1 B0. B2 is sent on SIF bus first. */
    UINT8       au1Buf[256];        /* Pointer to user's buffer */
    UINT16      u2ByteCnt;          /* Number of byte to read. Max = 256 bytes. */
} FAC_SIF_T;
typedef struct _FAC_EEP_T
{
    UINT32 u4Offset;
    UINT32 u4Len;
    UINT8  * pu1Data;
} FAC_EEP_T;
typedef struct _WB_PBM_PQP_LUT_SET_T
{
    UINT16      ui2WbIndex;
    UINT16      aui2PqpLut[171];
} WB_PBM_PQP_LUT_SET_T;

typedef struct _WB_PBM_PQP_LUT_PRESET_T
{
    UINT8      ui1WbIndex;
    UINT8      ui1RgbIdx;
	UINT8      ui1WblvlIdx;
} WB_PBM_PQP_LUT_PRESET_T;

typedef struct _BL_CTRL_OPERATION_T
{
    UINT8      uiOpMode;
    UINT16     ui2OpParameter;
} BL_CTRL_OPERATION_T;
typedef enum
{
	DELTA_MODE,
	FINAL_MODE,
	NUM_OF_AUTO_GAIN_MODE
} D_AUTOWB_GAIN_MODE;
typedef enum
{
	AUTOWB_R,
	AUTOWB_G,
	AUTOWB_B,
	NUM_OF_AUTOWB_RGB_BLOCK
} D_AUTOWB_RGB;
typedef struct _WB_AUTO_GAIN_T
{
    D_AUTOWB_GAIN_MODE  AutoWbMode;
    D_AUTOWB_RGB        AutoWbRgb;
	UINT16              ui2Gain;
} WB_AUTO_GAIN_T;
typedef struct _WB_TCON_NVM_T
{
    UINT8 data_buffer[256];
    UINT16 subAddr;
    UINT16 length;
} WB_TCON_NVM_T;



typedef struct _WB_CLR_TEMP_DATA_T
{
	UINT16 wRGain;
	UINT16 wGGain; 
	UINT16 wBGain;
	UINT16 wROfst;
	UINT16 wGOfst;
	UINT16 wBOfst;
} WB_CLR_TEMP_DATA_T;

typedef struct _WB_CLR_TEMP_DATA_GET_T
{
    WB_CLR_TEMP_DATA_T wClrTempData;
	UINT16 ui2ClrTempIdx;
} WB_CLR_TEMP_DATA_GET_T;
#endif

typedef enum
{
	D_OSTG_MODULE_ALL = 0x0,
	D_OSTG_MODULE_XVYCC2,
	D_OSTG_MODULE_LCD,
	D_OSTG_MODULE_DITHER_BEFORE_OPTION3,
	D_OSTG_MODULE_GAMMA_OPTION3,
	D_OSTG_MODULE_DITHER_AFTER_OPTION3,
	D_OSTG_MODULE_R2Y
} D_OSTG_PQ_MODULE_E;
typedef struct _OSTG_PQ_ENABLE_T
{
	D_OSTG_PQ_MODULE_E eModule;
	UINT8	bOnOff;
} D_OSTG_PQ_ENABLE_T;

/* ================================== */
/* add for Maple BEPQ related start*/
//Pic mode
typedef enum {
    D_AP_PIC_MODE_VIVID,
    D_AP_PIC_MODE_STANDARD,
    D_AP_PIC_MODE_CUSTOM,
	D_AP_PIC_MODE_CINEMA_PRO,
	D_AP_PIC_MODE_CINEMA_HOME,
    D_AP_PIC_MODE_SPORTS,
	D_AP_PIC_MODE_ANIMATION,
	D_AP_PIC_MODE_PHOTO_VIVID,
    D_AP_PIC_MODE_PHOTO_STD,
	D_AP_PIC_MODE_PHOTO_CUST,
	D_AP_PIC_MODE_GAME,
	D_AP_PIC_MODE_GRAPHICS,
	D_AP_PIC_MODE_RESERVE1,
}D_AP_PIC_MODE;


typedef enum {
    D_AP_PIC_COL_TMP_COOL,
    D_AP_PIC_COL_TMP_NATURAL,
    D_AP_PIC_COL_TMP_WARM,
    D_AP_PIC_COL_TMP_EXPERT1,
    D_AP_PIC_COL_TMP_EXPERT2,
}D_AP_PIC_COL_TMP;

typedef enum {
    D_AP_PIC_NOISE_REDUCTION_OFF,
    D_AP_PIC_NOISE_REDUCTION_LOW,
    D_AP_PIC_NOISE_REDUCTION_MID,
    D_AP_PIC_NOISE_REDUCTION_HIGH,
    D_AP_PIC_NOISE_REDUCTION_AUTO,
}D_AP_PIC_NOISE_REDUCTION;


typedef enum {
    D_AP_PIC_MPEG_NOISE_REDUCTION_OFF,
    D_AP_PIC_MPEG_NOISE_REDUCTION_LOW,
    D_AP_PIC_MPEG_NOISE_REDUCTION_MID,
    D_AP_PIC_MPEG_NOISE_REDUCTION_HIGH,
    D_AP_PIC_MPEG_NOISE_REDUCTION_AUTO,
}D_AP_PIC_MPEG_NOISE_REDUCTION;

typedef enum {
	D_AP_PIC_REALITY_CREATION_OFF,
	D_AP_PIC_REALITY_CREATION_MANUAL,
	D_AP_PIC_REALITY_CREATION_AUTO,
} D_AP_PIC_REALITY_CREATION;

typedef enum {
	D_AP_PIC_MASTERED_IN_4K_OFF,
	D_AP_PIC_MASTERED_IN_4K_ON,
} D_AP_PIC_MASTERED_IN_4K;


typedef enum {
    D_AP_PIC_MOTION_FLOW_OFF,
    D_AP_PIC_MOTION_FLOW_STANDARD,
	D_AP_PIC_MOTION_FLOW_SMOOTH,
	D_AP_PIC_MOTION_FLOW_CLEAR,
	D_AP_PIC_MOTION_FLOW_IMPLUSE,
	D_AP_PIC_MOTION_FLOW_TRUE_CINEMA,
	D_AP_PIC_MOTION_FLOW_CUSTOM,
}D_AP_PIC_MOTION_FLOW;

typedef enum {
    D_AP_PIC_FILM_MODE_OFF,
	D_AP_PIC_FILM_MODE_LOW,
	D_AP_PIC_FILM_MODE_MID,
	D_AP_PIC_FILM_MODE_HIGH,
}D_AP_PIC_FILM_MODE;

typedef enum {
    D_AP_PIC_ADV_CONTRAST_ENHANCER_OFF,
    D_AP_PIC_ADV_CONTRAST_ENHANCER_LOW,
    D_AP_PIC_ADV_CONTRAST_ENHANCER_MID,
    D_AP_PIC_ADV_CONTRAST_ENHANCER_HIGH,
}D_AP_PIC_ADV_CONTRAST_ENHANCER;

typedef enum {
    D_AP_PIC_BLACK_CORRECTOR_OFF,
    D_AP_PIC_BLACK_CORRECTOR_LOW,
    D_AP_PIC_BLACK_CORRECTOR_MID,
    D_AP_PIC_BLACK_CORRECTOR_HIGH,
}D_AP_PIC_BLACK_CORRECTOR;

typedef enum {
D_AP_PIC_LED_DYNAMIC_CTRL_OFF,
D_AP_PIC_LED_DYNAMIC_CTRL_LOW,
D_AP_PIC_LED_DYNAMIC_CTRL_MID,
D_AP_PIC_LED_DYNAMIC_CTRL_HIGH,
} D_AP_PIC_LED_DYNAMIC_CTRL;


typedef enum {
    D_AP_PIC_LIVE_COLOR_OFF,
    D_AP_PIC_LIVE_COLOR_LOW,
    D_AP_PIC_LIVE_COLOR_MID,
    D_AP_PIC_LIVE_COLOR_HIGH,
}D_AP_PIC_LIVE_COLOR;

typedef enum {
	D_AP_PIC_SPEED_PREFERENCE_OFF,
	D_AP_PIC_SPEED_PREFERENCE_ON,
} D_AP_PIC_SPEED_PREFERENCE;

typedef enum {
D_AP_LED_MOTION_MODE_OFF,
D_AP_LED_MOTION_MODE_ON,
} D_AP_LED_MOTION_MODE;

typedef enum {
D_AP_XDR_OFF,
D_AP_XDR_LOW,
D_AP_XDR_MID,
D_AP_XDR_HIGH,
} D_AP_XDR;

typedef enum {
D_AP_DRANGE_UI_AUTO,
D_AP_DRANGE_UI_FULL,
D_AP_DRANGE_UI_LIMITED,
} D_AP_DRANGE_UI;

typedef enum {
D_AP_SMOOTH_GRADATION_OFF,
D_AP_SMOOTH_GRADATION_LOW,
D_AP_SMOOTH_GRADATION_MID,
D_AP_SMOOTH_GRADATION_HIGH,
D_AP_SMOOTH_GRADATION_AUTO,
} D_AP_SMOOTH_GRADATION_UI;

typedef enum {
D_AP_TRANSFER_FUNC_AUTO,
D_AP_TRANSFER_FUNC_SDR,
D_AP_TRANSFER_FUNC_HDR1,
D_AP_TRANSFER_FUNC_HDR2,
D_AP_TRANSFER_FUNC_HDR4,
} D_AP_TRANSFER_FUNC_UI;

typedef enum {
D_AP_PHOTO_COL_SPACE_UI_AUTO,
D_AP_PHOTO_COL_SPACE_UI_SRGB_BT709,
D_AP_PHOTO_COL_SPACE_UI_DCI,
D_AP_PHOTO_COL_SPACE_UI_ADOBE_RGB,
D_AP_PHOTO_COL_SPACE_UI_BT2020,

} D_AP_PHOTO_COL_SPACE_UI;


typedef struct DRV_AP_PIC_SETTING_T
{
    D_AP_PIC_MODE	ePicMode;
    UINT8	u1Backlight;
    UINT8	u1Contrast;
    UINT8	u1Brightness;
    UINT8	u1Color;
    UINT8	u1Hue;
    UINT8	u1Sharpness;
    D_AP_PIC_COL_TMP	eColTmp;
    D_AP_PIC_NOISE_REDUCTION	eNoiseReduction;
    D_AP_PIC_MPEG_NOISE_REDUCTION	eMpegNoiseReduction;
	D_AP_PIC_REALITY_CREATION	eRealityCreation;
	D_AP_PIC_MASTERED_IN_4K	eMasteredIn4K;
	INT16	i2Resolution;
	INT16	i2NoiseFiltering;
    D_AP_PIC_MOTION_FLOW	eMotionFlow;
	INT16	i2MotionFlowSmoothness;
	INT16	i2MotionFlowClearness;
    D_AP_PIC_FILM_MODE	eFilmMode;
    D_AP_PIC_ADV_CONTRAST_ENHANCER    eAdvContrastEnhancer;
    D_AP_PIC_BLACK_CORRECTOR	eBlackCorrector;
    INT16	i2Gamma;
	D_AP_PIC_LED_DYNAMIC_CTRL	eLedDynamicCtrl;
    D_AP_PIC_LIVE_COLOR	eLiveColor;
    INT16	i2RGain;
    INT16	i2GGain;
    INT16	i2BGain;
    INT16	i2RBias;
    INT16	i2GBias;
    INT16	i2BBias;
	D_AP_PIC_SPEED_PREFERENCE	eSpeedPreference;
	D_AP_LED_MOTION_MODE	eLedMotionMode;
	D_AP_XDR				eXdr;
	D_AP_DRANGE_UI		eDrange;
	D_AP_PHOTO_COL_SPACE_UI	eColorSpace;
	D_AP_SMOOTH_GRADATION_UI eSmoothGradation;
	D_AP_TRANSFER_FUNC_UI eTransferFunc;
}DRV_AP_PIC_SETTING_T;


//screen mode
typedef enum {
    D_AP_WIDE_MODE_WIDE_ZOOM,
    D_AP_WIDE_MODE_NORMAL,
    D_AP_WIDE_MODE_FULL,
    D_AP_WIDE_MODE_ZOOM,
    D_AP_WIDE_MODE_14_9,
    D_AP_WIDE_MODE_UNKNOWN,
}D_AP_WIDE_MODE;

typedef enum {
    D_AP_WIDE_DISPLAY_AREA_FULL, //+1
    D_AP_WIDE_DISPLAY_AREA_NORMAL,
    D_AP_WIDE_DISPLAY_AREA_MINUS_1,
}D_AP_WIDE_DISPLAY_AREA;

typedef enum {
    D_AP_WIDE_ZOOM_1X,
    D_AP_WIDE_ZOOM_2X,
    D_AP_WIDE_ZOOM_4X,
    D_AP_WIDE_ZOOM_FULL,
    D_AP_WIDE_ZOOM_UNKNOWN, 
}D_AP_WIDE_ZOOM;

typedef enum {
    D_AP_WIDE_PC_WIDE_MODE_NORMAL,
    D_AP_WIDE_PC_WIDE_MODE_FULL1,
    D_AP_WIDE_PC_WIDE_MODE_FULL2,
    D_AP_WIDE_PC_WIDE_MODE_UNKNOWN,
}D_AP_WIDE_PC_WIDE_MODE;

typedef struct DRV_AP_SCREEN_SETTING_T 
{
    D_AP_WIDE_MODE	eWideMode;
    D_AP_WIDE_DISPLAY_AREA	eDisplayArea;
    INT16	i2HCenter;
    INT16	i2VCenter;
    INT16	i2VerticalSize;
    D_AP_WIDE_ZOOM eZoom; // For USB and IPTV contents
    D_AP_WIDE_PC_WIDE_MODE	ePcWIdeMode; // For PC
    INT16	i2PcPhase; // For PC
    INT16	i2PcPitch; // For PC
    INT16	i2PcHCenter; // For PC
    INT16	i2PcVCenter; // For PC
}DRV_AP_SCREEN_SETTING_T;


//3d setting
typedef enum {
    D_AP_3D_DISP_OFF,
	D_AP_3D_DISP_ON,
    D_AP_3D_DISP_SBS,
    D_AP_3D_DISP_TAB,
}D_AP_3D_DISPLAY;

typedef enum {
	D_AP_3D_GLASS_BRIGHTNESS_LOW,
	D_AP_3D_GLASS_BRIGHTNESS_MID,
	D_AP_3D_GLASS_BRIGHTNESS_HIGH,
} D_AP_3D_GLASS_BRIGHTNESS;


typedef struct DRV_AP_3D_SETTING_T
{
    D_AP_3D_DISPLAY	e3dDisplay;
    INT16	i23dDepthAdjustment;
    D_AP_3D_GLASS_BRIGHTNESS	e3dGlassBrightness;
}DRV_AP_3D_SETTING_T;

//eco setting
typedef enum {
    D_AP_POWER_SAVING_OFF,
    D_AP_POWER_SAVING_LOW,
    D_AP_POWER_SAVING_HIGH,
    D_AP_POWER_SAVING_PICTURE_OFF,
}D_AP_POWER_SAVING;

typedef enum {
    D_AP_LIGHT_SENSOR_OFF,
    D_AP_LIGHT_SENSOR_ON,
}D_AP_LIGHT_SENSOR;

typedef struct DRV_AP_ECO_SETTING_T
{
    D_AP_POWER_SAVING	ePowerSaving;
    D_AP_LIGHT_SENSOR	eLightSensor;
}DRV_AP_ECO_SETTING_T;

//cust service setting
typedef struct DRV_AP_SERVICE_SETTING_T
{
    UINT16	u2RGain;
    UINT16	u2GGain;
    UINT16	u2BGain;
    UINT16	u2ROffset;
    UINT16	u2GOffset;
    UINT16	u2BOffset;
}DRV_AP_SERVICE_SETTING_T;

typedef enum {
D_AP_SERVICE_TRANS_SOC_TO_TCON,
D_AP_SERVICE_TRANS_TCON_TO_SOC,
D_AP_SERVICE_TRANS_INITIALIZE,
D_AP_SERVICE_TRANS_NONE,
} D_AP_SERVICE_TRANS;

typedef struct {
    D_AP_SERVICE_TRANS	eWBTransferMode;
    D_AP_SERVICE_TRANS	eMuraTransferMode;
    D_AP_SERVICE_TRANS	eCUCTransferMode;
} DRV_AP_SERVICE_TRANS_T;

typedef struct {
    UINT8	bMode;
    UINT16	u2Data;
} DRV_AP_SERVICE_VCOM_T;


//system related
typedef struct DRV_AP_HISTORY_DATA_T
{
    UINT32	u4TotalOpTime;
    UINT32	u4PanelOpTime;
}DRV_AP_HISTORY_DATA_T;

typedef enum {
    D_AP_SYS_PANEL_STATE_OFF,
    D_AP_SYS_PANEL_STATE_ON,
}D_AP_SYS_PANEL_STATE; 

typedef struct DRV_AP_POWER_STATE_T
{
    D_AP_SYS_PANEL_STATE	ePanelState;
}DRV_AP_POWER_STATE_T;

typedef enum {    
    D_AP_INPUT_TYPE_A_RF,   
    D_AP_INPUT_TYPE_D_RF,
    D_AP_INPUT_TYPE_COMPOSITE,
    D_AP_INPUT_TYPE_COMPONENT,
    D_AP_INPUT_TYPE_SCART,
    D_AP_INPUT_TYPE_A_PC,
    D_AP_INPUT_TYPE_HDMI,
    D_AP_INPUT_TYPE_APPLICATION,
    D_AP_INPUT_TYPE_SONY_PHOTO_APP,
    D_AP_INPUT_TYPE_JELLY_FISH,
    D_AP_INPUT_TYPE_SKYPE,
    D_AP_INPUT_TYPE_MIRACAST,
    D_AP_INPUT_TYPE_GENERAL_APP,
    D_AP_INPUT_TYPE_RESERVE_1,
    D_AP_INPUT_TYPE_RESERVE_2,
    D_AP_INPUT_TYPE_RESERVE_3,
    D_AP_INPUT_TYPE_UNKNOWN,
}D_AP_INPUT_TYPE;

typedef struct DRV_AP_INPUT_TYPE_T
{
    D_AP_INPUT_TYPE	eMainInputType;
	D_AP_INPUT_TYPE	eSubInputType;
}DRV_AP_INPUT_TYPE_T;

typedef struct _DRV_PARTITION_ID_T
{
    UINT32 PartID;
	UINT16 EreaseLen;
	BOOL fgEreaseDone;
}DRV_PARTITION_ID_T;
/* add for Maple BEPQ related end*/


typedef struct _TUNER_DIG_TS_MAX_FREQ_T
{
    BOOL                    b_setvalid;
    UINT8                   ui1_ts_maxfreq;
}TUNER_DIG_TS_MAX_FREQ_T;

typedef struct _TUNER_DIG_RESET_LNBSHORT_T
{
    BOOL                    b_setvalid;
    UINT8                   ui1_overload;
}TUNER_DIG_RESET_LNBSHORT_T;


/*Service is not Canal Digital, special setting should be applied to demod*/
typedef struct _TUNER_SAT_NON_CANAL_DIGITAL_SETTING_T
{
    BOOL                    b_setvalid;
    BOOL                    b_is_canal_digital;
    UINT8                   ui1_non_canal_digital_value[15];
}   TUNER_SAT_NON_CANAL_DIGITAL_SETTING_T;

/* Demod Parameter structure to tuner driver */
typedef struct
{
    TUNER_DIG_TS_MAX_FREQ_T                     t_ts_maxfreq;
    TUNER_DIG_RESET_LNBSHORT_T                  t_reset_lnbshort;
    TUNER_SAT_NON_CANAL_DIGITAL_SETTING_T       t_non_canal_digital_setting;
}DRV_CUSTOM_DEMOD_PARAMETER_T;

typedef enum {
D_AP_DEMO_MODE_OFF,
D_AP_DEMO_MODE_STANDBY,
D_AP_DEMO_MODE_X_REALITY,
D_AP_DEMO_MODE_X_REALITY_2,
D_AP_DEMO_MODE_MOTION_FLOW,
D_AP_DEMO_MODE_MOTION_FLOW_2,
D_AP_DEMO_MODE_TRILUMINOUS,
D_AP_DEMO_MODE_XDR,
D_AP_DEMO_MODE_XDR_BL,
} D_AP_DEMO_MODE;

typedef enum {
D_AP_DEMO_PATTERN_NONE,
D_AP_DEMO_PATTERN_SPLIT_L_ON,
D_AP_DEMO_PATTERN_SPLIT_R_ON,
D_AP_DEMO_PATTERN_SPLIT_2,
D_AP_DEMO_PATTERN_ACT_1,
D_AP_DEMO_PATTERN_ACT_2,
D_AP_DEMO_PATTERN_ACT_3,
D_AP_DEMO_PATTERN_FULL_ON,
D_AP_DEMO_PATTERN_FULL_OFF,
} D_AP_DEMO_PATTERN;


typedef struct _DRV_DEMO_MODE_SETTING_T
{
    D_AP_DEMO_MODE eDemoMode;	
	D_AP_DEMO_PATTERN eDemoPattern;
	UINT32	u4DemoOption;
}DRV_DEMO_MODE_SETTING_T;

typedef struct _DRV_DEMO_MASK_AREA_INFO_T
{
    UINT16 u2X;
    UINT16 u2Y;
    UINT16 u2Width;
    UINT16 u2Height;
}DRV_DEMO_MASK_AREA_INFO_T;

typedef struct _DRV_DEMO_MASK_AREA_SETTING_T
{
	UINT8	u1Num;
	DRV_DEMO_MASK_AREA_INFO_T	rectArea[8];
	UINT8	b4KCoordinate;  
}DRV_DEMO_MASK_AREA_SETTING_T;

typedef struct _DRV_ECS_CMD_TO_KO_T
{
	UINT8	u1ECSCmd[256];
	UINT32	u1ECSCmdSize;
}DRV_ECS_CMD_TO_KO_T;

typedef struct _DRV_CMD_TO_BE_IC_T
{
	UINT32	u4Len;
	UINT8	aui1Cmd[256];
}DRV_CMD_TO_BE_IC_T;

typedef struct _DRV_GEN_PARAM_BE_KO_T
{
	UINT32 u4Type;
	UINT8 u1Data[256];   //max size is 255
	UINT8 u1Size;
}DRV_GEN_PARAM_BE_KO_T; 
typedef struct _DRV_HPD_INFOFRAME_T
{
    //UINT8	u1Port;
	//UINT8	u1Len;
	UINT8	aui1InfoData[29];
}DRV_HPD_INFOFRAME_T;

/*
typedef struct _D_AUD_WSW_MODE_SETTING_T
{
    UINT8 u1WswLvl;    // 0:-12, 1: -11 ..... 24: +12
	UINT8 u1WswCutOff; // 0: 50Hz, 1: 55Hz .... 40: 250Hz
	UINT8 u1WswPhase;  //0: Normal, 1: Reverse
	UINT8 u1WswPower;  //0: Off, 1: Auto    
}D_AUD_WSW_MODE_SETTING_T;
*/

typedef enum {
    D_AP_WSW_OUTPUT_HP,
    D_AP_WSW_OUTPUT_LINE,
    D_AP_WSW_OUTPUT_WOOFER,
} D_AP_WSW_OUTPUT;


typedef struct _DRV_LED_ON_OFF_T
{
	BOOL  b_LED_RED_ON_OFF;
	BOOL  b_LED_GREEN_ON_OFF;
	BOOL  b_LED_BLUE_ON_OFF;
	BOOL  b_LED_WHITE_ON_OFF;
	BOOL  b_LED_AMBER_ON_OFF;
}DRV_LED_ON_OFF_T;

typedef enum {
   D_AP_AUDIO_OUTPUT_SPK,
   D_AP_AUDIO_OUTPUT_HP,
   D_AP_AUDIO_OUTPUT_SPDIF,
   D_AP_AUDIO_OUTPUT_ARC,
   D_AP_AUDIO_OUTPUT_SCART,
   D_AP_AUDIO_OUTPUT_OTHERS,
} D_AP_AUDIO_OUTPUT_ID;

typedef struct _DRV_AUDIO_OUTPUT_CTRL_T
{
   D_AP_AUDIO_OUTPUT_ID eOutputId;
   BOOL fgEnable;
}DRV_AUDIO_OUTPUT_CTRL_T;

typedef struct _DRV_AUDIO_OUTPUT_VOLUME_CTRL_T
{
   D_AP_AUDIO_OUTPUT_ID eOutputId;
   UINT16 level;
}DRV_AUDIO_OUTPUT_VOLUME_CTRL_T;


typedef struct _DRV_TEST_AUDIO_T
{
    UINT16 leftFreq;
    UINT16 rightFreq;
}DRV_TEST_AUDIO_T;

typedef struct _DRV_AUDIO_DB_LEVEL_T
{
    UINT8 u1SpkType;
    UINT8 u1Lvl;
}DRV_AUDIO_DB_LEVEL_T;

typedef struct _DRV_AUDIO_SOFT_MUTE_T
{
    UINT8 u1SpkType;
    UINT8 u1LchMute;
    UINT8 u1RchMute;
}DRV_AUDIO_SOFT_MUTE_T;

typedef struct _DRV_HDMI_SIGNAL_STATUS_T
{
    UINT8 u1Port;
    UINT8 u1SignalStatus;
}DRV_HDMI_SINGAL_STATUS_T;

//----------------
//SAPost Lib
//----------------

#ifdef CC_AUD_SAKURA_RENDER
#define SAPOST_API_VERSION_043   //added from v0.43

#define SAPOST_API_VERSION 0x0043

/*
 * enumarations and macros
 */

typedef int SAPostBool;

#define SAPOST_FALSE    0
#define SAPOST_TRUE     !(SAPOST_FALSE)

#define SAPOST_NULL 0

typedef enum {
    SAPOST_ERROR_OK = 0,
    SAPOST_ERROR_UNKNOWN = -1,  // UNKNOWN error
    SAPOST_ERROR_PAR = -2,      // Parameter error
    SAPOST_ERROR_BUSY = -3,     // System is busy
    SAPOST_ERROR_CANCELED = -4, // Process is canceled
    SAPOST_ERROR_RES = -5,      // Resource error
} SAPostError;

typedef int SAPostHandle;

#define SAPOST_HANDLE_INVALID -1

typedef enum {
    SAPOST_INPUT_NONE,
    SAPOST_INPUT_ANALOG_TUNER,
    SAPOST_INPUT_DIGITAL_TUNER,
    SAPOST_INPUT_NETWORK_STREAM,
    SAPOST_INPUT_STORAGE_STREAM,
    SAPOST_INPUT_SKYPE,             // Not used
    SAPOST_INPUT_COMPOSITE,
    SAPOST_INPUT_SCART,
    SAPOST_INPUT_COMPONENT,
    SAPOST_INPUT_HDMI,
    SAPOST_INPUT_HDMI_ANALOG,
    SAPOST_INPUT_ANALOG_PC,
    SAPOST_INPUT_SOUND_EFFECT,      // Not used
    SAPOST_INPUT_TONE_GENERATOR,
//------------------------------
    SAPOST_INPUT_MAX_NUM
} SAPostInput;

typedef enum {
    SAPOST_OUTPUT_SPEAKERS,
//------------------------------
    SAPOST_OUTPUT_MAX_NUM
} SAPostOutput;

typedef enum {
    SAPOST_OUTPUT_CONSTRUCTION_2,   // 2CH
    SAPOST_OUTPUT_CONSTRUCTION_2_1, // 2.1CH
    SAPOST_OUTPUT_CONSTRUCTION_2_2, // 2.2CH
    SAPOST_OUTPUT_CONSTRUCTION_4,   // 4CH
    SAPOST_OUTPUT_CONSTRUCTION_5_1, // 5.1CH
//------------------------------
    SAPOST_OUTPUT_CONSTRUCTION_MAX_NUM
} SAPostOutputConstruction;

typedef enum {
    SAPOST_CHANNELS_MONO,
    SAPOST_CHANNELS_MONO_1,
    SAPOST_CHANNELS_DUAL_MONO,
    SAPOST_CHANNELS_DUAL_MONO_1,
    SAPOST_CHANNELS_STEREO,
    /* front + front-side + rear-side + sub-woofer */
    SAPOST_CHANNELS_2_0_0_1,
    SAPOST_CHANNELS_2_0_1_1,
    SAPOST_CHANNELS_2_0_1_0,
    SAPOST_CHANNELS_2_0_2_0,
    SAPOST_CHANNELS_2_0_2_1,
    SAPOST_CHANNELS_2_1_0_0,    // Not used
    SAPOST_CHANNELS_2_1_0_1,    // Not used
    SAPOST_CHANNELS_2_1_1_0,    // Not used
    SAPOST_CHANNELS_2_1_1_1,    // Not used
    SAPOST_CHANNELS_2_1_2_0,    // Not used
    SAPOST_CHANNELS_2_1_2_1,    // Not used
    SAPOST_CHANNELS_2_2_0_0,    // Not used
    SAPOST_CHANNELS_2_2_0_1,    // Not used
    SAPOST_CHANNELS_2_2_1_0,    // Not used
    SAPOST_CHANNELS_2_2_1_1,    // Not used
    SAPOST_CHANNELS_2_2_2_0,    // Not used
    SAPOST_CHANNELS_2_2_2_1,    // Not used
    SAPOST_CHANNELS_3_0_0_0,
    SAPOST_CHANNELS_3_0_0_1,
    SAPOST_CHANNELS_3_0_1_0,
    SAPOST_CHANNELS_3_0_1_1,
    SAPOST_CHANNELS_3_0_2_0,
    SAPOST_CHANNELS_3_0_2_1,
    SAPOST_CHANNELS_3_1_0_0,    // Not used
    SAPOST_CHANNELS_3_1_0_1,    // Not used
    SAPOST_CHANNELS_3_1_1_0,    // Not used
    SAPOST_CHANNELS_3_1_1_1,    // Not used
    SAPOST_CHANNELS_3_1_2_0,    // Not used
    SAPOST_CHANNELS_3_1_2_1,    // Not used
    SAPOST_CHANNELS_3_2_0_0,    // Not used
    SAPOST_CHANNELS_3_2_0_1,    // Not used
    SAPOST_CHANNELS_3_2_1_0,    // Not used
    SAPOST_CHANNELS_3_2_1_1,    // Not used
    SAPOST_CHANNELS_3_2_2_0,    // Not used
    SAPOST_CHANNELS_3_2_2_1,    // Not used
    SAPOST_CHANNELS_UNKNOWN
} SAPostChannels;

typedef enum {
    SAPOST_SAMPLING_RATE_8K,
    SAPOST_SAMPLING_RATE_11_025K,
    SAPOST_SAMPLING_RATE_12K,
    SAPOST_SAMPLING_RATE_16K,
    SAPOST_SAMPLING_RATE_22_05K,
    SAPOST_SAMPLING_RATE_24K,
    SAPOST_SAMPLING_RATE_32K,
    SAPOST_SAMPLING_RATE_44_1K,
    SAPOST_SAMPLING_RATE_48K,
    SAPOST_SAMPLING_RATE_64K,
    SAPOST_SAMPLING_RATE_88_2K,
    SAPOST_SAMPLING_RATE_96K,
    SAPOST_SAMPLING_RATE_128K,
    SAPOST_SAMPLING_RATE_176_4K,
    SAPOST_SAMPLING_RATE_192K,
    SAPOST_SAMPLING_RATE_UNKNOWN
} SAPostSamplingRate;
#define SAPOST_SAMPLING_RATE_NUM SAPOST_SAMPLING_RATE_UNKNOWN

typedef enum {
    SAPOST_CODEC_LPCM,
    SAPOST_CODEC_ATRAC3,
    SAPOST_CODEC_ATRACX,
    SAPOST_CODEC_WAV,
    SAPOST_CODEC_AIFF,
    SAPOST_CODEC_MPEG1_L1,
    SAPOST_CODEC_MPEG1_L2,
    SAPOST_CODEC_MPEG1_L3,
    SAPOST_CODEC_MPEG2_BC,
    SAPOST_CODEC_MPEG2_BC_MC,
    SAPOST_CODEC_MPEG2_AAC,
    SAPOST_CODEC_MPEG4_HE_AAC,
    SAPOST_CODEC_AC3,
    SAPOST_CODEC_AC3_PLUS,
    SAPOST_CODEC_WMA,
    SAPOST_CODEC_WMA_PRO,
    SAPOST_CODEC_DRA,
    SAPOST_CODEC_VORBIS,
    SAPOST_CODEC_DTS,
    SAPOST_CODEC_COOK,
    SAPOST_CODEC_SIPRO,
    SAPOST_CODEC_MU_LAW,
    SAPOST_CODEC_G711,
    SAPOST_CODEC_FLAC,
    SAPOST_CODEC_SBC,
    SAPOST_CODEC_ALAC,
    SAPOST_CODEC_DSD,
    SAPOST_CODEC_OPUS,
    SAPOST_CODEC_UNKNOWN
} SAPostCodec;

typedef enum {
    SAPOST_BIT_RATE_TYPE_CBR,
    SAPOST_BIT_RATE_TYPE_VBR,
    SAPOST_BIT_RATE_TYPE_ABR,
    SAPOST_BIT_RATE_TYPE_UNKNOWN
} SAPostBitRateType;

typedef enum {
    SAPOST_GAIN_ADJUST_MODE_AUTO,
    SAPOST_GAIN_ADJUST_MODE_OFF,
    SAPOST_GAIN_ADJUST_MODE_LOW,
    SAPOST_GAIN_ADJUST_MODE_MODE_HIGH,
    SAPOST_GAIN_ADJUST_MODE_MODE_UNKNOWN
} SAPostGainAdjustmentMode;

typedef enum {
    SAPOST_DOLBY_DIGITAL_DYNAMIC_RANGE_STANDARD,
    SAPOST_DOLBY_DIGITAL_DYNAMIC_RANGE_COMPRESSED,
    SAPOST_DOLBY_DIGITAL_DYNAMIC_RANGE_UNKNOWN,
} SAPostDolbyDigitalDynamicRange;

typedef enum {
    SAPOST_HE_AAC_DYNAMIC_RANGE_STANDARD,
    SAPOST_HE_AAC_DYNAMIC_RANGE_COMPRESSED,
    SAPOST_HE_AAC_DYNAMIC_RANGE_UNKNOWN,
} SAPostHeAacDynamicRange;

typedef enum {
    SAPOST_TV_POSITION_TABLE_TOP,
    SAPOST_TV_POSITION_WALL_MOUNT,
    SAPOST_TV_POSITION_UNKNOWN,
} SAPostTvPosition;

typedef enum {
    SAPOST_SPEAKERS_TV_SPEAKERS,
    SAPOST_SPEAKERS_AUDIO_SYSTEM,
    SAPOST_SPEAKERS_SPDIF_SOUND_BAR,
    SAPOST_SPEAKERS_BLUETOOTH,
    SAPOST_SPEAKERS_UNKNOWN,
} SAPostSpeakers;

typedef enum {
    SAPOST_DIGITAL_OUT_PCM,
    SAPOST_DIGITAL_OUT_AUTO,
    SAPOST_DIGITAL_OUT_AUTO1,
    SAPOST_DIGITAL_OUT_AUTO2,
    SAPOST_DIGITAL_OUT_UNKNOWN
} SAPostDigitalOut;

typedef enum {
    SAPOST_ANALOG_OUT_HEADPHONE,
    SAPOST_ANALOG_OUT_LINE_OUT_FIXED,
    SAPOST_ANALOG_OUT_LINE_OUT_VARIABLE,
    SAPOST_ANALOG_OUT_SOUND_BAR,    // Not used
    SAPOST_ANALOG_OUT_SUBWOOFER,
    SAPOST_ANALOG_OUT_WIRELESS_SUBWOOFER,
    SAPOST_ANALOG_OUT_UNKNOWN
} SAPostAnalogOut;

typedef enum {
    SAPOST_USAGE_NORMAL_MODE,
    SAPOST_USAGE_SERVICE_MODE,
    SAPOST_USAGE_UNKNOWN,
} SAPostUsage;

typedef enum {
    SAPOST_MODEL_TYPE_2_0ch,
    SAPOST_MODEL_TYPE_2_1ch,
    SAPOST_MODEL_TYPE_2_2ch,
    SAPOST_MODEL_TYPE_4_2ch,
    SAPOST_MODEL_TYPE_UNKNOWN,
} SAPostModelType;

typedef enum {
    SAPOST_MODEL_DATA_AQ_STANDARD = 0, /* no country selected or other than following countries */
    SAPOST_MODEL_DATA_AQ_ALBANIA,
    SAPOST_MODEL_DATA_AQ_ALGERIA,
    SAPOST_MODEL_DATA_AQ_ARGENTINA,
    SAPOST_MODEL_DATA_AQ_ARMENIA,
    SAPOST_MODEL_DATA_AQ_AUSTRALIA,
    SAPOST_MODEL_DATA_AQ_AUSTRIA,
    SAPOST_MODEL_DATA_AQ_AZERBAIJAN,
    SAPOST_MODEL_DATA_AQ_BAHRAIN,
    SAPOST_MODEL_DATA_AQ_BELARUS,
    SAPOST_MODEL_DATA_AQ_BELGIUM,
    SAPOST_MODEL_DATA_AQ_BELIZE,
    SAPOST_MODEL_DATA_AQ_BOLIVIA,
    SAPOST_MODEL_DATA_AQ_BRAZIL,
    SAPOST_MODEL_DATA_AQ_BRUNEI_DARUSSALAM,
    SAPOST_MODEL_DATA_AQ_BULGARIA,
    SAPOST_MODEL_DATA_AQ_CANADA,
    SAPOST_MODEL_DATA_AQ_CHILE,
    SAPOST_MODEL_DATA_AQ_CHINA,
    SAPOST_MODEL_DATA_AQ_COLOMBIA,
    SAPOST_MODEL_DATA_AQ_COSTA_RICA,
    SAPOST_MODEL_DATA_AQ_CROATIA,
    SAPOST_MODEL_DATA_AQ_CYPRUS,
    SAPOST_MODEL_DATA_AQ_CZECH,
    SAPOST_MODEL_DATA_AQ_DENMARK,
    SAPOST_MODEL_DATA_AQ_DOMINICAN_REPUBLIC,
    SAPOST_MODEL_DATA_AQ_ECUADOR,
    SAPOST_MODEL_DATA_AQ_EGYPT,
    SAPOST_MODEL_DATA_AQ_EL_SALVADOR,
    SAPOST_MODEL_DATA_AQ_ESTONIA,
    SAPOST_MODEL_DATA_AQ_FINLAND,
    SAPOST_MODEL_DATA_AQ_FRANCE,
    SAPOST_MODEL_DATA_AQ_GERMANY,
    SAPOST_MODEL_DATA_AQ_GREECE,
    SAPOST_MODEL_DATA_AQ_GEORGIA,
    SAPOST_MODEL_DATA_AQ_GUATEMALA,
    SAPOST_MODEL_DATA_AQ_HONDURAS,
    SAPOST_MODEL_DATA_AQ_HONG_KONG,
    SAPOST_MODEL_DATA_AQ_HUNGARY,
    SAPOST_MODEL_DATA_AQ_ICELAND,
    SAPOST_MODEL_DATA_AQ_INDIA,
    SAPOST_MODEL_DATA_AQ_INDONESIA,
    SAPOST_MODEL_DATA_AQ_IRAN,
    SAPOST_MODEL_DATA_AQ_IRELAND,
    SAPOST_MODEL_DATA_AQ_ITALY,
    SAPOST_MODEL_DATA_AQ_ISRAEL,
    SAPOST_MODEL_DATA_AQ_JAPAN,
    SAPOST_MODEL_DATA_AQ_JORDAN,
    SAPOST_MODEL_DATA_AQ_KAZAKHSTAN,
    SAPOST_MODEL_DATA_AQ_KUWAIT,
    SAPOST_MODEL_DATA_AQ_LATVIA,
    SAPOST_MODEL_DATA_AQ_LEBANON,
    SAPOST_MODEL_DATA_AQ_LEICHTENSTEIN,
    SAPOST_MODEL_DATA_AQ_LITHUANIA,
    SAPOST_MODEL_DATA_AQ_LUXEMBURG,
    SAPOST_MODEL_DATA_AQ_MACAU,
    SAPOST_MODEL_DATA_AQ_MACEDONIA,
    SAPOST_MODEL_DATA_AQ_MALTA,
    SAPOST_MODEL_DATA_AQ_MALAYSIA,
    SAPOST_MODEL_DATA_AQ_MEXICO,
    SAPOST_MODEL_DATA_AQ_MONACO,
    SAPOST_MODEL_DATA_AQ_MOROCCO,
    SAPOST_MODEL_DATA_AQ_NETHERLANDS,
    SAPOST_MODEL_DATA_AQ_NEW_ZEALAND,
    SAPOST_MODEL_DATA_AQ_NORTH_KOREA,
    SAPOST_MODEL_DATA_AQ_NORWAY,
    SAPOST_MODEL_DATA_AQ_OMAN,
    SAPOST_MODEL_DATA_AQ_PAKISTAN,
    SAPOST_MODEL_DATA_AQ_PANAMA,
    SAPOST_MODEL_DATA_AQ_PERU,
    SAPOST_MODEL_DATA_AQ_PHILIPPINES,
    SAPOST_MODEL_DATA_AQ_POLAND,
    SAPOST_MODEL_DATA_AQ_PORTUGAL,
    SAPOST_MODEL_DATA_AQ_PUERTO_RICO,
    SAPOST_MODEL_DATA_AQ_QATAR,
    SAPOST_MODEL_DATA_AQ_ROMANIA,
    SAPOST_MODEL_DATA_AQ_RUSSIA,
    SAPOST_MODEL_DATA_AQ_SAUDI_ARABIA,
    SAPOST_MODEL_DATA_AQ_SINGAPORE,
    SAPOST_MODEL_DATA_AQ_SLOVAKIA,
    SAPOST_MODEL_DATA_AQ_SLOVENIA,
    SAPOST_MODEL_DATA_AQ_SOUTH_AFRICA,
    SAPOST_MODEL_DATA_AQ_SOUTH_KOREA,
    SAPOST_MODEL_DATA_AQ_SPAIN,
    SAPOST_MODEL_DATA_AQ_SWEDEN,
    SAPOST_MODEL_DATA_AQ_SWITZERLAND,
    SAPOST_MODEL_DATA_AQ_SYRIA,
    SAPOST_MODEL_DATA_AQ_TAIWAN,
    SAPOST_MODEL_DATA_AQ_THAILAND,
    SAPOST_MODEL_DATA_AQ_TRINIDAD_TOBAGO,
    SAPOST_MODEL_DATA_AQ_TUNISIA,
    SAPOST_MODEL_DATA_AQ_TURKEY,
    SAPOST_MODEL_DATA_AQ_UK,
    SAPOST_MODEL_DATA_AQ_UKRAINE,
    SAPOST_MODEL_DATA_AQ_UNITED_ARAB_EMIRATES,
    SAPOST_MODEL_DATA_AQ_UNITED_STATES,
    SAPOST_MODEL_DATA_AQ_URUGUAY,
    SAPOST_MODEL_DATA_AQ_UZBEKISTAN,
    SAPOST_MODEL_DATA_AQ_VENEZUELA,
    SAPOST_MODEL_DATA_AQ_VIETNAM,
    SAPOST_MODEL_DATA_AQ_YEMEN,
    SAPOST_MODEL_DATA_AQ_ZIMBABWE,
    SAPOST_MODEL_DATA_AQ_UNKNOWN, 
} SAPostModelDataAq;

typedef enum { 
    SAPOST_MODEL_CHASSIS_TYPE_2K,
    SAPOST_MODEL_CHASSIS_TYPE_4K,
    SAPOST_MODEL_CHASSIS_TYPE_M2_TYPE0, //add v0.30
    SAPOST_MODEL_CHASSIS_TYPE_M2_TYPE1, //add v0.30
    SAPOST_MODEL_CHASSIS_TYPE_M2_TYPE2, //M2 model(for FY17), add v0.42
    SAPOST_MODEL_CHASSIS_TYPE_M2_TYPE3, //M2+BE model(for FY17), add v0.42
    SAPOST_MODEL_CHASSIS_TYPE_UNKNOWN,
} SAPostModelChassisType;

typedef enum {
    SAPOST_DSP_TYPE_DRC,
    SAPOST_DSP_TYPE_DRC_MONO,
    SAPOST_DSP_TYPE_3DRC,
    SAPOST_DSP_TYPE_IIR18,
    SAPOST_DSP_TYPE_IIR7,
    SAPOST_DSP_TYPE_IIR5,
    SAPOST_DSP_TYPE_BASS_TREBLE,
    SAPOST_DSP_TYPE_UNKNOWN,
} SAPostDspType;

typedef enum {
    SAPOST_SOUND_MODE_STANDARD,
    SAPOST_SOUND_MODE_CINEMA,
    SAPOST_SOUND_MODE_LIVE_MUSIC,
    SAPOST_SOUND_MODE_DEMO,
    SAPOST_SOUND_MODE_LIVE_FOOTBALL,
    SAPOST_SOUND_MODE_NEWS, //add v0.40
    SAPOST_SOUND_MODE_UNKNOWN,
} SAPostSoundMode;
#define SAPOST_SOUND_MODE_SPORTS SAPOST_SOUND_MODE_LIVE_FOOTBALL //add v0.40

typedef enum {
    SAPOST_SURROUND_OFF,
    SAPOST_SURROUND_ON,
    SAPOST_SURROUND_AUTO,
    SAPOST_SURROUND_UNKNOWN,
} SAPostSurround;

typedef enum {
    SAPOST_SOUND_UP_SCALING_OFF,
    SAPOST_SOUND_UP_SCALING_ON,
    SAPOST_SOUND_UP_SCALING_UNKNOWN,
} SAPostSoundUpScaling;

typedef enum {
    SAPOST_ADVANCED_AUTO_VOLUME_OFF,
    SAPOST_ADVANCED_AUTO_VOLUME_ON,
    SAPOST_ADVANCED_AUTO_VOLUME_UNKNOWN,
} SAPostAdvancedAutoVolume;

typedef enum {
    SAPOST_NIGHT_MODE_OFF,
    SAPOST_NIGHT_MODE_ON,
    SAPOST_NIGHT_MODE_UNKNOWN,
} SAPostNightMode;

typedef enum {
    SAPOST_NARRATION_NORMAL,
    SAPOST_NARRATION_CANCEL,
    SAPOST_NARRATION_UNKNOWN,
} SAPostNarration;

typedef enum {
    SAPOST_SOUND_BOOSTER_OFF,
    SAPOST_SOUND_BOOSTER_ON,
    SAPOST_SOUND_BOOSTER_UNKNOWN,
} SAPostSoundBooster;

typedef enum {
    SAPOST_SRC_ENABLE_ADMIX,
    SAPOST_SRC_ENABLE_MIX0,
    SAPOST_SRC_ENABLE_MIX1,	
    SAPOST_SRC_ENABLE_MIX2,
    SAPOST_SRC_ENABLE_MIX3,
    SAPOST_SRC_ENABLE_DEC0,
    SAPOST_SRC_ENABLE_DEC1,
    SAPOST_SRC_ENABLE_DEC2,
    SAPOST_SRC_ENABLE_RSV0,
    SAPOST_SRC_ENABLE_RSV1,
    SAPOST_SRC_ENABLE_RSV2,
    SAPOST_SRC_ENABLE_RSV3,
    SAPOST_SRC_ENABLE_RSV4,
    SAPOST_SRC_ENABLE_RSV5,
    SAPOST_SRC_ENABLE_RSV6,
    SAPOST_SRC_ENABLE_RSV7,
    SAPOST_SRC_ENABLE_RSV8,
    SAPOST_SRC_ENABLE_RSV9,
    SAPOST_SRC_ENABLE_RSV10,
    SAPOST_SRC_ENABLE_RSV11,
    SAPOST_SRC_ENABLE_RSV12,
    SAPOST_SRC_ENABLE_RSV13,
    SAPOST_SRC_ENABLE_RSV14,
    SAPOST_SRC_ENABLE_RSV15,
    SAPOST_SRC_ENABLE_RSV16,
    SAPOST_SRC_ENABLE_RSV17,
    SAPOST_SRC_ENABLE_RSV18,
    SAPOST_SRC_ENABLE_RSV19,
    SAPOST_SRC_ENABLE_RSV20,
    SAPOST_SRC_ENABLE_RSV21,
    SAPOST_SRC_ENABLE_RSV22,
    SAPOST_SRC_ENABLE_RSV23,
    SAPOST_SRC_ENABLE_MAX,
} SAPostSrcEnableId;


typedef enum {
	SAPOST_AUDIO_ITEM_ID_CONFIG_ALL=0x00,
    SAPOST_AUDIO_ITEM_ID_SOUND_MODE, //SAPostSoundMode
    SAPOST_AUDIO_ITEM_ID_SURROUND, //SAPostSurround
    SAPOST_AUDIO_ITEM_ID_SURROUND_EFFECT, //unsigned char
    SAPOST_AUDIO_ITEM_ID_SOUND_UP_SCALING, //SAPostSoundUpScaling
    SAPOST_AUDIO_ITEM_ID_SOUND_BOOSTER, //SAPostSoundBooster
    SAPOST_AUDIO_ITEM_ID_EQUALIZER_125HZ, //char
    SAPOST_AUDIO_ITEM_ID_EQUALIZER_250HZ, //char
    SAPOST_AUDIO_ITEM_ID_EQUALIZER_500HZ, //char
    SAPOST_AUDIO_ITEM_ID_EQUALIZER_1KHZ, //char
    SAPOST_AUDIO_ITEM_ID_EQUALIZER_2KHZ, //char
    SAPOST_AUDIO_ITEM_ID_EQUALIZER_4KHZ, //char
    SAPOST_AUDIO_ITEM_ID_EQUALIZER_8KHZ, //char
    SAPOST_AUDIO_ITEM_ID_VOICE_ZOOM, //char
    SAPOST_AUDIO_ITEM_ID_NIGHT_MODE, //SAPostNightMode
    SAPOST_AUDIO_ITEM_ID_ADVANCED_AUTO_VOLUME, //SAPostAdvancedAutoVolume
    SAPOST_AUDIO_ITEM_ID_VOLUME_OFFSET, //char
    SAPOST_AUDIO_ITEM_ID_BALANCE, //char
    SAPOST_AUDIO_ITEM_ID_NARRATION, //SAPostNarration
    SAPOST_AUDIO_ITEM_ID_WOOFER_CUT_OFF_FREQUENCY, //unsignec char

    SAPOST_AUDIO_ITEM_ID_GENERAL_CONFIG_ALL=0x30,
    SAPOST_AUDIO_ITEM_ID_SPEAKERS, //SAPostSpeakers
    SAPOST_AUDIO_ITEM_ID_DIGITAL_AUDIO_OUT, //SAPostDigitalOut
    SAPOST_AUDIO_ITEM_ID_ANALOG_OUT, //SAPostAnalogOut
    SAPOST_AUDIO_ITEM_ID_INPUT_LEVEL_OFFSET, //char
    SAPOST_AUDIO_ITEM_ID_WOOFER_LEVEL, //char
    SAPOST_AUDIO_ITEM_ID_MPEG_AUDIO_LEVEL, //char
    SAPOST_AUDIO_ITEM_ID_HEAAC_AUDIO_LEVEL, //char
    SAPOST_AUDIO_ITEM_ID_DOLBY_DIGITAL_DYNAMIC_RANGE, //SAPostDolbyDigitalDynamicRange
    SAPOST_AUDIO_ITEM_ID_HEAAC_DYNAMIC_RANGE, //SAPostHeAacDynamicRange
    SAPOST_AUDIO_ITEM_ID_TV_POSITION, //SAPostTvPosition
    SAPOST_AUDIO_ITEM_ID_USAGE, //SAPostUsage
    SAPOST_AUDIO_ITEM_ID_MODEL_TYPE, //SAPostModelType
    SAPOST_AUDIO_ITEM_ID_MODEL_DATA_AQ, //SAPostModelDataAq
    SAPOST_AUDIO_ITEM_ID_MODEL_CHASSIS_TYPE, //SAPostChassisType
    SAPOST_AUDIO_ITEM_ID_SPEAKER_VOLUME, //unsigned char

    SAPOST_AUDIO_ITEM_ID_STREAM_INFO_ALL=0x60,
    SAPOST_AUDIO_ITEM_ID_INPUT, //SAPostInput
    SAPOST_AUDIO_ITEM_ID_INPUT_CODEC, //SAPostCodec
    SAPOST_AUDIO_ITEM_ID_INPUT_SAMPLING_RATE, //SAPostSamplingRate
    SAPOST_AUDIO_ITEM_ID_INPUT_BIT_TYPE, //SAPostBitRateType
    SAPOST_AUDIO_ITEM_ID_INPUT_BIT_RATE, //unsigned int
    SAPOST_AUDIO_ITEM_ID_INPUT_CHANNEL_CONFIG, //SAPostChannels
    SAPOST_AUDIO_ITEM_ID_INPUT_SAPOST_INPUT_SAMPLING_RATE, //SAPostSamplingRate
    SAPOST_AUDIO_ITEM_ID_INPUT_BIT_LENGTH, //unsigned int
    SAPOST_AUDIO_ITEM_ID_INPUT_SRC_EN, //unsigned int

    SAPOST_AUDIO_ITEM_ID_OUTPUT_INFO_ALL=0x80,	
    SAPOST_AUDIO_ITEM_ID_OUTPUT_SAMPLING_RATE, //SAPostSamplingRate
    SAPOST_AUDIO_ITEM_ID_OUTPUT_BIT_RATE, //unsigned int
    SAPOST_AUDIO_ITEM_ID_OUTPUT_CHANNEL_CONFIG, //SAPostChannels
    
    SAPOST_AUDIO_ITEM_ID_BT_INFO_ALL=0x90,
    SAPOST_AUDIO_ITEM_ID_BT_CONNECT, //SAPostBtConnection
    SAPOST_AUDIO_ITEM_ID_BT_DEVICE_PROFILE, //SAPostBtDeviceProfile
    
    SAPOST_AUDIO_ITEM_ID_MODEL_VARIATION_INFO=0xA0,	//(unsigned char)*255
    SAPOST_AUDIO_ITEM_ID_PICTURE_RESET_MODE, //SAPostBool
} SAPostAudioItemId;

typedef enum {
    SAPOST_BT_DISCONNECT,
    SAPOST_BT_CONNECT,
    SAPOST_BT_CONNECT_UNKNOWN,
} SAPostBtConnection;

typedef enum {
    SAPOST_BT_PROFILE_SBC,
    SAPOST_BT_PROFILE_LDAC,
    SAPOST_BT_PROFILE_UNKNOWN,
} SAPostBtDeviceProfile;


/*
 * Structures
 */

typedef struct SAPostDirection {
    char            m_angle;
    unsigned char   m_direction;
    unsigned short  m_distance;
} SAPostDirection;

#define SAPOST_DIRECTION_MAX    8

typedef struct SAPostDirections  {
    unsigned int    m_elements;
    SAPostDirection m_direction[SAPOST_DIRECTION_MAX];
} SAPostDirections;

typedef struct {
    unsigned char         m_input;
    unsigned char         m_codec;
    unsigned char  m_samplingRate;
    unsigned char   m_bitRateType;
    unsigned int        m_bitRate;
    unsigned char      m_channels;
    unsigned char  m_sapostInputSamplingRate; // Set ASRC output(SONY Audio Post input) sampling rate(48KHi
    unsigned int      m_bitLength;
    unsigned int     m_srcEn;
} SAPostStreamInfo;

typedef struct {
    SAPostSamplingRate  m_samplingRate; // Not used
    unsigned int        m_bitRate;      // Not used
    SAPostChannels      m_channels;     // STEREO, 2_0_2_0 or 2_0_2_1
    SAPostDirections    m_directions;   // Not used
} SAPostOutputInfo;

typedef struct {
unsigned int    m_sampleNum;        // bit order/ fixed value(128)
    int *       m_fC;
    int *       m_fL;
    int *       m_fR;
    int *       m_sC;
    int *       m_sL;
    int *       m_sR;
    int *       m_lfe;
} SAPostBuffer;

typedef struct {
    SAPostOutput    m_output;   // fixed to SPEAKERS(not used)
    SAPostBuffer    m_buffer;
} SAPostOutputBuffer;

typedef struct {
    unsigned char                  m_speakers;
//  SAPostLineOut                   m_lineOut;
//  SAPostSpdifOut                  m_spdifOutputSource;
    unsigned char                m_digitalOut;
    unsigned char                 m_analogOut;
    char                            m_inputLevelOffset;
    char                            m_wooferLevel;
    char                            m_mpegAudioLevel;
    char                            m_heAacAudioLevel;
    unsigned char  m_dolbyDigitalDynamicRange;
    unsigned char         m_heAacDynamicRange;
    unsigned char                m_tvPosition;
    unsigned char                     m_usage;
    unsigned char                 m_modelType;
    unsigned char               m_modelDataAq;
    unsigned char          m_modelChassisType; //modify mis-description(on v0.17)
    unsigned char                   m_speakerVolume;
} SAPostGeneralConfig;

typedef struct {
    unsigned char             m_soundMode;
    unsigned char              m_surround;
    unsigned char               m_surroundEffect;
    unsigned char        m_soundUpScaling;
    unsigned char          m_soundBooster;
    char                        m_equalizer125Hz;
    char                        m_equalizer250Hz;
    char                        m_equalizer500Hz;
    char                        m_equalizer1KHz;
    char                        m_equalizer2KHz;
    char                        m_equalizer4KHz;
    char                        m_equalizer8KHz;
    char                        m_voiceZoom;
    unsigned char             m_nightMode;
    unsigned char    m_advancedAutoVolume;
    char                        m_volumeOffset;
    char                        m_balance;
    unsigned char             m_narration;
    unsigned char               m_wooferCutoffFrequency;
} SAPostConfig;
#define SAPOST_VARIABLE_DATA_MAX    2048

typedef struct {
    char m_data[SAPOST_VARIABLE_DATA_MAX];
} SAPostVariableData;

typedef struct {
    unsigned int            m_size;
    SAPostVariableData *    m_data;
} SAPostVariableInfo;

#define SAPOST_DSP_EXECUTE_DATA_NUM_MAX 255
typedef struct {
    SAPostDspType  m_type;
    unsigned int   m_data[SAPOST_DSP_EXECUTE_DATA_NUM_MAX];
    unsigned char  m_dataSize;
} SAPostDspExecuteParam;

//add v0.41
typedef struct {
    SAPostBool m_isPictureResetMode;
} SAPostSpecialModeInfo;

//add v0.42 and modified v0.43
typedef struct {
    unsigned int m_id; /* SAPostAudioItemId */
    unsigned int m_dataSize;
    unsigned int m_data[64];
} SAPostAudioItemCommandRequestParam;
//add v0.42 and modified v0.43
typedef struct {
    SAPostError m_result;
    unsigned int m_dataSize;
    unsigned int m_data[64];
} SAPostAudioItemCommandReplyParam;
//add v0.43
typedef struct {
    SAPostBtConnection m_connect;
    SAPostBtDeviceProfile m_devProfile;
} SAPostBtInfo;

#endif /* CC_AUD_SAKURA_RENDER */

// drv_MapleAudApi.h
typedef enum { 
    E_CUST_AUD_INPUT_PATH_MAIN=0,
    E_CUST_AUD_INPUT_PATH_SUB,
} E_CUST_AUD_INPUT_PATH;

typedef enum {
    E_CUST_AUD_INPUT_TYPE_OTHERS = 0,         ///< ex. Pink Noise Generator
    E_CUST_AUD_INPUT_TYPE_DIGITAL_TUNER,      ///< Digital tuner. TS
    E_CUST_AUD_INPUT_TYPE_ANALOG_TUNER,       ///< ex. Analog tuner. SIF/AF
    E_CUST_AUD_INPUT_TYPE_SPDIF,              ///< SPDIF-in
    E_CUST_AUD_INPUT_TYPE_LINE_IN,            ///< Line in
    E_CUST_AUD_INPUT_TYPE_HDMI,               ///< HDMI in
    E_CUST_AUD_INPUT_TYPE_MEMORY,             ///< Memory
    E_CUST_AUD_INPUT_TYPE_BUF_AGT,            ///< Buffer agent
    E_CUST_AUD_INPUT_TYPE_FEEDER,             ///< Feeder
    E_CUST_AUD_INPUT_TYPE_MULTI_MEDIA,        /// < Multi-Media
    E_CUST_AUD_INPUT_TYPE_LINE_IN_2 = 10,     ///< Line in2
    E_CUST_AUD_INPUT_TYPE_LINE_IN_3 = 11,     ///< Line in3 for Echo Cancel & BT.
    E_CUST_AUD_INPUT_TYPE_GST,                /// Gstreamer
    E_CUST_AUD_INPUT_TYPE_I2S,                ///<I2S in
    E_CUST_AUD_INPUT_TYPE_NUM                 ///< Number of stream source
} E_CUST_AUD_INPUT_TYPE;

typedef enum { 
    E_CUST_AUD_SIG_STA_STABLE,
    E_CUST_AUD_SIG_STA_NO_SIG,
    E_CUST_AUD_SIG_STA_UNKNOWN,
} E_CUST_AUD_SIG_STA;

typedef enum {
    E_CUST_AUD_FS_8K,
    E_CUST_AUD_FS_11K,
    E_CUST_AUD_FS_12K,
    E_CUST_AUD_FS_16K,
    E_CUST_AUD_FS_22K,
    E_CUST_AUD_FS_24K,
    E_CUST_AUD_FS_32K,
    E_CUST_AUD_FS_44K,
    E_CUST_AUD_FS_48K,
    E_CUST_AUD_FS_64K,
    E_CUST_AUD_FS_88K,
    E_CUST_AUD_FS_96K,
    E_CUST_AUD_FS_128K,
    E_CUST_AUD_FS_176K,
    E_CUST_AUD_FS_192K,
    E_CUST_AUD_FS_UNKNOWN,
} E_CUST_AUD_FS;

typedef enum {
    E_CUST_AUD_BIT_FLAG_VBR,
    E_CUST_AUD_BIT_FLAG_CBR,
    E_CUST_AUD_BIT_FLAG_ABR,
    E_CUST_AUD_BIT_FLAG_UNKNOWN,
} E_CUST_AUD_BIT_FLAG;

typedef enum {
    E_CUST_AUD_CH_CONF_MONO,
    E_CUST_AUD_CH_CONF_MONO_1,
    E_CUST_AUD_CH_CONF_DUAL_MONO,
    E_CUST_AUD_CH_CONF_DUAL_MONO_1,
    E_CUST_AUD_CH_CONF_STEREO,
    /* front + front-side + rear-side + sub-woofer */
    E_CUST_AUD_CH_CONF_2_0_0_1,
    E_CUST_AUD_CH_CONF_2_0_1_1, //E_CUST_AUD_CH_CONF_SURROUND_2CH /* 2/1 */
    E_CUST_AUD_CH_CONF_2_0_1_0,
    E_CUST_AUD_CH_CONF_2_0_2_0,  //E_CUST_AUD_CH_CONF_4_0,                   /* 2/2 */
    E_CUST_AUD_CH_CONF_2_0_2_1,
    E_CUST_AUD_CH_CONF_2_1_0_0, // Not used
    E_CUST_AUD_CH_CONF_2_1_0_1,  // Not used
    E_CUST_AUD_CH_CONF_2_1_1_0,  // Not used
    E_CUST_AUD_CH_CONF_2_1_1_1,  // Not used
    E_CUST_AUD_CH_CONF_2_1_2_0,  // Not used
    E_CUST_AUD_CH_CONF_2_1_2_1,  // Not used
    E_CUST_AUD_CH_CONF_2_2_0_0,  // for 4ch/4K FRC model
    E_CUST_AUD_CH_CONF_2_2_0_1,  // Not used
    E_CUST_AUD_CH_CONF_2_2_1_0,  // Not used
    E_CUST_AUD_CH_CONF_2_2_1_1,  // Not used
    E_CUST_AUD_CH_CONF_2_2_2_0,  // Not used
    E_CUST_AUD_CH_CONF_2_2_2_1,  // Not used
    E_CUST_AUD_CH_CONF_3_0_0_0,  // E_CUST_AUD_CH_CONF_3_0,                   /* 3/0 */
    E_CUST_AUD_CH_CONF_3_0_0_1,
    E_CUST_AUD_CH_CONF_3_0_1_0,  //E_CUST_AUD_CH_CONF_SURROUND /* 3/1 */
    E_CUST_AUD_CH_CONF_3_0_1_1,
    E_CUST_AUD_CH_CONF_3_0_2_0,
    E_CUST_AUD_CH_CONF_3_0_2_1,  //E_CUST_AUD_CH_CONF_5_1,                   /* 3/2 */
    E_CUST_AUD_CH_CONF_3_1_0_0,  // Not used
    E_CUST_AUD_CH_CONF_3_1_0_1,  // Not used
    E_CUST_AUD_CH_CONF_3_1_1_0,  // Not used
    E_CUST_AUD_CH_CONF_3_1_1_1,  // Not used
    E_CUST_AUD_CH_CONF_3_1_2_0,  // Not used
    E_CUST_AUD_CH_CONF_3_1_2_1,  // Not used
    E_CUST_AUD_CH_CONF_3_2_0_0,  // Not used
    E_CUST_AUD_CH_CONF_3_2_0_1,  // Not used
    E_CUST_AUD_CH_CONF_3_2_1_0,  // Not used
    E_CUST_AUD_CH_CONF_3_2_1_1,  // Not used
    E_CUST_AUD_CH_CONF_3_2_2_0,  // Not used
    E_CUST_AUD_CH_CONF_3_2_2_1,  // Not used
    E_CUST_AUD_CH_CONF_UNKNOWN
} E_CUST_AUD_CH_CONF;

typedef enum {
    E_CUST_AUD_CODEC_UNKNOWN = 0,
    E_CUST_AUD_CODEC_MPEG,
    E_CUST_AUD_CODEC_AC3,
    E_CUST_AUD_CODEC_E_AC3, //Added newly
    E_CUST_AUD_CODEC_PCM,
    E_CUST_AUD_CODEC_MP3,
    E_CUST_AUD_CODEC_AAC,
    E_CUST_AUD_CODEC_HE_AAC, //Added newly
    E_CUST_AUD_CODEC_HE_AAC_V2,    // Added newly
    E_CUST_AUD_CODEC_DTS,
    E_CUST_AUD_CODEC_WMA,
    E_CUST_AUD_CODEC_RA,
    E_CUST_AUD_CODEC_HDCD,
    E_CUST_AUD_CODEC_MLP,
    E_CUST_AUD_CODEC_MTS,
    E_CUST_AUD_CODEC_A2,
    E_CUST_AUD_CODEC_PAL,
    E_CUST_AUD_CODEC_FMFM,
    E_CUST_AUD_CODEC_NICAM,
    E_CUST_AUD_CODEC_TTXAAC,
    E_CUST_AUD_CODEC_DETECTOR,
    E_CUST_AUD_CODEC_MINER
} E_CUST_AUD_CODEC;

typedef enum {
    E_CUST_AUD_COPY_CTRL_NEVER,
    E_CUST_AUD_COPY_CTRL_FREE,
    E_CUST_AUD_COPY_CTRL_NO_MORE,
    E_CUST_AUD_COPY_CTRL_ONCE,
    E_CUST_AUD_COPY_CTRL_UNKNOWN,
} E_CUST_AUD_COPY_CTRL;

#ifdef CC_AUD_SAKURA_RENDER
typedef enum {
    E_CUST_AUD_BT_STATE_NOT_CONNECT,
    E_CUST_AUD_BT_STATE_CONNECTED,
    E_CUST_AUD_BT_STATE_CONNECTED_HIRES,
} E_CUST_AUD_BT_CONNECT;
#endif // CC_AUD_SAKURA_RENDER

////////////////////////////////////////////////////////////////////////
//Sound mode enum
////////////////////////////////////////////////////////////////////////
typedef enum {
    E_CUST_AUD_BT_LNK_OFF,  // BT only
    E_CUST_AUD_BT_LNK_ON,  //TV Speaker and Bluetooth
} E_CUST_AUD_BT_LNK;

typedef enum{
    D_AP_BT_DELAY_MODE_OFF,
    D_AP_BT_DELAY_MODE_ON,
    D_AP_BT_DELAY_MODE_AUTO,
}D_AP_BT_DELAY_MODE;

typedef enum {
    E_CUST_AUD_SOUND_MODE_STANDARD,
    E_CUST_AUD_SOUND_MODE_CINEMA,
    E_CUST_AUD_SOUND_MODE_LIVE_FOOTBALL,
    E_CUST_AUD_SOUND_MODE_LIVE_MUSIC,
    E_CUST_AUD_SOUND_MODE_DEMO,
    E_CUST_AUD_SOUND_MODE_NEWS,
}E_CUST_AUD_SOUND_MODE;

typedef enum {
    E_CUST_AUD_AUTO_SURROUND_OFF,
    E_CUST_AUD_AUTO_SURROUND_ON,
    E_CUST_AUD_AUTO_SURROUND_AUTO,
} E_CUST_AUD_AUTO_SURROUND;

typedef enum {
    E_CUST_AUD_UP_SCL_OFF,
    E_CUST_AUD_UP_SCL_ON
} E_CUST_AUD_UP_SCL;

typedef enum {
    E_CUST_AUD_SCENE_SELECT_AUTO_OFF,
    E_CUST_AUD_SCENE_SELECT_AUTO_ON
} E_CUST_AUD_SCENE_SELECT_AUTO;

typedef enum {
    E_CUST_AUD_NIGHT_MODE_OFF,
    E_CUST_AUD_NIGHT_MODE_ON
} E_CUST_AUD_NIGHT_MODE;

typedef enum {
    E_CUST_AUD_SUBWOOFER_POWER_OFF,
    E_CUST_AUD_SUBWOOFER_POWER_AUTO
} E_CUST_AUD_SUBWOOFER_POWER;


typedef enum {
    E_CUST_AUD_SOUND_BOOSTER_OFF,
    E_CUST_AUD_SOUND_BOOSTER_ON,
} E_CUST_AUD_SOUND_BOOSTER;

typedef enum {
    E_CUST_AUD_VOICE_ZOOM_OFF,
    E_CUST_AUD_VOICE_ZOOM_ON,
} E_CUST_AUD_VOICE_ZOOM;

typedef enum {
    E_CUST_AUD_AUTO_VOLUME_OFF,
    E_CUST_AUD_AUTO_VOLUME_ON,
} E_CUST_AUD_AUTO_VOLUME;


#ifdef CC_AUD_SAKURA_RENDER
typedef enum {
    E_CUST_AUD_DOLBY_DRANGE_STANDARD,
    E_CUST_AUD_DOLBY_DRANGE_COMPRESSED,
} E_CUST_AUD_DOLBY_DRANGE;

typedef enum {
    E_CUST_AUD_DYNAMIC_RANGE_STANDARD,
    E_CUST_AUD_DYNAMIC_RANGE_COMPRESSED,
} E_CUST_AUD_DYNAMIC_RANGE; // HE-AAC dynamic range
#else /* CC_AUD_SAKURA_RENDER */
typedef enum {
    E_CUST_AUD_DOLBY_DRANGE_COMPRESSED,
    E_CUST_AUD_DOLBY_DRANGE_STANDARD,
} E_CUST_AUD_DOLBY_DRANGE;

typedef enum {
    E_CUST_AUD_DYNAMIC_RANGE_COMPRESSED,
    E_CUST_AUD_DYNAMIC_RANGE_STANDARD,
} E_CUST_AUD_DYNAMIC_RANGE; // HE-AAC dynamic range
#endif /* CC_AUD_SAKURA_RENDER */


typedef enum {
    E_CUST_AUD_LFM_NC_OFF,
    E_CUST_AUD_LFM_NC_ON
} E_CUST_AUD_LFM_NC; // Live Football Mode No commentary

typedef enum {
    E_CUST_SUBWOOFER_PHASE_NORMAL,
    E_CUST_SUBWOOFER_PHASE_REVERSE,
} E_CUST_SUBWOOFER_PHASE;

typedef enum {
    E_CUST_AUD_DUAL_SOUND_STEREO,
    E_CUST_AUD_DUAL_SOUND_A,
    E_CUST_AUD_DUAL_SOUND_B,
    E_CUST_AUD_DUAL_SOUND_MONO,
} E_CUST_AUD_DUAL_SOUND;

typedef enum {
   E_CUST_AUD_SPEAKERS_TV,
   E_CUST_AUD_SPEAKERS_AUD_SYSTEM,
   E_CUST_AUD_SPEAKERS_BLUETOOTH,
} E_CUST_AUD_SPEAKERS;

typedef enum {
    E_CUST_AUD_HP_AUD_OUT_HP,
    E_CUST_AUD_HP_AUD_OUT_FIXED,
    E_CUST_AUD_HP_AUD_OUT_VARIABLE,
    E_CUST_AUD_HP_AUD_OUT_SUBWOOFER,
} E_CUST_AUD_HP_AUD_OUT;

typedef enum {
    E_CUST_AUD_HP_SP_LINK_OFF,
    E_CUST_AUD_HP_SP_LINK_ON,
} E_CUST_AUD_HP_SP_LINK;

typedef enum {
    E_CUST_AUD_HDMI_SRC_AUTO,
    E_CUST_AUD_HDMI_SRC_DIV,
    E_CUST_AUD_HDMI_SRC_HDMI
} E_CUST_AUD_HDMI_SRC;

typedef enum {
    E_CUST_AUD_DIGI_OUT_PCM,
    E_CUST_AUD_DIGI_OUT_AUTO1,
    E_CUST_AUD_DIGI_OUT_AUTO2,
} E_CUST_AUD_DIGI_OUT;

typedef enum {
    E_CUST_AUD_DDP_OUT_OFF,
    E_CUST_AUD_DDP_OUT_AUTO,
} E_CUST_AUD_DDP_OUT;

typedef enum {
    E_CUST_AUD_DDP_NOT_CAPABLE,
    E_CUST_AUD_DDP_CAPABLE,
    E_CUST_AUD_DDP_ATMOS_CAPABLE
} E_CUST_AUD_DDP_CAPABILITY;


typedef enum {
    E_CUST_AUD_KEY_TONE_OFF,
    E_CUST_AUD_KEY_TONE_ON
} E_CUST_AUD_KEY_TONE;

typedef enum {
    E_CUST_AUD_TV_POSITION_TABLE_TOP,
    E_CUST_AUD_TV_POSITION_WALL_MOUNT
} E_CUST_AUD_TV_POSITION;


typedef enum {
    E_CUST_AUD_OUTPUT_FS_48K,
    E_CUST_AUD_OUTPUT_FS_96K
} E_CUST_AUD_OUTPUT_FS;

////////////////////////////////////////////////////////////////////////
//Status enum
////////////////////////////////////////////////////////////////////////

typedef enum {
    E_CUST_AUD_MUTE_STATE_UNMUTE,
    E_CUST_AUD_MUTE_STATE_MUTE,
} E_CUST_AUD_MUTE_STATE;

typedef enum {
    E_CUST_AUD_PLAY_STATE_STOP,
    E_CUST_AUD_PLAY_STATE_PAUSE,
    E_CUST_AUD_PLAY_STATE_PLAY,
} E_CUST_AUD_PLAY_STATE;

typedef enum {
    E_CUST_AUD_STATE_OFF,
    E_CUST_AUD_STATE_ON,
} E_CUST_AUD_STATE;

typedef enum {
    E_CUST_AUD_SUBWOOFER_STATE_NONE,   //Subwoofer is not used
    E_CUST_AUD_SUBWOOFER_STATE_WIRED, // Wired Subwoofer is being used
    E_CUST_AUD_SUBWOOFER_STATE_WIRELESS,  //Wireless Subwoofer is being used
} E_CUST_AUD_SUBWOOFER_STATE;

////////////////////////////////////////////////////////////////////////
//Structure
////////////////////////////////////////////////////////////////////////

typedef struct {
    E_CUST_AUD_INPUT_TYPE	eAudioInputType;
} CUST_AUD_INPUT_T;

typedef struct {
    E_CUST_AUD_SIG_STA eSigSta;
    E_CUST_AUD_FS eSamplingRate;
    UINT32 u4BitRate;
    E_CUST_AUD_BIT_FLAG eBitRateFlag;
    E_CUST_AUD_CH_CONF eChConf;
    E_CUST_AUD_CODEC eCodec;
    E_CUST_AUD_COPY_CTRL eCopyControl;    
#ifdef CC_AUD_SAKURA_RENDER
    UINT32 u4BitLength;
#endif // CC_AUD_SAKURA_RENDER
} CUST_AUD_FMT_T;

typedef struct {
    UINT32 u4SpeakerVolume;
}CUST_AUD_VOLUME_T;

typedef struct {   
    E_CUST_AUD_FS eSamplingRate;
}CUST_AUD_OUT_FORMAT_T;

typedef struct {   
    E_CUST_AUD_SOUND_MODE eSoundMode; 
    E_CUST_AUD_AUTO_SURROUND eAutoSurround;
    INT8 i1SurroundEffect;
    E_CUST_AUD_UP_SCL eSoundUpScaling;
    INT8 i1VoiceZoom;
    E_CUST_AUD_SCENE_SELECT_AUTO eSceneSelectAuto;
    E_CUST_AUD_NIGHT_MODE eNightMode;
    E_CUST_AUD_SUBWOOFER_POWER eSubwooferPowerSetting;
    E_CUST_AUD_AUTO_VOLUME eAutoVolume;
    INT8 i1LRBalance;
    INT8 i1InputLevelOffset;
    E_CUST_AUD_DOLBY_DRANGE eDolbyDynamicRange;
    INT8 i1MpegAudioLevel;
    INT8 i1HeAacAudioLevel;
    E_CUST_AUD_DYNAMIC_RANGE eDynamicRange;
    INT8 i1DlnaVolumeCautionLevel;
    INT8 i1Eq100;
    INT8 i1Eq200;
    INT8 i1Eq500;
    INT8 i1Eq1K;
    INT8 i1Eq2K;
    INT8 i1Eq5K;
    INT8 i1Eq10K;
    E_CUST_AUD_LFM_NC eLfmNarrationCancel; 
    INT8 i1SubwooferVolume;
    UINT8 u1SubwooferCutoff;
    INT8 i1SubwooferDelay;
    E_CUST_SUBWOOFER_PHASE eSubwooferPhase;
    E_CUST_AUD_DUAL_SOUND eDualSound;
    E_CUST_AUD_SPEAKERS eSpeakers;
    E_CUST_AUD_HP_AUD_OUT eHpAudioOut;
    E_CUST_AUD_HP_SP_LINK eHpSpLink;
    E_CUST_AUD_HDMI_SRC eHdmiDviAudioSource;
    E_CUST_AUD_DIGI_OUT eDigitalAudioOut;
    E_CUST_AUD_KEY_TONE eKeyTone;
    E_CUST_AUD_TV_POSITION  eTvPosition;
    UINT8 u1SubwooferEnable;

#ifdef CC_AUD_SAKURA_RENDER
    UINT8 u1MeasureMode;
    UINT8 u1BtConect;
    BOOL  bHpDetect;
    UINT8 bBtDelayMode;
#endif // CC_AUD_SAKURA_RENDER

}CUST_AUD_SOUND_SETTING_T;

typedef struct {
	E_CUST_AUD_DDP_OUT eDDPMode;
	E_CUST_AUD_DDP_CAPABILITY eDDPCapability;
}CUST_AUD_DDP_SETTING_T;

#ifdef CC_AUD_SAKURA_RENDER
typedef struct {   
    BOOL u1InputForceChange;
    BOOL u1AudFmtForceChange;
    BOOL u1OutputFsForceChange;

    UINT8 u1Input;
    UINT8 u1AudFmt;
    UINT8 u1OutputFs;
    UINT8 u1ChannelConf;
}CUST_AUD_SOUND_SIGNAL_T;
#endif // CC_AUD_SAKURA_RENDER


#if 0
typedef struct {
    E_CUST_AUD_TV_POSITION eTvPosition;
    E_CUST_AUD_AUDIO_FILTER eAudioFilter;
    E_CUST_AUD_DIGITAL_OUT eDigAudOut;
    UINT8 e1MpegAudioLevel; // 0=MIN, 1=-9, K, 10 = MAX
}CUST_AUD_SYS_SETTING_T;
#endif

#if 0
typedef struct {
    E_CUST_AUD_MUTE_STATE eMainAudioMuteState;
    E_CUST_AUD_MUTE_STATE eOuputMuteState;
}CUST_AUD_MUTE_STATE_T;
#endif

typedef struct {
    E_CUST_AUD_MUTE_STATE eMuteState;
}CUST_AUD_CH_MUTE_STATE_T;

typedef struct {
    E_CUST_AUD_PLAY_STATE eAudioState;    
}CUST_AUD_PLAY_STATE_T;

typedef struct {
    E_CUST_AUD_STATE    eSkypeMixState;
    E_CUST_AUD_STATE    eAudioDescriptionMixState;    
}CUST_AUD_MIX_STATE_T;

typedef struct {
    E_CUST_AUD_STATE    eServiceModeState;    
}CUST_AUD_SERVICE_MODE_STATE_T;

typedef struct {
    E_CUST_AUD_SUBWOOFER_STATE  eSubwooferState;    
}CUST_AUD_SUBWOOFER_STATE_T;
typedef enum
{
    FACTORY_TUNER_PATH_MAIN = 0,
    FACTORY_TUNER_PATH_SUB
} DRV_TUNER_PATH;

typedef enum
{
    FACTORY_TUNER_ANTENNA_TERR = 0,
    FACTORY_TUNER_ANTENNA_CABLE,
    FACTORY_TUNER_ANTENNA_1INPUT
}DRV_TUNER_ANTENNA;

typedef enum
{
    FACTORY_TUNER_SATELLITE_SWITH_MAIN = 0,
    FACTORY_TUNER_SATELLITE_SWITH_SUB
} DRV_TUNER_SATELLITE_SWITH;

typedef enum
{
    FACTORY_TUNER_LNA_OFF = 0,
    FACTORY_TUNER_LNA_ON
} DRV_TUNER_LNA;

typedef enum
{
    FACTORY_TUNER_VIDEO_SYSTEM_M = 0,
    FACTORY_TUNER_VIDEO_SYSTEM_BG,
    FACTORY_TUNER_VIDEO_SYSTEM_DK,
    FACTORY_TUNER_VIDEO_SYSTEM_I,
    FACTORY_TUNER_VIDEO_SYSTEM_L,
    FACTORY_TUNER_VIDEO_SYSTEM_L_DASH,
    FACTORY_TUNER_VIDEO_SYSTEM_N
}DRV_TUNER_VIDEO_SYSTEM;

typedef enum
{
    FACTORY_TUNER_AUDIO_SYSTEM_A2 = 0,
    FACTORY_TUNER_AUDIO_SYSTEM_BTSC,
    FACTORY_TUNER_AUDIO_SYSTEM_EIAJ,
    FACTORY_TUNER_AUDIO_SYSTEM_NONE,
    FACTORY_TUNER_AUDIO_SYSTEM_NICAM,
    FACTORY_TUNER_AUDIO_SYSTEM_SAP,
    FACTORY_TUNER_AUDIO_SYSTEM_INDETERMINATION
}DRV_TUNER_AUDIO_SYSTEM;


typedef enum 
{
    FCTRY_VIDEO_FORMAT_PAL = 0,     //'pal'
    FCTRY_VIDEO_FORMAT_NTSC,    //'ntsc'
    FCTRY_VIDEO_FORMAT_SECAM,   //'secam'
    FCTRY_VIDEO_FORMAT_NTSC_443,//'ntsc-443'
    FCTRY_VIDEO_FORMAT_PAL_N,   //'pal-n'
    FCTRY_VIDEO_FORMAT_PAL_60,  //'pal-60'
    FCTRY_VIDEO_FORMAT_PAL_M,   //'pal-m'
    FCTRY_VIDEO_FORMAT_UNKNOWN
}DRV_TUNER_VIDEO_FORMAT;


typedef enum
{
    FCTRY_VIDEO_CODEC_MPEG2 = 0,     //'mpeg2'
    FCTRY_VIDEO_CODEC_AVC,       //'avc'
    FCTRY_VIDEO_CODEC_AVS,       //'avs'
    FCTRY_VIDEO_CODEC_VC1,       //'vc1'
    FCTRY_VIDEO_CODEC_MPEG4VISUAL,   //'mpeg4visual'
    FCTRY_VIDEO_CODEC_DIVX,      //'divx'
    FCTRY_VIDEO_CODEC_UNKNOWN
}DRV_TUNER_VIDEO_CODEC;


typedef enum
{
    FCTRY_AUDIO_CODEC_LPCM = 0,     //'lpcm'
    FCTRY_AUDIO_CODEC_AAC,      //'aac'
    FCTRY_AUDIO_CODEC_AC3,      //'ac3'
    FCTRY_AUDIO_CODEC_AC3_PLUS, //'ac3-plus'
    FCTRY_AUDIO_CODEC_HEAAC,    //'heaac'
    FCTRY_AUDIO_CODEC_MPEG_AUDIO, //'mpeg-audio'
    FCTRY_AUDIO_CODEC_UNKNOWN
}DRV_TUNER_AUDIO_CODEC;

typedef enum
{
    FACTORY_TUNER_FRAMERATE_23_97 = 0,
    FACTORY_TUNER_FRAMERATE_24,
    FACTORY_TUNER_FRAMERATE_25,
    FACTORY_TUNER_FRAMERATE_29_97,
    FACTORY_TUNER_FRAMERATE_30,
    FACTORY_TUNER_FRAMERATE_47_94,
    FACTORY_TUNER_FRAMERATE_48,
    FACTORY_TUNER_FRAMERATE_50,
    FACTORY_TUNER_FRAMERATE_59_94,
    FACTORY_TUNER_FRAMERATE_60
}DRV_TUNER_FRAMERATE;

typedef struct _DRV_TUNE_ANALOG_T
{
    UINT8	           ui1_antenna;
    UINT32	           ui4_freq;
    UINT16	           ui2_major_channel_id;
    UINT32             ui4_video_sys;
    UINT32             ui4_audio_sys;
    UINT32             ui4_audio_soud;
    UINT32             ui4_video_format;
    UINT8              ui1_lna;
} DRV_TUNE_ANALOG_T;

typedef struct _DRV_TUNE_ATSC_T
{
    UINT32	           ui4_freq;
    UINT16	           ui2_major_channel_id;
    UINT8	           ui1_minor_channel_id;
    UINT8              ui1_modulation;
    UINT16             ui2_service_id;
    UINT16             ui2_video_pid;
    UINT8              ui1_video_codec;
    UINT16             ui2_audio_pid;
    UINT8              ui1_audio_codec;
    UINT8              ui1_framerate;
} DRV_TUNE_ATSC_T;

typedef struct _TUNE_DTMB_T
{
    UINT32	           ui4_freq;
    UINT16	           ui2_major_channel_id;
    UINT8              ui1_modulation;
    UINT8              ui1_lna;
    UINT16             ui2_service_id;
    UINT16             ui2_video_pid;
    UINT8              ui1_video_codec;
    UINT16             ui2_audio_pid;
    UINT8              ui1_audio_codec;
    UINT8              ui1_framerate;
} DRV_TUNE_DTMB_T;

typedef struct _TUNE_DVBS_T
{
    UINT8	           ui1_tuner_path;
    UINT8              ui1_standard;
    UINT32	           ui4_freq;
    UINT16	           ui2_major_channel_id;
    UINT32             ui1_symbol_rate;
    UINT16             ui2_service_id;
    UINT16             ui2_video_pid;
    UINT8              ui1_video_codec;
    UINT16             ui2_audio_pid;
    UINT8              ui1_audio_codec;
    UINT8              ui1_framerate;
} DRV_TUNE_DVBS_T;

typedef struct _TUNE_DVBT_T
{
    UINT8	           ui1_tuner_path;
    UINT8              ui1_standard;
    UINT32	           ui4_freq;
    UINT16	           ui2_major_channel_id;
    UINT8              ui1_bandwith;
    UINT8              ui1_modulation;
    UINT8              ui1_lna;
    UINT16             ui2_service_id;
    UINT16             ui2_video_pid;
    UINT8              ui1_video_codec;
    UINT16             ui2_audio_pid;
    UINT8              ui1_audio_codec;
    UINT8              ui1_framerate;
} DRV_TUNE_DVBT_T;

typedef struct _TUNE_ISDBT_T
{
    UINT8	           ui1_tuner_path;
    UINT32	           ui4_freq;
    UINT16	           ui2_major_channel_id;
    UINT8	           ui1_minor_channel_id;
    UINT16             ui2_service_id;
    UINT16             ui2_video_pid;
    UINT8              ui1_video_codec;
    UINT16             ui2_audio_pid;
    UINT8              ui1_audio_codec;
    UINT8              ui1_framerate;
} DRV_TUNE_ISDBT_T;

typedef struct _TUNE_DVBC_T
{
    UINT8	           ui1_tuner_path;
    UINT32	           ui4_freq;
    UINT8              ui1_bandwith;
    UINT8              ui1_modulation;
    UINT16             ui2_video_pid;
    UINT8              ui1_video_codec;
    UINT16             ui2_audio_pid;
    UINT8              ui1_audio_codec;
    UINT8              ui1_framerate;
} DRV_TUNE_DVBC_T;

typedef struct _DRV_DISPLAY_AUDIO_JP_T
{
    UINT8	           ui1_tuner_path;
    UINT16             ui2_audio_pid;
    UINT8              ui1_audio_codec;
} DRV_DISPLAY_AUDIO_JP_T;

typedef struct _DRV_DISPLAY_VIDEO_JP_T
{
    UINT8	           ui1_tuner_path;
    UINT16             ui2_video_pid;
    UINT8              ui1_video_codec;
    UINT32             ui4_freq;
} DRV_DISPLAY_VIDEO_JP_T;

typedef union _DRV_CUSTOM_COLOR_PICKUP {
	struct{
		UINT16			ui2_r;
		UINT16			ui2_g;
		UINT16			ui2_b;
	}get;
	struct{
		UINT16			ui2_x;
		UINT16			ui2_y;
	}set;
}DRV_CUSTOM_COLOR_PICKUP;

//Mariam add 21 July 2014 - Tcon NVM Direct Access implementation - Start
typedef struct _TCON_NVM_T
{
    UINT8 data_buffer[1000];
    UINT16 subAddr;
    UINT16 length;
    UINT16 status;
} TCON_NVM_T;
//Mariam add 21 July 2014 - Tcon NVM Direct Access implementation - End
//Mariam add 24 July 2014 - Backlight PWM Control implementation - Start
typedef struct _BL_PWM_CTRL_T
{
    UINT8 chnlFreq;
    UINT32 timeBase;
    UINT8 chnlDuty;
    UINT32 duty;
} BL_PWM_CTRL_T;
//Mariam add 24 July 2014 - Backlight PWM Control implementation - End

typedef struct _DRV_EEP_WB_GAM0_RGB
{
    UINT8 u1Channel;
    UINT8 u1Levle;
    UINT8 u1Value;
}DRV_EEP_WB_GAM0_RGB;

typedef struct _DRV_EEP_INP_LVL_WB
{
    UINT8 u1Levle;
    UINT16 u2Value;
}DRV_EEP_INP_LVL_WB;

typedef struct _DRV_EEP_WB_GAM_GAIN
{
    UINT8 u1Levle;
    UINT8 u1Value;
}DRV_EEP_WB_GAM_GAIN;

typedef struct _DRV_EEP_WB_BASE_GAIN_RGB
{
    UINT8 u1ColorTemp;
    UINT8 u1Channel;
    UINT8 u1Value;
}DRV_EEP_WB_BASE_GAIN_RGB;

typedef struct _DRV_EEP_WB_OFST_RGB
{
    UINT8 u1ColorTemp;
    UINT8 u1Channel;
    UINT8 u1Levle;
    UINT8 u1Value;
}DRV_EEP_WB_OFST_RGB;

typedef struct _DRV_MACBETH_PTN
{
    UINT8 bOnoff;
    UINT16 u2Ylvl;
    UINT16 u2Ulvl;
    UINT16 u2Vlvl;
}DRV_MACBETH_PTN;

typedef struct _DRV_WB_TEST_PTN
{
    UINT8 bOnoff;
    UINT16 u2Rlvl;
    UINT16 u2Glvl;
    UINT16 u2Blvl;
}DRV_WB_TEST_PTN;

typedef struct _DRV_UI_RANGE
{
    UINT32 u4PeArg;
    INT32 i4Min;
    INT32 i4Max;
    INT32 i4Dft;
}DRV_UI_RANGE;

typedef enum
{
	E_PE_ARG_BRIGHTNESS = 0,
	E_PE_ARG_CONTRAST,
	E_PE_ARG_HUE,
	E_PE_ARG_SATURATION,
	E_PE_ARG_CTI,
	E_PE_ARG_SHARPNESS,
	E_PE_ARG_SHARPNESS_H,
	E_PE_ARG_SHARPNESS_V,
	E_PE_ARG_LTI,
	E_PE_ARG_R_GAIN,
	E_PE_ARG_G_GAIN,
	E_PE_ARG_B_GAIN,
	E_PE_ARG_R_OFFSET,
	E_PE_ARG_G_OFFSET,
	E_PE_ARG_B_OFFSET,
	E_PE_ARG_NR,
	E_PE_ARG_GAMMA,
	E_PE_ARG_WHITE_PEAK_LMT,
	E_PE_ARG_SCE,
	E_PE_ARG_SKIN_COLOR,
	E_PE_ARG_ADAPTIVE_LUMA,
	E_PE_ARG_BACK_LIGHT_LVL,
	E_PE_ARG_ADAPTIVE_BACK_LIGHT,
	E_PE_ARG_3D_NR,
	E_PE_ARG_DEMO,
	E_PE_ARG_DI_FILM_MODE,
	E_PE_ARG_DI_MA,
	E_PE_ARG_DI_EDGE_PRESERVE,
	E_PE_ARG_MJC_MODE,
	E_PE_ARG_MJC_EFFECT,
	E_PE_ARG_MJC_DEMO,
	E_PE_ARG_XVYCC,
	E_PE_ARG_WCG,
	E_PE_ARG_GAME_MODE,
	E_PE_ARG_BLUE_STRETCH,
	E_PE_ARG_ME_PEG_NR,
	E_PE_ARG_BLACK_STRETCH,
	E_PE_ARG_WHITE_STRETCH,
	E_PE_ARG_SHARPNESS_ON_OFF,
    E_PE_ARG_SUE_PERRESOLUTION_ON_OFF,	
	E_PE_ARG_OPC_CURVE,
	E_PE_ARG_LCDIM,	
	E_PE_ARG_TDTV_PACKING,
	E_PE_ARG_TDTV_INVERSE,
	E_PE_ARG_TDTV_DEPTH,
	E_PE_ARG_TDTV_3D_TO_2D,
	E_PE_ARG_TDTV_FPR,
	E_PE_ARG_TDTV_PROTRUDE,
	E_PE_ARG_TDTV_DISTANCE,
	E_PE_ARG_TDTV_OSD_DEPTH,	
	E_PE_ARG_MODULE_ONOFF,
	E_PE_ARG_NS
} E_PE_ARG_TYPE;

#ifdef TRINITY_TUNER_DETECTION
/*
Tuner Check
*/
typedef enum {
    OPT_TUNER_CHECK_OFF = 0, 
    OPT_TUNER_CHECK_ON,    
    OPT_TUNER_CHECK_LAST_VALID_ENTRY
} OPT_TUNER_CHECK_T;
/*
Tuner Mode
*/
typedef enum {
    OPT_TUNERLESS = 0, 
    OPT_WITH_TUNER,    
    OPT_TUNER_MODE_LAST_VALID_ENTRY
} OPT_TUNER_MODE_T;
#endif

#define CLI_MESSAGE_MAX_LENGTH 256
typedef struct _DRV_CLI_MESSAGE
{
    CHAR buffer[CLI_MESSAGE_MAX_LENGTH];
}DRV_CLI_MESSAGE;
typedef struct _DRV_HDMI_5V_STATUS
{
    UINT8 port;
    UINT8 status;
    BOOL reply;
}DRV_HDMI_5V_STATUS;

typedef struct _DRV_LED_PWM_CONTROL
{
    UINT16 red;
    UINT16 green;
    UINT16 blue;
}DRV_LED_PWM_CONTROL;
typedef struct _DRV_LED_ONOFF_PARAM_T
{
    UINT32 u4OnMs;
    UINT32 u4OffMs;
}DRV_LED_ONOFF_PARAM_T;

#ifdef TRINITY_TUNER_DETECTION
typedef enum
{
   CUSTOM_OPTION_SGEMENT = 0x6C0,
   CUSTOM_OPTION_TUNER_CHECK,
   CUSTOM_OPTION_TUNER_MODE,
   CUSTOM_OPTION_NETWORK_UI,
   CUSTOM_OPTION_DOLBY_TYPE,
   CUSTOM_OPTION_BE_IC,
   CUSTOM_OPTION_PSU_TYPE,
   CUSTOM_OPTION_ECO_STANDARD,
   CUSTOM_OPTION_UART_SELECTION,
   CUSTOM_OPTION_SHIPPING_REGION,
   CUSTOM_OPTION_SUB_WOOFER,
   CUSTOM_OPTION_POWER_CONS_CONTROL,
   CUSOMT_OPTION_TUNER_ID_1 = 0x10011,
   CUSOMT_OPTION_TUNER_ID_2 = 0x10200,
   CUSOMT_OPTION_TUNER_ID_3 = 0x10210
}CUST_OPTION_BIT_ADDR;
#endif

/*-----------------------------------------------------------------------------
                    function declarations
-----------------------------------------------------------------------------*/
/* Customer specific APIs */
extern INT32 d_maple_cust_spec_set (
    DRV_CUSTOM_CUST_SPEC_TYPE_T    e_cust_spec_type,
    VOID*                          pv_set_info,
    SIZE_T                         z_size,
    BOOL                           b_store
);

extern INT32 d_maple_cust_spec_get (
    DRV_CUSTOM_CUST_SPEC_TYPE_T    e_cust_spec_type,
    VOID*                          pv_get_info,
    SIZE_T*                        pz_size
);

extern void CustomLEDCtrlFunc(
    D_LED_TYPE eLedType,
    UINT32 u4LedState
);

extern void CustomDisableStandbyLEDCtrl(
    UINT8 u1Disable
);

extern UINT32 SelfDiagGetBootCounter(
    UINT32 *pu4BootCounter
);

extern UINT32 SelfDiagGetCounter(
    D_SELF_DIAG_STATE   *prErrorInfo
);

extern VOID CustomSetLoaderUsbUpgrade(
    BOOL bEnable
);

extern VOID ADAC_GpioInterDecMute(
    BOOL fgEnable
);

extern BOOL CustomIsLoaderUsbUpgradeEnable(void);
extern UINT32 SelfDiagResetCounter(void);
extern UINT32 SelfDiagResetBootCount(void);
extern UINT32 SelfDiagResetErrorLog(void);
extern UINT32 SelfDiagResetStdwnOnOffCnt(void);

#endif /* _D_SAKURA_CUST_H_ */
