⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adp_if.h

📁 ZORAN 962/966 SOURCE CODE,DVD chip
💻 H
📖 第 1 页 / 共 2 页
字号:
	NO_ERRORS			= 0,
	ERROR_IN_CMD		= 1,	/* error in command, ( can be ON with bit 0 and 1 */
	ADP_CONTINUE		= 2,	/* still handle the command */
	ADP_INIT			= (int)0xffff,
}FFC_ACKNOWLEDGMENTS;

//=========defines for request token (select one of the following)===========
typedef enum
{
	NO_REQUEST_TOKEN	 =	0x0,
	REQUEST_TOKEN_1	 =		0x0010,
	REQUEST_TOKEN_MAX  =	0x00f0,
	REQUEST_TOKEN_MASK = 	0x00f0,
}RequestsToken;

// timeouts counters
#define WAIT_FFC_TIME_OUT_FIRST			10000
#define WAIT_FFC_TIME_OUT_SECOND		20000
#define WAIT_TERMINATED_TIME_OUT_FIRST	5000
#define WAIT_TERMINATED_TIME_OUT_SECOND	10000


//ADP watch dog timeouts (used to release the driver if it "stuck" on wait_flg procedure)
#ifdef ADP_NO_DRIVER
#define ADP_TIMEOUT_TIME		5		
#else
#define ADP_TIMEOUT_TIME		500		//( 1/2 second )
#endif

//defines of IO configuration parameters shifts
#define IOCFG_SPDB_SHIFT	6
#define IOCFG_WFB_SHIFT		10
#define IOCFG_WFA_SHIFT		11
#define IOCFG_FRB_SHIFT		3
#define IOCFG_CPB_SHIFT		7
#define IOCFG_MB_SHIFT		11
#define IOCFG_CB_SHIFT		12
#define IOCFG_OUTW_SHIFT	1
#define IOCFG_INW_SHIFT		3
#define IOCFG_OSP_SHIFT		8
#define IOCFG_ISP_SHIFT		9

// defines of Task application command parameters shifts
#define TASK_PARAM_SW_SHIFT				3
#define TASK_PARAM_DMM_SHIFT			4
#define TASK_PARAM_DMX_SHIFT			6
#define TASK_PARAM_DMXSCALE_SHIFT		8
#define TASK_PARAM_SP_SRD_SHIFT			4
#define TASK_PARAM_SPDIF_FLAG_SHIFT		8
#define TASK_PARAM_SPDIF_QUAN_SHIFT		12
#define TASK_PARAM_PANORAMA_SHIFT		4
#define TASK_PARAM_DECODE_SHIFT			5
#define TASK_PARAM_DIM_CTRL_SHIFT		8
#define TASK_PARAM_CW_CTRL_SHIFT		12	
#ifdef D_DEEMPHASIS_SUPPORT
#define TASK_PARAM_DE_CTRL_SHIFT		4	
#endif //D_DEEMPHASIS_SUPPORT
#define TASK_PARAM_CDLY_SHIFT			8
#define TASK_PARAM_3D_SHIFT				8
#define TASK_PARAM_COMP_SHIFT			4
#define TASK_PARAM_KAR_SHIFT			8
#define TASK_PARAM_KAR_TABLES_SHIFT		9
#define TASK_PARAM_PKT_SHIFT			12

#define TASK_PARAM_PNG_NS_SHIFT			6
#define TASK_PARAM_PNG_L_SHIFT			5
#define TASK_PARAM_PNG_C_SHIFT			4
#define TASK_PARAM_PNG_R_SHIFT			3
#define TASK_PARAM_PNG_LS_SHIFT			2
#define TASK_PARAM_PNG_RS_SHIFT			1

#define TASK_PARAM_LPCM_ICFG_SHIFT      4

#define TASK_PARAM_WMA_CH_SHIFT         1
#define TASK_PARAM_WMA_VERSION_SHIFT    4

//interrupts handling  
#define UNMASK_INTERRUPT 	0
#define MASK_INTERRUPT   	1 

/*======================	 ADP microcodes	========================== */
// this list is in the same order as it in the adp code table(adpCodes.c file)
typedef enum
{	
	MPEG_CODE_2_CH,
	MPEG_CODE_6_CH,
	AC3_CODE_2_CH,
	AC3_CODE_6_CH,
	CDDA_CODE,
	LPCM_CODE_2_CH,
	MP3_CODE_2_CH ,   
	SDTS_CODE ,
	PNG_CODE ,
	WMA_CODE ,
	JPEG_CODE,
	JPEG_VCB_CODE,
	ADPCM_CODE,
	ANALOG_IN_CODE,
	DIGITAL_IN_CODE,
//#ifdef INTERNAL_KARAOKE
	AC3_KARAOKE_CODE,
	MPEG_KARAOKE_CODE,
	LPCM_KARAOKE_CODE,    
	CDDA_KARAOKE_CODE,
//#endif  // INTERNAL_KARAOKE
#ifdef D_PLII_SUPPORTED
	AC3_PLII_CODE,
	MPEG_PLII_CODE,
	LPCM_PLII_CODE,    
	CDDA_PLII_CODE,
	ADPCM_PLII_CODE,    
#endif //D_PLII_SUPPORTED
#ifdef DDX_TEST
	DDXC_CODE,
#endif // DDX_TEST
#ifdef JPEG_MP3_ENABLE
	JPEG_MP3_CODE,
#endif
	ADP_CODES_NUM,
}ADP_CODES;

#define NOT_VALID_CODE	ADP_CODES_NUM

