xref: /utopia/UTPA2-700.0.x/modules/dmx/drv/tsp4/drvTSP.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi //<MStar Software>
2*53ee8cc1Swenshuai.xi //******************************************************************************
3*53ee8cc1Swenshuai.xi // MStar Software
4*53ee8cc1Swenshuai.xi // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5*53ee8cc1Swenshuai.xi // All software, firmware and related documentation herein ("MStar Software") are
6*53ee8cc1Swenshuai.xi // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7*53ee8cc1Swenshuai.xi // law, including, but not limited to, copyright law and international treaties.
8*53ee8cc1Swenshuai.xi // Any use, modification, reproduction, retransmission, or republication of all
9*53ee8cc1Swenshuai.xi // or part of MStar Software is expressly prohibited, unless prior written
10*53ee8cc1Swenshuai.xi // permission has been granted by MStar.
11*53ee8cc1Swenshuai.xi //
12*53ee8cc1Swenshuai.xi // By accessing, browsing and/or using MStar Software, you acknowledge that you
13*53ee8cc1Swenshuai.xi // have read, understood, and agree, to be bound by below terms ("Terms") and to
14*53ee8cc1Swenshuai.xi // comply with all applicable laws and regulations:
15*53ee8cc1Swenshuai.xi //
16*53ee8cc1Swenshuai.xi // 1. MStar shall retain any and all right, ownership and interest to MStar
17*53ee8cc1Swenshuai.xi //    Software and any modification/derivatives thereof.
18*53ee8cc1Swenshuai.xi //    No right, ownership, or interest to MStar Software and any
19*53ee8cc1Swenshuai.xi //    modification/derivatives thereof is transferred to you under Terms.
20*53ee8cc1Swenshuai.xi //
21*53ee8cc1Swenshuai.xi // 2. You understand that MStar Software might include, incorporate or be
22*53ee8cc1Swenshuai.xi //    supplied together with third party`s software and the use of MStar
23*53ee8cc1Swenshuai.xi //    Software may require additional licenses from third parties.
24*53ee8cc1Swenshuai.xi //    Therefore, you hereby agree it is your sole responsibility to separately
25*53ee8cc1Swenshuai.xi //    obtain any and all third party right and license necessary for your use of
26*53ee8cc1Swenshuai.xi //    such third party`s software.
27*53ee8cc1Swenshuai.xi //
28*53ee8cc1Swenshuai.xi // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29*53ee8cc1Swenshuai.xi //    MStar`s confidential information and you agree to keep MStar`s
30*53ee8cc1Swenshuai.xi //    confidential information in strictest confidence and not disclose to any
31*53ee8cc1Swenshuai.xi //    third party.
32*53ee8cc1Swenshuai.xi //
33*53ee8cc1Swenshuai.xi // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34*53ee8cc1Swenshuai.xi //    kind. Any warranties are hereby expressly disclaimed by MStar, including
35*53ee8cc1Swenshuai.xi //    without limitation, any warranties of merchantability, non-infringement of
36*53ee8cc1Swenshuai.xi //    intellectual property rights, fitness for a particular purpose, error free
37*53ee8cc1Swenshuai.xi //    and in conformity with any international standard.  You agree to waive any
38*53ee8cc1Swenshuai.xi //    claim against MStar for any loss, damage, cost or expense that you may
39*53ee8cc1Swenshuai.xi //    incur related to your use of MStar Software.
40*53ee8cc1Swenshuai.xi //    In no event shall MStar be liable for any direct, indirect, incidental or
41*53ee8cc1Swenshuai.xi //    consequential damages, including without limitation, lost of profit or
42*53ee8cc1Swenshuai.xi //    revenues, lost or damage of data, and unauthorized system use.
43*53ee8cc1Swenshuai.xi //    You agree that this Section 4 shall still apply without being affected
44*53ee8cc1Swenshuai.xi //    even if MStar Software has been modified by MStar in accordance with your
45*53ee8cc1Swenshuai.xi //    request or instruction for your use, except otherwise agreed by both
46*53ee8cc1Swenshuai.xi //    parties in writing.
47*53ee8cc1Swenshuai.xi //
48*53ee8cc1Swenshuai.xi // 5. If requested, MStar may from time to time provide technical supports or
49*53ee8cc1Swenshuai.xi //    services in relation with MStar Software to you for your use of
50*53ee8cc1Swenshuai.xi //    MStar Software in conjunction with your or your customer`s product
51*53ee8cc1Swenshuai.xi //    ("Services").
52*53ee8cc1Swenshuai.xi //    You understand and agree that, except otherwise agreed by both parties in
53*53ee8cc1Swenshuai.xi //    writing, Services are provided on an "AS IS" basis and the warranty
54*53ee8cc1Swenshuai.xi //    disclaimer set forth in Section 4 above shall apply.
55*53ee8cc1Swenshuai.xi //
56*53ee8cc1Swenshuai.xi // 6. Nothing contained herein shall be construed as by implication, estoppels
57*53ee8cc1Swenshuai.xi //    or otherwise:
58*53ee8cc1Swenshuai.xi //    (a) conferring any license or right to use MStar name, trademark, service
59*53ee8cc1Swenshuai.xi //        mark, symbol or any other identification;
60*53ee8cc1Swenshuai.xi //    (b) obligating MStar or any of its affiliates to furnish any person,
61*53ee8cc1Swenshuai.xi //        including without limitation, you and your customers, any assistance
62*53ee8cc1Swenshuai.xi //        of any kind whatsoever, or any information; or
63*53ee8cc1Swenshuai.xi //    (c) conferring any license or right under any intellectual property right.
64*53ee8cc1Swenshuai.xi //
65*53ee8cc1Swenshuai.xi // 7. These terms shall be governed by and construed in accordance with the laws
66*53ee8cc1Swenshuai.xi //    of Taiwan, R.O.C., excluding its conflict of law rules.
67*53ee8cc1Swenshuai.xi //    Any and all dispute arising out hereof or related hereto shall be finally
68*53ee8cc1Swenshuai.xi //    settled by arbitration referred to the Chinese Arbitration Association,
69*53ee8cc1Swenshuai.xi //    Taipei in accordance with the ROC Arbitration Law and the Arbitration
70*53ee8cc1Swenshuai.xi //    Rules of the Association by three (3) arbitrators appointed in accordance
71*53ee8cc1Swenshuai.xi //    with the said Rules.
72*53ee8cc1Swenshuai.xi //    The place of arbitration shall be in Taipei, Taiwan and the language shall
73*53ee8cc1Swenshuai.xi //    be English.
74*53ee8cc1Swenshuai.xi //    The arbitration award shall be final and binding to both parties.
75*53ee8cc1Swenshuai.xi //
76*53ee8cc1Swenshuai.xi //******************************************************************************
77*53ee8cc1Swenshuai.xi //<MStar Software>
78*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////
79*53ee8cc1Swenshuai.xi //
80*53ee8cc1Swenshuai.xi // Copyright (c) 2008-2009 MStar Semiconductor, Inc.
81*53ee8cc1Swenshuai.xi // All rights reserved.
82*53ee8cc1Swenshuai.xi //
83*53ee8cc1Swenshuai.xi // Unless otherwise stipulated in writing, any and all information contained
84*53ee8cc1Swenshuai.xi // herein regardless in any format shall remain the sole proprietary of
85*53ee8cc1Swenshuai.xi // MStar Semiconductor Inc. and be kept in strict confidence
86*53ee8cc1Swenshuai.xi // ("MStar Confidential Information") by the recipient.
87*53ee8cc1Swenshuai.xi // Any unauthorized act including without limitation unauthorized disclosure,
88*53ee8cc1Swenshuai.xi // copying, use, reproduction, sale, distribution, modification, disassembling,
89*53ee8cc1Swenshuai.xi // reverse engineering and compiling of the contents of MStar Confidential
90*53ee8cc1Swenshuai.xi // Information is unlawful and strictly prohibited. MStar hereby reserves the
91*53ee8cc1Swenshuai.xi // rights to any and all damages, losses, costs and expenses resulting therefrom.
92*53ee8cc1Swenshuai.xi //
93*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////
94*53ee8cc1Swenshuai.xi 
95*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////////////////////////
96*53ee8cc1Swenshuai.xi ///
97*53ee8cc1Swenshuai.xi /// file    drvTSP.h
98*53ee8cc1Swenshuai.xi /// @brief  Legacy Transport Stream Processer (TSP) Driver Interface
99*53ee8cc1Swenshuai.xi /// @author MStar Semiconductor,Inc.
100*53ee8cc1Swenshuai.xi /// @attention
101*53ee8cc1Swenshuai.xi /// All TSP DDI are not allowed to use in any interrupt context other than TSP ISR and Callback
102*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////////////////////////
103*53ee8cc1Swenshuai.xi 
104*53ee8cc1Swenshuai.xi #ifndef __DRV_TSP_LEGACY_H__
105*53ee8cc1Swenshuai.xi #define __DRV_TSP_LEGACY_H__
106*53ee8cc1Swenshuai.xi 
107*53ee8cc1Swenshuai.xi 
108*53ee8cc1Swenshuai.xi #include "drvTSP2.h"
109*53ee8cc1Swenshuai.xi 
110*53ee8cc1Swenshuai.xi 
111*53ee8cc1Swenshuai.xi #ifdef __cplusplus
112*53ee8cc1Swenshuai.xi extern "C"
113*53ee8cc1Swenshuai.xi {
114*53ee8cc1Swenshuai.xi #endif
115*53ee8cc1Swenshuai.xi 
116*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
117*53ee8cc1Swenshuai.xi //  Driver Capability
118*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
119*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
120*53ee8cc1Swenshuai.xi //  Macro and Define
121*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
122*53ee8cc1Swenshuai.xi 
123*53ee8cc1Swenshuai.xi 
124*53ee8cc1Swenshuai.xi #define DRVTSP_PID_NULL                 TSP_PID_NULL
125*53ee8cc1Swenshuai.xi 
126*53ee8cc1Swenshuai.xi #define DRVTSP_FILTER_DEPTH             TSP_FILTER_DEPTH                                                              // TSP_FILTER_DEPTH
127*53ee8cc1Swenshuai.xi 
128*53ee8cc1Swenshuai.xi #define DRVTSP_ALIGN_UNIT               TSP_ALIGN_UNIT
129*53ee8cc1Swenshuai.xi 
130*53ee8cc1Swenshuai.xi #define DRVTSP_ALIGN(_x)                TSP_ALIGN(_x)
131*53ee8cc1Swenshuai.xi 
132*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
133*53ee8cc1Swenshuai.xi //  Type and Structure
134*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
135*53ee8cc1Swenshuai.xi 
136*53ee8cc1Swenshuai.xi #define DRVTSP_FAIL                     E_TSP_FAIL
137*53ee8cc1Swenshuai.xi #define DRVTSP_OK                       E_TSP_OK
138*53ee8cc1Swenshuai.xi #define DRVTSP_INVALID_PARAM            E_TSP_FAIL_PARAMETER
139*53ee8cc1Swenshuai.xi #define DRVTSP_FUNC_ERROR               E_TSP_FAIL_FUNCTION
140*53ee8cc1Swenshuai.xi #define DRVTSP_NOT_SUPPORTED            E_TSP_FAIL_NOT_SUPPORTED
141*53ee8cc1Swenshuai.xi #define DRVTSP_INVALID_SECFLT           E_TSP_FAIL_INVALID
142*53ee8cc1Swenshuai.xi 
143*53ee8cc1Swenshuai.xi 
144*53ee8cc1Swenshuai.xi #define E_DRVTSP_TSIF_EN                E_TSP_TSIF_EN
145*53ee8cc1Swenshuai.xi #define E_DRVTSP_TSIF_DIS               E_TSP_TSIF_DIS
146*53ee8cc1Swenshuai.xi #define E_DRVTSP_TSIF_SERL              E_TSP_TSIF_SERL
147*53ee8cc1Swenshuai.xi #define E_DRVTSP_TSIF_PARL              E_TSP_TSIF_PARL
148*53ee8cc1Swenshuai.xi #define E_DRVTSP_TSIF_EXTSYNC           E_TSP_TSIF_EXTSYNC
149*53ee8cc1Swenshuai.xi #define E_DRVTSP_TSIF_BITSWAP           E_TSP_TSIF_BITSWAP
150*53ee8cc1Swenshuai.xi 
151*53ee8cc1Swenshuai.xi 
152*53ee8cc1Swenshuai.xi 
153*53ee8cc1Swenshuai.xi #define DrvTSP_FltType                  TSP_FltType
154*53ee8cc1Swenshuai.xi // get TS from Live stream
155*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_AUDIO         E_TSP_FLT_FIFO_AUDIO
156*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_AUDIO2        E_TSP_FLT_FIFO_AUDIO2
157*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_AUDIO3        E_TSP_FLT_FIFO_AUDIO3
158*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_AUDIO4        E_TSP_FLT_FIFO_AUDIO4
159*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_AUDIO5        E_TSP_FLT_FIFO_AUDIO5
160*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_AUDIO6        E_TSP_FLT_FIFO_AUDIO6
161*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_VIDEO         E_TSP_FLT_FIFO_VIDEO
162*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_VIDEO3D       E_TSP_FLT_FIFO_VIDEO3D
163*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_VIDEO3        E_TSP_FLT_FIFO_VIDEO3
164*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_VIDEO4        E_TSP_FLT_FIFO_VIDEO4
165*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_VIDEO5        E_TSP_FLT_FIFO_VIDEO5
166*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_VIDEO6        E_TSP_FLT_FIFO_VIDEO6
167*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_VIDEO7        E_TSP_FLT_FIFO_VIDEO7
168*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_VIDEO8        E_TSP_FLT_FIFO_VIDEO8
169*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_REC           E_TSP_FLT_FIFO_REC
170*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_PVR           E_TSP_FLT_FIFO_PVR
171*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_PVR0          E_TSP_FLT_FIFO_PVR
172*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_PVR1          E_TSP_FLT_FIFO_PVR1
173*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_PVR2          E_TSP_FLT_FIFO_PVR2
174*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_PVR3          E_TSP_FLT_FIFO_PVR3
175*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_PVR4          E_TSP_FLT_FIFO_PVR4
176*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_PVR5          E_TSP_FLT_FIFO_PVR5
177*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_PVR6          E_TSP_FLT_FIFO_PVR6
178*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_PVR7          E_TSP_FLT_FIFO_PVR7
179*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_PVR8          E_TSP_FLT_FIFO_PVR8
180*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_PVR9          E_TSP_FLT_FIFO_PVR9
181*53ee8cc1Swenshuai.xi 
182*53ee8cc1Swenshuai.xi 
183*53ee8cc1Swenshuai.xi // Section Filter Group                 on Filter Group
184*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_SECTION_MASK  E_TSP_FLT_USER_MASK
185*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_SECTION       E_TSP_FLT_USER_SEC
186*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_PCR           E_TSP_FLT_USER_PCR
187*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_PES           E_TSP_FLT_USER_PES
188*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_PACKET        E_TSP_FLT_USER_PKT
189*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_TELETEXT      E_TSP_FLT_USER_TTX
190*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_EMM           E_TSP_FLT_USER_EMM
191*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_ECM           E_TSP_FLT_USER_ECM
192*53ee8cc1Swenshuai.xi 
193*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_LAST_ENUM     E_TSP_FLT_USER_NULL
194*53ee8cc1Swenshuai.xi 
195*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_MASK               E_TSP_FLT_SRC_MASK
196*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_SOURCE_TYPE_LIVE   E_TSP_FLT_SRC_LIVE0
197*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_SOURCE_TYPE_FILE   E_TSP_FLT_SRC_TSIF01_FILE
198*53ee8cc1Swenshuai.xi 
199*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_SCMB_MASK          E_TSP_FLT_FLAG_MASK
200*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_TYPE_SCMB          E_TSP_FLT_FLAG_CA
201*53ee8cc1Swenshuai.xi 
202*53ee8cc1Swenshuai.xi 
203*53ee8cc1Swenshuai.xi #define DrvTSP_FltMode                  TSP_FltMode
204*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_MODE_CONTI         E_TSP_FLT_MODE_CONTI
205*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_MODE_ONESHOT       E_TSP_FLT_MODE_ONESHOT
206*53ee8cc1Swenshuai.xi 
207*53ee8cc1Swenshuai.xi // optional
208*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_MODE_CRCCHK        E_TSP_FLT_MODE_CRCCHK
209*53ee8cc1Swenshuai.xi 
210*53ee8cc1Swenshuai.xi #define DrvTSP_FltState                 TSP_FltState
211*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_STATE_FREE         E_TSP_FLT_STATE_FREE
212*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_STATE_ALLOC        E_TSP_FLT_STATE_ALLOC
213*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_STATE_ENABLE       E_TSP_FLT_STATE_ENABLE
214*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_STATE_SCRAMBLED    E_TSP_FLT_STATE_SCRAMBLED
215*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_STATE_STREAM_AVAIL E_TSP_FLT_STATE_STREAM_AVAIL
216*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_STATE_SCRAMBLED_ORG E_TSP_FLT_STATE_SCRAMBLED_ORG
217*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_STATE_OVERFLOW     E_TSP_FLT_STATE_OVERFLOW
218*53ee8cc1Swenshuai.xi #define E_DRVTSP_FLT_STATE_NA           E_TSP_FLT_STATE_NA
219*53ee8cc1Swenshuai.xi 
220*53ee8cc1Swenshuai.xi 
221*53ee8cc1Swenshuai.xi typedef enum //_DrvTSP_RecMode
222*53ee8cc1Swenshuai.xi {
223*53ee8cc1Swenshuai.xi     //[TODO] rename REC_MODE to PVR_MODE
224*53ee8cc1Swenshuai.xi 
225*53ee8cc1Swenshuai.xi     E_DRVTSP_REC_MODE_ENG0_FLTTYPE  =   E_TSP_REC_MODE_ENG0_FLTTYPE,
226*53ee8cc1Swenshuai.xi     E_DRVTSP_REC_MODE_ENG1_FLTTYPE  =   E_TSP_REC_MODE_ENG1_FLTTYPE,
227*53ee8cc1Swenshuai.xi     E_DRVTSP_REC_MODE_ENG0_BYPASS   =   E_TSP_REC_MODE_ENG0_BYPASS,
228*53ee8cc1Swenshuai.xi     E_DRVTSP_REC_MODE_ENG1_BYPASS   =   E_TSP_REC_MODE_ENG1_BYPASS,
229*53ee8cc1Swenshuai.xi 
230*53ee8cc1Swenshuai.xi } DrvTSP_RecMode;
231*53ee8cc1Swenshuai.xi 
232*53ee8cc1Swenshuai.xi 
233*53ee8cc1Swenshuai.xi typedef enum //_DrvTSP_CtrlMode
234*53ee8cc1Swenshuai.xi {
235*53ee8cc1Swenshuai.xi     E_DRVTSP_CTRL_MODE_TS0          =   E_TSP_CTRL_MODE_TS0,
236*53ee8cc1Swenshuai.xi     E_DRVTSP_CTRL_MODE_TS1          =   E_TSP_CTRL_MODE_TS1,
237*53ee8cc1Swenshuai.xi     E_DRVTSP_CTRL_MODE_MEM          =   E_TSP_CTRL_MODE_MEM,
238*53ee8cc1Swenshuai.xi } DrvTSP_CtrlMode;
239*53ee8cc1Swenshuai.xi 
240*53ee8cc1Swenshuai.xi 
241*53ee8cc1Swenshuai.xi typedef enum // @FIXME merge this enum with drvtsp2.h-> TSP_TSPad
242*53ee8cc1Swenshuai.xi {
243*53ee8cc1Swenshuai.xi     E_DRVTSP_PAD_DEMOD              =   0x0,
244*53ee8cc1Swenshuai.xi     E_DRVTSP_PAD_EXT_INPUT0         =   0x1,
245*53ee8cc1Swenshuai.xi     E_DRVTSP_PAD_EXT_INPUT1         =   0x2,
246*53ee8cc1Swenshuai.xi     E_DRVTSP_PAD_EXT_INPUT2           = 0x4,
247*53ee8cc1Swenshuai.xi } DrvTSP_PadIn;
248*53ee8cc1Swenshuai.xi 
249*53ee8cc1Swenshuai.xi typedef struct
250*53ee8cc1Swenshuai.xi {
251*53ee8cc1Swenshuai.xi     DrvTSP_PadIn                        ePad;
252*53ee8cc1Swenshuai.xi     MS_BOOL                             bClkInv;
253*53ee8cc1Swenshuai.xi     MS_BOOL                             bExtSync;
254*53ee8cc1Swenshuai.xi     MS_BOOL                             bParallel;
255*53ee8cc1Swenshuai.xi } DrvTSP_If_Set;
256*53ee8cc1Swenshuai.xi 
257*53ee8cc1Swenshuai.xi typedef enum
258*53ee8cc1Swenshuai.xi {
259*53ee8cc1Swenshuai.xi     E_DRVTSP_FILEIN_MODE_ENG0_TS      = E_TSP_FILE_2_TSP,
260*53ee8cc1Swenshuai.xi     E_DRVTSP_FILEIN_MODE_ENG0_APES    = E_TSP_FILE_2_AUDIO,
261*53ee8cc1Swenshuai.xi     E_DRVTSP_FILEIN_MODE_ENG0_A2PES   = E_TSP_FILE_2_AUDIO2,
262*53ee8cc1Swenshuai.xi     E_DRVTSP_FILEIN_MODE_ENG0_A3PES   = E_TSP_FILE_2_AUDIO3,
263*53ee8cc1Swenshuai.xi     E_DRVTSP_FILEIN_MODE_ENG0_A4PES   = E_TSP_FILE_2_AUDIO4,
264*53ee8cc1Swenshuai.xi     E_DRVTSP_FILEIN_MODE_ENG0_A5PES   = E_TSP_FILE_2_AUDIO5,
265*53ee8cc1Swenshuai.xi     E_DRVTSP_FILEIN_MODE_ENG0_A6PES   = E_TSP_FILE_2_AUDIO6,
266*53ee8cc1Swenshuai.xi     E_DRVTSP_FILEIN_MODE_ENG0_VPES    = E_TSP_FILE_2_VIDEO,
267*53ee8cc1Swenshuai.xi     E_DRVTSP_FILEIN_MODE_ENG0_V3DPES  = E_TSP_FILE_2_VIDEO3D,
268*53ee8cc1Swenshuai.xi     E_DRVTSP_FILEIN_MODE_ENG0_V3PES   = E_TSP_FILE_2_VIDEO3,
269*53ee8cc1Swenshuai.xi     E_DRVTSP_FILEIN_MODE_ENG0_V4PES   = E_TSP_FILE_2_VIDEO4,
270*53ee8cc1Swenshuai.xi     E_DRVTSP_FILEIN_MODE_ENG0_V5PES   = E_TSP_FILE_2_VIDEO5,
271*53ee8cc1Swenshuai.xi     E_DRVTSP_FILEIN_MODE_ENG0_V6PES   = E_TSP_FILE_2_VIDEO6,
272*53ee8cc1Swenshuai.xi     E_DRVTSP_FILEIN_MODE_ENG0_V7PES   = E_TSP_FILE_2_VIDEO7,
273*53ee8cc1Swenshuai.xi     E_DRVTSP_FILEIN_MODE_ENG0_V8PES   = E_TSP_FILE_2_VIDEO8
274*53ee8cc1Swenshuai.xi } DrvTSP_FileinMode;
275*53ee8cc1Swenshuai.xi 
276*53ee8cc1Swenshuai.xi 
277*53ee8cc1Swenshuai.xi #define E_DRVTSP_FILEIN_STATE_IDLE      E_TSP_FILE_STATE_IDLE
278*53ee8cc1Swenshuai.xi #define E_DRVTSP_FILEIN_STATE_BUSY      E_TSP_FILE_STATE_BUSY
279*53ee8cc1Swenshuai.xi #define E_DRVTSP_FILEIN_STATE_PAUSE     E_TSP_FILE_STATE_PAUSE
280*53ee8cc1Swenshuai.xi 
281*53ee8cc1Swenshuai.xi typedef TSP_FileState                 DrvTSP_FileinState;
282*53ee8cc1Swenshuai.xi 
283*53ee8cc1Swenshuai.xi #define DrvTSP_Event                    TSP_Event
284*53ee8cc1Swenshuai.xi #define E_DRVTSP_EVENT_DATA_INIT        E_TSP_EVENT_DATA_IDLE
285*53ee8cc1Swenshuai.xi #define E_DRVTSP_EVENT_DATA_READY       E_TSP_EVENT_DATA_READY
286*53ee8cc1Swenshuai.xi #define E_DRVTSP_EVENT_SEC_CRCERROR     E_TSP_EVENT_SEC_CRCERROR
287*53ee8cc1Swenshuai.xi #define E_DRVTSP_EVENT_BUF_OVERFLOW     E_TSP_EVENT_BUF_OVERFLOW
288*53ee8cc1Swenshuai.xi #define E_DRVTSP_EVENT_PVRBUF_FULL      E_TSP_EVENT_PVRBUF_FULL
289*53ee8cc1Swenshuai.xi #define E_DRVTSP_EVENT_PVRBUF_OVERFLOW  E_TSP_EVENT_PVRBUF_OVERFLOW
290*53ee8cc1Swenshuai.xi 
291*53ee8cc1Swenshuai.xi #define E_DRVTSP_EVENT_CB_MASK          E_TSP_EVENT_CB_MASK
292*53ee8cc1Swenshuai.xi #define E_DRVTSP_EVENT_CB_POLL          E_TSP_EVENT_CB_POLL
293*53ee8cc1Swenshuai.xi #define E_DRVTSP_EVENT_CB_SELF          E_TSP_EVENT_CB_AUTO
294*53ee8cc1Swenshuai.xi 
295*53ee8cc1Swenshuai.xi #define E_DRVTSP_PKTMODE_188            E_TSP_PKTMODE_188
296*53ee8cc1Swenshuai.xi #define E_DRVTSP_PKTMODE_192            E_TSP_PKTMODE_192
297*53ee8cc1Swenshuai.xi #define E_DRVTSP_PKTMODE_204            E_TSP_PKTMODE_204
298*53ee8cc1Swenshuai.xi #define E_DRVTSP_PKTMODE_130            E_TSP_PKTMODE_130
299*53ee8cc1Swenshuai.xi #define E_DRVTSP_PKTMODE_134            E_TSP_PKTMODE_134
300*53ee8cc1Swenshuai.xi 
301*53ee8cc1Swenshuai.xi typedef TSP_PktMode                     DrvTSP_PacketMode;
302*53ee8cc1Swenshuai.xi 
303*53ee8cc1Swenshuai.xi typedef TSP_EventMsg                    DrvTSP_Msg;
304*53ee8cc1Swenshuai.xi /// @name TSP_EventMsg
305*53ee8cc1Swenshuai.xi /// Macro definitions for manipulating TSP_EventMsg
306*53ee8cc1Swenshuai.xi /// @{
307*53ee8cc1Swenshuai.xi #define MSG_FLTINFO_SEC_ID_MASK         TSP_MSG_FLTID_MASK
308*53ee8cc1Swenshuai.xi #define MSG_FLTINFO_SEC_ID_SHFT         TSP_MSG_FLTID_SHFT
309*53ee8cc1Swenshuai.xi #define MSG_FLTINFO_ENG_ID_MASK         TSP_MSG_ENGID_MASK
310*53ee8cc1Swenshuai.xi #define MSG_FLTINFO_ENG_ID_SHFT         TSP_MSG_ENGID_SHFT
311*53ee8cc1Swenshuai.xi #define MSG_PVRBUF_ID_MASK              TSP_MSG_PVRID_MASK
312*53ee8cc1Swenshuai.xi #define MSG_PVRBUF_ID_SHFT              TSP_MSG_PVRID_SHFT
313*53ee8cc1Swenshuai.xi #define MSG_PVRBUF_ID_NULL              TSP_MSG_PVRID_NULL
314*53ee8cc1Swenshuai.xi /// @}
315*53ee8cc1Swenshuai.xi 
316*53ee8cc1Swenshuai.xi 
317*53ee8cc1Swenshuai.xi typedef enum //_DrvTSP_DbgLevel
318*53ee8cc1Swenshuai.xi {
319*53ee8cc1Swenshuai.xi     E_DRVTSP_DBG_Release            =   E_TSP_DBG_ERROR,
320*53ee8cc1Swenshuai.xi     E_DRVTSP_DBG_L1                 =   E_TSP_DBG_FAIL,
321*53ee8cc1Swenshuai.xi     E_DRVTSP_DBG_L2                 =   E_TSP_DBG_TRACK,
322*53ee8cc1Swenshuai.xi 
323*53ee8cc1Swenshuai.xi } DrvTSP_DbgLevel;
324*53ee8cc1Swenshuai.xi 
325*53ee8cc1Swenshuai.xi #define E_DRVTSP_CAP_FILTER_NUM     E_TSP_CAP_RECFLT_IDX
326*53ee8cc1Swenshuai.xi 
327*53ee8cc1Swenshuai.xi typedef enum
328*53ee8cc1Swenshuai.xi {
329*53ee8cc1Swenshuai.xi     E_DRVTSP_HW_STATUS              =   E_TSP_HW_STATUS,
330*53ee8cc1Swenshuai.xi     E_DRVTSP_HW_INIT                =   E_TSP_HW_INIT,
331*53ee8cc1Swenshuai.xi     E_DRVTSP_HW_ALIVE               =   E_TSP_HW_ALIVE,
332*53ee8cc1Swenshuai.xi     E_DRVTSP_HW_DEALIVE             =   E_TSP_HW_DEALIVE,
333*53ee8cc1Swenshuai.xi } DrvTSP_HW_Status;
334*53ee8cc1Swenshuai.xi 
335*53ee8cc1Swenshuai.xi typedef enum
336*53ee8cc1Swenshuai.xi {
337*53ee8cc1Swenshuai.xi     E_DRVTSP_SW_INIT                =   E_TSP_SW_INIT,
338*53ee8cc1Swenshuai.xi     E_DRVTSP_SW_INIT_FAIL           =   E_TSP_SW_INIT_FAIL,
339*53ee8cc1Swenshuai.xi     E_DRVTSP_SW_SUSPEND             =   E_TSP_SW_SUSPEND,
340*53ee8cc1Swenshuai.xi     E_DRVTSP_SW_RESUME              =   E_TSP_SW_RESUME,
341*53ee8cc1Swenshuai.xi     E_DRVTSP_SW_POWEROFF            =   E_TSP_SW_POWEROFF,
342*53ee8cc1Swenshuai.xi     E_DRVTSP_SW_CLOSE               =   E_TSP_SW_CLOSE,
343*53ee8cc1Swenshuai.xi     E_DRVTSP_SW_EXIT                =   E_TSP_SW_EXIT,
344*53ee8cc1Swenshuai.xi } DrvTSP_SW_Status;
345*53ee8cc1Swenshuai.xi 
346*53ee8cc1Swenshuai.xi typedef P_TSP_Callback              P_DrvTSP_EvtCallback;
347*53ee8cc1Swenshuai.xi 
348*53ee8cc1Swenshuai.xi // TSP event define
349*53ee8cc1Swenshuai.xi #define TSP_TASK_EVENT_SECTION_SELF     TSP_EVENT_SECTION
350*53ee8cc1Swenshuai.xi #define TSP_TASK_EVENT_FLT_FREE         TSP_EVENT_FREEFLT
351*53ee8cc1Swenshuai.xi 
352*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
353*53ee8cc1Swenshuai.xi //  Function Prototype
354*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
355*53ee8cc1Swenshuai.xi extern  TSP_Result                              MDRV_TSP_FAIL_NOT_SUPPORTED(void);
356*53ee8cc1Swenshuai.xi 
357*53ee8cc1Swenshuai.xi #define MDrv_TSP_PidFlt_Alloc                   MDrv_TSP_FLT_Alloc
358*53ee8cc1Swenshuai.xi #define MDrv_TSP_PidFlt_Alloc_Ex                MDrv_TSP_FLT_Alloc_Ex
359*53ee8cc1Swenshuai.xi #define MDrv_TSP_PidFlt_Free(e, p...)           MDrv_TSP_FLT_Free(p)
360*53ee8cc1Swenshuai.xi #define MDrv_TSP_PidFlt_SetPid(e, p...)         MDrv_TSP_FLT_SetPID(p)
361*53ee8cc1Swenshuai.xi #define MDrv_TSP_PidFlt_GetPid(e, p...)         MDrv_TSP_FLT_GetPID(p)
362*53ee8cc1Swenshuai.xi #define MDrv_TSP_PidFlt_SelSecFlt(e, p...)      MDrv_TSP_FLT_SelSEC(p)
363*53ee8cc1Swenshuai.xi #define MDrv_TSP_PidFlt_Enable(e, p...)         MDrv_TSP_FLT_Enable(p)
364*53ee8cc1Swenshuai.xi #define MDrv_TSP_PidFlt_GetState(e, p...)       MDrv_TSP_FLT_GetState(p)
365*53ee8cc1Swenshuai.xi #define MDrv_TSP_PidFlt_ChangeSource(e, p...)   MDrv_TSP_FLT_ChangeSource(p)
366*53ee8cc1Swenshuai.xi #define MDrv_TSP_PidFlt_SetFltRushPass(e, p...) MDrv_TSP_FLT_SetFltRushPass(p)
367*53ee8cc1Swenshuai.xi #define MDrv_TSP_PidFlt_GetScmbSts(p...)        MDrv_TSP_Flt_GetScmbSts(p)
368*53ee8cc1Swenshuai.xi 
369*53ee8cc1Swenshuai.xi 
370*53ee8cc1Swenshuai.xi #define MDrv_TSP_SecFlt_SetMode(e, p...)        MDrv_TSP_FLT_SetMode(p)
371*53ee8cc1Swenshuai.xi #define MDrv_TSP_SecFlt_SetPattern(e, p...)     MDrv_TSP_FLT_SetMatch(p)
372*53ee8cc1Swenshuai.xi #define MDrv_TSP_SecFlt_Notify(e, p...)         MDrv_TSP_FLT_SetCallback(p)
373*53ee8cc1Swenshuai.xi #define MDrv_TSP_SecFlt_GetState(e, p...)       MDrv_TSP_FLT_GetState(p)
374*53ee8cc1Swenshuai.xi 
375*53ee8cc1Swenshuai.xi #define MDrv_TSP_SecFlt_Alloc                   MDrv_TSP_SEC_Alloc
376*53ee8cc1Swenshuai.xi #define MDrv_TSP_SecFlt_Free(e, p...)           MDrv_TSP_SEC_Free(p)
377*53ee8cc1Swenshuai.xi #define MDrv_TSP_SecFlt_SetBuffer(e, p...)      MDrv_TSP_SEC_SetBuffer(p)
378*53ee8cc1Swenshuai.xi #define MDrv_TSP_SecFlt_GetBufStart(e, p...)    MDrv_TSP_SEC_GetStart(p)
379*53ee8cc1Swenshuai.xi #define MDrv_TSP_SecFlt_GetBufSize(e, p...)     MDrv_TSP_SEC_GetSize(p)
380*53ee8cc1Swenshuai.xi #define MDrv_TSP_SecFlt_GetReadAddr(e, p...)    MDrv_TSP_SEC_GetRead(p)
381*53ee8cc1Swenshuai.xi #define MDrv_TSP_SecFlt_GetWriteAddr(e, p...)    MDrv_TSP_SEC_GetWrite(p)
382*53ee8cc1Swenshuai.xi #define MDrv_TSP_SecFlt_ResetBuffer(e, p...)    MDrv_TSP_SEC_Reset(p)
383*53ee8cc1Swenshuai.xi #define MDrv_TSP_SecFlt_Update(e, p...)         MDrv_TSP_SEC_Update(p)
384*53ee8cc1Swenshuai.xi 
385*53ee8cc1Swenshuai.xi #define MDrv_TSP_SecFlt_SetReadAddr(e, p...)    MDrv_TSP_SEC_SetRead(p)
386*53ee8cc1Swenshuai.xi 
387*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_SetAddr                   MDrv_TSP_FILE_CmdAddr
388*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_SetSize                   MDrv_TSP_FILE_CmdSize
389*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_Start(p1...)              MDrv_TSP_FILE_CmdStart((TSP_FileMode)p1)
390*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_Pause                     MDrv_TSP_FILE_Pause
391*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_Resume                    MDrv_TSP_FILE_Resume
392*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_Stop                      MDrv_TSP_FILE_Stop
393*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_GetState                  MDrv_TSP_FILE_GetState
394*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_SetRate                   MDrv_TSP_FILE_SetRate
395*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_SetPacketMode             MDrv_TSP_FILE_SetPktMode
396*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_PS_Path_Enable(p1...)     MDrv_TSP_FILE_PS_Path_Enable((TSP_FileMode)p1)
397*53ee8cc1Swenshuai.xi #define MDrv_TSP_AVFifo_BlockEnable             MDrv_TSP_FIFO_BlockEnable
398*53ee8cc1Swenshuai.xi 
399*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_Eng_SetAddr                   MDrv_TSP_FILE_Eng_CmdAddr
400*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_Eng_SetSize                   MDrv_TSP_FILE_Eng_CmdSize
401*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_Eng_Start(p1, p2...)          MDrv_TSP_FILE_Eng_CmdStart(p1, (TSP_FileMode)p2)
402*53ee8cc1Swenshuai.xi #define MDrv_TSP_SetSTC                             MDrv_TSP_SetSTC64  //@F_TODO not decided the name yet why cmdstc?
403*53ee8cc1Swenshuai.xi #define MDrv_TSP_GetSTC                             MDrv_TSP_GetSTC64  //@F_TODO not decided the name yet why cmdstc?
404*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_Eng_Pause                     MDrv_TSP_FILE_Eng_Pause
405*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_Eng_Resume                    MDrv_TSP_FILE_Eng_Resume
406*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_Eng_Stop                      MDrv_TSP_FILE_Eng_Stop
407*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_Eng_GetState                  MDrv_TSP_FILE_Eng_GetState
408*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_Eng_SetRate                   MDrv_TSP_FILE_Eng_SetRate
409*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_Eng_SetPacketMode             MDrv_TSP_FILE_Eng_SetPktMode
410*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_Eng_PS_Path_Enable(p1...)     MDrv_TSP_FILE_Eng_PS_Path_Enable((TSP_FileMode)p1)
411*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_Eng_CMDQ_GetSlot              MDrv_TSP_FILE_Eng_GetCmdSlot
412*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_Eng_CMDQ_Reset                MDrv_TSP_FILE_Eng_Reset
413*53ee8cc1Swenshuai.xi 
414*53ee8cc1Swenshuai.xi #define MDrv_TSP_AVFifo_Reset                   MDrv_TSP_FIFO_Reset
415*53ee8cc1Swenshuai.xi #define MDrv_TSP_AVFifo_Status                  MDrv_TSP_FIFO_GetStatus
416*53ee8cc1Swenshuai.xi #define MDrv_TSP_AVFifo_Overflow_Status         MDrv_TSP_FIFO_Overflow_Status
417*53ee8cc1Swenshuai.xi #define MDrv_TSP_AVFifo_SourceSelect            MDrv_TSP_FIFO_SourceSelect
418*53ee8cc1Swenshuai.xi 
419*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_CMDQ_GetSlot              MDrv_TSP_FILE_GetCmdSlot
420*53ee8cc1Swenshuai.xi #define MDrv_TSP_File_CMDQ_Reset                MDrv_TSP_FILE_Reset
421*53ee8cc1Swenshuai.xi 
422*53ee8cc1Swenshuai.xi #define MDrv_TSP_FLT_ChkOwner(p...)             MDRV_TSP_FAIL_NOT_SUPPORTED()
423*53ee8cc1Swenshuai.xi #define MDrv_TSP_BurstLen                       MDrv_TSP_SECFLT_BurstLen
424*53ee8cc1Swenshuai.xi #define MDrv_TSP_IsAccess(p...)                 MDRV_TSP_FAIL_NOT_SUPPORTED()
425*53ee8cc1Swenshuai.xi #define MDrv_TSP_UnlockAccess(p...)             MDRV_TSP_FAIL_NOT_SUPPORTED()
426*53ee8cc1Swenshuai.xi #define MDrv_TSP_TTX_SecFlt_GetWriteAddr(p...)  MDRV_TSP_FAIL_NOT_SUPPORTED()
427*53ee8cc1Swenshuai.xi #define MDrv_TSP_TTX_SecFlt_GetWriteAddr(p...)  MDRV_TSP_FAIL_NOT_SUPPORTED()
428*53ee8cc1Swenshuai.xi #define MDRV_TSP_Proc_Pvr(p...)                 MDRV_TSP_FAIL_NOT_SUPPORTED()
429*53ee8cc1Swenshuai.xi 
430*53ee8cc1Swenshuai.xi #define MDrv_TSP_GetCap                         MDrv_TSP_GetCaps
431*53ee8cc1Swenshuai.xi #define MDrv_TSP_GetDbgPortInfo                 MDrv_TSP_DBG_GetDBGStatus
432*53ee8cc1Swenshuai.xi 
433*53ee8cc1Swenshuai.xi #define MDrv_TSP_Get_FW_VER                     MDrv_TSP_GetFWVER
434*53ee8cc1Swenshuai.xi 
435*53ee8cc1Swenshuai.xi #define MDrv_TSP_PVR_Start(p1, p2...)           MDrv_TSP_PVR_Start((TSP_RecMode)p1, p2)
436*53ee8cc1Swenshuai.xi 
437*53ee8cc1Swenshuai.xi #define MDrv_TSP_Parl_BitOrderSwap(e, p...)     MDrv_TSP_PARL_BitOrderSwap(p)
438*53ee8cc1Swenshuai.xi 
439*53ee8cc1Swenshuai.xi #ifdef __cplusplus
440*53ee8cc1Swenshuai.xi } // closing brace for extern "C"
441*53ee8cc1Swenshuai.xi #endif
442*53ee8cc1Swenshuai.xi 
443*53ee8cc1Swenshuai.xi 
444*53ee8cc1Swenshuai.xi #endif // __DRV_TSP_LEGACY_H__
445