source: svn/trunk/newcon3bcm2_21bu/magnum/commonutils/vdb/35233/A0/bvdb_priv.h

Last change on this file was 2, checked in by jglee, 11 years ago

first commit

  • Property svn:executable set to *
File size: 13.4 KB
Line 
1/***************************************************************************
2 *     Copyright (c) 2003-2011, Broadcom Corporation
3 *     All Rights Reserved
4 *     Confidential Property of Broadcom Corporation
5 *
6 *  THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE
7 *  AGREEMENT  BETWEEN THE USER AND BROADCOM.  YOU HAVE NO RIGHT TO USE OR
8 *  EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT.
9 *
10 * $brcm_Workfile: bvdb_priv.h $
11 * $brcm_Revision: Hydra_Software_Devel/5 $
12 * $brcm_Date: 7/20/11 1:44p $
13 *
14 * Module Description:
15 *   See Module Overview below.
16 *
17 * Revision History:
18 *
19 * $brcm_Log: /magnum/commonutils/vdb/35233/A0/bvdb_priv.h $
20 *
21 * Hydra_Software_Devel/5   7/20/11 1:44p jerrylim
22 * SWDTV-7684: Selectively choose VDC buffer heap based on 3D display
23 *
24 * Hydra_Software_Devel/4   6/22/11 11:07p jerrylim
25 * SWDTV-7593, SWDTV-7587: Force CAP-SCL for RP1080p and Corrected
26 * blockout for FRC clients to support 3D
27 *
28 * Hydra_Software_Devel/3   6/15/11 1:30p jerrylim
29 * SWDTV-7385, SWDTV-6738: Added 3D support to config23301
30 *
31 * Hydra_Software_Devel/2   6/3/11 3:23p jerrylim
32 * SWDTV-7358, SWDTV-7300, SWDTV-7132, SWDTV-5753: Restructured VDB for
33 * 35233
34 *
35 * Hydra_Software_Devel/1   3/17/11 7:22p jerrylim
36 * SWDTV-5980: Added 35233 VDB
37 *
38 ***************************************************************************/
39#ifndef __BVDB_PRIV_H__
40#define __BVDB_PRIV_H__
41
42#include "bvdb.h"
43
44#ifdef __cplusplus
45extern "C" {
46#endif
47
48/* Get the min / max of two numbers */
49#define BVDB_P_MIN(a, b)        (((a) < (b)) ? (a) : (b))
50#define BVDB_P_MAX(a, b)        (((a) > (b)) ? (a) : (b))
51
52/* constants */
53#define BVDB_P_NUM_WINDOW_HEAPS 4 /* MAIN(analog), MAIN(digital), PIP, MONITOR */
54
55#define BVDB_P_BIG_NUMBER       1000000
56#define BIG_NUM                 (BVDB_P_BIG_NUMBER)
57
58
59/* Client IDs and bit field */
60#define BVDB_P_CLIENT_INFO_RR_EN            0x80000000
61#define BVDB_P_CLIENT_ID_AUD_AIO            0
62#define BVDB_P_CLIENT_ID_AVD0_BLK           1
63#define BVDB_P_CLIENT_ID_AVD0_CABAC         2
64#define BVDB_P_CLIENT_ID_AVD0_ILA           3
65#define BVDB_P_CLIENT_ID_AVD0_OLA           4
66#define BVDB_P_CLIENT_ID_AVD0_SYM           5
67#define BVDB_P_CLIENT_ID_AVFE_TTX_DECODER   6
68#define BVDB_P_CLIENT_ID_AVFE_VDEC_MD_RD    7
69#define BVDB_P_CLIENT_ID_AVFE_VDEC_MD_WR    8
70#define BVDB_P_CLIENT_ID_AVFE_VDEC_VD_RD    9
71#define BVDB_P_CLIENT_ID_AVFE_VDEC_VD_WR    10
72#define BVDB_P_CLIENT_ID_AVFE_VIDBLK_CAP0   11
73#define BVDB_P_CLIENT_ID_AVFE_VIDBLK_CAP1   12
74#define BVDB_P_CLIENT_ID_BVN_CAP0           13
75#define BVDB_P_CLIENT_ID_BVN_CAP1           14
76#define BVDB_P_CLIENT_ID_BVN_DNR_RW         15
77#define BVDB_P_CLIENT_ID_BVN_GFD0           16
78#define BVDB_P_CLIENT_ID_BVN_GFD1           17
79#define BVDB_P_CLIENT_ID_BVN_MFD1           18
80#define BVDB_P_CLIENT_ID_BVN_MCVP0_RRC1     19
81#define BVDB_P_CLIENT_ID_BVN_MCVP0_RWC0     20
82#define BVDB_P_CLIENT_ID_BVN_MFD0           21
83#define BVDB_P_CLIENT_ID_BVN_PDP_RD0        23
84#define BVDB_P_CLIENT_ID_BVN_PDP_WR0        24
85#define BVDB_P_CLIENT_ID_BVN_RDC            25
86#define BVDB_P_CLIENT_ID_BVN_VEC_TTXE       26
87#define BVDB_P_CLIENT_ID_BVN_VFD0           27
88#define BVDB_P_CLIENT_ID_BVN_VFD1           28
89#define BVDB_P_CLIENT_ID_CPU                29
90#define BVDB_P_CLIENT_ID_ENET0              30
91#define BVDB_P_CLIENT_ID_ENET1              31
92#define BVDB_P_CLIENT_ID_GFX_M2MC0          33
93#define BVDB_P_CLIENT_ID_GFX_SID            34
94#define BVDB_P_CLIENT_ID_HIF_PCI            35
95#define BVDB_P_CLIENT_ID_PCU                36
96#define BVDB_P_CLIENT_ID_RAAGA              37
97#define BVDB_P_CLIENT_ID_SUN0               38
98#define BVDB_P_CLIENT_ID_SUN1               39
99#define BVDB_P_CLIENT_ID_TDI                40
100#define BVDB_P_CLIENT_ID_USB_P0_0           42
101#define BVDB_P_CLIENT_ID_USB_P1_0           43
102#define BVDB_P_CLIENT_ID_XPT_MEM2MEM        44
103#define BVDB_P_CLIENT_ID_XPT_RD0            45
104#define BVDB_P_CLIENT_ID_XPT_RD1            46
105#define BVDB_P_CLIENT_ID_XPT_RD2            47
106#define BVDB_P_CLIENT_ID_XPT_WR0            48
107#define BVDB_P_CLIENT_ID_XPT_WR1            49
108#define BVDB_P_CLIENT_ID_XPT_WR2            50
109#define BVDB_P_CLIENT_ID_BVN_PDP_RD1        51
110#define BVDB_P_CLIENT_ID_BVN_PDP_WR1        52
111#define BVDB_P_CLIENT_ID_BVN_FRC0_CE        53
112#define BVDB_P_CLIENT_ID_BVN_FRC0_TRMV      54
113#define BVDB_P_CLIENT_ID_BVN_FRC0_PROF      55
114#define BVDB_P_CLIENT_ID_BVN_FRC0_WS2       56
115#define BVDB_P_CLIENT_ID_BVN_FRC0_WS1B      57
116#define BVDB_P_CLIENT_ID_BVN_FRC0_WS1       58
117#define BVDB_P_CLIENT_ID_BVN_FRC0_WS0       59
118#define BVDB_P_CLIENT_ID_BVN_FRC0_RSM       60
119#define BVDB_P_CLIENT_ID_BVN_FRC0_RS2       61
120#define BVDB_P_CLIENT_ID_BVN_FRC0_RS1       62
121#define BVDB_P_CLIENT_ID_BVN_FRC0_RS0P      63
122#define BVDB_P_CLIENT_ID_BVN_FRC0_RS0N      64
123#define BVDB_P_CLIENT_ID_BVN_FRC0_SRD       65
124#define BVDB_P_CLIENT_ID_BVN_FRC0_RS1B      66
125#define BVDB_P_CLIENT_ID_BVN_FRC0_WSM       67
126#define BVDB_P_CLIENT_ID_BVN_FRC0_WSPL      68
127#define BVDB_P_CLIENT_ID_BVN_FRC0_RSPL      69
128#define BVDB_P_CLIENT_ID_BVN_FRC0_WSEG      70
129#define BVDB_P_CLIENT_ID_BVN_FRC0_RSEG      71
130#define BVDB_P_CLIENT_ID_BVN_MCVP0_RWC2     72
131#define BVDB_P_CLIENT_ID_V3D0               73
132#define BVDB_P_CLIENT_ID_V3D1               74
133#define BVDB_P_CLIENT_ID_SHARF              75
134#define BVDB_P_CLIENT_ID_PCU_DMAS           76
135#define BVDB_P_CLIENT_ID_SDIO_CARD          77
136#define BVDB_P_CLIENT_ID_SDIO_EMMC          81
137#define BVDB_P_CLIENT_ID_BVN_PDP_FRONT_WR2  82
138#define BVDB_P_CLIENT_ID_BVN_PDP_FRONT_WR3  83
139#define BVDB_P_CLIENT_ID_USB_P2_1           84
140#define BVDB_P_CLIENT_ID_USB_P3_1           85
141#define BVDB_P_CLIENT_ID_B3DC_RD            86
142#define BVDB_P_CLIENT_ID_PDP_RTC_RD         87
143#define BVDB_P_CLIENT_ID_PDP_RTC_WR         88
144#define BVDB_P_CLIENT_ID_B3DC_WR            89
145#define BVDB_P_CLIENT_ID_MSA                118
146#define BVDB_P_CLIENT_ID_DIS                119
147#define BVDB_P_CLIENT_ID_AVD_PFRI_0         120
148#define BVDB_P_CLIENT_ID_CPU_CACHE0         124
149#define BVDB_P_CLIENT_ID_CPU_CACHE1         125
150#define BVDB_P_CLIENT_ID_DRAM_INIT          126
151#define BVDB_P_CLIENT_ID_REFRESH            127
152 
153
154
155/*******************************************************************************
156 * Summary:
157 *     This structure describes heap settings based on system configuration
158 *
159 *     ulConfigId     - RTS configuration ID
160 *     eWindow        - Window type
161 *     eInput         - Input type
162 *     ulHeapSize     - Heap size
163 *     stHeapSettings - Heap configuration
164 * See Also:
165 */
166typedef struct
167{
168    BVDB_Window        eWindow;
169    BVDB_Input         eInput;
170    uint32_t           ulHeapSize;
171    BVDB_Heap_Settings stHeapSettings;
172} BVDB_P_Config_MemAlloc;
173
174/*******************************************************************************
175 * Summary:
176 *     This structure describes source resolution.
177 *     See below for description of each structure member.
178 * See Also:
179 */
180typedef struct
181{
182    uint32_t ulWidth;   /* widht */
183    uint32_t ulHeight;  /* height */
184} BVDB_P_SourceResolution;
185
186/*******************************************************************************
187 * Summary:
188 *     This structure describes source format including source resolution.
189 *     The main usage of this structure is to map a given source to a source
190 *     group.
191 *     See below for description of each structure member.
192 * See Also:
193 */
194typedef struct
195{
196    uint32_t         inputType;     /* where's the input coming from */
197    uint32_t         width;         /* width */
198    uint32_t         height;        /* height */
199    bool             bProgressive;  /* true if progressive */
200    uint32_t         frameRate;     /* frame rate x 1000 */
201    bool             b3dSource;     /* true if 3D */
202    BVDB_SourceGroup eSourceGroup;  /* source group to be mapped */
203} BVDB_P_SourceFormat;
204
205/*******************************************************************************
206 * Summary:
207 *     This structure describes BVN configuration that VDC will use to
208 *     configure BVN.
209 *     See below for description of each structure member.
210 */
211typedef struct
212{
213    uint32_t sourceGroup; /* ORed BVDB_SourceGroup */
214    uint32_t minWinWidth; /* all in percent (win_size*100/disp_size) */
215    uint32_t minWinHeight;
216    uint32_t maxWinWidth;
217    uint32_t maxWinHeight;
218    uint32_t maxClippingWidth;
219    uint32_t maxClippingHeight;
220    bool bcap;  /* true if CAP is allowed */
221    bool bdnr;  /* true if DNR is allowed. Valid for main path only */
222    bool bmcvp; /* true if MCVP is allowed. Valid for main path only */
223    bool bfrc;  /* true if FRC is allowed. Valid for main path only */
224
225    uint32_t c422;  /* 422 source CAP/VFD bpp * 2 */
226    uint32_t c444;  /* 444 source CAP/VFD bpp * 2 */
227    uint32_t frcc;  /* FRC bpp * 2, valid for main only */
228    uint32_t mc;    /* MCVP bpp * 2, valid for main only */
229    BVDB_ScalerCaptureBias eSclCap; /* determines SCL-CAP position */
230} BVDB_P_BvnTopology;
231
232
233/*******************************************************************************
234 * Summary:
235 *     This structure describes the top level BVN usage mode table structure
236 *     See below for description of each structure member.
237 * See Also:
238 */
239typedef struct
240{
241    uint32_t id; /* AAABB: AAA=chip#, BB=serial# */
242
243    struct
244    {
245        uint32_t displayOrientation; /* indicate 2D or 3D display */
246        bool b3dcomb; /* VDEC 3D comb on/off 27MHz over sampling always
247                       * supported */
248        uint32_t dc; /* Display (PDP) bpp */
249        uint32_t rc; /* RTC bpp */
250    } common;
251
252    BVDB_P_BvnTopology main; /* main path BVN config */
253    BVDB_P_BvnTopology sec;  /* secondary path BVN config */
254
255    BVDB_RtsTable * pRtsRegisterTable; /* register table pointer */
256} BVDB_P_RtsData;
257
258/*******************************************************************************
259 * Summary:
260 *     This structure holds informatin of each RTS configuration including
261 *     features it supports and limitations it has.
262 *     See below for description of each structure member.
263 * See Also:
264 */
265typedef struct
266{
267    uint32_t ulConfigId;    /* Configuration ID */
268    uint32_t ulVdbVer;      /* Version number */
269
270    /* usage mode table pointer of the selected RTS configuration */
271    BVDB_P_RtsData * pUsageMode;
272
273    /* # of usage mode that the selected configuration has */
274    uint32_t usageModeNum;
275
276    /* Display mode that this configuration supports */
277    uint32_t ulMainDisplayResolution;
278
279    /* Main OSD size that this configuration supports */
280    BVDB_OsdInfo eMainOsdResolution;
281
282    /* VCR OSD size that this configuration supports */
283    BVDB_OsdInfo eVcrOsdResolution;
284
285    /* Feature supports of this RTS configuration */
286    bool bMcvpCompromise;   /* true if MCVP compromise required */
287    bool bPipSupport;   /* true if PIP is supported */
288    bool bMonitorSupport;   /* true if Monitor is supported */
289    bool bFrcSupport;   /* true if FRC is supported */
290    bool bRtcSupport;   /* true if RTC is supported */
291    bool bPanelReversalSupport; /* true if Panel reversal is supported */
292    uint32_t worstPdpBpp;   /* Worst (largest) PDP bpp */
293    uint32_t maxPipWinHeight;   /* maximum PIP window height */
294    uint32_t maxPipWinWidth;    /* maximum PIP window width */
295
296    BVDB_P_Config_MemAlloc *p2dVdcHeap; /* VDC Heap for 2D display */
297    BVDB_P_Config_MemAlloc *p3dVdcHeap; /* VDC Heap for 3D display */
298} BVDB_P_Config_Info;
299
300/*******************************************************************************
301 * Summary:
302 *     This structure holds informatin of current VDB status.
303 *     See below for description of each structure member.
304 * See Also:
305 */
306typedef struct
307{
308    /*  informatin about the selected RTS configuration */
309    BVDB_P_Config_Info * pRtsConfig;
310
311    /* Current usage mode */
312    BVDB_P_RtsData curUsageMode;
313
314    /* Current main/sec window inforamtion */
315    struct
316    {
317        uint32_t winHeight; /* in percentage */
318        uint32_t winWidth;  /* in percentage */
319        uint32_t clipHeight;/* in percentage */
320        uint32_t clipWidth; /* in percentage */
321        bool bAutomaticAspectRatioBoxMode;
322    } main, sec;
323} BVDB_P_Context;
324
325/*******************************************************************************
326 * Summary:
327 *     This structure holds a list of RTS configuration with a pointer pointing
328 *     to its associated RTS Context table.
329 *     See below for description of each structure member.
330 * See Also:
331 */
332typedef struct
333{
334    uint32_t           ulConfigId;  /* RTS configuration ID */
335    BVDB_P_Config_Info * pstRtsConfigInfo; /* RTS Context table pointer of
336                                            * ulConfigId */
337} BVDB_P_RtsConfigurations;
338
339
340
341/* Functions */
342/*******************************************************************************
343 * BVDB_P_GetDisplaySize - refer to the function for details
344 */
345BERR_Code BVDB_P_GetDisplaySize
346    (BVDB_OutputResolution eDispResolution,
347     uint32_t              *pDispHeight,
348     uint32_t              *pDispWidth );
349
350/*******************************************************************************
351 * BVDB_P_GetRtsConfigInfo - refer to the function for details
352 */
353BVDB_P_Config_Info *BVDB_P_GetRtsConfigInfo(uint32_t       ulConfigId);
354
355/*******************************************************************************
356 * BVDB_P_IsPcFormat - refer to the function for details
357 */
358bool BVDB_P_IsPcFormat
359    (uint32_t                ulWidth,
360     uint32_t                ulHeight,
361     bool                    bProgressive,
362     BVDB_P_SourceResolution *pstPcFormats);
363
364#ifdef __cplusplus
365}
366#endif
367
368#endif /* __BVDB_PRIV_H__ */
Note: See TracBrowser for help on using the repository browser.