123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366 |
- #ifndef _KMF_IOCTL_INTERNAL_H_
- #define _KMF_IOCTL_INTERNAL_H_
- typedef struct _RWriteEDID_t
- {
- UINT8 address;
- UINT8 len;
- UINT8 src;
- UINT8 *data;
- }RWriteEDID_t;
- typedef struct _ScartInputData
- {
- UINT8 index;
- UINT8 InputType;
- }ScartInputData_t;
- typedef struct _EMIUTILIOCTL_t
- {
- UINT8 cmd;
- UINT8 mode;
- }EMIUTILIOCTL_t;
- typedef enum {
- MAIN,
- SUB
- }InputPath;
- /* Scart input type */
- typedef enum
- {
- TVFE_TvDec_SCART_CVBS = 0,
- TVFE_TvDec_SCART_RGB,
- TVFE_TvDec_SCART_MIX,
- TVFE_TvDec_SCART_SV,
- } TVFE_TvDecScartInputType_e;
- typedef enum
- {
- TVFE_TvDec_SCART_AutoMode= 0,
- TVFE_TvDec_SCART_Force_RGB,
- TVFE_TvDec_SCART_Force_CVBS,
- TVFE_TvDec_SCART_Force_SV
- } TVFE_TvDecForceScartType_t;
- typedef enum{
- TVFE_TT_ECC_HAMMING,
- TVFE_TT_ECC_PARITY
- }TVFE_TTSlicerEccMode_e;
- /* Enumeration of TVFE events */
- typedef enum {
- TVFE_EVENT_CH1_FSM_INITIAL_COMPLETE,
- /*
- ** This event will sent one time when a available signal become a
- ** unavailable signal
- */
- TVFE_EVENT_CH1_NO_SIGNAL,
- TVFE_EVENT_CH1_DEBOUNCING_SIGNAL,
- /*
- ** This event will sent one time when a new available signal is found
- */
- TVFE_EVENT_CH1_AVAILABLE_SIGNAL,
- TVFE_EVENT_CH1_FSM_STOP,
- TVFE_EVENT_CH1_PC_AUTO_TUNE_COMPLETE,
- TVFE_EVENT_CH1_PC_AUTO_TUNE,
- TVFE_EVENT_CH1_HDCP_PROTECT,
- TVFE_EVENT_CH1_HDCP_UNPROTECT,
- TVFE_EVENT_CH1_SCART_RGB,
- TVFE_EVENT_CH1_SCART_CVBS,
- TVFE_EVENT_CH1_UNSUPPORT_MODE,
- TVFE_EVENT_CH1_HDMI_HDMI_MODE,
- TVFE_EVENT_CH1_HDMI_DVI_MODE,
- TVFE_EVENT_MAX,
- } TVFE_Event_e;
- /* Enumeration of FSM states */
- typedef enum {
- FSM_VFE_INITIAL,
- FSM_VFE_NO_SIGNAL,
- FSM_VFE_NO_SIGNAL_CHECK_STATUS,
- FSM_VFE_SIGNAL_IN_DEBOUNCE,
- FSM_VFE_SIGNAL_OUT_DEBOUNCE,
- FSM_VFE_SIGNAL_STABLE_UPDATE_RESOLUTION,
- FSM_VFE_SIGNAL_STABLE,
- FSM_VFE_NO_SIGNAL_INFORM_VOM,
- FSM_VFE_NOT_NO_SIGNAL,
- FSM_VFE_SIGNAL_UNSUPPORT,
- FSM_VFE_VAFE_AUTOTUNE,
- FSM_VFE_VAFE_HW_AUTO_OFFSET,
- FSM_VFE_VAFE_HW_AUTO_GAIN,
- FSM_VFE_VAFE_HW_AUTOCALIBRATION,
- FSM_VFE_VAFE_MODE_DETECT,
- FSM_VFE_VAFE_AUTOCOLOR_OFFSET_ADJUST,
- FSM_VFE_TVDEC_TUNER_FIND_NEW_SIGNAL,
- FSM_VFE_TVDEC_TUNER_FIND_NEW_SIGNAL_DEBOUNCE,
- FSM_VFE_TVDEC_TUNER_SCANNING_INITIAL,
- FSM_VFE_TVDEC_TUNER_SCANNING,
- FSM_VFE_TVDEC_VCR,
- FSM_VFE_TVDEC_NON_STANDARD,
- FSM_VFE_VAFE_SOG_BOUNDARY_DETECT,
- FSM_VFE_UNUSED = 0xff,
- } TVFE_CheckState_e;
- /* Describe embedded front-end video digitizer */
- typedef enum {
- TVFE_TV_DECODER,
- TVFE_ADC,
- TVFE_HDMI,
- TVFE_CCIR656,
- TVFE_MPEG,
- TVFE_DEVICE_MAX,
- } TVFE_Device_e;
- typedef enum {
- TVFE_FRAME_BUFFER_MODE = 0,
- TVFE_BYPASS_MODE,
- TVFE_MODE_MAX,
- } TVFE_ByPassmode_e;
- typedef enum
- {
- TVFE_ATV_Input_Vsync_FreqRange_Unknown = 0,
- TVFE_ATV_Input_Vsync_FreqRange_50Hz,
- TVFE_ATV_Input_Vsync_FreqRange_60Hz,
- TVFE_ATV_Input_Vsync_FreqRange_Other,
- } TVFE_ATV_INPUT_VSYNCFREQ_t;
- typedef enum
- {
- TVFE_SRAMEDID_PORT_PC,
- TVFE_SRAMEDID_PORT_HDMI0,
- TVFE_SRAMEDID_PORT_HDMI1,
- TVFE_SRAMEDID_PORT_HDMI2,
- TVFE_SRAMEDID_PORT_MAX,
- } TVFE_SRAMEDID_PORT_e;
- /*****************************************************************************
- ** Structure defined here
- *****************************************************************************/
- typedef struct {
- PLF_VideoID_t eModeID;
- UINT32 wHStart; /* tpi input window hstart position */
- UINT32 wVStart; /* tpi input window vstart position */
- UINT32 wImgBufMaxWidth;
- UINT32 wImgBufMaxHeight;
- } TVFE_TimingInfo_Part1_st;
- typedef struct {
- UINT32 wHStart_x1; /* H start position of 1X timing */
- UINT32 wHStart_x1_5; /* H start position of 1.5X timing */
- signed INT8 bSVOffsetX; /* SVideo H start position offset */
- signed INT8 bSVOffsetY; /* SVideo V start position offset */
- signed INT8 bSCARTRgbOffsetX; /* SCART_RGB H start position offset */
- signed INT8 bSCARTRgbOffsetY; /* SCART_RGB V start position offset */
- } tvdec_param_st;
- typedef struct {
- UINT8 bTUNER_HUpSampling; /* H Upsampling mode for TUNER source */
- UINT8 bTUNER_10bitsPath; /* DRAM control mode for TUNER source */
- UINT8 bCVBS_HUpSampling; /* H Upsampling mode for CVBS source */
- UINT8 bCVBS_10bitsPath; /* DRAM control mode for CVBS source */
- UINT8 bSVIDEO_HUpSampling; /* H Upsampling mode for SVIDEO source */
- UINT8 bSVIDEO_10bitsPath; /* DRAM control mode for SVIDEO source */
- UINT8 bSCART_HUpSampling; /* H Upsampling mode for SCART source */
- UINT8 bSCART_10bitsPath; /* DRAM control mode for SCART source */
- } tvdec_optimize_st;
- typedef struct {
- //weilung for SPV9107
- struct {
- UINT8 bfPolRef : 1;
- UINT8 bHPol : 1;
- UINT8 bVPol : 1;
- UINT8 bReserved : 5;
- } polarity;
- UINT8 bEnableFrameBufferMode;
- UINT8 bSamplingMode;
- UINT8 bPhase;
- struct {
- UINT8 bSOGTh : 5 ;
- UINT8 bReserved : 3;
- } sog;
- UINT8 bVCORange; //2-bits
- UINT8 bCurrent; //5-bits
- UINT8 bClampPlacement;
- UINT8 bClampDuration;
- UINT8 bAAFBandWidth; //5-bits
- UINT8 bPreCoast;
- UINT8 bPostCoast;
- UINT8 bModeDetectWithSyncWidth;
- struct {
- UINT32 wfDitherEn : 1;
- UINT32 wfBit1 : 1;
- UINT32 wfBit2 : 1;
- UINT32 wfBit3 : 1;
- UINT32 wfBit4 : 1;
- UINT32 wfBit5 : 1;
- UINT32 wfBit6 : 1;
- UINT32 wfBit7 : 1;
- UINT32 wReserved : 8;
- } extra;
- UINT8 bExtraByte;
- } adc_param_st;
- /* 10bits or not */
- typedef struct {
- UINT8 b10bitsPath; /* DRAM control mode */
- } optimize_st;
- /* YUV444 or not */
- typedef struct {
- UINT8 bYUV;/*HDMI Output Color Space*/
- } Color_Space_st;
- /* Timing information */
- typedef struct {
- PLF_VideoID_t eModeID;
- UINT8 validflag;
- UINT32 wHStart; /* tpi input window hstart position */
- UINT32 wVStart; /* tpi input window vstart position */
- UINT32 wHValid; /* tpi input window hvalid size */
- UINT32 wVValid; /* tpi input window vvalid size */
- UINT32 wHTotal; /* tpi input window htotal size */
- UINT32 wVTotal; /* tpi input window vtotal size */
- UINT32 wClkRate; /* input timing clock rate */
- UINT8 fInterlace;
- UINT32 wImgBufMaxWidth;
- UINT32 wImgBufMaxHeight;
- } TVFE_TimingInfo_st;
- typedef struct {
- PLF_VideoID_t eModeID;
- INT8 *ModeString;
- UINT32 wHValid; /* tpi input window hvalid size */
- UINT32 wVValid; /* tpi input window vvalid size */
- UINT32 wHTotal; /* tpi input window htotal size */
- UINT32 wVTotal; /* tpi input window vtotal size */
- UINT32 wClkRate; /* input timing clock rate */
- UINT8 fInterlace;
- UINT32 wHsFreq;
- UINT32 wVsFreq;
- UINT8 bHsOutWidth;
- UINT32 wHSync_Width;
- UINT32 wVSync_Width;
- } TVFE_ADCTimingInfo_Part2_st;
- typedef struct {
- //UINT32 custom_tag;
- //void *custom_data;
- TVFE_TimingInfo_Part1_st tpi;
- adc_param_st vfe;
- optimize_st optimize;
- TVFE_ADCTimingInfo_Part2_st *ModeTable;
- } TVFE_ADCTimingInfo_st;
- /* TV decoding timing info */
- typedef struct {
- PLF_VideoID_t eModeID;
- UINT8 validflag;
- UINT32 wHValid; /* tpi input window hvalid size */
- UINT32 wVValid; /* tpi input window vvalid size */
- UINT32 wHTotal; /* tpi input window htotal size */
- UINT32 wVTotal; /* tpi input window vtotal size */
- UINT32 wClkRate; /* input timing clock rate */
- UINT8 fInterlace;
- } TVFE_TVDecTimingInfo_Part2_st;
- typedef struct {
- //UINT32 custom_tag;
- //void *custom_data;
- TVFE_TimingInfo_Part1_st tpi;
- const tvdec_param_st tvdec;
- tvdec_optimize_st tvdec_optimize;
- TVFE_TVDecTimingInfo_Part2_st *ModeTable;
- } TVFE_TVDecTimingInfo_st;
- typedef struct {
- UINT8 bEnableFrameBufferMode;
- } tmds_param_st;
- /*!
- * @brief HDMI 3D Structure
- */
- typedef enum
- {
- DRV_HDMI_3D_STRUCT_FP = 0x00, //frame packing
- DRV_HDMI_3D_STRUCT_FA, //field alternative
- DRV_HDMI_3D_STRUCT_LA, //line alternative
- DRV_HDMI_3D_STRUCT_SS_F, //side by side full
- DRV_HDMI_3D_STRUCT_L_D, //L + depth
- DRV_HDMI_3D_STRUCT_L_D_G, //L + depth + graphic + graphics-depth
- DRV_HDMI_3D_STRUCT_TB, //Top and Bottom
- DRV_HDMI_3D_STRUCT_RESV7, //reserved
- DRV_HDMI_3D_STRUCT_SS_H, //side by side half
- DRV_HDMI_3D_STRUCT_RESV9, //reserved
- DRV_HDMI_3D_STRUCT_RESV10, //reserved
- DRV_HDMI_3D_STRUCT_RESV11, //reserved
- DRV_HDMI_3D_STRUCT_RESV12, //reserved
- DRV_HDMI_3D_STRUCT_RESV13, //reserved
- DRV_HDMI_3D_STRUCT_RESV14, //reserved
- DRV_HDMI_3D_STRUCT_NOTUSE, //not use
- } DRV_HDMI3DStructure_e;
- typedef struct {
- PLF_VideoID_t eModeID;
- DRV_HDMI3DStructure_e e3DStructure;
- UINT32 wHValid; /* tpi input window hvalid size */
- UINT32 wVValid; /* tpi input window vvalid size */
- UINT32 wHTotal; /* tpi input window htotal size */
- UINT32 wVTotal; /* tpi input window vtotal size */
- UINT32 wClkRate; /* input timing clock rate */
- UINT8 fInterlace;
- UINT32 wHsFreq;
- UINT32 wVsFreq;
- /* Input Pixel Clock Replication or Output Pixel clock divider */
- struct {
- /*
- ** 00 : 1x clock cycle (no replication) 01: 2x clock
- ** 10: RSVD 11: 4x clock
- */
- UINT8 bIptPixRep : 2;
- /* 00: No divide 01: Divide by 2 10: RSVD 11: Divide by 4 */
- UINT8 bOptPixDiv : 2;
- /* Output Clock Invert 1=invert output clock 0=Normal output clock */
- UINT8 bOutputClockInvert : 3;
- } PixRepDiv;
- } TVFE_HDMITimingInfo_Part2_st;
- /* HDMI timing info */
- typedef struct {
- //UINT32 custom_tag;
- //void *custom_data;
- TVFE_TimingInfo_Part1_st tpi;
- tmds_param_st vfe;
- optimize_st optimize;
- Color_Space_st ColorSpace;
- TVFE_HDMITimingInfo_Part2_st *ModeTable;
- } TVFE_HDMITimingInfo_st;
- #ifdef __KERNEL__
- #include <linux/version.h>
- #include <linux/fs.h>
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,0)
- LONG kmf_ioctl(struct file *file, UINT32 cmd, ULONG arg);
- #else
- INT32 kmf_ioctl(struct inode *inode, struct file *filp, UINT32 cmd, ULONG arg);
- #endif
- #endif //__KERNEL__
- extern UINT8 PQ_ParsePQCmdSet(UINT32 *pulAddr);
- extern UINT32 PQ_LoadGammaTable(UINT32 *pulAddr);
- extern INT32 adc_AdjustFunction(UINT8 ucFunID, INT32 iValue);
- extern void sfs_umount(void);
- extern void sfs_mount(void);
- extern void PQ_GetYavg(UINT32 *Y_AVG);
- extern int PQ_GetYHistOverValueCount(int YValue);
- #endif
|