source: svn/trunk/newcon3bcm2_21bu/magnum/portinginterface/vdc/7552/bvdc_tune.c

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

1.phkim

  1. revision copy newcon3sk r27
  • Property svn:executable set to *
File size: 6.2 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: bvdc_tune.c $
11 * $brcm_Revision: Hydra_Software_Devel/5 $
12 * $brcm_Date: 5/7/10 7:20p $
13 *
14 * Module Description:
15 *   See Module Overview below.
16 *
17 * Revision History:
18 *
19 * $brcm_Log: /magnum/portinginterface/vdc/7038/bvdc_tune.c $
20 *
21 * Hydra_Software_Devel/5   5/7/10 7:20p albertl
22 * SW7125-364: Changed dirty bits to use union structure to avoid type-pun
23 * warnings
24 *
25 * Hydra_Software_Devel/4   4/19/10 10:23p tdo
26 * SW3548-2814: Improvements to VDC ulBlackMagic. Move
27 * BDBG_OBJECT_ID_DECLARE private header files instead of .c.
28 *
29 * Hydra_Software_Devel/3   4/7/10 11:36a tdo
30 * SW3548-2814: Improvements to VDC ulBlackMagic.  Rename TLA
31 *
32 * Hydra_Software_Devel/2   4/5/10 4:15p tdo
33 * SW3548-2814: Improvements to VDC ulBlackMagic
34 *
35 * Hydra_Software_Devel/1   11/24/09 3:27p yuxiaz
36 * SW7420-462: Added new tuning functions for Tuning Database.
37 *
38 ***************************************************************************/
39#include "bvdc_tune_priv.h"
40#include "bvdc_window_priv.h"
41#include "bvdc_source_priv.h"
42#include "bvdc_tnt.h"
43
44BDBG_MODULE(BVDC_TUNE);
45
46/***************************************************************************
47 *
48 */
49BERR_Code BVDC_Window_SetTuneParam
50        ( BVDC_Window_Handle               hWindow,
51          const uint32_t                   aFields[],
52          const uint32_t                   aValues[],
53          int                              num )
54{
55        int          i;
56        uint32_t     ulInterface, ulStructure, ulRegField;
57        BVDC_SharpnessSettings       *pNewSettings;
58        BVDC_SharpnessSettings       *pCurSettings;
59
60        BDBG_ENTER(BVDC_Window_SetTuneParam);
61        BDBG_OBJECT_ASSERT(hWindow, BVDC_WIN);
62        pCurSettings = &hWindow->stCurInfo.stSharpnessConfig;
63        pNewSettings = &hWindow->stNewInfo.stSharpnessConfig;
64
65        /* Only support main display's main window */
66        if(hWindow->eId != BVDC_P_WindowId_eComp0_V0)
67        {
68                return BERR_TRACE(BVDC_ERR_TNT_WINDOW_NOT_SUPPORTED);
69        }
70
71        /* Check field parameter */
72        for(i = 0; i < num; i++)
73        {
74                ulInterface = BVDC_P_TUNE_GET_INTERFACE(aFields[i]);
75                ulStructure = BVDC_P_TUNE_GET_STRUCTURE(aFields[i]);
76                ulRegField  = BVDC_P_TUNE_GET_FIELD(aFields[i]);
77
78                /* Check interface */
79                if(!BVDC_P_TUNE_INTERFACE_IS_WINDOW(ulInterface))
80                {
81                        BDBG_ERR(("Tune[%d] Interface is not window: %d",
82                                i, ulInterface));
83                        return BERR_TRACE(BVDC_ERR_INVALID_TUNE_INTERFACE);
84                }
85
86                /* Check structure */
87                if(!BVDC_P_TUNE_VALID_STRUCTURE(ulStructure))
88                {
89                        BDBG_ERR(("Invalid Tune[%d] Structure: %d",
90                                i, ulStructure));
91                        return BERR_TRACE(BVDC_ERR_INVALID_TUNE_STRUCTURE);
92                }
93
94                /* Check field */
95                if(ulRegField > s_aWinFieldCountTbl[ulStructure])
96                {
97                        BDBG_ERR(("Invalidate Tune[%d] field %d", i, ulRegField));
98                        return BERR_TRACE(BVDC_ERR_INVALID_TUNE_FIELD);
99                }
100        }
101
102
103        for(i = 0; i < num; i++)
104        {
105                ulStructure = BVDC_P_TUNE_GET_STRUCTURE(aFields[i]);
106                BDBG_ASSERT(BVDC_P_TUNE_VALID_STRUCTURE(ulStructure));
107
108                if(ulStructure == BVDC_TUNE_STRUCTURE_SHARPNESS_SETTINGS)
109                {
110                        /* BVDC_SharpnessSettings */
111                        BVDC_P_Tune_Sharpness_Settings_SetData(pNewSettings,
112                                aFields[i], aValues[i]);
113
114                        /* Set dirty bits */
115                        hWindow->stNewInfo.sSharpness = 0;
116                        hWindow->stNewInfo.bUserSharpnessConfig = true;
117                        hWindow->stNewInfo.stDirty.stBits.bTntAdjust = BVDC_P_DIRTY;
118                }
119        }
120
121        BDBG_LEAVE(BVDC_Window_SetTuneParam);
122        return BERR_SUCCESS;
123
124}
125
126/***************************************************************************
127 *
128 */
129BERR_Code BVDC_Window_GetTuneParam
130        ( const BVDC_Window_Handle         hWindow,
131          const uint32_t                   aFields[],
132          uint32_t                         aValues[],
133          int                              num )
134{
135        int          i;
136        uint32_t     ulInterface, ulStructure, ulRegField;
137        const BVDC_SharpnessSettings      *pCurSettings;
138
139        BDBG_ENTER(BVDC_Window_GetTuneParam);
140        BDBG_OBJECT_ASSERT(hWindow, BVDC_WIN);
141        pCurSettings = &hWindow->stCurInfo.stSharpnessConfig;
142
143        /* Check field parameter */
144        for(i = 0; i < num; i++)
145        {
146                ulInterface = BVDC_P_TUNE_GET_INTERFACE(aFields[i]);
147                ulStructure = BVDC_P_TUNE_GET_STRUCTURE(aFields[i]);
148                ulRegField  = BVDC_P_TUNE_GET_FIELD(aFields[i]);
149
150                /* Check interface */
151                if(!BVDC_P_TUNE_INTERFACE_IS_WINDOW(ulInterface))
152                {
153                        BDBG_ERR(("Tune[%d] Interface is not window: %d",
154                                i, ulInterface));
155                        return BERR_TRACE(BVDC_ERR_INVALID_TUNE_INTERFACE);
156                }
157
158                /* Check structure */
159                if(!BVDC_P_TUNE_VALID_STRUCTURE(ulStructure))
160                {
161                        BDBG_ERR(("Invalid Tune[%d] Structure: %d",
162                                i, ulStructure));
163                        return BERR_TRACE(BVDC_ERR_INVALID_TUNE_STRUCTURE);
164                }
165
166                /* Check field */
167                if(ulRegField > s_aWinFieldCountTbl[ulStructure])
168                {
169                        BDBG_ERR(("Invalidate Tune[%d] field %d", i, ulRegField));
170                        return BERR_TRACE(BVDC_ERR_INVALID_TUNE_FIELD);
171                }
172        }
173
174        for(i = 0; i < num; i++)
175        {
176                ulStructure = BVDC_P_TUNE_GET_STRUCTURE(aFields[i]);
177
178                BDBG_ASSERT(BVDC_P_TUNE_VALID_STRUCTURE(ulStructure));
179
180                /* Check structure */
181                if(ulStructure == BVDC_TUNE_STRUCTURE_SHARPNESS_SETTINGS)
182                {
183                        /* BVDC_SharpnessSettings */
184                        BVDC_P_Tune_Sharpness_Settings_GetData(pCurSettings,
185                                aFields[i], &aValues[i]);
186                }
187        }
188
189        BDBG_LEAVE(BVDC_Window_GetTuneParam);
190        return BERR_SUCCESS;
191
192}
193
194
195/***************************************************************************
196 *
197 */
198BERR_Code BVDC_Window_ResetTuneParam
199        ( BVDC_Window_Handle         hWindow )
200{
201        BDBG_ENTER(BVDC_Window_ResetTuneParam);
202        BDBG_OBJECT_ASSERT(hWindow, BVDC_WIN);
203
204        /* Only support main display's main window */
205        if(hWindow->eId != BVDC_P_WindowId_eComp0_V0)
206        {
207                return BERR_TRACE(BVDC_ERR_TNT_WINDOW_NOT_SUPPORTED);
208        }
209
210        /* Reset sharpness settings */
211        BVDC_P_Window_Sharpness_Init(hWindow, &hWindow->stNewInfo.stSharpnessConfig);
212
213        /* Set dirty bits */
214        hWindow->stNewInfo.sSharpness = 0;
215        hWindow->stNewInfo.bUserSharpnessConfig = false;
216        hWindow->stNewInfo.stDirty.stBits.bTntAdjust = BVDC_P_DIRTY;
217
218        BDBG_LEAVE(BVDC_Window_ResetTuneParam);
219        return BERR_SUCCESS;
220}
221
222
223/* End of File */
224
225
Note: See TracBrowser for help on using the repository browser.