source: svn/trunk/newcon3bcm2_21bu/magnum/commonutils/vdb/35230/C1/bvdb_priv.c

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

first commit

  • Property svn:executable set to *
File size: 14.1 KB
Line 
1/***************************************************************************
2 *     Copyright (c) 2003-2010, 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.c $
11 * $brcm_Revision: Hydra_Software_Devel/8 $
12 * $brcm_Date: 12/16/10 2:29p $
13 *
14 * Module Description:
15 *
16 * Revision History:
17 *
18 * $brcm_Log: /magnum/commonutils/vdb/35230/A0/bvdb_priv.c $
19 *
20 * Hydra_Software_Devel/8   12/16/10 2:29p jerrylim
21 * SW35230-2579: Replaced user mode functions with kernel mode functions
22 *
23 * Hydra_Software_Devel/7   12/14/10 10:14p jhaberf
24 * SW35230-2565: Removed includes of stdio.h/stdlib.h as these cause build
25 * errors when building for kernel mode
26 *
27 * Hydra_Software_Devel/6   9/22/10 4:03p jerrylim
28 * SW35230-1464: Add display formats for 3D sources
29 *
30 * Hydra_Software_Devel/5   9/16/10 3:50p jerrylim
31 * SW35230-1335: Add config400, 401
32 *
33 * Hydra_Software_Devel/4   7/8/10 1:11p jerrylim
34 * SW35230-297: Simplified display modes
35 *
36 * Hydra_Software_Devel/3   7/7/10 9:35a jerrylim
37 * SW35230-567: Fixed a coverity error
38 *
39 * Hydra_Software_Devel/2   6/29/10 11:19a jerrylim
40 * SW35230-297: cleaned up old design. Corrected VDB dump
41 *
42 * Hydra_Software_Devel/1   4/30/10 3:06p jerrylim
43 * SW35230-99: Added real VDB files
44 *
45 ***************************************************************************/
46#include "bstd.h"
47#include "berr.h"
48#include "bkni.h"
49#include "bdbg.h"
50#include "bvdb.h"
51#include "bvdb_priv.h"
52
53BDBG_MODULE(BVDB);
54
55
56bool BVDB_P_IsDisplayPrimary
57        (BVDB_DisplayType            eDisplay)
58{
59        bool bPrimary = false;
60        switch (eDisplay)
61        {
62                case BVDB_Display_ePrimary24:
63                case BVDB_Display_ePrimary48:
64                case BVDB_Display_ePrimary50:
65                case BVDB_Display_ePrimary60:
66                        bPrimary = true;
67                        break;
68                default:
69                        bPrimary = false;
70        }
71
72        return bPrimary;
73}
74
75BERR_Code BVDB_P_GetDisplaySize
76        ( BVDB_OutputResolution       eDispResolution,
77          uint32_t                   *pDispHeight,
78          uint32_t                   *pDispWidth )
79{
80        BERR_Code err = BERR_SUCCESS;
81
82        switch (eDispResolution)
83        {
84                case BVDB_OutputResolution_e1080p:
85                        *pDispHeight = BFMT_1080P_HEIGHT;
86                        *pDispWidth = BFMT_1080P_WIDTH;
87                        break;
88                case BVDB_OutputResolution_e1080i:
89                        *pDispHeight = BFMT_1080I_HEIGHT;
90                        *pDispWidth = BFMT_1080I_WIDTH;
91                        break;
92                case BVDB_OutputResolution_eWxga:
93                        *pDispHeight = 768;
94                        *pDispWidth = 1366;
95                        break;
96                case BVDB_OutputResolution_e720p:
97                        *pDispHeight = BFMT_720P_HEIGHT;
98                        *pDispWidth = BFMT_720P_WIDTH;
99                        break;
100                case BVDB_OutputResolution_eXga:
101                        *pDispHeight = 768;
102                        *pDispWidth = 1024;
103                        break;
104                case BVDB_OutputResolution_e480p:
105                        *pDispHeight = BFMT_480P_HEIGHT;
106                        *pDispWidth = BFMT_480P_WIDTH;
107                        break;
108                case BVDB_OutputResolution_e576p:
109                        *pDispHeight = BFMT_576P_HEIGHT;
110                        *pDispWidth = BFMT_576P_WIDTH;
111                        break;
112                case BVDB_OutputResolution_e480i:
113                        *pDispHeight = BFMT_NTSC_HEIGHT;
114                        *pDispWidth = BFMT_NTSC_WIDTH;
115                        break;
116                case BVDB_OutputResolution_e576i:
117                        *pDispHeight = BFMT_PAL_HEIGHT;
118                        *pDispWidth = BFMT_PAL_WIDTH;
119                        break;
120            case BVDB_OutputResolution_e1920x2160i:
121                        *pDispHeight = 2160;
122                        *pDispWidth = 1920;
123                        break;
124            case BVDB_OutputResolution_e1280x1440p:
125                        *pDispHeight = 1440;
126                        *pDispWidth = 1280;
127                        break;
128                case BVDB_OutputResolution_e1920x2205p:
129                        *pDispHeight = 2205;
130                        *pDispWidth = 1920;
131                        break;
132                case BVDB_OutputResolution_e1280x1470p:
133                        *pDispHeight = 1470;
134                        *pDispWidth = 1280;
135                        break;
136                default:
137                        *pDispHeight = 0;
138                        *pDispWidth = 0;
139                         err = BERR_INVALID_PARAMETER;
140        }
141
142        return err;
143}
144
145
146void BVDB_P_GetInputFormatGroupStr
147        ( BVDB_InputFormatGroup    eInputFmtGrp,
148          char                    *pcStr )
149{
150        switch (eInputFmtGrp)
151        {
152                case BVDB_InputFormatGroup_eNtsc:
153                        BVDB_P_STRCPY(pcStr, "NTSC");
154                        break;
155                case BVDB_InputFormatGroup_ePal:
156                        BVDB_P_STRCPY(pcStr, "PAL");
157                        break;
158                case BVDB_InputFormatGroup_e480p:
159                        BVDB_P_STRCPY(pcStr, "480p");
160                        break;
161                case BVDB_InputFormatGroup_e576p:
162                        BVDB_P_STRCPY(pcStr, "576p");
163                        break;
164                case BVDB_InputFormatGroup_e720p_50:
165                        BVDB_P_STRCPY(pcStr, "720p@50");
166                        break;
167                case BVDB_InputFormatGroup_e720p_60:
168                        BVDB_P_STRCPY(pcStr, "720p@60");
169                        break;
170                case BVDB_InputFormatGroup_e1080i_50:
171                        BVDB_P_STRCPY(pcStr, "1080i@50");
172                        break;
173                case BVDB_InputFormatGroup_e1080i_60:
174                        BVDB_P_STRCPY(pcStr, "1080i@60");
175                        break;
176                case BVDB_InputFormatGroup_e1080p_24:
177                        BVDB_P_STRCPY(pcStr, "1080p@24");
178                        break;
179                case BVDB_InputFormatGroup_e1080p_25:
180                        BVDB_P_STRCPY(pcStr, "1080p@25");
181                        break;
182                case BVDB_InputFormatGroup_e1080p_30:
183                        BVDB_P_STRCPY(pcStr, "1080p@30");
184                        break;
185                case BVDB_InputFormatGroup_e1080p_50:
186                        BVDB_P_STRCPY(pcStr, "1080p@50");
187                        break;
188                case BVDB_InputFormatGroup_e1080p_60:
189                        BVDB_P_STRCPY(pcStr, "1080p@60");
190                        break;
191                case BVDB_InputFormatGroup_ePal_60:
192                        BVDB_P_STRCPY(pcStr, "PAL-60");
193                        break;
194                case BVDB_InputFormatGroup_e720p_24:
195                        BVDB_P_STRCPY(pcStr, "720p@24");
196                        break;
197                case BVDB_InputFormatGroup_e720p_25:
198                        BVDB_P_STRCPY(pcStr, "720p@25");
199                        break;
200                case BVDB_InputFormatGroup_e720p_30:
201                        BVDB_P_STRCPY(pcStr, "720p@30");
202                        break;
203                case BVDB_InputFormatGroup_e544_576i_50:
204                        BVDB_P_STRCPY(pcStr, "544x576i@50_Group");
205                        break;
206                case BVDB_InputFormatGroup_e1440_1080i_50:
207                        BVDB_P_STRCPY(pcStr, "1440x1080i@50_Group");
208                        break;
209                case BVDB_InputFormatGroup_e1440_1080p_25:
210                        BVDB_P_STRCPY(pcStr, "1440x1080p@25_Group");
211                        break;
212                case BVDB_InputFormatGroup_e544_480i_60:
213                        BVDB_P_STRCPY(pcStr, "544x480i@60_Group");
214                        break;
215                case BVDB_InputFormatGroup_e1440_1080i_60:
216                        BVDB_P_STRCPY(pcStr, "1440x1080i@60_Group");
217                        break;
218                case BVDB_InputFormatGroup_e1440_1080p_30:
219                        BVDB_P_STRCPY(pcStr, "1440x1080p@30_Group");
220                        break;
221                case BVDB_InputFormatGroup_e1440_1080p_24:
222                        BVDB_P_STRCPY(pcStr, "1440x1080p@24_Group");
223                        break;
224                case BVDB_InputFormatGroup_e1024_768_60_PC:
225                        BVDB_P_STRCPY(pcStr, "1024x768_PC@60_Group");
226                        break;
227                case BVDB_InputFormatGroup_e1024_768_85_PC:
228                        BVDB_P_STRCPY(pcStr, "1024x768_PC@85_Group");
229                        break;
230                case BVDB_InputFormatGroup_e1366_768_60_PC:
231                        BVDB_P_STRCPY(pcStr, "1366x768_PC@60_Group");
232                        break;
233                case BVDB_InputFormatGroup_e1366_768_85_PC:
234                        BVDB_P_STRCPY(pcStr, "1366x768_PC@85_Group");
235                        break;
236                case BVDB_InputFormatGroup_e1400_1050_60_PC:
237                        BVDB_P_STRCPY(pcStr, "1400x1050_PC@60_Group");
238                        break;
239                case BVDB_InputFormatGroup_e1400_1050_75_PC:
240                        BVDB_P_STRCPY(pcStr, "1400x1050_PC@75_Group");
241                        break;
242                case BVDB_InputFormatGroup_e1920_1080_60_PC:
243                        BVDB_P_STRCPY(pcStr, "1920x1080_PC@60_Group");
244                        break;
245                case BVDB_InputFormatGroup_e1600_1200_60_PC:
246                        BVDB_P_STRCPY(pcStr, "1600x1200_PC@60_Group");
247                        break;
248                case BVDB_InputFormatGroup_eAdcCalibration:
249                        BVDB_P_STRCPY(pcStr, "ADC_Calibration");
250                        break;
251                case BVDB_InputFormatGroup_eJpeg_540:
252                        BVDB_P_STRCPY(pcStr, "JPEG_540");
253                        break;
254                case BVDB_InputFormatGroup_eJpeg_1080:
255                        BVDB_P_STRCPY(pcStr, "JPEG_1080");
256                        break;
257            case BVDB_InputFormatGroup_e1080p3d_24:
258                        BVDB_P_STRCPY(pcStr, "1080p3D@24");
259                        break;
260            case BVDB_InputFormatGroup_e720p3d_60:
261                        BVDB_P_STRCPY(pcStr, "720p3D@60");
262                        break;
263            case BVDB_InputFormatGroup_e720p3d_50:
264                        BVDB_P_STRCPY(pcStr, "720p3D@50");
265                        break;
266                case BVDB_InputFormatGroup_eInvalid:
267                        BVDB_P_STRCPY(pcStr, "Invalid input format group");
268                        break;
269                default:
270                        BVDB_P_STRCPY(pcStr, "Unknown source format");
271                        break;
272        }
273}
274
275void BVDB_P_GetDisplayTypeStr
276        ( BVDB_DisplayType        eDisplayType,
277          char                   *pcStr )
278{
279        switch (eDisplayType)
280        {
281                case BVDB_Display_ePrimary24:
282                        BVDB_P_STRCPY(pcStr, "Primary@24");
283                        break;
284                case BVDB_Display_ePrimary48:
285                        BVDB_P_STRCPY(pcStr, "Primary@48");
286                        break;
287                case BVDB_Display_ePrimary50:
288                        BVDB_P_STRCPY(pcStr, "Primary@50");
289                        break;
290                case BVDB_Display_ePrimary60:
291                        BVDB_P_STRCPY(pcStr, "Primary@60");
292                        break;
293                case BVDB_Display_eSecondary50:
294                        BVDB_P_STRCPY(pcStr, "Secondary@50");
295                        break;
296                case BVDB_Display_eSecondary60:
297                        BVDB_P_STRCPY(pcStr, "Secondary@60");
298                        break;
299                case BVDB_Display_eInvalid:
300                        BVDB_P_STRCPY(pcStr, "Invalid display");
301                        break;
302                default:
303                        break;
304        }
305}
306
307void BVDB_P_GetOutputResolutionStr
308        ( BVDB_OutputResolution    eResolution,
309          char                    *pcStr )
310{
311        switch (eResolution)
312        {
313                case BVDB_OutputResolution_e1080p:
314                        BVDB_P_STRCPY(pcStr, "1080p");
315                        break;
316                case BVDB_OutputResolution_eWxga:
317                        BVDB_P_STRCPY(pcStr, "WXGA");
318                        break;
319                case BVDB_OutputResolution_e1080i:
320                        BVDB_P_STRCPY(pcStr, "1080i");
321                        break;
322                case BVDB_OutputResolution_e720p:
323                        BVDB_P_STRCPY(pcStr, "720p");
324                        break;
325                case BVDB_OutputResolution_eXga:
326                        BVDB_P_STRCPY(pcStr, "XGA");
327                        break;
328                case BVDB_OutputResolution_e480p:
329                        BVDB_P_STRCPY(pcStr, "480p");
330                        break;
331                case BVDB_OutputResolution_e576p:
332                        BVDB_P_STRCPY(pcStr, "576p");
333                        break;
334                case BVDB_OutputResolution_e480i:
335                        BVDB_P_STRCPY(pcStr, "480i");
336                        break;
337                case BVDB_OutputResolution_e576i:
338                        BVDB_P_STRCPY(pcStr, "576i");
339                        break;
340            case BVDB_OutputResolution_e1920x2160i:
341                        BVDB_P_STRCPY(pcStr, "1920x2160i");
342                        break;
343            case BVDB_OutputResolution_e1280x1440p:
344                        BVDB_P_STRCPY(pcStr, "1280x1440p");
345                        break;
346                case BVDB_OutputResolution_eInvalid:
347                        BVDB_P_STRCPY(pcStr, "Invalid output resolution");
348                        break;
349                default:
350                        BVDB_P_STRCPY(pcStr, "Unknown source format");
351                        break;
352        }
353}
354
355void BVDB_P_GetAspectRatioStr
356        ( BVDB_AspectRatio    eAspectRatio,
357          char               *pcStr )
358{
359        switch (eAspectRatio)
360        {
361                case BVDB_AspectRatio_e16_9:
362                        BVDB_P_STRCPY(pcStr, "16:9");
363                        break;
364                case BVDB_AspectRatio_e4_3:
365                        BVDB_P_STRCPY(pcStr, "4:3");
366                        break;
367                case BVDB_AspectRatio_eAllDest:
368                        BVDB_P_STRCPY(pcStr, "All_Destination");
369                        break;
370                case BVDB_AspectRatio_eAllSrc:
371                        BVDB_P_STRCPY(pcStr, "All_Source");
372                        break;
373                case BVDB_AspectRatio_eCustom:
374                        BVDB_P_STRCPY(pcStr, "Custom");
375                        break;
376                case BVDB_AspectRatio_eInvalid:
377                        BVDB_P_STRCPY(pcStr, "Invalid aspect ratio");
378                        break;
379                default:
380                        break;
381        }
382}
383
384void BVDB_P_GetWindowStr
385        ( BVDB_Window         eWin,
386          char               *pcStr )
387{
388        switch (eWin)
389        {
390                case BVDB_Window_eMain:
391                        BVDB_P_STRCPY(pcStr, "Main");
392                        break;
393                case BVDB_Window_ePip:
394                        BVDB_P_STRCPY(pcStr, "PIP");
395                        break;
396                case BVDB_Window_eMonitor:
397                        BVDB_P_STRCPY(pcStr, "MON_out");
398                        break;
399                case BVDB_Window_eInvalid:
400                        BVDB_P_STRCPY(pcStr, "Invalid window");
401                        break;
402                default:
403                        break;
404        }
405}
406
407void BVDB_P_GetInputStr
408        ( BVDB_Input          eInput,
409          char               *pcStr )
410{
411        switch (eInput)
412        {
413                case BVDB_Input_eCvbsSvidIfd:
414                        BVDB_P_STRCPY(pcStr, "CVBS/S-video/IFD");
415                        break;
416                case BVDB_Input_eComponent:
417                        BVDB_P_STRCPY(pcStr, "Component");
418                        break;
419                case BVDB_Input_eMfd:
420                        BVDB_P_STRCPY(pcStr, "MFD");
421                        break;
422                case BVDB_Input_eHdDvi:
423                        BVDB_P_STRCPY(pcStr, "HD-DVI");
424                        break;
425                case BVDB_Input_eVga:
426                        BVDB_P_STRCPY(pcStr, "VGA");
427                        break;
428                case BVDB_Input_e656:
429                        BVDB_P_STRCPY(pcStr, "656");
430                        break;
431                case BVDB_Input_eInvalid:
432                        BVDB_P_STRCPY(pcStr, "Invalid input");
433                        break;
434                default:
435                        break;
436        }
437}
438
439
440void BVDB_P_GetOsdStr
441        ( BVDB_Osd            eOsd,
442          char               *pcStr )
443{
444        switch (eOsd)
445        {
446                case BVDB_Osd_e1920_1080p_32bpp:
447                        BVDB_P_STRCPY(pcStr, "1920x1080@32bpp");
448                        break;
449                case BVDB_Osd_e1366_1080p_32bpp:
450                        BVDB_P_STRCPY(pcStr, "1366x1080@32bpp");
451                        break;
452                case BVDB_Osd_e960_1080p_32bpp:
453                        BVDB_P_STRCPY(pcStr, "960x1080@32bpp");
454                        break;
455                case BVDB_Osd_e1366_768p_32bpp:
456                        BVDB_P_STRCPY(pcStr, "1366x768@32bpp");
457                        break;
458                case BVDB_Osd_e1024_768p_32bpp:
459                        BVDB_P_STRCPY(pcStr, "1024x768@32bpp");
460                        break;
461                case BVDB_Osd_e720_1080p_32bpp:
462                        BVDB_P_STRCPY(pcStr, "720x1080@32bpp");
463                        break;
464                case BVDB_Osd_e960_540p_32bpp:
465                        BVDB_P_STRCPY(pcStr, "960_540@32bpp");
466                        break;
467                case BVDB_Osd_e720_720p_32bpp:
468                        BVDB_P_STRCPY(pcStr, "720x720@32bpp");
469                        break;
470                case BVDB_Osd_e720_480p_32bpp:
471                        BVDB_P_STRCPY(pcStr, "720x480@32bpp");
472                        break;
473                case BVDB_Osd_e720_576p_32bpp:
474                        BVDB_P_STRCPY(pcStr, "720x576@32bpp");
475                        break;
476                case BVDB_Osd_e480i_8bpp:
477                        BVDB_P_STRCPY(pcStr, "480@8bpp");
478                        break;
479                case BVDB_Osd_e576i_8bpp:
480                        BVDB_P_STRCPY(pcStr, "576@8bpp");
481                        break;
482                case BVDB_Osd_eNone:
483                        BVDB_P_STRCPY(pcStr, "none");
484                        break;
485                case BVDB_Osd_eInvalid:
486                        BVDB_P_STRCPY(pcStr, "n/a");
487                        break;
488                default:
489                        break;
490        }
491}
492
493void BVDB_P_GetPixelFormatStr
494        ( BVDB_PixelFormat    ePxlFormat,
495          BVDB_State          eState,
496          char               *pcStr )
497{
498        switch (ePxlFormat)
499        {
500                case BVDB_PixelFmt_e8Bit422:
501                        BVDB_P_STRCPY(pcStr, "8-bit 422");
502                        break;
503                case BVDB_PixelFmt_e10Bit422:
504                        BVDB_P_STRCPY(pcStr, "10-bit 422");
505                        break;
506                case BVDB_PixelFmt_e10Bit444:
507                        BVDB_P_STRCPY(pcStr, "10-bit 444");
508                        break;
509                case BVDB_PixelFmt_eInvalid:
510                        if (eState == BVDB_State_eNo)
511                                BVDB_P_STRCPY(pcStr, "no\tno");
512                        else
513                                BVDB_P_STRCPY(pcStr, "n/a\tn/a");
514                default:
515                        break;
516        }
517}
518
519void BVDB_P_GetFieldStoreCntStr
520        ( BVDB_DeinterlacerFieldStore     eFieldStore,
521          char                           *pcStr )
522{
523        switch (eFieldStore)
524        {
525                case BVDB_FieldStore_e3Fields:
526                        BVDB_P_STRCPY(pcStr, "3-field");
527                        break;
528                case BVDB_FieldStore_e4Fields:
529                        BVDB_P_STRCPY(pcStr, "4-field");
530                        break;
531                case BVDB_FieldStore_e5Fields:
532                        BVDB_P_STRCPY(pcStr, "5-field");
533                        break;
534                case BVDB_FieldStore_eNotApplicable:
535                        BVDB_P_STRCPY(pcStr, "n/a");
536                        break;
537        }
538}
539
540void BVDB_P_GetStateStr
541        ( BVDB_State         eState,
542          char              *pcStr )
543{
544        switch (eState)
545        {
546                case BVDB_State_eNo:
547                        BVDB_P_STRCPY(pcStr, "no");
548                        break;
549                case BVDB_State_eYes:
550                        BVDB_P_STRCPY(pcStr, "yes");
551                        break;
552                case BVDB_State_eNotApplicable:
553                        BVDB_P_STRCPY(pcStr, "n/a");
554                        break;
555        }
556}
557
558void BVDB_P_GetSclCapBiasStr
559        ( BVDB_ScalerCaptureBias  eBias,
560          char                   *pcStr )
561{
562        switch (eBias)
563        {
564                case BVDB_SclCapBias_eAuto:
565                        BVDB_P_STRCPY(pcStr, "auto");
566                        break;
567                case BVDB_SclCapBias_eSclCap:
568                        BVDB_P_STRCPY(pcStr, "scl-cap");
569                        break;
570                case BVDB_SclCapBias_eCapScl:
571                        BVDB_P_STRCPY(pcStr, "cap-scl");
572                        break;
573                default:
574                        break;
575        }
576}
577
578
Note: See TracBrowser for help on using the repository browser.