//ADP-CPU interface errors
typedef enum
{
	ERROR_IN_TASK_READY,
	ERROR_IN_TASK_TERMINATE,
	FIFO_NOT_EMPTY,
	NOT_READ_ALL_DATA,
    CMD_ERROR,					
	MISSED_INTERRUPT,
	SYNC_LOST_ADP_NOT_CONT,
	C2AFULL_ERROR,
	SYNC_LOST_ADP_CONT
}ADP_FAILS;


typedef struct
{
    UINT16 Karaoke_VocalGain;
    UINT16 Karaoke_CenterGain;
    unsigned int Karaoke_VeMode:2;
    unsigned int Karaoke_Mix:1;
    unsigned int Karaoke_Vp:1;
    unsigned int Karaoke_Vd:1;
    unsigned int Karaoke_Ms:1;   
    unsigned int Karaoke_KeyShift:4;
}KaraokeStruct;   
    
typedef struct
{
    UINT16 Mic_Scale;
    UINT16 Mic_Music_Scale;
    UINT16 Mic_Sensitivity;
    UINT16 Mic_Release_Time;
    UINT16 Mic_Echo_Scale;
    UINT16 Mic_Echo_gain;
    UINT16 Mic_Echo_Delay_Sdram_Size;
    UINT16 Mic_Echo_Delay;
}MicStruct;   
    
struct ADPMicrocdeList_Tag 
{
	CONST UINT8 *piBootFile;
	CONST UINT8 *piOverlayFile;
};

struct ADPMicrocdeSize_Tag 
{
	UINT16 uiBootSize;	
	UINT16 uiOverlaySize;
};

//////////////////////////////////////////////////////////////
///////Macro's for reading from RTI///////////////////////////

#define ADP_GetTFSFromRTI()			(adp_ReadSharedMemNoBmp( DECODER_RTI2_WORD_SP_ADDR ) & RTI2_TASK_FAST_STATUS_MASK)
#define ADP_GetSRFromRTI()			(adp_ReadSharedMemNoBmp(DECODER_RTI1_WORD_SP_ADDR) & RTI1_SAMPLING_RATE_MASK)			

/////////////////////////////////////////////////////////////////////////////////////////////////
// public ADP driver procedures
#ifdef _DEBUG
void adp_printCode( ADP_CODES code ); 
#endif
void adp_InitSharedMemory(void);
void adp_WriteSharedMemNoBmp( UINT16 uiAddr, UINT16 uiData );
UINT16 adp_ReadSharedMemNoBmp(UINT16 uiAddr );
void adp_ResetShareMemBitmapBit( SHARED_MEM_BITMAP_BITS_OPTION eBmpbit );
BOOL adp_ReadSharedMemChkRstBmp(UINT16 uiAddr, UINT16 *uiData , SHARED_MEM_BITMAP_BITS_OPTION eBmpbit );
BOOL adp_IsSharedMemWordValid( SHARED_MEM_BITMAP_BITS_OPTION eBmpbit );
void adp_WriteC2AFifoWord( UINT16 uidata );
void adp_SendC2AFifoInt(void);
UINT16 adp_ReadA2CFifoWord(void);
void adp_WriteC2AFullness(UINT16 uidata);
void adp_ResetA2CFullness(void);
UINT16 adp_ReadC2AFullness(void);
UINT16 adp_ReadA2CFullness(void);
CMD_RESULT adp_WaitForFFCValue(UINT16 uiFFCValueOfCPU);
CMD_RESULT  adp_SendCommands( CPU_ADP_OP_CODES uiAdpCmd,  UINT16 *uiCmdParams , int uiNumberOfCmdWords );
#ifdef ADP_COMPRESSED
CMD_RESULT  adp_SendZipedCommands( CPU_ADP_OP_CODES eADPCmd,  UINT8 *ZipedCommand , int iTotalNumOfCmdWords );
#endif
void adp_HandleStatusQueryResponse( UINT16 uiNumWords );
void adp_LoadTaskBoot(ADP_CODES  eTaskId );
void adp_LoadTaskOverlay( UINT32 ulAddr, ADP_CODES  eTaskId);
void adp_TaskStart( void );
void adp_TaskTerminate( void );
void adp_ADTOTabEntry(  UINT32 * ulAdrTab, SAMPLING_RATE eSR );
void adp_DacMasterClock( DAC_MASTER_CLOCK eClock );
DAC_MASTER_CLOCK  adp_GetCurrDacMasterClock(void);
void adp_LoadADTOTab(void);
void adp_SWReset( void );
void adp_PowerDown( void );
void adp_PowerUp( void );
void adp_C2AInterfaceMapping(UINT16 uiC2AFifoSize, UINT16 uiA2CFifoSize , UINT16 uiSharedMemorySize );
void adp_SetSPPointers(UINT16 uiC2AFifoSize, UINT16 uiA2CFifoSize , UINT16 uiSharedMemorySize );
CMD_RESULT adp_InitNewTask( ADP_CODES  eTaskId,UINT32 ulOverlayAddr );
CMD_RESULT adp_TerminateTask(void);
void adp_WatchDogTimeoutHandler();
void adp_InitWatchDog(void);
void adp_TerminateWatchDog(void);
UINT16 adp_Wait4ResponseOnWatchDog(void);
BOOL adp_IsValidStatusResponse(void);
void adp_FlushAPPBuffer(void);
BOOL adp_IsStop(void);
int adp_LzssMicrocodeRead( UINT8 *ucCode , UINT8 *buff, int length, BOOL bFirst);













⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -