1*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 2*53ee8cc1Swenshuai.xi // 3*53ee8cc1Swenshuai.xi // Copyright (c) 2006-2007 MStar Semiconductor, Inc. 4*53ee8cc1Swenshuai.xi // All rights reserved. 5*53ee8cc1Swenshuai.xi // 6*53ee8cc1Swenshuai.xi // Unless otherwise stipulated in writing, any and all information contained 7*53ee8cc1Swenshuai.xi // herein regardless in any format shall remain the sole proprietary of 8*53ee8cc1Swenshuai.xi // MStar Semiconductor Inc. and be kept in strict confidence 9*53ee8cc1Swenshuai.xi // ("MStar Confidential Information") by the recipient. 10*53ee8cc1Swenshuai.xi // Any unauthorized act including without limitation unauthorized disclosure, 11*53ee8cc1Swenshuai.xi // copying, use, reproduction, sale, distribution, modification, disassembling, 12*53ee8cc1Swenshuai.xi // reverse engineering and compiling of the contents of MStar Confidential 13*53ee8cc1Swenshuai.xi // Information is unlawful and strictly prohibited. MStar hereby reserves the 14*53ee8cc1Swenshuai.xi // rights to any and all damages, losses, costs and expenses resulting therefrom. 15*53ee8cc1Swenshuai.xi // 16*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 17*53ee8cc1Swenshuai.xi 18*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////////////////////////// 19*53ee8cc1Swenshuai.xi // file halPVR.h 20*53ee8cc1Swenshuai.xi // @brief PVR HAL 21*53ee8cc1Swenshuai.xi // @author MStar Semiconductor,Inc. 22*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////////////////////////// 23*53ee8cc1Swenshuai.xi #ifndef __HAL_PVR_H__ 24*53ee8cc1Swenshuai.xi #define __HAL_PVR_H__ 25*53ee8cc1Swenshuai.xi 26*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 27*53ee8cc1Swenshuai.xi // Macro and Define 28*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 29*53ee8cc1Swenshuai.xi #define HAL_TSP_RET_NULL 0xFFFFFFFF 30*53ee8cc1Swenshuai.xi 31*53ee8cc1Swenshuai.xi // PVR define 32*53ee8cc1Swenshuai.xi #define PVR_NUM 4 33*53ee8cc1Swenshuai.xi #define PVR_PIDFLT_DEF 0x1fff 34*53ee8cc1Swenshuai.xi 35*53ee8cc1Swenshuai.xi //VQ define 36*53ee8cc1Swenshuai.xi #define VQ_NUM 4 37*53ee8cc1Swenshuai.xi #define VQ_PACKET_UNIT_LEN 208 38*53ee8cc1Swenshuai.xi 39*53ee8cc1Swenshuai.xi #define TSP_TSIF0 0x00 40*53ee8cc1Swenshuai.xi #define TSP_TSIF1 0x01 41*53ee8cc1Swenshuai.xi #define TSP_TSIF2 0x02 42*53ee8cc1Swenshuai.xi #define TSP_TSIF3 0x03 43*53ee8cc1Swenshuai.xi #define TSP_TSIF4 0x04 // not support 44*53ee8cc1Swenshuai.xi #define TSP_TSIF5 0x05 // not support 45*53ee8cc1Swenshuai.xi #define TSP_TSIF6 0x06 // not support 46*53ee8cc1Swenshuai.xi 47*53ee8cc1Swenshuai.xi //FQ define 48*53ee8cc1Swenshuai.xi #define TSP_FQ_NUM 4 49*53ee8cc1Swenshuai.xi 50*53ee8cc1Swenshuai.xi //u32Cmd of MApi_DMX_CMD_Run(MS_U32 u32Cmd, MS_U32 u32Config, MS_U32 u32DataNum, void *pData); 51*53ee8cc1Swenshuai.xi #define HAL_DMX_CMD_RUN_DISABLE_SEC_CC_CHECK 0x00000001 //[u32Config] 1:disable cc check on fw, 0: enable cc check on fw; [u32DataNum,*pData] do not use 52*53ee8cc1Swenshuai.xi //######################################################################### 53*53ee8cc1Swenshuai.xi //#### Software Capability Macro Start 54*53ee8cc1Swenshuai.xi //######################################################################### 55*53ee8cc1Swenshuai.xi 56*53ee8cc1Swenshuai.xi #define TSP_CA_RESERVED_FLT_NUM 1 57*53ee8cc1Swenshuai.xi #define TSP_RECFLT_NUM 1 58*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_REC_NUM (TSP_PIDFLT_NUM - TSP_PCRFLT_NUM) // 0~189 (0 for CA) 59*53ee8cc1Swenshuai.xi // 193 for Err 60*53ee8cc1Swenshuai.xi // 192 for REC 61*53ee8cc1Swenshuai.xi // 191 for PCR1 62*53ee8cc1Swenshuai.xi // 190 for PCR0 63*53ee8cc1Swenshuai.xi 64*53ee8cc1Swenshuai.xi #if HW_PCRFLT_ENABLE 65*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_NUM_ALL (TSP_PIDFLT_NUM + STC_ENG_NUM + TSP_RECFLT_NUM) 66*53ee8cc1Swenshuai.xi #else 67*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_NUM_ALL (TSP_PIDFLT_NUM + TSP_RECFLT_NUM) 68*53ee8cc1Swenshuai.xi #endif 69*53ee8cc1Swenshuai.xi 70*53ee8cc1Swenshuai.xi //######################################################################### 71*53ee8cc1Swenshuai.xi //#### Software Capability Macro End 72*53ee8cc1Swenshuai.xi //######################################################################### 73*53ee8cc1Swenshuai.xi 74*53ee8cc1Swenshuai.xi // CA FLT ID (CA HW limitation, the PID Filter "0" must be reserved for CA to connect PID SLOT TABLE.) 75*53ee8cc1Swenshuai.xi #define TSP_CAFLT_START_ID 0 76*53ee8cc1Swenshuai.xi #define TSP_CAFLT_END_ID (TSP_CAFLT_START_ID + TSP_CA_RESERVED_FLT_NUM) // 1 77*53ee8cc1Swenshuai.xi 78*53ee8cc1Swenshuai.xi // section FLT ID 79*53ee8cc1Swenshuai.xi #define TSP_SECFLT_START_ID TSP_CAFLT_END_ID // 1 80*53ee8cc1Swenshuai.xi #define TSP_SECBUF_START_ID TSP_CAFLT_END_ID // 1 81*53ee8cc1Swenshuai.xi #define TSP_SECFLT_END_ID (TSP_SECFLT_START_ID + TSP_SECFLT_NUM - TSP_CA_RESERVED_FLT_NUM) // 192 82*53ee8cc1Swenshuai.xi #define TSP_SECBUF_END_ID (TSP_SECBUF_START_ID + TSP_SECBUF_NUM - TSP_CA_RESERVED_FLT_NUM) // 192 83*53ee8cc1Swenshuai.xi 84*53ee8cc1Swenshuai.xi // PID 85*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_START_ID TSP_CAFLT_END_ID // 1 86*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_END_ID (TSP_PIDFLT_START_ID + TSP_PIDFLT_NUM - TSP_CA_RESERVED_FLT_NUM) // 192 87*53ee8cc1Swenshuai.xi 88*53ee8cc1Swenshuai.xi // PCR 89*53ee8cc1Swenshuai.xi #define TSP_PCRFLT_START_ID TSP_PIDFLT_END_ID // 192 90*53ee8cc1Swenshuai.xi #define HAL_TSP_PCRFLT_GET_ID(NUM) (TSP_PCRFLT_START_ID + (NUM)) 91*53ee8cc1Swenshuai.xi #define TSP_PCRFLT_END_ID (TSP_PCRFLT_START_ID + TSP_PCRFLT_NUM) // 196 92*53ee8cc1Swenshuai.xi 93*53ee8cc1Swenshuai.xi // REC 94*53ee8cc1Swenshuai.xi #define TSP_RECFLT_IDX TSP_PCRFLT_END_ID // 196 95*53ee8cc1Swenshuai.xi 96*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 97*53ee8cc1Swenshuai.xi // Driver Compiler Option 98*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 99*53ee8cc1Swenshuai.xi 100*53ee8cc1Swenshuai.xi 101*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 102*53ee8cc1Swenshuai.xi // PVR Hardware Abstraction Layer 103*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 104*53ee8cc1Swenshuai.xi 105*53ee8cc1Swenshuai.xi // HW characteristic 106*53ee8cc1Swenshuai.xi 107*53ee8cc1Swenshuai.xi typedef enum _PVRENG_SEQ 108*53ee8cc1Swenshuai.xi { 109*53ee8cc1Swenshuai.xi E_TSP_PVR_PVRENG_START = 0, 110*53ee8cc1Swenshuai.xi E_TSP_PVR_PVRENG_0 = E_TSP_PVR_PVRENG_START, 111*53ee8cc1Swenshuai.xi E_TSP_PVR_PVRENG_1, 112*53ee8cc1Swenshuai.xi E_TSP_PVR_PVRENG_2, 113*53ee8cc1Swenshuai.xi E_TSP_PVR_PVRENG_3, 114*53ee8cc1Swenshuai.xi E_TSP_PVR_PVRENG_END, 115*53ee8cc1Swenshuai.xi E_TSP_PVR_ENG_INVALID, 116*53ee8cc1Swenshuai.xi } PVRENG_SEQ; 117*53ee8cc1Swenshuai.xi 118*53ee8cc1Swenshuai.xi typedef enum _FILEENG_SEQ 119*53ee8cc1Swenshuai.xi { 120*53ee8cc1Swenshuai.xi E_FILEENG_TSIF0 = TSP_TSIF0, 121*53ee8cc1Swenshuai.xi E_FILEENG_TSIF1 = TSP_TSIF1, 122*53ee8cc1Swenshuai.xi E_FILEENG_TSIF2 = TSP_TSIF2, 123*53ee8cc1Swenshuai.xi E_FILEENG_TSIF3 = TSP_TSIF3, 124*53ee8cc1Swenshuai.xi E_FILEENG_INVALID, 125*53ee8cc1Swenshuai.xi 126*53ee8cc1Swenshuai.xi } FILEENG_SEQ; 127*53ee8cc1Swenshuai.xi 128*53ee8cc1Swenshuai.xi #if 1 // Destination type 129*53ee8cc1Swenshuai.xi typedef enum _TSP_DST_SEQ 130*53ee8cc1Swenshuai.xi { 131*53ee8cc1Swenshuai.xi E_TSP_DST_FIFO_VIDEO, 132*53ee8cc1Swenshuai.xi E_TSP_DST_FIFO_VIDEO3D, 133*53ee8cc1Swenshuai.xi E_TSP_DST_FIFO_VIDEO3, //Not support 134*53ee8cc1Swenshuai.xi E_TSP_DST_FIFO_VIDEO4, //Not support 135*53ee8cc1Swenshuai.xi E_TSP_DST_FIFO_VIDEO5, //Not support 136*53ee8cc1Swenshuai.xi E_TSP_DST_FIFO_VIDEO6, //Not support 137*53ee8cc1Swenshuai.xi E_TSP_DST_FIFO_VIDEO7, //Not support 138*53ee8cc1Swenshuai.xi E_TSP_DST_FIFO_VIDEO8, //Not support 139*53ee8cc1Swenshuai.xi 140*53ee8cc1Swenshuai.xi E_TSP_DST_FIFO_AUDIO, 141*53ee8cc1Swenshuai.xi E_TSP_DST_FIFO_AUDIO2, 142*53ee8cc1Swenshuai.xi E_TSP_DST_FIFO_AUDIO3, 143*53ee8cc1Swenshuai.xi E_TSP_DST_FIFO_AUDIO4, 144*53ee8cc1Swenshuai.xi E_TSP_DST_FIFO_AUDIO5, //Not support 145*53ee8cc1Swenshuai.xi E_TSP_DST_FIFO_AUDIO6, //Not support 146*53ee8cc1Swenshuai.xi 147*53ee8cc1Swenshuai.xi E_TSP_DST_INVALID, 148*53ee8cc1Swenshuai.xi } TSP_DST_SEQ; 149*53ee8cc1Swenshuai.xi #else 150*53ee8cc1Swenshuai.xi #define TSP_FltType MS_U32 151*53ee8cc1Swenshuai.xi /// TS stream fifo type (Exclusive usage) 152*53ee8cc1Swenshuai.xi #define E_TSP_FLT_FIFO_MASK 0x000000FF 153*53ee8cc1Swenshuai.xi #define E_TSP_FLT_FIFO_VIDEO 0x00000001 154*53ee8cc1Swenshuai.xi #define E_TSP_FLT_FIFO_AUDIO 0x00000002 155*53ee8cc1Swenshuai.xi #define E_TSP_FLT_FIFO_AUDIO2 0x00000004 156*53ee8cc1Swenshuai.xi #define E_TSP_FLT_FIFO_VIDEO3D 0x00000008 157*53ee8cc1Swenshuai.xi #endif 158*53ee8cc1Swenshuai.xi 159*53ee8cc1Swenshuai.xi typedef enum _TSP_SRC_SEQ{ 160*53ee8cc1Swenshuai.xi E_TSP_SRC_PKTDMX0, 161*53ee8cc1Swenshuai.xi E_TSP_SRC_PKTDMX1, 162*53ee8cc1Swenshuai.xi E_TSP_SRC_PKTDMX2, 163*53ee8cc1Swenshuai.xi E_TSP_SRC_PKTDMX3, 164*53ee8cc1Swenshuai.xi E_TSP_SRC_PKTDMX4, //not used 165*53ee8cc1Swenshuai.xi E_TSP_SRC_PKTDMX5, //not used 166*53ee8cc1Swenshuai.xi E_TSP_SRC_MMFI0, 167*53ee8cc1Swenshuai.xi E_TSP_SRC_MMFI1, 168*53ee8cc1Swenshuai.xi 169*53ee8cc1Swenshuai.xi E_TSP_SRC_INVALID, 170*53ee8cc1Swenshuai.xi } TSP_SRC_SEQ; 171*53ee8cc1Swenshuai.xi 172*53ee8cc1Swenshuai.xi typedef enum _TSIF_CFG 173*53ee8cc1Swenshuai.xi { 174*53ee8cc1Swenshuai.xi // @NOTE should be Exclusive usage 175*53ee8cc1Swenshuai.xi E_TSP_TSIF_CFG_DIS = 0x0000, // 1: enable ts interface 0 and vice versa oppsite with en 176*53ee8cc1Swenshuai.xi E_TSP_TSIF_CFG_EN = 0x0001, 177*53ee8cc1Swenshuai.xi E_TSP_TSIF_CFG_PARA = 0x0002, 178*53ee8cc1Swenshuai.xi E_TSP_TSIF_CFG_SERL = 0x0000, // oppsite with Parallel 179*53ee8cc1Swenshuai.xi E_TSP_TSIF_CFG_EXTSYNC = 0x0004, 180*53ee8cc1Swenshuai.xi E_TSP_TSIF_CFG_BITSWAP = 0x0008, 181*53ee8cc1Swenshuai.xi E_TSP_TSIF_CFG_3WIRE = 0x0010 182*53ee8cc1Swenshuai.xi } TSP_TSIF_CFG; 183*53ee8cc1Swenshuai.xi 184*53ee8cc1Swenshuai.xi // for stream input source 185*53ee8cc1Swenshuai.xi typedef enum _HAL_TS_PAD 186*53ee8cc1Swenshuai.xi { 187*53ee8cc1Swenshuai.xi E_TSP_TS_PAD_EXT0, 188*53ee8cc1Swenshuai.xi E_TSP_TS_PAD_EXT1, 189*53ee8cc1Swenshuai.xi E_TSP_TS_PAD_EXT2, 190*53ee8cc1Swenshuai.xi E_TSP_TS_PAD_EXT3, // 4/3 wired serial mode 191*53ee8cc1Swenshuai.xi E_TSP_TS_PAD_EXT4, // 4/3 wired serial mode 192*53ee8cc1Swenshuai.xi E_TSP_TS_PAD_EXT5, // 4/3 wired serial mode 193*53ee8cc1Swenshuai.xi E_TSP_TS_PAD_EXT6, // 3 wired serial mode 194*53ee8cc1Swenshuai.xi E_TSP_TS_PAD_EXT7, // not support 195*53ee8cc1Swenshuai.xi E_TSP_TS_PAD_INTER0, 196*53ee8cc1Swenshuai.xi E_TSP_TS_PAD_INTER1, 197*53ee8cc1Swenshuai.xi E_TSP_TS_PAD_TSOUT0, 198*53ee8cc1Swenshuai.xi E_TSP_TS_PAD_TSOUT1, // not support 199*53ee8cc1Swenshuai.xi E_TSP_TS_PAD_TSIOOUT0, 200*53ee8cc1Swenshuai.xi E_TSP_TS_PAD_INVALID, 201*53ee8cc1Swenshuai.xi } TSP_TS_PAD; 202*53ee8cc1Swenshuai.xi 203*53ee8cc1Swenshuai.xi // for ts pad mode 204*53ee8cc1Swenshuai.xi typedef enum _HAL_TS_PAD_MUX_MODE 205*53ee8cc1Swenshuai.xi { 206*53ee8cc1Swenshuai.xi E_TSP_TS_PAD_MUX_PARALLEL, // in 207*53ee8cc1Swenshuai.xi E_TSP_TS_PAD_MUX_3WIRED_SERIAL, // in 208*53ee8cc1Swenshuai.xi E_TSP_TS_PAD_MUX_4WIRED_SERIAL, // in 209*53ee8cc1Swenshuai.xi E_TSP_TS_PAD_MUX_TSO, // out 210*53ee8cc1Swenshuai.xi E_TSP_TS_PAD_MUX_S2P, // out 211*53ee8cc1Swenshuai.xi E_TSP_TS_PAD_MUX_S2P1, // out 212*53ee8cc1Swenshuai.xi E_TSP_TS_PAD_MUX_DEMOD, // out 213*53ee8cc1Swenshuai.xi 214*53ee8cc1Swenshuai.xi E_TSP_TS_PAD_MUX_INVALID 215*53ee8cc1Swenshuai.xi } TSP_TS_PAD_MUX_MODE; 216*53ee8cc1Swenshuai.xi 217*53ee8cc1Swenshuai.xi 218*53ee8cc1Swenshuai.xi // for pkt converter mode 219*53ee8cc1Swenshuai.xi typedef enum _HAL_TS_PKT_CONVERTER_MODE 220*53ee8cc1Swenshuai.xi { 221*53ee8cc1Swenshuai.xi E_TSP_PKT_CONVERTER_188Mode = 0, 222*53ee8cc1Swenshuai.xi E_TSP_PKT_CONVERTER_CIMode = 1, 223*53ee8cc1Swenshuai.xi E_TSP_PKT_CONVERTER_OpenCableMode = 2, 224*53ee8cc1Swenshuai.xi E_TSP_PKT_CONVERTER_ATSMode = 3, 225*53ee8cc1Swenshuai.xi E_TSP_PKT_CONVERTER_MxLMode = 4, 226*53ee8cc1Swenshuai.xi E_TSP_PKT_CONVERTER_NagraDongleMode = 5, 227*53ee8cc1Swenshuai.xi E_TSP_PKT_CONVERTER_Invalid, 228*53ee8cc1Swenshuai.xi } TSP_TS_PKT_CONVERTER_MODE; 229*53ee8cc1Swenshuai.xi 230*53ee8cc1Swenshuai.xi typedef enum _HAL_TS_MXL_PKT_MODE 231*53ee8cc1Swenshuai.xi { 232*53ee8cc1Swenshuai.xi E_TSP_TS_MXL_PKT_192 = 4, 233*53ee8cc1Swenshuai.xi E_TSP_TS_MXL_PKT_196 = 8, 234*53ee8cc1Swenshuai.xi E_TSP_TS_MXL_PKT_200 = 12, 235*53ee8cc1Swenshuai.xi E_TSP_TS_MXL_PKT_INVALID, 236*53ee8cc1Swenshuai.xi } TSP_TS_MXL_PKT_MODE; 237*53ee8cc1Swenshuai.xi 238*53ee8cc1Swenshuai.xi typedef enum _HAL_TSP_CLK_TYPE 239*53ee8cc1Swenshuai.xi { 240*53ee8cc1Swenshuai.xi E_TSP_HAL_TSP_CLK, 241*53ee8cc1Swenshuai.xi E_TSP_HAL_STC_CLK, 242*53ee8cc1Swenshuai.xi E_TSP_HAL_INVALID 243*53ee8cc1Swenshuai.xi } EN_TSP_HAL_CLK_TYPE; 244*53ee8cc1Swenshuai.xi 245*53ee8cc1Swenshuai.xi typedef struct _HAL_TSP_CLK_STATUS 246*53ee8cc1Swenshuai.xi { 247*53ee8cc1Swenshuai.xi MS_BOOL bEnable; 248*53ee8cc1Swenshuai.xi MS_BOOL bInvert; 249*53ee8cc1Swenshuai.xi MS_U8 u8ClkSrc; 250*53ee8cc1Swenshuai.xi } ST_TSP_HAL_CLK_STATUS; 251*53ee8cc1Swenshuai.xi 252*53ee8cc1Swenshuai.xi typedef enum _PCR_SRC 253*53ee8cc1Swenshuai.xi { 254*53ee8cc1Swenshuai.xi /* register setting for kaiser pcr 255*53ee8cc1Swenshuai.xi 0: tsif0 256*53ee8cc1Swenshuai.xi 1: tsif1 257*53ee8cc1Swenshuai.xi 2: tsif2 258*53ee8cc1Swenshuai.xi 3: tsif3 259*53ee8cc1Swenshuai.xi 4: tsif4 260*53ee8cc1Swenshuai.xi 5: tsif5 261*53ee8cc1Swenshuai.xi 6: un-used 262*53ee8cc1Swenshuai.xi 7: un-used 263*53ee8cc1Swenshuai.xi 8: pkt merge 0 264*53ee8cc1Swenshuai.xi 9: pkt merge 1 265*53ee8cc1Swenshuai.xi a: MM file in 1 266*53ee8cc1Swenshuai.xi b: MM file in 2 267*53ee8cc1Swenshuai.xi */ 268*53ee8cc1Swenshuai.xi E_TSP_PCR_SRC_TSIF0 = 0, 269*53ee8cc1Swenshuai.xi E_TSP_PCR_SRC_TSIF1, 270*53ee8cc1Swenshuai.xi E_TSP_PCR_SRC_TSIF2, 271*53ee8cc1Swenshuai.xi E_TSP_PCR_SRC_TSIF3, 272*53ee8cc1Swenshuai.xi E_TSP_PCR_SRC_TSIF4, 273*53ee8cc1Swenshuai.xi E_TSP_PCR_SRC_TSIF5, 274*53ee8cc1Swenshuai.xi E_TSP_PCR_SRC_PKT_MERGE0 = 8, 275*53ee8cc1Swenshuai.xi E_TSP_PCR_SRC_PKT_MERGE1, 276*53ee8cc1Swenshuai.xi E_TSP_PCR_SRC_MMFI0, 277*53ee8cc1Swenshuai.xi E_TSP_PCR_SRC_MMFI1, 278*53ee8cc1Swenshuai.xi E_TSP_PCR_SRC_INVALID, 279*53ee8cc1Swenshuai.xi } TSP_PCR_SRC; 280*53ee8cc1Swenshuai.xi 281*53ee8cc1Swenshuai.xi typedef enum _HAL_TSP_TSIF // for HW TSIF 282*53ee8cc1Swenshuai.xi { 283*53ee8cc1Swenshuai.xi E_TSP_HAL_TSIF_0 , 284*53ee8cc1Swenshuai.xi E_TSP_HAL_TSIF_1 , 285*53ee8cc1Swenshuai.xi E_TSP_HAL_TSIF_2 , 286*53ee8cc1Swenshuai.xi E_TSP_HAL_TSIF_3 , 287*53ee8cc1Swenshuai.xi E_TSP_HAL_TSIF_4 , // not support 288*53ee8cc1Swenshuai.xi E_TSP_HAL_TSIF_5 , // not support 289*53ee8cc1Swenshuai.xi E_TSP_HAL_TSIF_6 , // not support 290*53ee8cc1Swenshuai.xi 291*53ee8cc1Swenshuai.xi // @NOTE There are no real TSIFs for TSIF_PVRx , just use those for PVR backward competiable. 292*53ee8cc1Swenshuai.xi E_TSP_HAL_TSIF_PVR0 , 293*53ee8cc1Swenshuai.xi E_TSP_HAL_TSIF_PVR1 , 294*53ee8cc1Swenshuai.xi E_TSP_HAL_TSIF_PVR2 , 295*53ee8cc1Swenshuai.xi E_TSP_HAL_TSIF_PVR3 , 296*53ee8cc1Swenshuai.xi E_TSP_HAL_TSIF_INVALID , 297*53ee8cc1Swenshuai.xi } TSP_HAL_TSIF; 298*53ee8cc1Swenshuai.xi 299*53ee8cc1Swenshuai.xi 300*53ee8cc1Swenshuai.xi typedef enum _TSP_HAL_FileState 301*53ee8cc1Swenshuai.xi { 302*53ee8cc1Swenshuai.xi /// Command Queue is Idle 303*53ee8cc1Swenshuai.xi E_TSP_HAL_FILE_STATE_IDLE = 0000000000, 304*53ee8cc1Swenshuai.xi /// Command Queue is Busy 305*53ee8cc1Swenshuai.xi E_TSP_HAL_FILE_STATE_BUSY = 0x00000001, 306*53ee8cc1Swenshuai.xi /// Command Queue is Paused. 307*53ee8cc1Swenshuai.xi E_TSP_HAL_FILE_STATE_PAUSE = 0x00000002, 308*53ee8cc1Swenshuai.xi 309*53ee8cc1Swenshuai.xi E_TSP_HAL_FILE_STATE_INVALID, 310*53ee8cc1Swenshuai.xi }TSP_HAL_FileState; 311*53ee8cc1Swenshuai.xi 312*53ee8cc1Swenshuai.xi typedef enum 313*53ee8cc1Swenshuai.xi { 314*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_PIDFLT_NUM = 0, 315*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_SECFLT_NUM = 1, 316*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_SECBUF_NUM = 2, 317*53ee8cc1Swenshuai.xi 318*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_RECENG_NUM = 3, 319*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_RECFLT_NUM = 4, 320*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_RECFLT1_NUM = 5, 321*53ee8cc1Swenshuai.xi 322*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_MMFI_AUDIO_FILTER_NUM = 6, 323*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_MMFI_V3D_FILTER_NUM = 7, 324*53ee8cc1Swenshuai.xi 325*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_TSIF_NUM = 8, 326*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_DEMOD_NUM = 9, 327*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_TSPAD_NUM = 10, 328*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_VQ_NUM = 11, 329*53ee8cc1Swenshuai.xi 330*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_CAFLT_NUM = 12, 331*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_CAKEY_NUM = 13, 332*53ee8cc1Swenshuai.xi 333*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_FW_ALIGN = 14, 334*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_VQ_ALIGN = 15, 335*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_VQ_PITCH = 16, 336*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_SECBUF_ALIGN = 17, 337*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_PVR_ALIGN = 18, 338*53ee8cc1Swenshuai.xi 339*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_PVRCA_PATH_NUM = 19, 340*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_SHAREKEY_FLT_RANGE = 20, 341*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_PVRCA0_FLT_RANGE = 21, 342*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_PVRCA1_FLT_RANGE = 22, 343*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_PVRCA2_FLT_RANGE = 23, 344*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_SHAREKEY_FLT1_RANGE = 24, 345*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_SHAREKEY_FLT2_RANGE = 25, 346*53ee8cc1Swenshuai.xi 347*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_HW_TYPE = 26, 348*53ee8cc1Swenshuai.xi 349*53ee8cc1Swenshuai.xi //27 is reserved, and can not be used 350*53ee8cc1Swenshuai.xi 351*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_VFIFO_NUM = 28, 352*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_AFIFO_NUM = 29, 353*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_HWPCR_SUPPORT = 30, 354*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_PCRFLT_START_IDX = 31, 355*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_RECFLT_IDX = 32, 356*53ee8cc1Swenshuai.xi 357*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_DSCMB_ENG_NUM = 33, 358*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_MAX_MERGESTR_NUM = 34, 359*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_MAX_SEC_FLT_DEPTH = 35, 360*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_FW_BUF_SIZE = 36, 361*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_FW_BUF_RANGE = 37, 362*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VQ_BUF_RANGE = 38, 363*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_SEC_BUF_RANGE = 39, 364*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_FIQ_NUM = 40, 365*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_TYPE_NULL, 366*53ee8cc1Swenshuai.xi } TSP_HAL_CAP_TYPE; 367*53ee8cc1Swenshuai.xi 368*53ee8cc1Swenshuai.xi // @F_TODO remove unused enum member 369*53ee8cc1Swenshuai.xi typedef enum 370*53ee8cc1Swenshuai.xi { 371*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_PIDFLT_NUM = (TSP_PCRFLT_END_ID - TSP_PIDFLT_START_ID), 372*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_SECFLT_NUM = (TSP_SECFLT_END_ID - TSP_SECFLT_START_ID), 373*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_SECBUF_NUM = (TSP_SECBUF_END_ID - TSP_SECBUF_START_ID), 374*53ee8cc1Swenshuai.xi 375*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_RECENG_NUM = 4, 376*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_RECFLT_NUM = TSP_PIDFLT_REC_NUM, 377*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_RECFLT_IDX = TSP_RECFLT_IDX, 378*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_PCRFLT_START_IDX = TSP_PCRFLT_START_ID, 379*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_RECFLT1_NUM = 0xDEADBEEF, // 0xDEADBEEF for not support 380*53ee8cc1Swenshuai.xi 381*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_MMFI_AUDIO_FILTER_NUM = 4, //MMFI0 filters 382*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_MMFI_V3D_FILTER_NUM = 4, //MMFI1 filters 383*53ee8cc1Swenshuai.xi 384*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_TSIF_NUM = 4, 385*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_DEMOD_NUM = 4, //internal demod // [ToDo] STC number... by MM problem Jason-YH.Sun 386*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_TSPAD_NUM = 3, 387*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_VQ_NUM = 4, 388*53ee8cc1Swenshuai.xi 389*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_CAFLT_NUM = (TSP_PIDFLT_END_ID - TSP_PIDFLT_START_ID), //@NOTE: flt number for descrypt purpose 390*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_CAKEY_NUM = 0xDEADBEEF, 391*53ee8cc1Swenshuai.xi 392*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_FW_ALIGN = 0x100, 393*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_VQ_ALIGN = 16, // 16 byte align?? 394*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_VQ_PITCH = 208, // 208 byte per VQ unit 395*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_SECBUF_ALIGN = 16, // 16 byte align 396*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_PVR_ALIGN = 16, 397*53ee8cc1Swenshuai.xi 398*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_PVRCA_PATH_NUM = 0xDEADBEEF, 399*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_SHAREKEY_FLT_RANGE = 0xDEADBEEF, 400*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_PVRCA0_FLT_RANGE = 0xDEADBEEF, 401*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_PVRCA1_FLT_RANGE = 0xDEADBEEF, 402*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_PVRCA2_FLT_RANGE = 0xDEADBEEF, 403*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_SHAREKEY_FLT1_RANGE = 0xDEADBEEF, 404*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_SHAREKEY_FLT2_RANGE = 0xDEADBEEF, 405*53ee8cc1Swenshuai.xi 406*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_HW_TYPE = 0x80002003, 407*53ee8cc1Swenshuai.xi 408*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_VFIFO_NUM = 4, 409*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_AFIFO_NUM = 4, 410*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_HWPCR_SUPPORT = 1, 411*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_FIQ_NUM = TSP_TSIF_NUM, 412*53ee8cc1Swenshuai.xi 413*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_FW_BUF_SIZE = 0x4000, 414*53ee8cc1Swenshuai.xi 415*53ee8cc1Swenshuai.xi E_TSP_HAL_CAP_VAL_NULL = 0xDEADBEEF, 416*53ee8cc1Swenshuai.xi } TSP_HAL_CAP_VAL; 417*53ee8cc1Swenshuai.xi 418*53ee8cc1Swenshuai.xi /// TSP TEI Remove Error Packet Infomation 419*53ee8cc1Swenshuai.xi typedef enum 420*53ee8cc1Swenshuai.xi { 421*53ee8cc1Swenshuai.xi E_TSP_HAL_TEI_REMOVE_AUDIO_PKT, ///< TEI Remoce Audio Packet 422*53ee8cc1Swenshuai.xi E_TSP_HAL_TEI_REMOVE_VIDEO_PKT ///< TEI Remoce Video Packet 423*53ee8cc1Swenshuai.xi 424*53ee8cc1Swenshuai.xi }TSP_HAL_TEI_RmPktType; 425*53ee8cc1Swenshuai.xi 426*53ee8cc1Swenshuai.xi // TSP TimeStamp Clk Select 427*53ee8cc1Swenshuai.xi typedef enum 428*53ee8cc1Swenshuai.xi { 429*53ee8cc1Swenshuai.xi E_TSP_HAL_TIMESTAMP_CLK_90K = 0, 430*53ee8cc1Swenshuai.xi E_TSP_HAL_TIMESTAMP_CLK_27M = 1, 431*53ee8cc1Swenshuai.xi E_TSP_HAL_TIMESTAMP_CLK_INVALID = 2 432*53ee8cc1Swenshuai.xi 433*53ee8cc1Swenshuai.xi } TSP_HAL_TimeStamp_Clk; 434*53ee8cc1Swenshuai.xi 435*53ee8cc1Swenshuai.xi /// TSP Packet Converter Input Mode 436*53ee8cc1Swenshuai.xi typedef enum 437*53ee8cc1Swenshuai.xi { 438*53ee8cc1Swenshuai.xi E_TSP_HAL_PKT_MODE_NORMAL, ///< Normal Mode (bypass) 439*53ee8cc1Swenshuai.xi E_TSP_HAL_PKT_MODE_CI, ///< CI+ 1.4 (188 bytes) 440*53ee8cc1Swenshuai.xi E_TSP_HAL_PKT_MODE_OPEN_CABLE, ///< Open Cable (200 bytes) 441*53ee8cc1Swenshuai.xi E_TSP_HAL_PKT_MODE_ATS, ///< ATS mode (192 bytes) (188+TimeStamp) 442*53ee8cc1Swenshuai.xi E_TSP_HAL_PKT_MODE_MXL_192, ///< MXL mode (192 bytes) 443*53ee8cc1Swenshuai.xi E_TSP_HAL_PKT_MODE_MXL_196, ///< MXL mode (196 bytes) 444*53ee8cc1Swenshuai.xi E_TSP_HAL_PKT_MODE_MXL_200, ///< MXL mode (200 bytes) 445*53ee8cc1Swenshuai.xi E_TSP_HAL_PKT_MODE_ND, ///< Nagra Dongle mode (192 bytes) 446*53ee8cc1Swenshuai.xi 447*53ee8cc1Swenshuai.xi E_TSP_HAL_PKT_MODE_INVALID 448*53ee8cc1Swenshuai.xi }TSP_HAL_PKT_MODE; 449*53ee8cc1Swenshuai.xi 450*53ee8cc1Swenshuai.xi //---------------------------------- 451*53ee8cc1Swenshuai.xi /// DMX debug table information structure 452*53ee8cc1Swenshuai.xi //---------------------------------- 453*53ee8cc1Swenshuai.xi 454*53ee8cc1Swenshuai.xi typedef enum 455*53ee8cc1Swenshuai.xi { 456*53ee8cc1Swenshuai.xi E_TSP_HAL_FLOW_LIVE0, 457*53ee8cc1Swenshuai.xi E_TSP_HAL_FLOW_LIVE1, 458*53ee8cc1Swenshuai.xi E_TSP_HAL_FLOW_LIVE2, 459*53ee8cc1Swenshuai.xi E_TSP_HAL_FLOW_LIVE3, 460*53ee8cc1Swenshuai.xi E_TSP_HAL_FLOW_LIVE4, // not support 461*53ee8cc1Swenshuai.xi E_TSP_HAL_FLOW_LIVE5, // not support 462*53ee8cc1Swenshuai.xi E_TSP_HAL_FLOW_LIVE6, // not support 463*53ee8cc1Swenshuai.xi 464*53ee8cc1Swenshuai.xi E_TSP_HAL_FLOW_FILE0, 465*53ee8cc1Swenshuai.xi E_TSP_HAL_FLOW_FILE1, 466*53ee8cc1Swenshuai.xi E_TSP_HAL_FLOW_FILE2, 467*53ee8cc1Swenshuai.xi E_TSP_HAL_FLOW_FILE3, 468*53ee8cc1Swenshuai.xi E_TSP_HAL_FLOW_FILE4, // not support 469*53ee8cc1Swenshuai.xi E_TSP_HAL_FLOW_FILE5, // not support 470*53ee8cc1Swenshuai.xi E_TSP_HAL_FLOW_FILE6, // not support 471*53ee8cc1Swenshuai.xi 472*53ee8cc1Swenshuai.xi E_TSP_HAL_FLOW_MMFI0, 473*53ee8cc1Swenshuai.xi E_TSP_HAL_FLOW_MMFI1, 474*53ee8cc1Swenshuai.xi 475*53ee8cc1Swenshuai.xi E_TSP_HAL_FLOW_INVALID, 476*53ee8cc1Swenshuai.xi 477*53ee8cc1Swenshuai.xi } TSP_HAL_FLOW; 478*53ee8cc1Swenshuai.xi 479*53ee8cc1Swenshuai.xi typedef enum 480*53ee8cc1Swenshuai.xi { 481*53ee8cc1Swenshuai.xi E_TSP_HAL_GATING_PATH0 = 0, 482*53ee8cc1Swenshuai.xi E_TSP_HAL_GATING_PATH1, 483*53ee8cc1Swenshuai.xi E_TSP_HAL_GATING_PATH2, 484*53ee8cc1Swenshuai.xi E_TSP_HAL_GATING_PATH3, 485*53ee8cc1Swenshuai.xi E_TSP_HAL_GATING_PATH4, 486*53ee8cc1Swenshuai.xi E_TSP_HAL_GATING_PATH5, 487*53ee8cc1Swenshuai.xi E_TSP_HAL_GATING_TSP_ENG, 488*53ee8cc1Swenshuai.xi E_TSP_HAL_GATING_FIQ, 489*53ee8cc1Swenshuai.xi E_TSP_HAL_GATING_PVR1, 490*53ee8cc1Swenshuai.xi E_TSP_HAL_GATING_PVR2, 491*53ee8cc1Swenshuai.xi E_TSP_HAL_GATING_PVR3, 492*53ee8cc1Swenshuai.xi E_TSP_HAL_GATING_PVR4, 493*53ee8cc1Swenshuai.xi 494*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_CLK_GATING_PATH0 = 17, 495*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_CLK_GATING_PATH1, 496*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_CLK_GATING_PATH2, 497*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_CLK_GATING_PATH3, 498*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_CLK_GATING_PATH4, 499*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_CLK_GATING_PATH5, 500*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_CLK_GATING_TSP_ENG, 501*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_CLK_GATING_FIQ, 502*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_CLK_GATING_PVR1, 503*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_CLK_GATING_PVR2, 504*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_CLK_GATING_PVR3, 505*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_CLK_GATING_PVR4, 506*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_CLK_GATING_MMFI0, 507*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_CLK_GATING_MMFI1, 508*53ee8cc1Swenshuai.xi 509*53ee8cc1Swenshuai.xi E_TSP_HAL_GATING_FIQ0 = 31, 510*53ee8cc1Swenshuai.xi E_TSP_HAL_GATING_FIQ1, 511*53ee8cc1Swenshuai.xi E_TSP_HAL_GATING_FIQ2, 512*53ee8cc1Swenshuai.xi E_TSP_HAL_GATING_FIQ3, 513*53ee8cc1Swenshuai.xi E_TSP_HAL_GATING_FIQ4, 514*53ee8cc1Swenshuai.xi E_TSP_HAL_GATING_FIQ5, 515*53ee8cc1Swenshuai.xi 516*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_CLK_GATING_FIQ0, 517*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_CLK_GATING_FIQ1, 518*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_CLK_GATING_FIQ2, 519*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_CLK_GATING_FIQ3, 520*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_CLK_GATING_FIQ4, 521*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_CLK_GATING_FIQ5, 522*53ee8cc1Swenshuai.xi 523*53ee8cc1Swenshuai.xi E_TSP_HAL_GATING_INVALID, 524*53ee8cc1Swenshuai.xi 525*53ee8cc1Swenshuai.xi } TSP_HAL_GATING; 526*53ee8cc1Swenshuai.xi 527*53ee8cc1Swenshuai.xi typedef enum 528*53ee8cc1Swenshuai.xi { 529*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_PKT_CONVERTER0 = 0, 530*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_PKT_CONVERTER1, 531*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_PKT_CONVERTER2, 532*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_PKT_CONVERTER3, 533*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_PKT_CONVERTER4, 534*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_PKT_CONVERTER5, 535*53ee8cc1Swenshuai.xi 536*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_FIQ0 = 8, 537*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_FIQ1, 538*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_FIQ2, 539*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_FIQ3, 540*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_FIQ4, 541*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_FIQ5, 542*53ee8cc1Swenshuai.xi 543*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_VQ_TX0 = 16, 544*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_VQ_TX1, 545*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_VQ_TX2, 546*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_VQ_TX3, 547*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_VQ_TX4, 548*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_VQ_TX5, 549*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_VQ_RX, 550*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_VQ_TOP, 551*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_PKT_DEMUX0, 552*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_PKT_DEMUX1, 553*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_PKT_DEMUX2, 554*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_PKT_DEMUX3, 555*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_PKT_DEMUX4, 556*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_PKT_DEMUX5, 557*53ee8cc1Swenshuai.xi 558*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_PVR1 = 32, 559*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_PVR2, 560*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_PVR3, 561*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_PVR4, 562*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_TIMESTAMP_SEL_PVR1, 563*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_TIMESTAMP_SEL_PVR2, 564*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_TIMESTAMP_SEL_PVR3, 565*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_TIMESTAMP_SEL_PVR4, 566*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_SP_D0, 567*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_SP_D1, 568*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_SP_D2, 569*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_SP_D3, 570*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_SP_D4, 571*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_SP_D5, 572*53ee8cc1Swenshuai.xi 573*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_FILTER_NULL_PKT0 = 48, 574*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_FILTER_NULL_PKT1, 575*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_FILTER_NULL_PKT2, 576*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_FILTER_NULL_PKT3, 577*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_FILTER_NULL_PKT4, 578*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_FILTER_NULL_PKT5, 579*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_DIRECTV_130_188_0, 580*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_DIRECTV_130_188_1, 581*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_DIRECTV_130_188_2, 582*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_DIRECTV_130_188_3, 583*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_DIRECTV_130_188_4, 584*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_DIRECTV_130_188_5, 585*53ee8cc1Swenshuai.xi 586*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_SRC_ID_PARSER0 = 64, 587*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_SRC_ID_PARSER1, 588*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_SRC_ID_PARSER2, 589*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_SRC_ID_PARSER3, 590*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_SRC_ID_PARSER4, 591*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_SRC_ID_PARSER5, 592*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_PCRFLT_0, 593*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_PCRFLT_1, 594*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_PCRFLT_2, 595*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_PCRFLT_3, 596*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_PCRFLT_4, 597*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_PCRFLT_5, 598*53ee8cc1Swenshuai.xi 599*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_PATH0 = 80, 600*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_PATH1, 601*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_PATH2, 602*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_PATH3, 603*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_PATH4, 604*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_PATH5, 605*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_OTV, 606*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_DEBUG_TABLE, 607*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_DMA_ENG, 608*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_SEC_CMP, 609*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_SECFLT_REG, 610*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_SEC, 611*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_PID_TABLE, 612*53ee8cc1Swenshuai.xi 613*53ee8cc1Swenshuai.xi E_TSP_HAL_RESET_CTRL_INVALID, 614*53ee8cc1Swenshuai.xi 615*53ee8cc1Swenshuai.xi } TSP_HAL_RESET_CTRL; 616*53ee8cc1Swenshuai.xi 617*53ee8cc1Swenshuai.xi typedef enum 618*53ee8cc1Swenshuai.xi { 619*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_SEL_MMFI = 0, 620*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_SEL_FQ = 1, 621*53ee8cc1Swenshuai.xi 622*53ee8cc1Swenshuai.xi E_TSP_HAL_MIU_SEL_INVALID, 623*53ee8cc1Swenshuai.xi 624*53ee8cc1Swenshuai.xi } TSP_HAL_MIU_SEL_TYPE; 625*53ee8cc1Swenshuai.xi 626*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 627*53ee8cc1Swenshuai.xi // PVR HAL API 628*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------- 629*53ee8cc1Swenshuai.xi // Static Register Mapping for external access 630*53ee8cc1Swenshuai.xi #define REG_PIDFLT_BASE0 (0x00240000UL) 631*53ee8cc1Swenshuai.xi #define REG_PIDFLT_BASE1 (0x00241000UL) 632*53ee8cc1Swenshuai.xi #define REG_SECFLT_BASE (0x00221000UL) 633*53ee8cc1Swenshuai.xi #define REG_SECBUF_BASE (0x00221024UL) 634*53ee8cc1Swenshuai.xi #define REG_CTRL_BASE (0x00210200UL) 635*53ee8cc1Swenshuai.xi 636*53ee8cc1Swenshuai.xi #define _REGPid0 ((REG_Pid*) (REG_PIDFLT_BASE0)) 637*53ee8cc1Swenshuai.xi #define _REGPid1 ((REG_Pid*) (REG_PIDFLT_BASE1)) 638*53ee8cc1Swenshuai.xi #define _REGSec ((REG_Sec*) (REG_SECFLT_BASE)) 639*53ee8cc1Swenshuai.xi #define _REGBuf ((REG_Buf*) (REG_SECBUF_BASE)) 640*53ee8cc1Swenshuai.xi //#define _REGSynth ((REG_Synth*)(REG_SYNTH_BASE )) 641*53ee8cc1Swenshuai.xi 642*53ee8cc1Swenshuai.xi #define PPIDFLT0(_fltid) (&(_REGPid0->Flt[_fltid])) 643*53ee8cc1Swenshuai.xi #define PPIDFLT1(_fltid) (&(_REGPid1->Flt[_fltid])) 644*53ee8cc1Swenshuai.xi #define PSECFLT(_fltid) (&(((REG_Sec*)(REG_SECFLT_BASE+(_fltid>>5)*0x1000))->Flt[_fltid&(0x1F)])) 645*53ee8cc1Swenshuai.xi #define PSECBUF(_bufid) (&(((REG_Buf*)(REG_SECBUF_BASE+(_bufid>>5)*0x1000))->Buf[_bufid&(0x1F)])) 646*53ee8cc1Swenshuai.xi 647*53ee8cc1Swenshuai.xi //#define TSIF2PKTDMX(_tsif) (((_tsif)<2)?(_tsif):((_tsif > 3)?(_tsif+2):(_tsif+1))) 648*53ee8cc1Swenshuai.xi 649*53ee8cc1Swenshuai.xi //#define PKTDMX2TSIF(_pktdmx) ((_pktdmx)>2)?(((_pktdmx)==2)?(_pktdmx-1):(_pktdmx)):(((_pktdmx)==5)?(_pktdmx-2):(_pktdmx-1)) 650*53ee8cc1Swenshuai.xi 651*53ee8cc1Swenshuai.xi 652*53ee8cc1Swenshuai.xi 653*53ee8cc1Swenshuai.xi //******************** PIDFLT DEFINE START ********************// 654*53ee8cc1Swenshuai.xi // PID 655*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_PID_MASK 0x00001FFF 656*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_PID_SHFT 0 657*53ee8cc1Swenshuai.xi 658*53ee8cc1Swenshuai.xi // Continuous counter 659*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_CC_MASK 0xFF000000 660*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_CC_SHFT 24 661*53ee8cc1Swenshuai.xi 662*53ee8cc1Swenshuai.xi // PIDFLT SRC 663*53ee8cc1Swenshuai.xi typedef enum _TSP_PIDFLT_SRC 664*53ee8cc1Swenshuai.xi { 665*53ee8cc1Swenshuai.xi E_TSP_PIDFLT_LIVE0, 666*53ee8cc1Swenshuai.xi E_TSP_PIDFLT_LIVE1, 667*53ee8cc1Swenshuai.xi E_TSP_PIDFLT_LIVE2, 668*53ee8cc1Swenshuai.xi E_TSP_PIDFLT_LIVE3, 669*53ee8cc1Swenshuai.xi E_TSP_PIDFLT_LIVE4, // not support 670*53ee8cc1Swenshuai.xi E_TSP_PIDFLT_LIVE5, // not support 671*53ee8cc1Swenshuai.xi E_TSP_PIDFLT_LIVE6, // not support 672*53ee8cc1Swenshuai.xi E_TSP_PIDFLT_FILE0, 673*53ee8cc1Swenshuai.xi E_TSP_PIDFLT_FILE1, 674*53ee8cc1Swenshuai.xi E_TSP_PIDFLT_FILE2, 675*53ee8cc1Swenshuai.xi E_TSP_PIDFLT_FILE3, 676*53ee8cc1Swenshuai.xi E_TSP_PIDFLT_FILE4, // not support 677*53ee8cc1Swenshuai.xi E_TSP_PIDFLT_FILE5, // not support 678*53ee8cc1Swenshuai.xi E_TSP_PIDFLT_FILE6, // not support 679*53ee8cc1Swenshuai.xi E_TSP_PIDFLT_INVALID, 680*53ee8cc1Swenshuai.xi } TSP_PIDFLT_SRC; 681*53ee8cc1Swenshuai.xi 682*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_IN_MASK 0x0000E000 683*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_TSIF_SHFT 13 684*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_TSIF0 0x00 685*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_TSIF1 0x01 686*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_TSIF2 0x02 687*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_TSIF3 0x03 688*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_TSIF_MAX 0x04 689*53ee8cc1Swenshuai.xi 690*53ee8cc1Swenshuai.xi // Section filter Id (0~63) 691*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_SECFLT_MASK 0x000000FF // [21:16] secflt id 692*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_SECFLT_SHFT 0 693*53ee8cc1Swenshuai.xi 694*53ee8cc1Swenshuai.xi // PIDFLT DST 695*53ee8cc1Swenshuai.xi typedef enum _TSP_PIDFLT_DST 696*53ee8cc1Swenshuai.xi { 697*53ee8cc1Swenshuai.xi E_TSP_PIDFLT_DST_VIDEO, 698*53ee8cc1Swenshuai.xi E_TSP_PIDFLT_DST_AUDIO, 699*53ee8cc1Swenshuai.xi E_TSP_PIDFLT_DST_PVR, 700*53ee8cc1Swenshuai.xi 701*53ee8cc1Swenshuai.xi E_TSP_PIDFLT_DST_INVALID, 702*53ee8cc1Swenshuai.xi } TSP_PIDFLT_DST; 703*53ee8cc1Swenshuai.xi 704*53ee8cc1Swenshuai.xi // AF/Sec/Video/V3D/Audio/AudioB/AudioC/AudioD/PVR1/PVR2/PVR3/PVR4 705*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_SECFLT_NULL 0x000000FF // software usage clean selected section filter 706*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_MASK 0x00DFFF00 707*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_SHFT 8 708*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_NONE 0x00000000 709*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_SECAF 0x00000100 710*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_SECFLT 0x00000200 711*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_VFIFO 0x00000400 712*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_VFIFO3D 0x00000800 713*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_AFIFO 0x00001000 714*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_AFIFO2 0x00002000 715*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_VFIFO3 0x00004000 716*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_AFIFO3 0x00080000 717*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_AFIFO4 0x00100000 718*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_VFIFO4 0x00800000 719*53ee8cc1Swenshuai.xi 720*53ee8cc1Swenshuai.xi 721*53ee8cc1Swenshuai.xi // SRC ID 722*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_SRCID_MASK 0xF0000000 723*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_SRCID_SHIFT 28 724*53ee8cc1Swenshuai.xi 725*53ee8cc1Swenshuai.xi 726*53ee8cc1Swenshuai.xi 727*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_PVRFLT_MASK 0x00078000 728*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_PVRFLT_SHFT 15 729*53ee8cc1Swenshuai.xi //enable LUT 730*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_LUT 0x00400000 731*53ee8cc1Swenshuai.xi 732*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_PVR1 0x00008000 733*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_PVR2 0x00010000 734*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_PVR3 0x00020000 735*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_PVR4 0x00040000 736*53ee8cc1Swenshuai.xi 737*53ee8cc1Swenshuai.xi 738*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_PKTPUSH_PASS_MASK 0x00200000 739*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_PKTPUSH_PASS_SHFT 21 740*53ee8cc1Swenshuai.xi #define TSP_PID_FLT_PKTPUSH_PASS 0x00200000 741*53ee8cc1Swenshuai.xi 742*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_TSOFLT_MASK 0x00400000 743*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_TSOFLT_SHFT 22 744*53ee8cc1Swenshuai.xi #define TSP_PID_FLT_OUT_TSO0 0x00400000 745*53ee8cc1Swenshuai.xi 746*53ee8cc1Swenshuai.xi //******************** PIDFLT DEFINE END ********************// 747*53ee8cc1Swenshuai.xi void TSP32_IdrW(TSP32 *preg, MS_U32 value); 748*53ee8cc1Swenshuai.xi MS_U32 TSP32_IdrR(TSP32 *preg); 749*53ee8cc1Swenshuai.xi 750*53ee8cc1Swenshuai.xi //=========================TSIF================================ 751*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_TSIF_SelPad(MS_U32 tsIf, TSP_TS_PAD eTSPad); 752*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_TsOutPadCfg(TSP_TS_PAD eOutPad, TSP_TS_PAD_MUX_MODE eOutPadMode, TSP_TS_PAD eInPad, TSP_TS_PAD_MUX_MODE eInPadMode, MS_BOOL bEnable); 753*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_SetTSIF(MS_U16 u16TSIF, TSP_TSIF_CFG u16Cfg, MS_BOOL bFileIn); 754*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_TSIF_LiveEn(MS_U32 tsIf, MS_BOOL bEnable); 755*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_TSIF_FileEn(FILEENG_SEQ eFileEng, MS_BOOL bEnable); 756*53ee8cc1Swenshuai.xi void HAL_TSP_TSIF_BitSwap(MS_U32 tsIf, MS_BOOL bEnable); 757*53ee8cc1Swenshuai.xi void HAL_TSP_TSIF_ExtSync(MS_U32 tsIf, MS_BOOL bEnable); 758*53ee8cc1Swenshuai.xi void HAL_TSP_TSIF_Parl(MS_U32 tsIf, MS_BOOL bEnable); 759*53ee8cc1Swenshuai.xi void HAL_TSP_PAD_3Wire(MS_U32 u32Pad, MS_BOOL bEnable); 760*53ee8cc1Swenshuai.xi void HAL_TSP_TSIF_3Wire(MS_U32 tsIf, MS_BOOL bEnable); 761*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_TSIF_SelPad_ClkInv(MS_U32 tsIf , MS_BOOL bClkInv); 762*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_TSIF_SelPad_ClkDis(MS_U32 tsIf , MS_BOOL bClkDis); 763*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_GET_TSIF_FileEnStatus(MS_U32 u32FileEn); 764*53ee8cc1Swenshuai.xi void HAL_TSP_TEI_SKIP(MS_U32 tsIf, MS_BOOL bEnable); 765*53ee8cc1Swenshuai.xi 766*53ee8cc1Swenshuai.xi //=========================TSP================================ 767*53ee8cc1Swenshuai.xi void HAL_TSP_PktDmx_CCDrop(MS_U32 pktDmxId, MS_BOOL bEn); 768*53ee8cc1Swenshuai.xi void HAL_TSP_PktDmx_RmDupAVPkt(MS_BOOL bEnable); 769*53ee8cc1Swenshuai.xi void HAL_TSP_ReDirect_File(MS_U32 reDir, MS_U32 tsIf, MS_BOOL bEn); 770*53ee8cc1Swenshuai.xi void HAL_TSP_SetBank(MS_VIRT u32BankAddr); 771*53ee8cc1Swenshuai.xi void HAL_TSP_Reset(MS_BOOL bEn); 772*53ee8cc1Swenshuai.xi void HAL_TSP_Path_Reset(MS_U32 tsIf,MS_BOOL bEn); 773*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_GetClockSetting(EN_TSP_HAL_CLK_TYPE eClkType, MS_U8 u8Index, ST_TSP_HAL_CLK_STATUS *pstClkStatus); 774*53ee8cc1Swenshuai.xi void HAL_TSP_Power(MS_BOOL bEn); 775*53ee8cc1Swenshuai.xi void HAL_TSP_CPU(MS_BOOL bEn); 776*53ee8cc1Swenshuai.xi void HAL_TSP_ResetCPU(MS_BOOL bReset); 777*53ee8cc1Swenshuai.xi void HAL_TSP_HwPatch(void); 778*53ee8cc1Swenshuai.xi void HAL_TSP_RestoreFltState(void); 779*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_LoadFW(MS_U32 u32FwPhyAddr, MS_U32 u32FwSize); 780*53ee8cc1Swenshuai.xi void HAL_TSP_RecvBuf_Reset(MS_U32 pktDmxId, MS_BOOL bEn); 781*53ee8cc1Swenshuai.xi void HAL_TSP_Set_RcvBuf_Src(MS_U32 bufIdx, MS_U32 inputSrc); 782*53ee8cc1Swenshuai.xi void HAL_TSP_PktBuf_Reset(MS_U32 pktBufId, MS_BOOL bEn); 783*53ee8cc1Swenshuai.xi void HAL_TSP_SaveFltState(void); 784*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_GetCaps(TSP_HAL_CAP_TYPE eCap, MS_U32 *pu32CapInfo); 785*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_CMD_Run(MS_U32 u32Cmd, MS_U32 u32Config0, MS_U32 u32Config1, MS_U32* pData); 786*53ee8cc1Swenshuai.xi void HAL_TSP_TEI_RemoveErrorPkt(TSP_HAL_TEI_RmPktType eHalPktType, MS_BOOL bEnable); 787*53ee8cc1Swenshuai.xi void HAL_TSP_Bank1137_Write(MS_U32 u32Offset,MS_U16 u16Value); 788*53ee8cc1Swenshuai.xi 789*53ee8cc1Swenshuai.xi //=========================TSO================================ 790*53ee8cc1Swenshuai.xi void HAL_TSO_SetTSOOutMUX(MS_BOOL bSet); 791*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_TSO_TSIF_SelPad(MS_U32 u32TSOEng, TSP_TS_PAD eTSPad); 792*53ee8cc1Swenshuai.xi 793*53ee8cc1Swenshuai.xi //=========================Filein================================ 794*53ee8cc1Swenshuai.xi void HAL_TSP_Filein_PktSize(FILEENG_SEQ eFileEng, MS_U32 u32PktSize); 795*53ee8cc1Swenshuai.xi void HAL_TSP_Filein_Addr(FILEENG_SEQ eFileEng, MS_U32 addr); 796*53ee8cc1Swenshuai.xi void HAL_TSP_Filein_Size(FILEENG_SEQ eFileEng, MS_U32 size); 797*53ee8cc1Swenshuai.xi void HAL_TSP_Filein_Start(FILEENG_SEQ eFileEng); 798*53ee8cc1Swenshuai.xi void HAL_TSP_Filein_Abort(FILEENG_SEQ eFileEng, MS_BOOL bEn); 799*53ee8cc1Swenshuai.xi void HAL_TSP_Filein_CmdQRst(FILEENG_SEQ eFileEng, MS_BOOL bEnable); 800*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_Filein_CmdQSlot(FILEENG_SEQ eFileEng); 801*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_Filein_CmdQCnt(FILEENG_SEQ eFileEng); 802*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_Filein_CmdQLv(FILEENG_SEQ eFileEng); 803*53ee8cc1Swenshuai.xi void HAL_TSP_Filein_ByteDelay(FILEENG_SEQ eFileEng, MS_U32 delay, MS_BOOL bEnable); 804*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_Filein_Status(FILEENG_SEQ eFileEng); 805*53ee8cc1Swenshuai.xi void HAL_TSP_Filein_BlockTimeStamp(FILEENG_SEQ eFileEng, MS_BOOL bEn); 806*53ee8cc1Swenshuai.xi void HAL_TSP_Filein_PacketMode(FILEENG_SEQ eFileEng,MS_BOOL bSet); 807*53ee8cc1Swenshuai.xi void HAL_TSP_Filein_SetTimeStamp(FILEENG_SEQ eFileEng, MS_U32 u32Stamp); 808*53ee8cc1Swenshuai.xi void HAL_TSP_Filein_SetTimeStampClk(FILEENG_SEQ eFileEng, TSP_HAL_TimeStamp_Clk eTimeStampClk); 809*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_Filein_GetTimeStamp(FILEENG_SEQ eFileEng); 810*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_Filein_PktTimeStamp(FILEENG_SEQ eFileEng); 811*53ee8cc1Swenshuai.xi void HAL_TSP_Filein_Bypass(FILEENG_SEQ eFileEng, MS_BOOL bBypass);// for PS mode A/V fifo pull back 812*53ee8cc1Swenshuai.xi 813*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_File_Pause(FILEENG_SEQ eFileEng); 814*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_File_Resume(FILEENG_SEQ eFileEng); 815*53ee8cc1Swenshuai.xi TSP_HAL_FileState HAL_TSP_Filein_GetState(FILEENG_SEQ eFileEng); 816*53ee8cc1Swenshuai.xi void HAL_TSP_Filein_GetCurAddr(FILEENG_SEQ eFileEng, MS_PHY *pu32Addr); 817*53ee8cc1Swenshuai.xi void HAL_TSP_Filein_WbFsmRst(FILEENG_SEQ eFileEng, MS_BOOL bEnable); 818*53ee8cc1Swenshuai.xi void HAL_TSP_Filein_Init_Trust_Start(FILEENG_SEQ eFileEng); 819*53ee8cc1Swenshuai.xi /* 820*53ee8cc1Swenshuai.xi // Only used by [HW test code] 821*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_Filein_Done_Status(FILEENG_SEQ eFileEng); 822*53ee8cc1Swenshuai.xi */ 823*53ee8cc1Swenshuai.xi 824*53ee8cc1Swenshuai.xi //=========================PCR FLT================================ 825*53ee8cc1Swenshuai.xi void HAL_TSP_PcrFlt_SetPid(MS_U32 pcrFltId, MS_U32 u32Pid); 826*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_PcrFlt_GetPid(MS_U32 pcrFltId); 827*53ee8cc1Swenshuai.xi void HAL_TSP_PcrFlt_Enable(MS_U32 pcrFltId, MS_BOOL bEnable); 828*53ee8cc1Swenshuai.xi void HAL_TSP_PcrFlt_SetSrc(MS_U32 pcrFltId, TSP_PCR_SRC src); 829*53ee8cc1Swenshuai.xi void HAL_TSP_PcrFlt_GetSrc(MS_U32 pcrFltId, TSP_PCR_SRC *pPcrSrc);//[Jason] 830*53ee8cc1Swenshuai.xi void HAL_TSP_PcrFlt_GetPcr(MS_U32 pcrFltId, MS_U32 *pu32Pcr_H, MS_U32 *pu32Pcr); 831*53ee8cc1Swenshuai.xi void HAL_TSP_PcrFlt_Reset(MS_U32 pcrFltId); 832*53ee8cc1Swenshuai.xi void HAL_TSP_PcrFlt_ClearInt(MS_U32 pcrFltId); 833*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_PcrFlt_GetIntMask(MS_U32 pcrFltId); 834*53ee8cc1Swenshuai.xi 835*53ee8cc1Swenshuai.xi //=========================STC================================ 836*53ee8cc1Swenshuai.xi void HAL_TSP_STC_Init(void); 837*53ee8cc1Swenshuai.xi void HAL_TSP_SetSTCSynth(MS_U32 Eng, MS_U32 u32Sync); 838*53ee8cc1Swenshuai.xi void HAL_TSP_GetSTCSynth(MS_U32 Eng, MS_U32* u32Sync); 839*53ee8cc1Swenshuai.xi void HAL_TSP_STC64_Mode_En(MS_BOOL bEnable); 840*53ee8cc1Swenshuai.xi void HAL_TSP_STC64_Set(MS_U32 Eng, MS_U32 stcH, MS_U32 stcL); 841*53ee8cc1Swenshuai.xi void HAL_TSP_STC64_Get(MS_U32 Eng, MS_U32* pStcH, MS_U32* pStcL); 842*53ee8cc1Swenshuai.xi void HAL_TSP_STC33_CmdQSet(MS_U32 stcH, MS_U32 stcL); 843*53ee8cc1Swenshuai.xi void HAL_TSP_STC33_CmdQGet(MS_U32* pStcH, MS_U32* pStcL); 844*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_STC_UpdateCtrl(MS_U8 u8Eng, MS_BOOL bEnable); 845*53ee8cc1Swenshuai.xi 846*53ee8cc1Swenshuai.xi //=========================FIFO================================ 847*53ee8cc1Swenshuai.xi void HAL_TSP_FIFO_SetSrc (TSP_DST_SEQ eFltType, MS_U32 pktDmxId); 848*53ee8cc1Swenshuai.xi void HAL_TSP_FIFO_GetSrc (TSP_DST_SEQ eFltType, TSP_SRC_SEQ *pktDmxId); 849*53ee8cc1Swenshuai.xi void HAL_TSP_FIFO_Bypass (TSP_DST_SEQ eFltType, MS_BOOL bEn); 850*53ee8cc1Swenshuai.xi void HAL_TSP_FIFO_Bypass_Src(FILEENG_SEQ eFileEng, TSP_DST_SEQ eFltType); 851*53ee8cc1Swenshuai.xi void HAL_TSP_FIFO_ClearAll (void); 852*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_FIFO_PidHit (TSP_DST_SEQ eFltType); 853*53ee8cc1Swenshuai.xi void HAL_TSP_FIFO_Reset (TSP_DST_SEQ eFltType, MS_BOOL bReset); 854*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_FIFO_Level (TSP_DST_SEQ eFltType); 855*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_FIFO_Overflow (TSP_DST_SEQ eFltType); 856*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_FIFO_Empty (TSP_DST_SEQ eFltType); 857*53ee8cc1Swenshuai.xi void HAL_TSP_FIFO_BlockDis (TSP_DST_SEQ eFltType, MS_BOOL bDisable); 858*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_FIFO_GetStatus(TSP_DST_SEQ eFltType); 859*53ee8cc1Swenshuai.xi void HAL_TSP_FIFO_Reset (TSP_DST_SEQ eFltType, MS_BOOL bReset); 860*53ee8cc1Swenshuai.xi void HAL_TSP_FIFO_Skip_Scrmb(TSP_DST_SEQ eFltType,MS_BOOL bSkip); 861*53ee8cc1Swenshuai.xi 862*53ee8cc1Swenshuai.xi void HAL_TSP_FIFO_Bypass (TSP_DST_SEQ eFltType, MS_BOOL bEn); 863*53ee8cc1Swenshuai.xi void HAL_TSP_Flt_Bypass(TSP_DST_SEQ eFltType, MS_BOOL bEn); 864*53ee8cc1Swenshuai.xi void HAL_TSP_PS_SRC(MS_U32 tsIf); 865*53ee8cc1Swenshuai.xi void HAL_TSP_TSIF_Full_Block(MS_U32 tsIf, MS_BOOL bEnable); // for PS mode A/V fifo pull back 866*53ee8cc1Swenshuai.xi void HAL_TSP_FIFO_ReadSrc(TSP_DST_SEQ eFltType); // read A/V fifo data 867*53ee8cc1Swenshuai.xi MS_U16 HAL_TSP_FIFO_ReadPkt(void); // 868*53ee8cc1Swenshuai.xi void HAL_TSP_FIFO_ReadEn(MS_BOOL bEn); // 869*53ee8cc1Swenshuai.xi void HAL_TSP_FIFO_Connect(MS_BOOL bEn); // 870*53ee8cc1Swenshuai.xi void HAL_TSP_BD_AUD_En(MS_U32 u32BD,MS_BOOL bEn); 871*53ee8cc1Swenshuai.xi void HAL_TSP_TRACE_MARK_En(MS_U32 u32Tsif,TSP_DST_SEQ eFltType,MS_BOOL bEn); 872*53ee8cc1Swenshuai.xi 873*53ee8cc1Swenshuai.xi //=========================VQ================================ 874*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_SetVQ( MS_PHYADDR u32BaseAddr, MS_U32 u32BufLen); 875*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_VQ_Buffer(MS_U32 vqId, MS_PHYADDR u32BaseAddr, MS_U32 u32BufLen); 876*53ee8cc1Swenshuai.xi void HAL_TSP_VQ_Enable(MS_BOOL bEn); 877*53ee8cc1Swenshuai.xi void HAL_TSP_VQ_Reset(MS_U32 vqId, MS_BOOL bEn); 878*53ee8cc1Swenshuai.xi void HAL_TSP_VQ_OverflowInt_Clr(MS_U32 vqId, MS_BOOL bEn); 879*53ee8cc1Swenshuai.xi void HAL_TSP_VQ_OverflowInt_En(MS_U32 vqId, MS_BOOL bEn); 880*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_VQ_Block_Dis(MS_U32 vqId,MS_BOOL bDis); 881*53ee8cc1Swenshuai.xi 882*53ee8cc1Swenshuai.xi //=========================Pid Flt================================ 883*53ee8cc1Swenshuai.xi //void HAL_TSP_PidFlt_SetFltOut(MS_U32 pPidFlt, MS_U32 u32FltOu); 884*53ee8cc1Swenshuai.xi void HAL_TSP_PidFlt_SetPid(MS_U32 fltId, MS_U32 u32PID); 885*53ee8cc1Swenshuai.xi void HAL_TSP_PidFlt_SetFltIn(MS_U32 fltId, MS_U32 u32FltIn); 886*53ee8cc1Swenshuai.xi void HAL_TSP_PidFlt_SetFltOut(MS_U32 fltId, MS_U32 u32FltOut); 887*53ee8cc1Swenshuai.xi void HAL_TSP_PidFlt_SetSecFlt(MS_U32 fltId, MS_U32 u32SecFltId); 888*53ee8cc1Swenshuai.xi void HAL_TSP_PidFlt_SetPvrFlt(MS_U32 fltId, MS_U32 u32PVREng, MS_BOOL bEn); 889*53ee8cc1Swenshuai.xi void HAL_TSP_PidFlt_SetFltRushPass(MS_U32 fltId, MS_U8 u8Enable); 890*53ee8cc1Swenshuai.xi void HAL_TSP_PidFlt_SetTSOFlt(MS_U32 fltId, MS_U32 u32TSOEng, MS_BOOL bEn); 891*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_PidFlt_GetPid(REG_PidFlt* pPidFlt); 892*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_PidFlt_GetFltOutput(REG_PidFlt *pPidFlt); 893*53ee8cc1Swenshuai.xi void HAL_TSP_PidFlt_SetSrcID(MS_U32 fltId, MS_U32 u32SrcID); 894*53ee8cc1Swenshuai.xi 895*53ee8cc1Swenshuai.xi //=========================SecFlt================================ 896*53ee8cc1Swenshuai.xi void HAL_TSP_SecFlt_BurstLen(MS_U32 burstMode); 897*53ee8cc1Swenshuai.xi void HAL_TSP_SecFlt_SetType(REG_SecFlt *pSecFlt, MS_U32 u32FltType); 898*53ee8cc1Swenshuai.xi MS_U16 HAL_TSP_SecFlt_GetSecBuf(REG_SecFlt *pSecFlt); 899*53ee8cc1Swenshuai.xi void HAL_TSP_SecFlt_ResetState(REG_SecFlt* pSecFlt); 900*53ee8cc1Swenshuai.xi void HAL_TSP_SecFlt_ResetRmnCnt(REG_SecFlt* pSecFlt); 901*53ee8cc1Swenshuai.xi void HAL_TSP_SecFlt_ClrCtrl(REG_SecFlt *pSecFlt); 902*53ee8cc1Swenshuai.xi void HAL_TSP_SecFlt_SetMask(REG_SecFlt *pSecFlt, MS_U8 *pu8Mask); 903*53ee8cc1Swenshuai.xi void HAL_TSP_SecFlt_SetNMask(REG_SecFlt *pSecFlt, MS_U8 *pu8NMask); 904*53ee8cc1Swenshuai.xi void HAL_TSP_SecFlt_SetMatch(REG_SecFlt *pSecFlt, MS_U8 *pu8Match); 905*53ee8cc1Swenshuai.xi void HAL_TSP_SecFlt_SetReqCount(REG_SecFlt *pSecFlt, MS_U32 u32ReqCount); 906*53ee8cc1Swenshuai.xi void HAL_TSP_SecFlt_SetMode(REG_SecFlt *pSecFlt, MS_U32 u32SecFltMode); 907*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_SecFlt_GetCRC32(REG_SecFlt *pSecFlt); 908*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_SecFlt_GetState(REG_SecFlt *pSecFlt); 909*53ee8cc1Swenshuai.xi void HAL_TSP_SecFlt_SelSecBuf(REG_SecFlt *pSecFlt, MS_U16 u16BufId); 910*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_SecFlt_TryAlloc(REG_SecFlt* pSecFlt, MS_U16 u16TSPId); 911*53ee8cc1Swenshuai.xi void HAL_TSP_SecFlt_SetAutoCRCChk(REG_SecFlt *pSecFlt, MS_BOOL bSet); 912*53ee8cc1Swenshuai.xi void HAL_TSP_SecFlt_Free(REG_SecFlt* pSecFlt); 913*53ee8cc1Swenshuai.xi void HAL_TSP_SecFlt_DropEnable(MS_BOOL bSet); // @TODO not implement yet 914*53ee8cc1Swenshuai.xi 915*53ee8cc1Swenshuai.xi //=========================Sec Buf================================ 916*53ee8cc1Swenshuai.xi void HAL_TSP_SecBuf_SetBuf(REG_SecBuf *pSecBuf, MS_U32 u32StartAddr, MS_U32 u32BufSize); 917*53ee8cc1Swenshuai.xi void HAL_TSP_SecBuf_SetRead(REG_SecBuf *pSecBuf, MS_U32 u32ReadAddr); 918*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_SecBuf_GetStart(REG_SecBuf *pSecBuf); 919*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_SecBuf_GetEnd(REG_SecBuf *pSecBuf); 920*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_SecBuf_GetBufCur(REG_SecBuf *pSecBuf); 921*53ee8cc1Swenshuai.xi void HAL_TSP_SecBuf_Reset(REG_SecBuf *pSecBuf); 922*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_SecBuf_GetRead(REG_SecBuf *pSecBuf); 923*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_SecBuf_GetWrite(REG_SecBuf *pSecBuf); 924*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_SecBuf_TryAlloc(REG_SecBuf *pSecBuf, MS_U16 u16TSPId); 925*53ee8cc1Swenshuai.xi void HAL_TSP_SecBuf_Free(REG_SecBuf *pSecBuf); 926*53ee8cc1Swenshuai.xi void HAL_TSP_FQ_MMFI_MIU_Sel(TSP_HAL_MIU_SEL_TYPE eType, MS_U8 u8Eng, MS_PHY phyBufStart); 927*53ee8cc1Swenshuai.xi 928*53ee8cc1Swenshuai.xi //=========================PVR================================ 929*53ee8cc1Swenshuai.xi void HAL_PVR_SetBank(MS_U32 u32BankAddr); 930*53ee8cc1Swenshuai.xi void HAL_PVR_Init(MS_U32 u32PVREng, MS_U32 pktDmxId); 931*53ee8cc1Swenshuai.xi void HAL_PVR_Exit(MS_U32 u32PVREng); 932*53ee8cc1Swenshuai.xi void HAL_PVR_Alignment_Enable(MS_U32 u32PVREng, MS_BOOL bEnable); 933*53ee8cc1Swenshuai.xi /* 934*53ee8cc1Swenshuai.xi void HAL_PVR_SetTSIF(MS_U32 u32PVREng, MS_BOOL bPara, MS_BOOL bExtSync, MS_BOOL bDataSWP); 935*53ee8cc1Swenshuai.xi void HAL_PVR_RecAtSync_Dis(MS_U32 u32PVREng, MS_BOOL bDis); 936*53ee8cc1Swenshuai.xi void HAL_PVR_SetDataSwap(MS_U32 u32PVREng, MS_BOOL bEn); 937*53ee8cc1Swenshuai.xi */ 938*53ee8cc1Swenshuai.xi void HAL_PVR_FlushData(MS_U32 u32PVREng); 939*53ee8cc1Swenshuai.xi void HAL_PVR_Skip_Scrmb(MS_U32 u32PVREng,MS_BOOL bSkip); 940*53ee8cc1Swenshuai.xi void HAL_PVR_Block_Dis(MS_U32 u32PVREng,MS_BOOL bDisable); 941*53ee8cc1Swenshuai.xi void HAL_PVR_BurstLen(MS_U32 u32PVREng,MS_U16 u16BurstMode); 942*53ee8cc1Swenshuai.xi void HAL_PVR_Start(MS_U32 u32PVREng); 943*53ee8cc1Swenshuai.xi void HAL_PVR_Stop(MS_U32 u32PVREng); 944*53ee8cc1Swenshuai.xi void HAL_PVR_Pause(MS_U32 u32PVREng , MS_BOOL bPause); 945*53ee8cc1Swenshuai.xi void HAL_PVR_RecPid(MS_U32 u32PVREng, MS_BOOL bSet); 946*53ee8cc1Swenshuai.xi void HAL_PVR_RecNull(MS_BOOL bSet); 947*53ee8cc1Swenshuai.xi void HAL_PVR_SetPidflt(MS_U32 u32PVREng, MS_U16 u16Fltid, MS_U16 u16Pid); 948*53ee8cc1Swenshuai.xi void HAL_PVR_SetBuf(MS_U32 u32PVREng , MS_U32 u32StartAddr0, MS_U32 u32BufSize0, MS_U32 u32StartAddr1, MS_U32 u32BufSize1); 949*53ee8cc1Swenshuai.xi void HAL_PVR_SetStr2Miu_StartAddr(MS_U32 u32PVREng, MS_U32 u32StartAddr0, MS_U32 u32StartAddr1); 950*53ee8cc1Swenshuai.xi void HAL_PVR_SetStr2Miu_MidAddr(MS_U32 u32PVREng, MS_U32 u32MidAddr0, MS_U32 u32MidAddr1); 951*53ee8cc1Swenshuai.xi void HAL_PVR_SetStr2Miu_EndAddr(MS_U32 u32PVREng, MS_U32 u32EndAddr0, MS_U32 u32EndAddr1); 952*53ee8cc1Swenshuai.xi MS_U32 HAL_PVR_GetWritePtr(MS_U32 u32PVREng); 953*53ee8cc1Swenshuai.xi void HAL_PVR_SetStrPacketMode(MS_U32 u32PVREng, MS_BOOL bSet); 954*53ee8cc1Swenshuai.xi void HAL_PVR_SetPVRTimeStamp(MS_U32 u32PVREng, MS_U32 u32Stamp); 955*53ee8cc1Swenshuai.xi MS_U32 HAL_PVR_GetPVRTimeStamp(MS_U32 u32PVREng); 956*53ee8cc1Swenshuai.xi void HAL_PVR_TimeStamp_Stream_En(MS_U32 u32PVREng, MS_BOOL bEnable); 957*53ee8cc1Swenshuai.xi void HAL_PVR_TimeStamp_Sel(MS_U32 u32PVREng, MS_BOOL bLocal_Stream); 958*53ee8cc1Swenshuai.xi void HAL_PVR_PauseTime_En(MS_U32 u32PVREng,MS_BOOL bEnable); 959*53ee8cc1Swenshuai.xi void HAL_PVR_SetPauseTime(MS_U32 u32PVREng,MS_U32 u32PauseTime); 960*53ee8cc1Swenshuai.xi void HAL_PVR_GetEngSrc(MS_U32 u32EngDst, TSP_SRC_SEQ *eSrc); 961*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_CAPVR_SPSEnable(MS_U32 u32Eng, MS_U16 u16CaPvrMode, MS_BOOL bEnable); 962*53ee8cc1Swenshuai.xi void HAL_TSP_SPD_Bypass_En(MS_BOOL bByPassEn); 963*53ee8cc1Swenshuai.xi /* 964*53ee8cc1Swenshuai.xi void HAL_TSP_PVR_SPSConfig(MS_U8 u8Eng, MS_BOOL CTR_mode); 965*53ee8cc1Swenshuai.xi void HAL_TSP_FileIn_SPDConfig(MS_U32 tsif, MS_BOOL CTR_mode); 966*53ee8cc1Swenshuai.xi */ 967*53ee8cc1Swenshuai.xi 968*53ee8cc1Swenshuai.xi //=========================FQ================================ 969*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_FQ_SetMuxSwitch(MS_U32 u32FQEng, MS_U32 u32FQSrc); 970*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_FQ_GetMuxSwitch(MS_U32 u32FQEng); 971*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_FQ_FLT_NULL_PKT(MS_U32 u32FQEng, MS_BOOL bFltNull); 972*53ee8cc1Swenshuai.xi 973*53ee8cc1Swenshuai.xi //=========================HCMD================================ 974*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_HCMD_GetInfo(MS_U32 u32Type); 975*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_HCMD_BufRst(MS_U32 u32Value); 976*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_HCMD_Read(MS_U32 u32Addr); 977*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_HCMD_Write(MS_U32 u32Addr, MS_U32 u32Value); 978*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_HCMD_Alive(void); 979*53ee8cc1Swenshuai.xi void HAL_TSP_HCMD_SecRdyInt_Disable(MS_U32 FltId ,MS_BOOL bDis); 980*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_HCMD_Dbg(MS_U32 u32Enable); 981*53ee8cc1Swenshuai.xi void HAL_TSP_HCMD_SET(MS_U32 mcu_cmd, MS_U32 mcu_data0, MS_U32 mcu_data1); 982*53ee8cc1Swenshuai.xi void HAL_TSP_HCMD_GET(MS_U32* pmcu_cmd, MS_U32* pmcu_data0, MS_U32* pmcu_data1); 983*53ee8cc1Swenshuai.xi 984*53ee8cc1Swenshuai.xi //=========================INT================================ 985*53ee8cc1Swenshuai.xi void HAL_TSP_INT_Enable(MS_U32 u32Mask); 986*53ee8cc1Swenshuai.xi void HAL_TSP_INT_Disable(MS_U32 u32Mask); 987*53ee8cc1Swenshuai.xi void HAL_TSP_INT_ClrHW(MS_U32 u32Mask); 988*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_INT_GetHW(void); 989*53ee8cc1Swenshuai.xi void HAL_TSP_INT_ClrSW(void); 990*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_INT_GetSW(void); 991*53ee8cc1Swenshuai.xi 992*53ee8cc1Swenshuai.xi //=========================Mapping================================ 993*53ee8cc1Swenshuai.xi TSP_PCR_SRC HAL_TSP_FltSrc2PCRSrc_Mapping(TSP_PIDFLT_SRC ePidFltSrc); 994*53ee8cc1Swenshuai.xi TSP_PIDFLT_SRC HAL_TSP_PktDmx2FltSrc_Mapping(TSP_SRC_SEQ eSrc); 995*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_FltSrc2PktDmx_Mapping(TSP_PIDFLT_SRC ePidFltSrc); 996*53ee8cc1Swenshuai.xi FILEENG_SEQ HAL_TSP_FilePath2Tsif_Mapping(MS_U32 u32FileEng); 997*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_TsifMapping(TSP_HAL_TSIF u32TSIF, MS_BOOL bFileIn); 998*53ee8cc1Swenshuai.xi TSP_SRC_SEQ HAL_TSP_Eng2PktDmx_Mapping(MS_U32 u32Eng); 999*53ee8cc1Swenshuai.xi FILEENG_SEQ HAL_TSP_GetDefaultFileinEng(void); 1000*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_PidFltDstMapping(TSP_PIDFLT_DST eDstType, MS_U32 u32Eng); 1001*53ee8cc1Swenshuai.xi MS_U32 HAL_TSP_Tsif2Fq_Mapping(MS_U32 u32Tsif); 1002*53ee8cc1Swenshuai.xi TSP_SRC_SEQ HAL_TSP_Debug_Flow2PktDmx_Mapping(TSP_HAL_FLOW eFlow); 1003*53ee8cc1Swenshuai.xi TSP_TS_PAD HAL_TSP_3WirePadMapping(MS_U8 u8Pad3WireId); 1004*53ee8cc1Swenshuai.xi 1005*53ee8cc1Swenshuai.xi //========================DSCMB Functions=================================== 1006*53ee8cc1Swenshuai.xi extern MS_BOOL HAL_DSCMB_GetBank(MS_U32 *u32Bank); 1007*53ee8cc1Swenshuai.xi extern MS_BOOL HAL_DSCMB_PidIdx_SetTsId(MS_U32 u32fltid , MS_U32 u32TsId ); 1008*53ee8cc1Swenshuai.xi MS_BOOL HAL_DSCMB_GetStatus(MS_U32 u32PktDmx, MS_U32 u32GroupId, MS_U32 u32PidFltId, MS_U32 *pu32ScmbSts); 1009*53ee8cc1Swenshuai.xi 1010*53ee8cc1Swenshuai.xi //========================MOBF Functions===================================== 1011*53ee8cc1Swenshuai.xi void HAL_TSP_Filein_MOBF_Enable(FILEENG_SEQ eFileEng, MS_BOOL bEnable, MS_U32 u32Key); 1012*53ee8cc1Swenshuai.xi void HAL_PVR_MOBF_Enable(MS_U32 u32PVREng, MS_BOOL bEnable, MS_U32 u32Key); 1013*53ee8cc1Swenshuai.xi 1014*53ee8cc1Swenshuai.xi //========================Protection range=================================== 1015*53ee8cc1Swenshuai.xi void HAL_TSP_OR_Address_Protect_En(MS_BOOL bEn); 1016*53ee8cc1Swenshuai.xi void HAL_TSP_OR_Address_Protect(MS_PHY u32AddrH, MS_PHY u32AddrL); 1017*53ee8cc1Swenshuai.xi void HAL_TSP_SEC_Address_Protect_En(MS_BOOL bEn); 1018*53ee8cc1Swenshuai.xi void HAL_TSP_SEC_Address_Protect(MS_U8 u8SecID, MS_PHY u32AddrH, MS_PHY u32AddrL); 1019*53ee8cc1Swenshuai.xi void HAL_TSP_PVR_Address_Protect_En(MS_U32 u32PVREng,MS_BOOL bEnable); 1020*53ee8cc1Swenshuai.xi void HAL_TSP_PVR_Address_Protect(MS_U32 u32PVREng, MS_PHY u32AddrH, MS_PHY u32AddrL); 1021*53ee8cc1Swenshuai.xi void HAL_TSP_FILEIN_Address_Protect_En(FILEENG_SEQ eFileEng,MS_BOOL bEnable); 1022*53ee8cc1Swenshuai.xi void HAL_TSP_FILEIN_Address_Protect(FILEENG_SEQ eFileEng,MS_PHY u32AddrH, MS_PHY u32AddrL); 1023*53ee8cc1Swenshuai.xi void HAL_TSP_MMFI_Address_Protect_En(MS_U32 u32MMFIEng,MS_BOOL bEnable); 1024*53ee8cc1Swenshuai.xi void HAL_TSP_MMFI_Address_Protect(MS_U32 u32MMFIEng,MS_PHY u32AddrH, MS_PHY u32AddrL); 1025*53ee8cc1Swenshuai.xi 1026*53ee8cc1Swenshuai.xi //========================Debug table============================= 1027*53ee8cc1Swenshuai.xi void HAL_TSP_FltNullPkt_En(MS_BOOL bEn); 1028*53ee8cc1Swenshuai.xi 1029*53ee8cc1Swenshuai.xi // @TODO Renaming Load and Get 1030*53ee8cc1Swenshuai.xi void HAL_TSP_Debug_LockPktCnt_Src(MS_U32 u32TsIf); 1031*53ee8cc1Swenshuai.xi void HAL_TSP_Debug_LockPktCnt_Load(MS_U32 u32TsIf,MS_BOOL bEn); 1032*53ee8cc1Swenshuai.xi MS_U16 HAL_TSP_Debug_LockPktCnt_Get(MS_U32 u32TsIf, MS_BOOL bLock); 1033*53ee8cc1Swenshuai.xi void HAL_TSP_Debug_LockPktCnt_Clear(MS_U32 u32Tsif); 1034*53ee8cc1Swenshuai.xi void HAL_TSP_Debug_ClrSrcSel(TSP_SRC_SEQ eClrSrc); 1035*53ee8cc1Swenshuai.xi void HAL_TSP_Debug_AvPktCnt_Src(TSP_DST_SEQ eAvType, TSP_SRC_SEQ ePktDmxId); 1036*53ee8cc1Swenshuai.xi void HAL_TSP_Debug_AvPktCnt_Load(TSP_DST_SEQ eAvType, MS_BOOL bEn); 1037*53ee8cc1Swenshuai.xi MS_U16 HAL_TSP_Debug_AvPktCnt_Get(TSP_DST_SEQ eAvType); 1038*53ee8cc1Swenshuai.xi void HAL_TSP_Debug_AvPktCnt_Clear(TSP_DST_SEQ eAvType); 1039*53ee8cc1Swenshuai.xi 1040*53ee8cc1Swenshuai.xi // @TODO Implement Drop and Dis Hal 1041*53ee8cc1Swenshuai.xi void HAL_TSP_Debug_DropDisPktCnt_Src(TSP_DST_SEQ eAvType,TSP_SRC_SEQ ePktDmxId); 1042*53ee8cc1Swenshuai.xi void HAL_TSP_Debug_DropPktCnt_Load(TSP_DST_SEQ eAvType,MS_BOOL bEn); 1043*53ee8cc1Swenshuai.xi void HAL_TSP_Debug_DisPktCnt_Load(TSP_DST_SEQ eAvType,MS_BOOL bEn,MS_BOOL bPayload); 1044*53ee8cc1Swenshuai.xi MS_U16 HAL_TSP_Debug_DropDisPktCnt_Get(TSP_SRC_SEQ ePktDmxId, MS_BOOL bDrop); 1045*53ee8cc1Swenshuai.xi void HAL_TSP_Debug_DropPktCnt_Clear(TSP_DST_SEQ eAvType); 1046*53ee8cc1Swenshuai.xi void HAL_TSP_Debug_DisPktCnt_Clear(TSP_DST_SEQ eAvType); 1047*53ee8cc1Swenshuai.xi 1048*53ee8cc1Swenshuai.xi void HAL_TSP_Debug_ErrPktCnt_Src(MS_U32 u32TsIf); 1049*53ee8cc1Swenshuai.xi void HAL_TSP_Debug_ErrPktCnt_Load(MS_U32 u32TsIf,MS_BOOL bEn); 1050*53ee8cc1Swenshuai.xi MS_U16 HAL_TSP_Debug_ErrPktCnt_Get(void); 1051*53ee8cc1Swenshuai.xi void HAL_TSP_Debug_ErrPktCnt_Clear(MS_U32 u32Tsif); 1052*53ee8cc1Swenshuai.xi 1053*53ee8cc1Swenshuai.xi void HAL_TSP_Debug_InputPktCnt_Src(MS_U32 u32TsIf); 1054*53ee8cc1Swenshuai.xi void HAL_TSP_Debug_InputPktCnt_Load(MS_U32 u32TsIf,MS_BOOL bEn); 1055*53ee8cc1Swenshuai.xi MS_U16 HAL_TSP_Debug_InputPktCnt_Get(void); 1056*53ee8cc1Swenshuai.xi void HAL_TSP_Debug_InputPktCnt_Clear(MS_U32 u32Tsif); 1057*53ee8cc1Swenshuai.xi 1058*53ee8cc1Swenshuai.xi //========================MergeStream Functions============================= 1059*53ee8cc1Swenshuai.xi void HAL_TSP_PktConverter_Init(void); 1060*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_PktConverter_PktMode(MS_U8 u8Path, TSP_HAL_PKT_MODE ePktMode); 1061*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_PktConverter_SetSrcId(MS_U8 u8Path, MS_U8 u8Idx, MS_U8 *pu8SrcId, MS_BOOL bSet); 1062*53ee8cc1Swenshuai.xi MS_BOOL HAL_TSP_PktConverter_SetSyncByte(MS_U8 u8Path, MS_U8 u8Idx, MS_U8 *pu8SyncByte, MS_BOOL bSet); 1063*53ee8cc1Swenshuai.xi 1064*53ee8cc1Swenshuai.xi /* 1065*53ee8cc1Swenshuai.xi void HAL_TSP_PktConverter_SetMXLPktHeaderLen(MS_U8 u8Path, MS_U8 u8PktHeaderLen); 1066*53ee8cc1Swenshuai.xi */ 1067*53ee8cc1Swenshuai.xi void HAL_TSP_PktConverter_ForceSync(MS_U8 u8Path, MS_BOOL bEnable); 1068*53ee8cc1Swenshuai.xi void HAL_TSP_PktConverter_SrcIdFlt(MS_U8 u8Path, MS_BOOL bEnable); 1069*53ee8cc1Swenshuai.xi void HAL_TSP_PidFlt_SetSrcId(MS_U32 fltId, MS_U32 u32SrcId); 1070*53ee8cc1Swenshuai.xi void HAL_TSP_PcrFlt_SetSrcId(MS_U32 pcrFltId, MS_U32 u32SrcId); 1071*53ee8cc1Swenshuai.xi void HAL_TSP_Reset_TSIF_MergeSetting(MS_U8 u8Path); 1072*53ee8cc1Swenshuai.xi 1073*53ee8cc1Swenshuai.xi //==========================TSIO ============================================ 1074*53ee8cc1Swenshuai.xi void HAL_TSP_Privilege_Enable(MS_BOOL bEnable); 1075*53ee8cc1Swenshuai.xi 1076*53ee8cc1Swenshuai.xi void HAL_TSP_Module_Reset(TSP_HAL_RESET_CTRL ePath, MS_U32 u32Idx, MS_BOOL bEn); 1077*53ee8cc1Swenshuai.xi void HAL_TSP_CLK_GATING(TSP_HAL_GATING ePath, MS_U32 u32eng, MS_BOOL bEn); 1078*53ee8cc1Swenshuai.xi 1079*53ee8cc1Swenshuai.xi #endif // #ifndef __HAL_PVR_H__ 1080