xref: /utopia/UTPA2-700.0.x/modules/dmx/hal/k6lite/tsp/halTSP.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
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