1 //<MStar Software>
2 //******************************************************************************
3 // MStar Software
4 // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5 // All software, firmware and related documentation herein ("MStar Software") are
6 // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7 // law, including, but not limited to, copyright law and international treaties.
8 // Any use, modification, reproduction, retransmission, or republication of all
9 // or part of MStar Software is expressly prohibited, unless prior written
10 // permission has been granted by MStar.
11 //
12 // By accessing, browsing and/or using MStar Software, you acknowledge that you
13 // have read, understood, and agree, to be bound by below terms ("Terms") and to
14 // comply with all applicable laws and regulations:
15 //
16 // 1. MStar shall retain any and all right, ownership and interest to MStar
17 // Software and any modification/derivatives thereof.
18 // No right, ownership, or interest to MStar Software and any
19 // modification/derivatives thereof is transferred to you under Terms.
20 //
21 // 2. You understand that MStar Software might include, incorporate or be
22 // supplied together with third party`s software and the use of MStar
23 // Software may require additional licenses from third parties.
24 // Therefore, you hereby agree it is your sole responsibility to separately
25 // obtain any and all third party right and license necessary for your use of
26 // such third party`s software.
27 //
28 // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29 // MStar`s confidential information and you agree to keep MStar`s
30 // confidential information in strictest confidence and not disclose to any
31 // third party.
32 //
33 // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34 // kind. Any warranties are hereby expressly disclaimed by MStar, including
35 // without limitation, any warranties of merchantability, non-infringement of
36 // intellectual property rights, fitness for a particular purpose, error free
37 // and in conformity with any international standard. You agree to waive any
38 // claim against MStar for any loss, damage, cost or expense that you may
39 // incur related to your use of MStar Software.
40 // In no event shall MStar be liable for any direct, indirect, incidental or
41 // consequential damages, including without limitation, lost of profit or
42 // revenues, lost or damage of data, and unauthorized system use.
43 // You agree that this Section 4 shall still apply without being affected
44 // even if MStar Software has been modified by MStar in accordance with your
45 // request or instruction for your use, except otherwise agreed by both
46 // parties in writing.
47 //
48 // 5. If requested, MStar may from time to time provide technical supports or
49 // services in relation with MStar Software to you for your use of
50 // MStar Software in conjunction with your or your customer`s product
51 // ("Services").
52 // You understand and agree that, except otherwise agreed by both parties in
53 // writing, Services are provided on an "AS IS" basis and the warranty
54 // disclaimer set forth in Section 4 above shall apply.
55 //
56 // 6. Nothing contained herein shall be construed as by implication, estoppels
57 // or otherwise:
58 // (a) conferring any license or right to use MStar name, trademark, service
59 // mark, symbol or any other identification;
60 // (b) obligating MStar or any of its affiliates to furnish any person,
61 // including without limitation, you and your customers, any assistance
62 // of any kind whatsoever, or any information; or
63 // (c) conferring any license or right under any intellectual property right.
64 //
65 // 7. These terms shall be governed by and construed in accordance with the laws
66 // of Taiwan, R.O.C., excluding its conflict of law rules.
67 // Any and all dispute arising out hereof or related hereto shall be finally
68 // settled by arbitration referred to the Chinese Arbitration Association,
69 // Taipei in accordance with the ROC Arbitration Law and the Arbitration
70 // Rules of the Association by three (3) arbitrators appointed in accordance
71 // with the said Rules.
72 // The place of arbitration shall be in Taipei, Taiwan and the language shall
73 // be English.
74 // The arbitration award shall be final and binding to both parties.
75 //
76 //******************************************************************************
77 //<MStar Software>
78 ////////////////////////////////////////////////////////////////////////////////
79 //
80 // Copyright (c) 2008-2009 MStar Semiconductor, Inc.
81 // All rights reserved.
82 //
83 // Unless otherwise stipulated in writing, any and all information contained
84 // herein regardless in any format shall remain the sole proprietary of
85 // MStar Semiconductor Inc. and be kept in strict confidence
86 // ("MStar Confidential Information") by the recipient.
87 // Any unauthorized act including without limitation unauthorized disclosure,
88 // copying, use, reproduction, sale, distribution, modification, disassembling,
89 // reverse engineering and compiling of the contents of MStar Confidential
90 // Information is unlawful and strictly prohibited. MStar hereby reserves the
91 // rights to any and all damages, losses, costs and expenses resulting therefrom.
92 //
93 ////////////////////////////////////////////////////////////////////////////////
94
95 ///////////////////////////////////////////////////////////////////////////////////////////////////
96 /// file Mvideo_context.c
97 /// @brief TEMP Driver Interface
98 /// @author MStar Semiconductor Inc.
99 ///////////////////////////////////////////////////////////////////////////////////////////////////
100 #define MVIDEO_CONTEXT_C
101 //-------------------------------------------------------------------------------------------------
102 // Include Files
103 //-------------------------------------------------------------------------------------------------
104 // Common Definition
105 #include "MsCommon.h"
106 #include "MsOS.h"
107 #include "mhal_xc_chip_config.h"
108 #include "utopia.h"
109 #include "utopia_dapi.h"
110
111 // Internal Definition
112 #ifdef MSOS_TYPE_LINUX_KERNEL
113 #include <linux/string.h>
114 #else
115 #include <string.h>
116 #endif
117
118 #ifndef MSOS_TYPE_NOS
119 #define _GNU_SOURCE // need this _GNU_SOURCE because we need to check tid by "syscall"
120 //#include <unistd.h>
121 //#include <sys/syscall.h> // remove for ecos project
122 //#include <sys/types.h>
123 #endif
124
125 #include "drvXC_IOPort.h"
126 #include "apiXC.h"
127 #include "apiXC_Adc.h"
128 #include "apiXC_Auto.h"
129 #include "drv_sc_display.h"
130 #include "drv_sc_isr.h"
131 #include "apiXC_PCMonitor.h"
132 #include "apiXC_ModeParse.h"
133 #include "drvXC_HDMI_if.h"
134 #include "mvideo_context.h"
135 #include "drv_sc_ip.h"
136 #if (LD_ENABLE==1)
137 #include "mdrv_ld.h"
138 #include "mdrv_ldalgo.h"
139 #endif
140 #include "mdrv_sc_3d.h"
141 #include "drv_sc_menuload.h"
142 #include "drvXC_ADC_Internal.h"
143 #include "mhal_sc.h"
144 #if FRC_INSIDE
145 #include "mdrv_frc.h"
146 #include "mhal_frc.h"
147 #endif
148 #include "XC_private.h"
149 #include "apiXC_v2.h"
150 #include "apiXC_DWIN.h"
151 #include "drv_sc_scaling.h"
152 #include "drv_sc_DIP_scaling.h"
153 #include "xc_hwreg_utility2.h"
154 #include "xc_Analog_Reg.h"
155 #include "mhal_hdmi.h"
156 #include "mhal_ip.h"
157 #include "mhal_dip.h"
158 #include "drvXC_HDMI_Internal.h"
159 #include "mhal_dynamicscaling.h"
160 #include "drvMVOP.h"
161 //-------------------------------------------------------------------------------------------------
162 // Driver Compiler Options
163 //-------------------------------------------------------------------------------------------------
164 #define MSXC_WR_DBG(x) //x
165 #define SC_3D_DBG(x) //x
166 #define SeamlessZapping_DBG 0
167
168 //-------------------------------------------------------------------------------------------------
169 // Local Defines
170 //-------------------------------------------------------------------------------------------------
171
172
173 //-------------------------------------------------------------------------------------------------
174 // Local Structurs
175 //-------------------------------------------------------------------------------------------------
176
177
178 //-------------------------------------------------------------------------------------------------
179 // Global Variables
180 //-------------------------------------------------------------------------------------------------
181
182
183 //-------------------------------------------------------------------------------------------------
184 // Local Variables
185 //-------------------------------------------------------------------------------------------------
186 MS_U8 SC_VBuf[32] = {
187 'M','S','V','C','0','0', //0,0 fixed
188 'S','3', //LIB ID
189 '0','0', //Interface
190 '0','0','0','0', //Build number
191 '0','0','0','0','0','0','0','0', // Change List
192 'A','E','0','0','0','0','0','0','0', // AE:Saturn4LE 0: MStar Trunk
193 'T' // check sum
194 };
195
196 //-------------------------------------------------------------------------------------------------
197 // Debug Functions
198 //-------------------------------------------------------------------------------------------------
199
200
201 //-------------------------------------------------------------------------------------------------
202 // Local Functions
203 //-------------------------------------------------------------------------------------------------
204
205 //-------------------------------------------------------------------------------------------------
206 // Global Functions
207 //-------------------------------------------------------------------------------------------------
208 MS_U16 MDrv_SC_Cal_FRC_Output_Vfreq(void *pInsatnce, MS_U16 u16InputVFreq,
209 MS_U16 u16DefaultVFreq,
210 MS_BOOL bFBL,
211 MS_U8 *u8FrcIn,
212 MS_U8 *u8FrcOut,
213 MS_BOOL *bSetFrameLock,
214 MS_U8 u8Lpll_bank,
215 SCALER_WIN eWin);
216
217
218 extern PQ_Function_Info s_PQ_Function_Info[MAX_XC_DEVICE_NUM];
219 void MApi_PNL_CalExtLPLLSETbyDClk(MS_U32 ldHz);
220 void MApi_PNL_SetExt_LPLL_Type(MS_U16 u16Ext_lpll_type);
221 MS_BOOL MApi_PNL_GetOSDHWTraining_Status(void *pInstance);
222 //==============================================================================
223 //==============================================================================
MDrv_XC_SetDeviceOffset(void * pInstance)224 void MDrv_XC_SetDeviceOffset(void *pInstance)
225 {
226 MS_U8 i;
227 MS_U32 u32Offset;
228 _XC_ENTRY(pInstance);
229
230 for(i = 0; i < MAX_XC_DEVICE_NUM; i++)
231 {
232 u32Offset = Hal_SC_Get_Device_Offset(i);
233 _XC_Device_Offset[i] = u32Offset;
234 }
235
236 _XC_RETURN(pInstance);
237 }
238
mvideo_sc_variable_init(void * pInstance,MS_BOOL bFirstInstance,XC_INITDATA * pXC_InitData)239 void mvideo_sc_variable_init(void *pInstance, MS_BOOL bFirstInstance, XC_INITDATA *pXC_InitData)
240 {
241 MS_U8 i, j;
242 XC_PANEL_INFO_EX stPanelInfoEx;
243 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
244 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
245 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
246 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
247 // context
248 #ifndef MSOS_TYPE_OPTEE
249 #ifndef DONT_USE_CMA
250 #if (XC_SUPPORT_CMA ==TRUE)
251 MS_BOOL ret= FALSE;
252 if(pXCResourcePrivate->stdrvXC_MVideo._bSkipSWReset == FALSE)
253 {
254 if (
255 #if (HW_DESIGN_4K2K_VER == 7)
256 (psXCInstPri->u32DeviceID == 0) &&
257 #endif
258 pXCResourcePrivate->stdrvXC_MVideo._enPrevPowerState != E_POWER_SUSPEND)
259 {
260 #ifdef UFO_XC_SUPPORT_SUB_CMA
261 #ifndef UFO_SET_XC_CMA_INFORMATION
262 if(psXCInstPri->u32DeviceID==0)
263 {
264 #ifndef UFO_SET_XC_CMA_INFORMATION
265 #if (HW_DESIGN_4K2K_VER == 6)
266 gSrcInfo[MAIN_WINDOW].Status2.stXCConfigCMA[CMA_XC_SELF_MEM].u32HeapID = ION_XC_HEAP_ID;
267 #if defined(CHIP_MONET)
268 gSrcInfo[MAIN_WINDOW].Status2.stXCConfigCMA[CMA_XC_COBUFF_MEM].u32HeapID = XC_DUAL_MIU_HID;
269 #else
270 gSrcInfo[MAIN_WINDOW].Status2.stXCConfigCMA[CMA_XC_COBUFF_MEM].u32HeapID = XC_INVALID_HEAP_ID;
271 #endif
272 gSrcInfo[MAIN_WINDOW].Status2.stXCConfigCMA[CMA_XC_SELF_MEM].u64AddrHeapOffset = 0;
273 gSrcInfo[MAIN_WINDOW].Status2.stXCConfigCMA[CMA_XC_COBUFF_MEM].u64AddrHeapOffset = 0;
274 #endif
275 #endif
276 }
277 else
278 {
279 #ifndef UFO_SET_XC_CMA_INFORMATION
280 #if (HW_DESIGN_4K2K_VER == 6)
281 gSrcInfo[MAIN_WINDOW].Status2.stXCConfigCMA[CMA_XC_SELF_MEM].u32HeapID = 20;//temp use vdec heap id
282 gSrcInfo[MAIN_WINDOW].Status2.stXCConfigCMA[CMA_XC_COBUFF_MEM].u32HeapID = XC_INVALID_HEAP_ID;
283 gSrcInfo[MAIN_WINDOW].Status2.stXCConfigCMA[CMA_XC_SELF_MEM].u64AddrHeapOffset = 0;
284 gSrcInfo[MAIN_WINDOW].Status2.stXCConfigCMA[CMA_XC_COBUFF_MEM].u64AddrHeapOffset = 0;
285 #endif
286 #endif
287 }
288 #endif
289
290
291 #if PIP_PATCH_USING_SC1_MAIN_AS_SC0_SUB
292 SCALER_WIN eCma_Win = MAX_WINDOW;
293 if(psXCInstPri->u32DeviceID==0)
294 {
295 eCma_Win = MAIN_WINDOW;
296 }
297 else
298 {
299 eCma_Win = SUB_WINDOW;
300 }
301 #else
302 eCma_Win = MAIN_WINDOW;
303 #endif
304 /* 1. do CMA_POOL_INIT */
305 CMA_Pool_Init_PARAM[eCma_Win][CMA_XC_SELF_MEM].heap_id = gSrcInfo[MAIN_WINDOW].Status2.stXCConfigCMA[CMA_XC_SELF_MEM].u32HeapID;
306 CMA_Pool_Init_PARAM[eCma_Win][CMA_XC_SELF_MEM].flags = CMA_FLAG_MAP_VMA;
307 MsOS_DelayTaskUs(1);
308 XC_LOG_TRACE(XC_DBGLEVEL_SETWINDOW,"[%s,%5d][CMA], CMA self heapid = %d!\n",__func__, __LINE__,CMA_Pool_Init_PARAM[eCma_Win][CMA_XC_SELF_MEM].heap_id);
309 if (CMA_Pool_Init_PARAM[eCma_Win][CMA_XC_SELF_MEM].heap_id != XC_INVALID_HEAP_ID)
310 {
311 ret = MApi_CMA_Pool_Init(&CMA_Pool_Init_PARAM[eCma_Win][CMA_XC_SELF_MEM]);
312
313 if(ret == FALSE)
314 {
315 printf("\033[35m Function = %s, Line = %d, CMA_POOL_INIT ERROR!!\033[m\n", __PRETTY_FUNCTION__, __LINE__);
316 MS_ASSERT(0);
317 }
318 else
319 {
320 //printf("\033[35m Function = %s, Line = %d, get pool_handle_id is %u\033[m\n", __PRETTY_FUNCTION__, __LINE__, CMA_Pool_Init_PARAM[eCma_Win][CMA_XC_SELF_MEM].pool_handle_id);
321 //printf("\033[35m Function = %s, Line = %d, get miu is %u\033[m\n", __PRETTY_FUNCTION__,__LINE__, CMA_Pool_Init_PARAM[eCma_Win][CMA_XC_SELF_MEM].miu);
322 //printf("\033[35m Function = %s, Line = %d, get heap_miu_start_offset is 0x%lx\033[m\n", __PRETTY_FUNCTION__, __LINE__, (MS_U32)CMA_Pool_Init_PARAM[eCma_Win][CMA_XC_SELF_MEM].heap_miu_start_offset);
323 //printf("\033[35m Function = %s, Line = %d, get heap_length is 0x%X\033[m\n", __PRETTY_FUNCTION__, __LINE__, CMA_Pool_Init_PARAM[eCma_Win][CMA_XC_SELF_MEM].heap_length);
324 }
325 }
326
327 if (gSrcInfo[MAIN_WINDOW].Status2.stXCConfigCMA[CMA_XC_COBUFF_MEM].u32HeapID != XC_INVALID_HEAP_ID)
328 {
329 /* 1. do CMA_POOL_INIT */
330 CMA_Pool_Init_PARAM[CMA_XC_COBUFF_MEM][eCma_Win].heap_id = gSrcInfo[MAIN_WINDOW].Status2.stXCConfigCMA[CMA_XC_COBUFF_MEM].u32HeapID;
331 CMA_Pool_Init_PARAM[CMA_XC_COBUFF_MEM][eCma_Win].flags = CMA_FLAG_MAP_VMA;
332 MsOS_DelayTaskUs(1);
333 XC_LOG_TRACE(XC_DBGLEVEL_SETWINDOW,"[%s,%5d][CMA], CMA cobuff heapid = %d!\n",__func__, __LINE__,CMA_Pool_Init_PARAM[eCma_Win][CMA_XC_COBUFF_MEM].heap_id);
334 if (CMA_Pool_Init_PARAM[eCma_Win][CMA_XC_COBUFF_MEM].heap_id != XC_INVALID_HEAP_ID)
335 {
336 ret = MApi_CMA_Pool_Init(&CMA_Pool_Init_PARAM[eCma_Win][CMA_XC_COBUFF_MEM]);
337
338 if(ret == FALSE)
339 {
340 printf("\033[35m Function = %s, Line = %d, CMA_POOL_INIT ERROR!!\033[m\n", __PRETTY_FUNCTION__, __LINE__);
341 MS_ASSERT(0);
342 }
343 else
344 {
345 //printf("\033[35m Function = %s, Line = %d, get pool_handle_id is %u\033[m\n", __PRETTY_FUNCTION__, __LINE__, CMA_Pool_Init_PARAM[CMA_XC_SELF_MEM][eCma_Win].pool_handle_id);
346 //printf("\033[35m Function = %s, Line = %d, get miu is %u\033[m\n", __PRETTY_FUNCTION__,__LINE__, CMA_Pool_Init_PARAM[eCma_Win][CMA_XC_SELF_MEM].miu);
347 //printf("\033[35m Function = %s, Line = %d, get heap_miu_start_offset is 0x%lx\033[m\n", __PRETTY_FUNCTION__, __LINE__, (MS_U32)CMA_Pool_Init_PARAM[CMA_XC_SELF_MEM][eCma_Win].heap_miu_start_offset);
348 //printf("\033[35m Function = %s, Line = %d, get heap_length is 0x%X\033[m\n", __PRETTY_FUNCTION__, __LINE__, CMA_Pool_Init_PARAM[eCma_Win][CMA_XC_SELF_MEM].heap_length);
349 }
350 }
351 }
352 #else
353 #ifndef UFO_SET_XC_CMA_INFORMATION
354 #if (HW_DESIGN_4K2K_VER == 6)
355 gSrcInfo[MAIN_WINDOW].Status2.stXCConfigCMA[CMA_XC_SELF_MEM].u32HeapID = ION_XC_HEAP_ID;
356 #if defined(CHIP_MONET)
357 gSrcInfo[MAIN_WINDOW].Status2.stXCConfigCMA[CMA_XC_COBUFF_MEM].u32HeapID = XC_DUAL_MIU_HID;
358 #else
359 gSrcInfo[MAIN_WINDOW].Status2.stXCConfigCMA[CMA_XC_COBUFF_MEM].u32HeapID = XC_INVALID_HEAP_ID;
360 #endif
361 gSrcInfo[MAIN_WINDOW].Status2.stXCConfigCMA[CMA_XC_SELF_MEM].u64AddrHeapOffset = 0;
362 gSrcInfo[MAIN_WINDOW].Status2.stXCConfigCMA[CMA_XC_COBUFF_MEM].u64AddrHeapOffset = 0;
363 #endif
364 #endif
365 /* 1. do CMA_POOL_INIT */
366 CMA_Pool_Init_PARAM[CMA_XC_SELF_MEM].heap_id = gSrcInfo[MAIN_WINDOW].Status2.stXCConfigCMA[CMA_XC_SELF_MEM].u32HeapID;
367 CMA_Pool_Init_PARAM[CMA_XC_SELF_MEM].flags = CMA_FLAG_MAP_VMA;
368 MsOS_DelayTaskUs(1);
369 XC_LOG_TRACE(XC_DBGLEVEL_SETWINDOW,"[%s,%5d][CMA], CMA self heapid = %d!\n",__func__, __LINE__,CMA_Pool_Init_PARAM[CMA_XC_SELF_MEM].heap_id);
370 if (CMA_Pool_Init_PARAM[CMA_XC_SELF_MEM].heap_id != XC_INVALID_HEAP_ID)
371 {
372 ret = MApi_CMA_Pool_Init(&CMA_Pool_Init_PARAM[CMA_XC_SELF_MEM]);
373
374 if(ret == FALSE)
375 {
376 printf("\033[35m Function = %s, Line = %d, CMA_POOL_INIT ERROR!!\033[m\n", __PRETTY_FUNCTION__, __LINE__);
377 MS_ASSERT(0);
378 }
379 else
380 {
381 //printf("\033[35m Function = %s, Line = %d, get pool_handle_id is %u\033[m\n", __PRETTY_FUNCTION__, __LINE__, CMA_Pool_Init_PARAM[CMA_XC_SELF_MEM].pool_handle_id);
382 //printf("\033[35m Function = %s, Line = %d, get miu is %u\033[m\n", __PRETTY_FUNCTION__,__LINE__, CMA_Pool_Init_PARAM[CMA_XC_SELF_MEM].miu);
383 //printf("\033[35m Function = %s, Line = %d, get heap_miu_start_offset is 0x%lx\033[m\n", __PRETTY_FUNCTION__, __LINE__, (MS_U32)CMA_Pool_Init_PARAM[CMA_XC_SELF_MEM].heap_miu_start_offset);
384 //printf("\033[35m Function = %s, Line = %d, get heap_length is 0x%X\033[m\n", __PRETTY_FUNCTION__, __LINE__, CMA_Pool_Init_PARAM[CMA_XC_SELF_MEM].heap_length);
385 }
386 }
387
388 if (gSrcInfo[MAIN_WINDOW].Status2.stXCConfigCMA[CMA_XC_COBUFF_MEM].u32HeapID != XC_INVALID_HEAP_ID)
389 {
390 /* 1. do CMA_POOL_INIT */
391 CMA_Pool_Init_PARAM[CMA_XC_COBUFF_MEM].heap_id = gSrcInfo[MAIN_WINDOW].Status2.stXCConfigCMA[CMA_XC_COBUFF_MEM].u32HeapID;
392 CMA_Pool_Init_PARAM[CMA_XC_COBUFF_MEM].flags = CMA_FLAG_MAP_VMA;
393 MsOS_DelayTaskUs(1);
394 XC_LOG_TRACE(XC_DBGLEVEL_SETWINDOW,"[%s,%5d][CMA], CMA cobuff heapid = %d!\n",__func__, __LINE__,CMA_Pool_Init_PARAM[CMA_XC_COBUFF_MEM].heap_id);
395 if (CMA_Pool_Init_PARAM[CMA_XC_COBUFF_MEM].heap_id != XC_INVALID_HEAP_ID)
396 {
397 ret = MApi_CMA_Pool_Init(&CMA_Pool_Init_PARAM[CMA_XC_COBUFF_MEM]);
398
399 if(ret == FALSE)
400 {
401 printf("\033[35m Function = %s, Line = %d, CMA_POOL_INIT ERROR!!\033[m\n", __PRETTY_FUNCTION__, __LINE__);
402 MS_ASSERT(0);
403 }
404 else
405 {
406 //printf("\033[35m Function = %s, Line = %d, get pool_handle_id is %u\033[m\n", __PRETTY_FUNCTION__, __LINE__, CMA_Pool_Init_PARAM[CMA_XC_SELF_MEM].pool_handle_id);
407 //printf("\033[35m Function = %s, Line = %d, get miu is %u\033[m\n", __PRETTY_FUNCTION__,__LINE__, CMA_Pool_Init_PARAM[CMA_XC_SELF_MEM].miu);
408 //printf("\033[35m Function = %s, Line = %d, get heap_miu_start_offset is 0x%lx\033[m\n", __PRETTY_FUNCTION__, __LINE__, (MS_U32)CMA_Pool_Init_PARAM[CMA_XC_SELF_MEM].heap_miu_start_offset);
409 //printf("\033[35m Function = %s, Line = %d, get heap_length is 0x%X\033[m\n", __PRETTY_FUNCTION__, __LINE__, CMA_Pool_Init_PARAM[CMA_XC_SELF_MEM].heap_length);
410 }
411 }
412 }
413 #endif
414 }
415 }
416 #endif
417 #endif
418 #endif
419
420 #if(XC_CONTEXT_ENABLE)
421 pXCResourcePrivate->stdrvXC_MVideo._SContext.bEnableFPLLManualDebug = FALSE;
422 if (bFirstInstance)
423 {
424 gSrcInfo[MAIN_WINDOW].stDispWin.x = 0;
425 gSrcInfo[MAIN_WINDOW].stDispWin.y = 0;
426 gSrcInfo[MAIN_WINDOW].stDispWin.width = 0;
427 gSrcInfo[MAIN_WINDOW].stDispWin.height = 0;
428
429 gSrcInfo[MAIN_WINDOW].bEn3DNR = FALSE;
430 gSrcInfo[MAIN_WINDOW].bUseYUVSpace = FALSE;
431 gSrcInfo[MAIN_WINDOW].bMemYUVFmt = FALSE;
432 gSrcInfo[MAIN_WINDOW].bForceNRoff = FALSE;
433 gSrcInfo[MAIN_WINDOW].bFBL = FALSE;
434 gSrcInfo[MAIN_WINDOW].bR_FBL = FALSE;
435 gSrcInfo[MAIN_WINDOW].bForceRGBin = FALSE;
436 gSrcInfo[MAIN_WINDOW].bFastFrameLock = FALSE;//mvideo_sc_set_fastframelock(FALSE);
437 gSrcInfo[MAIN_WINDOW].bRWBankAuto= TRUE;
438
439 gSrcInfo[MAIN_WINDOW].u16BytePerWord = BYTE_PER_WORD;
440 gSrcInfo[MAIN_WINDOW].u16OffsetPixelAlignment = OFFSET_PIXEL_ALIGNMENT;
441 gSrcInfo[MAIN_WINDOW].Status2.bAutoBestPreScaling = FALSE;
442 gSrcInfo[MAIN_WINDOW].bInterlace = FALSE;
443 gSrcInfo[MAIN_WINDOW].Status2.u8IP_PixelRep = INVALID_IP_PIXELREPTITION;
444 gSrcInfo[MAIN_WINDOW].Status2.bMVOPHSKMode = FALSE;
445 #ifdef UFO_XC_SET_DSINFO_V0
446 gSrcInfo[MAIN_WINDOW].Status2.bUpdate_DS_CMD = FALSE;
447 gSrcInfo[MAIN_WINDOW].Status2.bEnableDNR = FALSE;
448 #endif
449 #ifdef UFO_XC_FB_LEVEL
450 gSrcInfo[MAIN_WINDOW].eFBLevel = E_XC_FB_LEVEL_FB;
451 #endif
452
453
454 gSrcInfo[SUB_WINDOW].stDispWin.x = 0;
455 gSrcInfo[SUB_WINDOW].stDispWin.y = 0;
456 gSrcInfo[SUB_WINDOW].stDispWin.width = 0;
457 gSrcInfo[SUB_WINDOW].stDispWin.height = 0;
458
459 gSrcInfo[SUB_WINDOW].bEn3DNR = FALSE;
460 gSrcInfo[SUB_WINDOW].bUseYUVSpace = FALSE;
461 gSrcInfo[SUB_WINDOW].bForceNRoff = FALSE;
462 gSrcInfo[SUB_WINDOW].bMemYUVFmt = FALSE;
463 gSrcInfo[SUB_WINDOW].bFBL = FALSE;
464 gSrcInfo[SUB_WINDOW].bForceRGBin = FALSE;
465 gSrcInfo[SUB_WINDOW].bFastFrameLock = FALSE;
466 gSrcInfo[SUB_WINDOW].bRWBankAuto= TRUE;
467
468 gSrcInfo[SUB_WINDOW].u16BytePerWord = BYTE_PER_WORD;
469 gSrcInfo[SUB_WINDOW].u16OffsetPixelAlignment = OFFSET_PIXEL_ALIGNMENT;
470 gSrcInfo[SUB_WINDOW].Status2.bAutoBestPreScaling = FALSE;
471 gSrcInfo[SUB_WINDOW].bInterlace = FALSE;
472 #ifdef UFO_XC_FB_LEVEL
473 gSrcInfo[SUB_WINDOW].eFBLevel = E_XC_FB_LEVEL_FB;
474 #endif
475
476 memset(&stPanelInfoEx, 0, sizeof(XC_PANEL_INFO_EX));
477 stPanelInfoEx.u16VFreq = PANEL_INFO_EX_INVALID_ALL;
478 stPanelInfoEx.u32PanelInfoEx_Version = PANEL_INFO_EX_VERSION;
479 stPanelInfoEx.u16PanelInfoEX_Length = sizeof(XC_PANEL_INFO_EX);
480 MDrv_XC_SetExPanelInfo(pInstance, FALSE, &stPanelInfoEx);
481 gSrcInfo[SUB_WINDOW].Status2.u8IP_PixelRep = INVALID_IP_PIXELREPTITION;
482 gSrcInfo[SUB_WINDOW].Status2.bMVOPHSKMode = FALSE;
483 #ifdef UFO_XC_SET_DSINFO_V0
484 gSrcInfo[SUB_WINDOW].Status2.bUpdate_DS_CMD = FALSE;
485 gSrcInfo[SUB_WINDOW].Status2.bEnableDNR = FALSE;
486 #endif
487
488 pXCResourcePrivate->stdrvXC_MVideo.bNeedInitShared = FALSE;
489 for(i = 0; i < E_XC_MCDI_MAX; i++)
490 {
491 pXCResourcePrivate->stdrvXC_MVideo_Context.g_u32MCDIFBAddress_Suspend[i] = 0xFFFFFFFF;
492 pXCResourcePrivate->stdrvXC_MVideo_Context.g_u32MCDIFBSize_Suspend[i] = 0;
493 pXCResourcePrivate->stdrvXC_MVideo_Context.g_bEnableMCDI_Suspend[i] = FALSE;
494 pXCResourcePrivate->stdrvXC_Display._u32MCDIFBAddress[i] = 0xFFFFFFFF;
495 pXCResourcePrivate->stdrvXC_Display._u32MCDIFBSize[i]=0x0;
496 }
497 memset(&s_PQ_Function_Info[psXCInstPri->u32DeviceID],0,sizeof(s_PQ_Function_Info[psXCInstPri->u32DeviceID]));
498 //dc on should do menuload init
499 pXCResourcePrivate->stdrvXC_MVideo_Context.g_u32MLoadPhyAddr_Suspend = 0;
500 pXCResourcePrivate->stdrvXC_MVideo_Context.g_u32MLoadBufByteLen_Suspend = 0;
501 }
502 #endif
503
504 if(pXC_InitData != NULL)//only valid pointer can init the following variable
505 {
506 if(gSrcInfo[MAIN_WINDOW].Status2.u16OutputVFreqAfterFRC == 0)//only assign significant value for one time
507 {
508 gSrcInfo[MAIN_WINDOW].Status2.u16OutputVFreqAfterFRC = pXC_InitData->stPanelInfo.u16DefaultVFreq;
509 }
510
511 if(gSrcInfo[MAIN_WINDOW].Status2.u16OP1_OutputVFreqAfterFRC == 0)//only assign significant value for one time
512 {
513 gSrcInfo[MAIN_WINDOW].Status2.u16OP1_OutputVFreqAfterFRC = gSrcInfo[MAIN_WINDOW].Status2.u16OutputVFreqAfterFRC;
514 }
515
516 //save panel default timing
517 memcpy(&(gSrcInfo[MAIN_WINDOW].Status2.stXCPanelDefaultTiming), &(pXC_InitData->stPanelInfo), sizeof(XC_PANEL_TIMING));
518 // Here is the third place user can set mirror mode flag !!!
519 if (pXC_InitData->bMirror)
520 {
521 // So we need update variable here.
522 gSrcInfo[MAIN_WINDOW].Status2.eMirrorMode = MIRROR_HV;
523 gSrcInfo[SUB_WINDOW].Status2.eMirrorMode = MIRROR_HV;
524 }
525
526 pXCResourcePrivate->stdrvXC_MVideo.enOldInputSrc_ForScalerSetSource[MAIN_WINDOW] = INPUT_SOURCE_NONE;
527 pXCResourcePrivate->stdrvXC_MVideo.enOldInputSrc_ForScalerSetSource[SUB_WINDOW] = INPUT_SOURCE_NONE;
528
529 memset(&pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_Init_Misc, 0, sizeof(XC_INITMISC));
530
531 pXCResourcePrivate->stdrvXC_MVideo_Context.g_bEnableRepWindowForFrameColor = FALSE;
532 pXCResourcePrivate->stdrvXC_MVideo_Context.bMainIsOnTop = FALSE;
533
534 pXCResourcePrivate->stdrvXC_MVideo_Context.g_u32InitDataLen_Suspend = 0;
535 pXCResourcePrivate->stdrvXC_MVideo_Context.g_u32InitMiscDataLen_Suspend = 0;
536 pXCResourcePrivate->stdrvXC_MVideo_Context.g_u8DispWindowColor_Suspend[MAIN_WINDOW] = 0;
537 pXCResourcePrivate->stdrvXC_MVideo_Context.g_u8DispWindowColor_Suspend[SUB_WINDOW] = 0;
538 pXCResourcePrivate->stdrvXC_MVideo_Context.g_u32OSDCCtrltype_Suspend = 0;
539 pXCResourcePrivate->stdrvXC_MVideo_Context.g_u32FrameColor_Suspend = 0;
540
541 #ifndef DISABLE_3D_FUNCTION
542 MDrv_SC_3D_Variable_Init(pInstance);
543 #endif
544 // interrupts
545 for(i=0; i<MAX_SC_INT; i++)
546 {
547 for(j=0; j<MAX_ISR_NUM_OF_EACH_INT; j++)
548 {
549 pXCResourcePrivate->stdrvXC_ISR.stXCIsrInfo[i][j].aryXC_ISR_Param = NULL;
550 pXCResourcePrivate->stdrvXC_ISR.stXCIsrInfo[i][j].aryXC_ISR = NULL;
551 }
552 }
553 _XC_ENTRY(pInstance);
554 MDrv_XC_GetDefaultHVSyncInfo(pInstance);
555 // SW patch for Eisntein
556 #if (FRC_INSIDE)
557 MHal_FRC_interrupt_mask(pInstance, 0xFF);
558 #endif
559
560 // With HW Auto no signal case, sub video source change would causes OP1 broken, looks like main video broken
561 Hal_SC_ip_enable_turnoff_OP1_for_AutoNoSignal(pInstance, DISABLE);
562 //store initial command number
563 pXCResourcePrivate->sthal_SC.u16OldValue[E_STORE_VALUE_INIT_CMD_NUM] = SC_R2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK20_29_L, 0x1F1F);
564 _XC_RETURN(pInstance);
565 }
566 }
567
MDrv_XC_SetHdmiSyncMode(void * pInstance,E_HDMI_SYNC_TYPE eSynctype)568 void MDrv_XC_SetHdmiSyncMode(void *pInstance, E_HDMI_SYNC_TYPE eSynctype)
569 {
570 XC_LOG_TRACE(XC_DBGLEVEL_SETWINDOW,"set HDMI sync mode mode: %u (0 is DE mode, 1 is HV mode)\n",eSynctype);
571 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
572 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
573 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
574 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
575 pXCResourcePrivate->stdrvXC_MVideo_Context.s_HDMISYNC_type = eSynctype;
576 }
577
MApi_XC_SetHdmiSyncMode_U2(void * pInstance,E_HDMI_SYNC_TYPE eSynctype)578 void MApi_XC_SetHdmiSyncMode_U2(void* pInstance, E_HDMI_SYNC_TYPE eSynctype)
579 {
580 //Whether we should support special timing with HV sync mode. Some timing, like 720@30p must use HV mode
581 // to detect it. so this API is actually to enable or disable the capablity for these special timing.
582 // DE mode: not support special timing, HV mode: support special timing
583 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
584 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
585 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
586
587 _XC_SEMAPHORE_ENTRY(pInstance,E_XC_ID_VAR);
588 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
589 #if SUPPORT_IP_HDMI_FOR_HV_MODE
590 if(HDMI_SYNC_HV == eSynctype)
591 {
592 pXCResourcePrivate->stdrvXC_MVideo_Context._bSupportHVMode = TRUE;
593 }
594 else
595 #endif
596 {
597 pXCResourcePrivate->stdrvXC_MVideo_Context._bSupportHVMode = FALSE;
598 }
599 _XC_SEMAPHORE_RETURN(pInstance,E_XC_ID_VAR);
600 }
601
MApi_XC_SetHdmiSyncMode(E_HDMI_SYNC_TYPE eSynctype)602 void MApi_XC_SetHdmiSyncMode(E_HDMI_SYNC_TYPE eSynctype)
603 {
604 if (pu32XCInst == NULL)
605 {
606 printf("[%s,%5d]No instance existed, please get an instance by calling MApi_XC_Init() first\n",__FUNCTION__,__LINE__);
607 return;
608 }
609
610 stXC_SET_HDMI_SYNCMODE XCArgs;
611 XCArgs.eSynctype = eSynctype;
612
613 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_SET_HDMI_SYNCMODE, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
614 {
615 printf("Obtain XC engine fail\n");
616 return;
617 }
618 else
619 {
620 return;
621 }
622 }
623
MDrv_XC_GetHdmiSyncMode(void * pInstance)624 E_HDMI_SYNC_TYPE MDrv_XC_GetHdmiSyncMode(void *pInstance)
625 {
626 //Check whether which mode are we using: DE or HV.
627 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
628 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
629 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
630 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
631 return pXCResourcePrivate->stdrvXC_MVideo_Context.s_HDMISYNC_type;
632 }
633
MApi_XC_GetHdmiSyncMode_U2(void * pInstance)634 E_HDMI_SYNC_TYPE MApi_XC_GetHdmiSyncMode_U2(void* pInstance)
635 {
636 E_HDMI_SYNC_TYPE eReturn = HDMI_SYNC_DE;
637 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
638 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
639 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
640
641 _XC_SEMAPHORE_ENTRY(pInstance,E_XC_ID_VAR);
642 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
643 eReturn = MDrv_XC_GetHdmiSyncMode(pInstance);
644 _XC_SEMAPHORE_RETURN(pInstance,E_XC_ID_VAR);
645 return eReturn;
646 }
647
MApi_XC_GetHdmiSyncMode(void)648 E_HDMI_SYNC_TYPE MApi_XC_GetHdmiSyncMode(void)
649 {
650 if (pu32XCInst == NULL)
651 {
652 printf("[%s,%5d]No instance existed, please get an instance by calling MApi_XC_Init() first\n",__FUNCTION__,__LINE__);
653 return HDMI_SYNC_DE;
654 }
655
656 stXC_GET_HDMI_SYNCMODE XCArgs;
657 XCArgs.eReturnValue = HDMI_SYNC_DE;
658
659 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_GET_HDMI_SYNCMODE, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
660 {
661 printf("Obtain XC engine fail\n");
662 return HDMI_SYNC_DE;
663 }
664 else
665 {
666 return XCArgs.eReturnValue;
667 }
668 }
669
MDrv_XC_Switch_DE_HV_Mode_By_Timing(void * pInstance,SCALER_WIN eWindow)670 void MDrv_XC_Switch_DE_HV_Mode_By_Timing(void *pInstance, SCALER_WIN eWindow)
671 {
672 #if SUPPORT_IP_HDMI_FOR_HV_MODE
673 #if ONLY_ALLOW_HV_MODE_FOR_720P
674 MS_U16 u16HDE = 0;
675 MS_U8 u8InputSrcSel, u8SyncSel, u8VideoSel=0, u8isYPbPr, u8HankShakingMD;
676 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
677 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
678 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
679 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
680 if(pXCResourcePrivate->stdrvXC_MVideo_Context._bSupportHVMode)
681 {
682 _XC_ENTRY(pInstance);
683 u16HDE = MDrv_HDMI_GetHDE();
684 //printf("---------------------MDrv_HDMI_GetHDE=%u\n",u16HDE);
685 if(HVMODE_HDE_VALIDATION(u16HDE))
686 {
687 if(HDMI_SYNC_HV != MDrv_XC_GetHdmiSyncMode(pInstance))
688 {
689 MDrv_XC_SetHdmiSyncMode(pInstance, HDMI_SYNC_HV);
690 //printf("@@@---%s:%d u8IP_PixelRep=%u\n", __FUNCTION__, __LINE__, gSrcInfo[eWindow].Status2.u8IP_PixelRep);
691 if(gSrcInfo[eWindow].Status2.u8IP_PixelRep != INVALID_IP_PIXELREPTITION)
692 {
693 gSrcInfo[eWindow].Status2.u8IP_PixelRep = INVALID_IP_PIXELREPTITION;
694 Hal_SC_ip_set_fir_down_sample_divider(pInstance, DISABLE,0x00,eWindow); //Reset Pixel repetition, when switch hv mode
695 }
696 MDrv_SC_ip_set_input_vsync_delay(pInstance, NO_DELAY, eWindow );
697 MDrv_SC_ip_set_de_only_mode(pInstance, DISABLE, eWindow );
698 // Use DE as capture window
699 MDrv_SC_ip_set_de_bypass_mode(pInstance, ENABLE, eWindow);
700 // Disable scaling for get correct DE.
701 //MDrv_SC_Enable_PreScaling(FALSE, FALSE, eWindow);
702 // Set full range capture size for de-bypass mode
703 //MDrv_SC_SetFullRangeCapture(eWindow);
704 MDrv_SC_ip_set_input_sync_sample_mode(pInstance, GLITCH_REMOVAL, eWindow );
705 MDrv_SC_ip_set_post_glitch_removal(pInstance, ENABLE, 0x01, eWindow );
706 Hal_HDMI_Set_YUV422to444_Bypass(TRUE);
707
708 //720p with IP_HDMI, color space problem. must set it to IP_VIDEO
709 u8InputSrcSel = IP_HDMI;
710 u8VideoSel = IP_MST_VD_A;
711 u8SyncSel = (AUTO_DETECT << 1) | CSYNC;
712 u8isYPbPr = TRUE;
713 u8HankShakingMD = FALSE;
714 MDrv_SC_ip_set_input_source(pInstance, u8InputSrcSel, u8SyncSel, u8VideoSel, u8isYPbPr, eWindow);
715 MDrv_XC_reset_ip(pInstance, eWindow );
716 }
717 }
718 else
719 {
720 if(HDMI_SYNC_DE != MDrv_XC_GetHdmiSyncMode(pInstance))
721 {
722 MDrv_XC_SetHdmiSyncMode(pInstance, HDMI_SYNC_DE);
723 //printf("@@@---%s:%d u8IP_PixelRep=%u\n", __FUNCTION__, __LINE__, gSrcInfo[eWindow].Status2.u8IP_PixelRep);
724 if(gSrcInfo[eWindow].Status2.u8IP_PixelRep != INVALID_IP_PIXELREPTITION)
725 {
726 gSrcInfo[eWindow].Status2.u8IP_PixelRep = INVALID_IP_PIXELREPTITION;
727 Hal_SC_ip_set_fir_down_sample_divider(pInstance, DISABLE,0x00,eWindow); //Reset Pixel repetition, when switch hv mode
728 }
729 MDrv_SC_ip_set_input_vsync_delay(pInstance, DELAY_QUARTER_HSYNC, eWindow );
730 MDrv_SC_ip_set_de_only_mode(pInstance, ENABLE, eWindow );
731 MDrv_SC_ip_set_de_bypass_mode(pInstance, DISABLE, eWindow);
732 MDrv_SC_ip_set_input_sync_sample_mode(pInstance, NORMAL_MODE, eWindow );
733 MDrv_SC_ip_set_post_glitch_removal(pInstance, ENABLE, 0x07, eWindow );
734 Hal_HDMI_Set_YUV422to444_Bypass(TRUE);
735
736 //720p with IP_HDMI, color space problem. must set it to IP_VIDEO
737 //here should recover the setting of 720p
738 u8InputSrcSel = IP_HDMI;
739 u8VideoSel = IP_HDMI;
740 u8SyncSel = (AUTO_DETECT << 1) | CSYNC;
741 u8isYPbPr = TRUE;
742 u8HankShakingMD = FALSE;
743 MDrv_SC_ip_set_input_source(pInstance, u8InputSrcSel, u8SyncSel, u8VideoSel, u8isYPbPr, eWindow);
744 MDrv_XC_reset_ip(pInstance, eWindow );
745 }
746 }
747 _XC_RETURN(pInstance);
748 }
749 #endif
750 #endif
751 }
752
MDrv_XC_Set_DE_Lock_Mode(void * pInstance,SCALER_WIN eWindow)753 void MDrv_XC_Set_DE_Lock_Mode(void *pInstance, SCALER_WIN eWindow)
754 {
755 MS_U16 u16HDE = 0;
756 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
757 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
758
759 _XC_ENTRY(pInstance);
760 u16HDE = MDrv_HDMI_GetHDE();
761 if(HVMODE_HDE_VALIDATION(u16HDE))
762 {
763 MDrv_SC_ip_set_de_only_mode(pInstance, DISABLE, eWindow );
764 MDrv_SC_ip_set_de_lock_mode(pInstance, ENABLE, eWindow);
765 }
766 else
767 {
768 MDrv_SC_ip_set_de_only_mode(pInstance, ENABLE, eWindow );
769 MDrv_SC_ip_set_de_lock_mode(pInstance, DISABLE, eWindow);
770 }
771 _XC_RETURN(pInstance);
772 }
773
mvideo_sc_getcropwin(void * pInstance,MS_WINDOW_TYPE * pCropWin,SCALER_WIN eWindow)774 void mvideo_sc_getcropwin( void *pInstance, MS_WINDOW_TYPE *pCropWin, SCALER_WIN eWindow )
775 {
776 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
777 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
778 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
779 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
780 pCropWin->x = gSrcInfo[eWindow].stCropWin.x;
781 pCropWin->y = gSrcInfo[eWindow].stCropWin.y;
782 pCropWin->width = gSrcInfo[eWindow].stCropWin.width;
783 pCropWin->height = gSrcInfo[eWindow].stCropWin.height;
784 }
785
mvideo_pnl_is_dualport(void * pInstance)786 MS_U8 mvideo_pnl_is_dualport(void *pInstance)
787 {
788 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
789 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
790 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
791 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
792 return pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u8LPLL_Mode; // 0: single mode, 1: dual mode
793 }
794
mvideo_pnl_set_dclkmode(void * pInstance,E_XC_PNL_OUT_TIMING_MODE enPnl_Out_Timing_Mode)795 void mvideo_pnl_set_dclkmode(void *pInstance, E_XC_PNL_OUT_TIMING_MODE enPnl_Out_Timing_Mode)
796 {
797 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
798 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
799 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
800 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
801 pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.enPnl_Out_Timing_Mode = enPnl_Out_Timing_Mode;
802 }
803
mvideo_sc_is_enable_3dnr(void * pInstance,SCALER_WIN eWindow)804 MS_BOOL mvideo_sc_is_enable_3dnr(void *pInstance, SCALER_WIN eWindow )
805 {
806 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
807 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
808 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
809 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
810 return gSrcInfo[eWindow].bEn3DNR;
811 }
812
mvideo_sc_set_3dnr(void * pInstance,MS_BOOL bEnable,SCALER_WIN eWindow)813 void mvideo_sc_set_3dnr(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow )
814 {
815 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
816 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
817 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
818 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
819 gSrcInfo[eWindow].bEn3DNR = bEnable;
820 }
821
822 //-------------------------------------------------------------------------------------------------
823 /// check whether the specific window is YUV space
824 /// @param eWindow \b IN: which window we are going to set
825 /// @return @ref MS_BOOL
826 //-------------------------------------------------------------------------------------------------
MApi_XC_IsYUVSpace_U2(void * pInstance,SCALER_WIN eWindow)827 MS_BOOL MApi_XC_IsYUVSpace_U2( void* pInstance, SCALER_WIN eWindow )
828 {
829 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
830 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
831 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
832
833 _XC_SEMAPHORE_ENTRY(pInstance,E_XC_ID_VAR);
834 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
835 MS_BOOL bReturn = gSrcInfo[eWindow].bUseYUVSpace;
836 _XC_SEMAPHORE_RETURN(pInstance,E_XC_ID_VAR);
837 return bReturn;
838 }
839
MApi_XC_IsYUVSpace(SCALER_WIN eWindow)840 MS_BOOL MApi_XC_IsYUVSpace( SCALER_WIN eWindow )
841 {
842 if (pu32XCInst == NULL)
843 {
844 printf("[%s,%5d]No instance existed, please get an instance by calling MApi_XC_Init() first\n",__FUNCTION__,__LINE__);
845 return FALSE;
846 }
847
848 stXC_CHECK_YUVSPACE XCArgs;
849 XCArgs.eWindow = eWindow;
850 XCArgs.bReturnValue = FALSE;
851
852 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_CHECK_YUVSPACE, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
853 {
854 printf("Obtain XC engine fail\n");
855 return FALSE;
856 }
857 else
858 {
859 return XCArgs.bReturnValue;
860 }
861 }
862
863 //-------------------------------------------------------------------------------------------------
864 /// Enable/Disable force RGB in
865 /// @param bEnable \b IN: enable or disable
866 /// @param eWindow \b IN: which window we are going to enable or disable
867 //-------------------------------------------------------------------------------------------------
MApi_XC_EnableForceRGBin_U2(void * pInstance,MS_BOOL bEnable,SCALER_WIN eWindow)868 void MApi_XC_EnableForceRGBin_U2(void* pInstance, MS_BOOL bEnable, SCALER_WIN eWindow)
869 {
870 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
871 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
872 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
873
874 _XC_SEMAPHORE_ENTRY(pInstance,E_XC_ID_VAR);
875 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
876 gSrcInfo[eWindow].bForceRGBin = bEnable;
877
878 #if defined(UFO_XC_HDR) && defined(UFO_XC_HDR_VERSION) && (UFO_XC_HDR_VERSION == 2)
879 /// Set CFD skip picture setting or not.
880 /// If force RGB in, CFD skip picture setting (Hur, Contrast, Saturation)
881 XC_CFD_OSD_CONTROL cfdOsd;
882 memset(&cfdOsd, 0, sizeof(XC_CFD_OSD_CONTROL));
883
884 cfdOsd.u32Version = CFD_OSD_VERSION;
885 cfdOsd.u16Length = sizeof(XC_CFD_OSD_CONTROL);
886 cfdOsd.u8Win = eWindow;
887 cfdOsd.bSkipPictureSettingValid = TRUE;
888 cfdOsd.bSkipPictureSetting = bEnable;
889
890 XC_CFD_CONTROL_INFO cfdCtrl;
891 memset(&cfdCtrl, 0, sizeof(XC_CFD_CONTROL_INFO));
892 cfdCtrl.enCtrlType = E_XC_CFD_CTRL_TYPE_OSD;
893 cfdCtrl.pParam = &cfdOsd;
894 cfdCtrl.u32ParamLen = sizeof(XC_CFD_OSD_CONTROL);
895
896 MDrv_XC_HDR_Control(pInstance, E_XC_HDR_CTRL_CFD_CONTROL, &cfdCtrl);
897 #endif
898 _XC_SEMAPHORE_RETURN(pInstance,E_XC_ID_VAR);
899 }
900
MApi_XC_EnableForceRGBin(MS_BOOL bEnable,SCALER_WIN eWindow)901 void MApi_XC_EnableForceRGBin(MS_BOOL bEnable, SCALER_WIN eWindow)
902 {
903 if (pu32XCInst == NULL)
904 {
905 if(UtopiaOpen(MODULE_XC, &pu32XCInst, 0, NULL) != UTOPIA_STATUS_SUCCESS)
906 {
907 printf("UtopiaOpen XC failed\n");
908 return;
909 }
910 }
911
912 stXC_SET_FORCE_RGBIN XCArgs;
913 XCArgs.bEnable = bEnable;
914 XCArgs.eWindow = eWindow;
915
916 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_SET_FORCE_RGBIN, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
917 {
918 printf("Obtain XC engine fail\n");
919 return;
920 }
921 else
922 {
923 return;
924 }
925 }
926 //-------------------------------------------------------------------------------------------------
927 /// This function will enable/diable framebufferless mode
928 /// @param bEnable \b IN: TRUE: enable, FALSE: otherwise
929 //-------------------------------------------------------------------------------------------------
MApi_XC_EnableFrameBufferLess_U2(void * pInstance,MS_BOOL bEnable)930 void MApi_XC_EnableFrameBufferLess_U2(void* pInstance, MS_BOOL bEnable)
931 {
932 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
933 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
934 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
935
936 _XC_SEMAPHORE_ENTRY(pInstance,E_XC_ID_VAR);
937 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
938 gSrcInfo[MAIN_WINDOW].bFBL = bEnable;
939 _XC_ENTRY(pInstance);
940 MDrv_SC_set_fbl(pInstance, bEnable);
941 _XC_RETURN(pInstance);
942 _XC_SEMAPHORE_RETURN(pInstance,E_XC_ID_VAR);
943 }
944
MApi_XC_EnableFrameBufferLess(MS_BOOL bEnable)945 void MApi_XC_EnableFrameBufferLess(MS_BOOL bEnable)
946 {
947 if (pu32XCInst == NULL)
948 {
949 printf("[%s,%5d]No instance existed, please get an instance by calling MApi_XC_Init() first\n",__FUNCTION__,__LINE__);
950 return;
951 }
952
953 stXC_SET_FRAMEBUFFERLESS XCArgs;
954 XCArgs.bEnable = bEnable;
955
956 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_SET_FRAMEBUFFERLESS, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
957 {
958 printf("Obtain XC engine fail\n");
959 return;
960 }
961 else
962 {
963 return;
964 }
965 }
966
967 //-------------------------------------------------------------------------------------------------
968 /// Query whether current XC is framebufferless or not
969 /// @return @ref MS_BOOL
970 //-------------------------------------------------------------------------------------------------
MDrv_XC_IsCurrentFrameBufferLessMode(void * pInstance)971 MS_BOOL MDrv_XC_IsCurrentFrameBufferLessMode(void *pInstance)
972 {
973 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
974 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
975 //gSrcInfo[MAIN_WINDOW].bFBL = MDrv_SC_get_fbl();
976 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
977 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
978 #ifdef UFO_XC_FB_LEVEL
979 if(gSrcInfo[MAIN_WINDOW].eFBLevel == E_XC_FB_LEVEL_FBL)
980 return TRUE;
981 else
982 return FALSE;
983 #else
984 return gSrcInfo[MAIN_WINDOW].bFBL;
985 #endif
986 }
987
MApi_XC_IsCurrentFrameBufferLessMode_U2(void * pInstance)988 MS_BOOL MApi_XC_IsCurrentFrameBufferLessMode_U2(void* pInstance)
989 {
990 MS_BOOL bReturn = FALSE;
991 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
992 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
993 _XC_SEMAPHORE_ENTRY(pInstance,E_XC_ID_VAR);
994 bReturn = MDrv_XC_IsCurrentFrameBufferLessMode(pInstance);
995 _XC_SEMAPHORE_RETURN(pInstance,E_XC_ID_VAR);
996 return bReturn;
997 }
998
MApi_XC_IsCurrentFrameBufferLessMode(void)999 MS_BOOL MApi_XC_IsCurrentFrameBufferLessMode(void)
1000 {
1001 if (pu32XCInst == NULL)
1002 {
1003 printf("[%s,%5d]No instance existed, please get an instance by calling MApi_XC_Init() first\n",__FUNCTION__,__LINE__);
1004 return FALSE;
1005 }
1006
1007 stXC_CHECK_FRAMEBUFFERLESS XCArgs;
1008 XCArgs.bReturnValue = FALSE;
1009
1010 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_CHECK_FRAMEBUFFERLESS, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
1011 {
1012 printf("Obtain XC engine fail\n");
1013 return FALSE;
1014 }
1015 else
1016 {
1017 return XCArgs.bReturnValue;
1018 }
1019 }
1020
1021 //-------------------------------------------------------------------------------------------------
1022 /// This function will enable/diable request framebufferless mode
1023 /// @param bEnable \b IN: TRUE: enable, FALSE: otherwise
1024 //-------------------------------------------------------------------------------------------------
MApi_XC_EnableRequest_FrameBufferLess_U2(void * pInstance,MS_BOOL bEnable)1025 void MApi_XC_EnableRequest_FrameBufferLess_U2(void* pInstance, MS_BOOL bEnable)
1026 {
1027 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
1028 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
1029 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
1030 _XC_SEMAPHORE_ENTRY(pInstance,E_XC_ID_VAR);
1031 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
1032
1033 if(Hal_SC_Set_RequestFBL_Mode(pInstance, bEnable))
1034 {
1035 gSrcInfo[MAIN_WINDOW].bR_FBL = bEnable;
1036
1037 // MVOP handshake. Default mvop always enable hsk mode.
1038 #if (HW_DESIGN_4K2K_VER != 7) //Kano and BOX chips HSK can not set here
1039 MVOP_Handle stMvopHd = { E_MVOP_MODULE_MAIN };
1040 MDrv_MVOP_SetCommand(&stMvopHd, E_MVOP_CMD_SET_HANDSHAKE_MODE, &bEnable);
1041 #endif
1042 // Mirror Mode
1043 if (gSrcInfo[MAIN_WINDOW].enInputSourceType == INPUT_SOURCE_DTV)
1044 {
1045 if (TRUE == bEnable)
1046 {
1047 MVOP_DrvMirror enMvopMirror = E_VOPMIRROR_NONE;
1048 if (IsVMirrorMode(MAIN_WINDOW) && IsHMirrorMode(MAIN_WINDOW))
1049 enMvopMirror = E_VOPMIRROR_HVBOTH;
1050 else if (IsVMirrorMode(MAIN_WINDOW))
1051 enMvopMirror = E_VOPMIRROR_VERTICAL;
1052 else if (IsHMirrorMode(MAIN_WINDOW))
1053 enMvopMirror = E_VOPMIRROR_HORIZONTALL;
1054
1055 if (enMvopMirror != E_VOPMIRROR_NONE)
1056 {
1057 MDrv_MVOP_SetVOPMirrorMode(TRUE, enMvopMirror);
1058 MDrv_XC_EnableMirrorModeEx(pInstance, MIRROR_NORMAL, MAIN_WINDOW);
1059 }
1060 }
1061 else
1062 {
1063 MVOP_Handle stHdl = { E_MVOP_MODULE_MAIN };
1064 MVOP_DrvMirror enMvopMirror = E_VOPMIRROR_NONE;
1065 MDrv_MVOP_GetCommand(&stHdl, E_MVOP_CMD_GET_MIRROR_MODE, &enMvopMirror, sizeof(enMvopMirror));
1066 MirrorMode_t enXcMirror = MIRROR_NORMAL;
1067 if (enMvopMirror == E_VOPMIRROR_HVBOTH)
1068 enXcMirror = MIRROR_HV;
1069 else if (enMvopMirror == E_VOPMIRROR_VERTICAL)
1070 enXcMirror = MIRROR_V_ONLY;
1071 else if (enMvopMirror == E_VOPMIRROR_HORIZONTALL)
1072 enXcMirror = MIRROR_H_ONLY;
1073
1074 if(enXcMirror != MIRROR_NORMAL)
1075 {
1076 MDrv_MVOP_SetVOPMirrorMode(FALSE, enMvopMirror);
1077 MDrv_XC_EnableMirrorModeEx(pInstance, enXcMirror, MAIN_WINDOW);
1078 }
1079 }
1080 }
1081 }
1082 else
1083 printf("Not support\n");
1084 _XC_SEMAPHORE_RETURN(pInstance,E_XC_ID_VAR);
1085 }
1086
MApi_XC_EnableRequest_FrameBufferLess(MS_BOOL bEnable)1087 void MApi_XC_EnableRequest_FrameBufferLess(MS_BOOL bEnable)
1088 {
1089 if (pu32XCInst == NULL)
1090 {
1091 printf("[%s,%5d]No instance existed, please get an instance by calling MApi_XC_Init() first\n",__FUNCTION__,__LINE__);
1092 return;
1093 }
1094
1095 stXC_SET_REQUEST_FRAMEBUFFERLESS XCArgs;
1096 XCArgs.bEnable = bEnable;
1097
1098 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_SET_REQUEST_FRAMEBUFFERLESS, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
1099 {
1100 printf("Obtain XC engine fail\n");
1101 return;
1102 }
1103 else
1104 {
1105 return;
1106 }
1107 }
1108
1109 //-------------------------------------------------------------------------------------------------
1110 /// Query whether current XC is request framebufferless or not
1111 /// the return value is not reliable before load MADi mode
1112 /// @return @ref MS_BOOL
1113 //-------------------------------------------------------------------------------------------------
MDrv_XC_IsCurrentRequest_FrameBufferLessMode(void * pInstance)1114 MS_BOOL MDrv_XC_IsCurrentRequest_FrameBufferLessMode(void* pInstance)
1115 {
1116 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
1117 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
1118 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
1119 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
1120 #ifdef UFO_XC_FB_LEVEL
1121 if(gSrcInfo[MAIN_WINDOW].eFBLevel == E_XC_FB_LEVEL_RFBL_DI)
1122 return TRUE;
1123 else
1124 return FALSE;
1125 #else
1126 return gSrcInfo[MAIN_WINDOW].bR_FBL;
1127 #endif
1128 }
1129
MApi_XC_IsCurrentRequest_FrameBufferLessMode_U2(void * pInstance)1130 MS_BOOL MApi_XC_IsCurrentRequest_FrameBufferLessMode_U2(void* pInstance)
1131 {
1132 MS_BOOL bReturn = FALSE;
1133 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
1134 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
1135 _XC_SEMAPHORE_ENTRY(pInstance,E_XC_ID_VAR);
1136 bReturn = MDrv_XC_IsCurrentRequest_FrameBufferLessMode(pInstance);
1137 _XC_SEMAPHORE_RETURN(pInstance,E_XC_ID_VAR);
1138 return bReturn;
1139 }
1140
MApi_XC_IsCurrentRequest_FrameBufferLessMode(void)1141 MS_BOOL MApi_XC_IsCurrentRequest_FrameBufferLessMode(void)
1142 {
1143 if (pu32XCInst == NULL)
1144 {
1145 printf("[%s,%5d]No instance existed, please get an instance by calling MApi_XC_Init() first\n",__FUNCTION__,__LINE__);
1146 return FALSE;
1147 }
1148
1149 stXC_CHECK_REQUEST_FRAMEBUFFERLESS XCArgs;
1150 XCArgs.bReturnValue = FALSE;
1151
1152 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_CHECK_REQUEST_FRAMEBUFFERLESS, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
1153 {
1154 printf("Obtain XC engine fail\n");
1155 return FALSE;
1156 }
1157 else
1158 {
1159 return XCArgs.bReturnValue;
1160 }
1161 }
1162
1163 //Obsolte function, do not use it any more
mvideo_sc_get_output_vfreq_U2(void * pInstance)1164 MS_U16 mvideo_sc_get_output_vfreq_U2(void* pInstance)
1165 {
1166 MS_U16 u16OutputVFreq = 0;
1167 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
1168 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
1169 _XC_SEMAPHORE_ENTRY(pInstance,E_XC_ID_VAR);
1170 u16OutputVFreq = MDrv_SC_GetOutputVFreqX100(pInstance)/10;
1171 _XC_SEMAPHORE_RETURN(pInstance,E_XC_ID_VAR);
1172 return u16OutputVFreq;
1173 }
1174
1175 #ifdef UFO_XC_FB_LEVEL
1176 //-------------------------------------------------------------------------------------------------
1177 /// This function will decide using FB level
1178 /// @param bEnable \b IN: TRUE: enable, FALSE: otherwise
1179 //-------------------------------------------------------------------------------------------------
MApi_XC_Set_FB_Level_U2(void * pInstance,E_XC_FB_LEVEL eFBLevel,SCALER_WIN eWindow)1180 E_APIXC_ReturnValue MApi_XC_Set_FB_Level_U2(void* pInstance, E_XC_FB_LEVEL eFBLevel, SCALER_WIN eWindow)
1181 {
1182 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
1183 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
1184 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
1185 _XC_SEMAPHORE_ENTRY(pInstance,E_XC_ID_VAR);
1186 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
1187 _XC_ENTRY(pInstance);
1188
1189 if(eWindow == MAIN_WINDOW)
1190 {
1191 gSrcInfo[MAIN_WINDOW].eFBLevel = eFBLevel;
1192 }
1193 else
1194 {
1195 printf("Not support Sub Window now !!!\n");
1196 }
1197
1198 printf(" [eWindow] = %d , FB LEVEL = %d!!!!!\n", eWindow, eFBLevel);
1199 _XC_RETURN(pInstance);
1200 _XC_SEMAPHORE_RETURN(pInstance,E_XC_ID_VAR);
1201 return E_APIXC_RET_OK;
1202 }
1203
MApi_XC_Set_FB_Level(E_XC_FB_LEVEL eFBLevel,SCALER_WIN eWindow)1204 E_APIXC_ReturnValue MApi_XC_Set_FB_Level(E_XC_FB_LEVEL eFBLevel, SCALER_WIN eWindow)
1205 {
1206 if (pu32XCInst == NULL)
1207 {
1208 printf("[%s,%5d]No instance existed, please get an instance by calling MApi_XC_Init() first\n",__FUNCTION__,__LINE__);
1209 return E_APIXC_RET_FAIL;
1210 }
1211
1212 stXC_SET_FB_LEVEL XCArgs;
1213 XCArgs.eFBLevel = eFBLevel;
1214 XCArgs.eWindow = eWindow;
1215 XCArgs.eReturnValue = E_APIXC_RET_FAIL;
1216
1217 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_SET_FB_LEVEL, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
1218 {
1219 printf("Obtain XC engine fail\n");
1220 return E_APIXC_RET_FAIL;
1221 }
1222 else
1223 {
1224 return XCArgs.eReturnValue;;
1225 }
1226 }
1227
1228 //-------------------------------------------------------------------------------------------------
1229 /// This function will get current FB level
1230 /// @param bEnable \b IN: TRUE: enable, FALSE: otherwise
1231 //-------------------------------------------------------------------------------------------------
MApi_XC_Get_FB_Level_U2(void * pInstance,SCALER_WIN eWindow)1232 E_XC_FB_LEVEL MApi_XC_Get_FB_Level_U2(void* pInstance, SCALER_WIN eWindow)
1233 {
1234 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
1235 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
1236 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
1237 _XC_SEMAPHORE_ENTRY(pInstance,E_XC_ID_VAR);
1238 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
1239 E_XC_FB_LEVEL eTmpFBLevel = E_XC_FB_LEVEL_FB;
1240 _XC_ENTRY(pInstance);
1241
1242 if(eWindow == MAIN_WINDOW)
1243 {
1244 eTmpFBLevel = gSrcInfo[MAIN_WINDOW].eFBLevel;
1245 }
1246 else
1247 {
1248 printf("Not support Sub Window now , default using FB!!!\n");
1249 eTmpFBLevel = E_XC_FB_LEVEL_FB;
1250 }
1251
1252 _XC_RETURN(pInstance);
1253 _XC_SEMAPHORE_RETURN(pInstance,E_XC_ID_VAR);
1254
1255 XC_LOG_TRACE(XC_DBGLEVEL_SETWINDOW, " [eWindow] = %d , FB LEVEL = %d!!!!!\n", eWindow, eTmpFBLevel);
1256 return eTmpFBLevel;
1257 }
1258
MApi_XC_Get_FB_Level(SCALER_WIN eWindow)1259 E_XC_FB_LEVEL SYMBOL_WEAK MApi_XC_Get_FB_Level(SCALER_WIN eWindow)
1260 {
1261 if (pu32XCInst == NULL)
1262 {
1263 printf("[%s,%5d]No instance existed, please get an instance by calling MApi_XC_Init() first\n",__FUNCTION__,__LINE__);
1264 return E_XC_FB_LEVEL_NUM;
1265 }
1266
1267 stXC_GET_FB_LEVEL XCArgs;
1268 XCArgs.eWindow = eWindow;
1269 XCArgs.eReturnValue = E_XC_FB_LEVEL_FB;
1270
1271 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_GET_FB_LEVEL, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
1272 {
1273 printf("Obtain XC engine fail\n");
1274 return E_XC_FB_LEVEL_NUM;
1275 }
1276 else
1277 {
1278 return XCArgs.eReturnValue;
1279 }
1280 }
1281 #endif
1282
mvideo_sc_get_output_vfreq(void)1283 MS_U16 mvideo_sc_get_output_vfreq(void)
1284 {
1285 if (pu32XCInst == NULL)
1286 {
1287 printf("[%s,%5d]No instance existed, please get an instance by calling MApi_XC_Init() first\n",__FUNCTION__,__LINE__);
1288 return 0;
1289 }
1290
1291 stXC_GET_OUTPUT_VFREQ XCArgs;
1292 XCArgs.u16ReturnValue = 0;
1293
1294 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_GET_OUTPUT_VFREQ, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
1295 {
1296 printf("Obtain XC engine fail\n");
1297 return 0;
1298 }
1299 else
1300 {
1301 return XCArgs.u16ReturnValue;
1302 }
1303 }
1304
1305 //-------------------------------------------------------------------------------------------------
1306 /// check whether specific window is memory format 422
1307 /// @param eWindow \b IN: which window we are going to query
1308 /// @return @ref MS_BOOL
1309 //-------------------------------------------------------------------------------------------------
MApi_XC_IsMemoryFormat422_U2(void * pInstance,SCALER_WIN eWindow)1310 MS_BOOL MApi_XC_IsMemoryFormat422_U2( void* pInstance, SCALER_WIN eWindow )
1311 {
1312 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
1313 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
1314 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
1315
1316 _XC_SEMAPHORE_ENTRY(pInstance,E_XC_ID_VAR);
1317 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
1318 MS_BOOL bReturn = gSrcInfo[eWindow].bMemFmt422;
1319 _XC_SEMAPHORE_RETURN(pInstance,E_XC_ID_VAR);
1320 return bReturn;
1321 }
1322
MApi_XC_IsMemoryFormat422(SCALER_WIN eWindow)1323 MS_BOOL MApi_XC_IsMemoryFormat422( SCALER_WIN eWindow )
1324 {
1325 if (pu32XCInst == NULL)
1326 {
1327 printf("[%s,%5d]No instance existed, please get an instance by calling MApi_XC_Init() first\n",__FUNCTION__,__LINE__);
1328 return FALSE;
1329 }
1330
1331 stXC_CHECK_MEMORYFORMAT422 XCArgs;
1332 XCArgs.eWindow = eWindow;
1333 XCArgs.bReturnValue = FALSE;
1334
1335 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_CHECK_MEMORYFORMAT422, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
1336 {
1337 printf("Obtain XC engine fail\n");
1338 return FALSE;
1339 }
1340 else
1341 {
1342 return XCArgs.bReturnValue;
1343 }
1344 }
1345
1346 //-------------------------------------------------------------------------------------------------
1347 /// Set XC mirror hv mode for main window
1348 /// @param bEnable \b IN: enable or disable XC mirror mode
1349 //-------------------------------------------------------------------------------------------------
MApi_XC_EnableMirrorMode_U2(void * pInstance,MS_BOOL bEnable)1350 void MApi_XC_EnableMirrorMode_U2( void* pInstance, MS_BOOL bEnable )
1351 {
1352 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
1353 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
1354 _XC_SEMAPHORE_ENTRY(pInstance,E_XC_ID_VAR);
1355 _XC_ENTRY(pInstance);
1356 if (bEnable)
1357 {
1358 MDrv_XC_EnableMirrorModeEx(pInstance, MIRROR_HV, MAIN_WINDOW);
1359 }
1360 else
1361 {
1362 MDrv_XC_EnableMirrorModeEx(pInstance, MIRROR_NORMAL, MAIN_WINDOW);
1363 }
1364 _XC_RETURN(pInstance);
1365 _XC_SEMAPHORE_RETURN(pInstance,E_XC_ID_VAR);
1366 }
1367
MApi_XC_EnableMirrorMode(MS_BOOL bEnable)1368 void MApi_XC_EnableMirrorMode( MS_BOOL bEnable )
1369 {
1370 if (pu32XCInst == NULL)
1371 {
1372 printf("[%s,%5d]No instance existed, please get an instance by calling MApi_XC_Init() first\n",__FUNCTION__,__LINE__);
1373 return;
1374 }
1375
1376 stXC_SET_MIRROR_MODE_ENABLE XCArgs;
1377 XCArgs.bEnable = bEnable;
1378
1379 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_SET_MIRROR_MODE_ENABLE, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
1380 {
1381 printf("Obtain XC engine fail\n");
1382 return;
1383 }
1384 else
1385 {
1386 return;
1387 }
1388 }
1389
1390 //-------------------------------------------------------------------------------------------------
1391 /// Get XC mirror mode for main window
1392 /// @return @ref MirrorMode_t
1393 //-------------------------------------------------------------------------------------------------
MApi_XC_GetMirrorModeType(void)1394 MirrorMode_t MApi_XC_GetMirrorModeType( void )
1395 {
1396 //This API not use anymore
1397 //instance use XC0
1398 return MDrv_XC_GetMirrorModeTypeEx(pu32XCInst, MAIN_WINDOW);
1399 }
1400
1401 //-------------------------------------------------------------------------------------------------
1402 /// Set XC mirror mode for main and sub window
1403 /// @param bEnable \b IN: enable or disable XC mirror mode
1404 //-------------------------------------------------------------------------------------------------
MApi_XC_EnableMirrorMode2_U2(void * pInstance,MirrorMode_t eMirrorMode)1405 void MApi_XC_EnableMirrorMode2_U2( void* pInstance, MirrorMode_t eMirrorMode )
1406 {
1407 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
1408 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
1409 _XC_SEMAPHORE_ENTRY(pInstance,E_XC_ID_VAR);
1410 _XC_ENTRY(pInstance);
1411 MDrv_XC_EnableMirrorModeEx(pInstance, eMirrorMode, MAIN_WINDOW);
1412 MDrv_XC_EnableMirrorModeEx(pInstance, eMirrorMode, SUB_WINDOW);
1413 _XC_RETURN(pInstance);
1414 _XC_SEMAPHORE_RETURN(pInstance,E_XC_ID_VAR);
1415 }
1416
MApi_XC_EnableMirrorMode2(MirrorMode_t eMirrorMode)1417 void MApi_XC_EnableMirrorMode2( MirrorMode_t eMirrorMode )
1418 {
1419 if (pu32XCInst == NULL)
1420 {
1421 printf("[%s,%5d]No instance existed, please get an instance by calling MApi_XC_Init() first\n",__FUNCTION__,__LINE__);
1422 return;
1423 }
1424
1425 stXC_SET_MIRROR_MODE2_ENABLE XCArgs;
1426 XCArgs.eMirrorMode = eMirrorMode;
1427
1428 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_SET_MIRROR_MODE2_ENABLE, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
1429 {
1430 printf("Obtain XC engine fail\n");
1431 return;
1432 }
1433 else
1434 {
1435 return;
1436 }
1437 }
1438
1439 //-------------------------------------------------------------------------------------------------
1440 /// Set XC mirror mode for main or sub window
1441 /// @param eMirrorMode \b IN: enable or disable XC mirror mode
1442 /// @param eWindow \b IN: main or sub window
1443 //-------------------------------------------------------------------------------------------------
MApi_XC_EnableMirrorModeEx_U2(void * pInstance,MirrorMode_t eMirrorMode,SCALER_WIN eWindow)1444 MS_BOOL MApi_XC_EnableMirrorModeEx_U2( void* pInstance, MirrorMode_t eMirrorMode, SCALER_WIN eWindow)
1445 {
1446 MS_BOOL bReturn = FALSE;
1447 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
1448 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
1449 _XC_SEMAPHORE_ENTRY(pInstance,E_XC_ID_VAR);
1450 _XC_ENTRY(pInstance);
1451 bReturn = MDrv_XC_EnableMirrorModeEx(pInstance, eMirrorMode, eWindow);
1452 _XC_RETURN(pInstance);
1453 _XC_SEMAPHORE_RETURN(pInstance,E_XC_ID_VAR);
1454 return bReturn;
1455
1456 }
1457
MApi_XC_EnableMirrorModeEx(MirrorMode_t eMirrorMode,SCALER_WIN eWindow)1458 MS_BOOL MApi_XC_EnableMirrorModeEx( MirrorMode_t eMirrorMode, SCALER_WIN eWindow)
1459 {
1460 if (pu32XCInst == NULL)
1461 {
1462 printf("[%s,%5d]No instance existed, please get an instance by calling MApi_XC_Init() first\n",__FUNCTION__,__LINE__);
1463 return FALSE;
1464 }
1465
1466 stXC_SET_MIRRORMODE_EX XCArgs;
1467 XCArgs.eMirrorMode = eMirrorMode;
1468 XCArgs.eWindow = eWindow;
1469 XCArgs.bReturnValue = FALSE;
1470
1471 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_SET_MIRRORMODE_EX, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
1472 {
1473 printf("Obtain XC engine fail\n");
1474 return FALSE;
1475 }
1476 else
1477 {
1478 return XCArgs.bReturnValue;
1479 }
1480 }
1481 //-------------------------------------------------------------------------------------------------
1482 /// Get XC mirror mode for main or sub window
1483 /// @param eWindow \b IN: main or sub window
1484 /// @return @ref MirrorMode_t
1485 //-------------------------------------------------------------------------------------------------
MDrv_XC_GetMirrorModeTypeEx(void * pInstance,SCALER_WIN eWindow)1486 MirrorMode_t MDrv_XC_GetMirrorModeTypeEx(void *pInstance, SCALER_WIN eWindow)
1487 {
1488 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
1489 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
1490 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
1491
1492 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
1493 MirrorMode_t eReturn = gSrcInfo[eWindow].Status2.eMirrorMode;
1494 return eReturn;
1495 }
1496
MApi_XC_GetMirrorModeTypeEx_U2(void * pInstance,SCALER_WIN eWindow)1497 MirrorMode_t MApi_XC_GetMirrorModeTypeEx_U2(void* pInstance, SCALER_WIN eWindow)
1498 {
1499 MirrorMode_t eMirrorMode = MIRROR_MAX;
1500 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
1501 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
1502 _XC_SEMAPHORE_ENTRY(pInstance,E_XC_ID_VAR);
1503 eMirrorMode = MDrv_XC_GetMirrorModeTypeEx(pInstance, eWindow);
1504 _XC_SEMAPHORE_RETURN(pInstance,E_XC_ID_VAR);
1505 return eMirrorMode;
1506 }
1507
MApi_XC_GetMirrorModeTypeEx(SCALER_WIN eWindow)1508 MirrorMode_t MApi_XC_GetMirrorModeTypeEx(SCALER_WIN eWindow)
1509 {
1510 if (pu32XCInst == NULL)
1511 {
1512 printf("[%s,%5d]No instance existed, please get an instance by calling MApi_XC_Init() first\n",__FUNCTION__,__LINE__);
1513 return MIRROR_MAX;
1514 }
1515
1516 stXC_GET_MIRRORMODE_TYPEEX XCArgs;
1517 XCArgs.eWindow = eWindow;
1518 XCArgs.eReturnValue = MIRROR_MAX;
1519
1520 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_GET_MIRRORMODE_TYPEEX, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
1521 {
1522 printf("Obtain XC engine fail\n");
1523 return MIRROR_MAX;
1524 }
1525 else
1526 {
1527 return XCArgs.eReturnValue;
1528 }
1529 }
1530
1531 #if SeamlessZapping_DBG // for SeamLess Zapping Debug
_MDrv_XC_GetXCReg_ByISR(SC_INT_SRC eIntNum,void * pParam)1532 void _MDrv_XC_GetXCReg_ByISR(SC_INT_SRC eIntNum, void * pParam)
1533 {
1534 /// Add the reg info for debug
1535 eIntNum = eIntNum;
1536 pParam = pParam;
1537 printf("@@#@@[%s][%d]BK1F_79=%x\n",__FUNCTION__, __LINE__, (MS_U16)(SC_R2BYTEMSK(REG_SC_BK1F_79_L, 0xFFFF)));
1538 printf("@@#@@[%s][%d]BK12_3A=%x\n",__FUNCTION__, __LINE__, (SC_R2BYTEMSK(REG_SC_BK12_3A_L, 0xFF)));
1539 printf("@@#@@[%s][%d]BK12_0E=%x, BK12_0F=%x\n",
1540 __FUNCTION__, __LINE__, (MS_U16)(SC_R2BYTEMSK(REG_SC_BK12_0E_L, 0x7FF)),(MS_U16)(SC_R2BYTEMSK(REG_SC_BK12_0F_L, 0x7FF)));
1541 printf("@@#@@[%s][%d]BK12_16=%x, BK12_17=%x\n",
1542 __FUNCTION__, __LINE__, (MS_U16)(SC_R2BYTEMSK(REG_SC_BK12_16_L, 0x7FF)),(MS_U16)(SC_R2BYTEMSK(REG_SC_BK12_17_L, 0x7FF)));
1543 printf("@@#@@[%s][%d]SC3_2A=%x\n",
1544 __FUNCTION__, __LINE__, (MS_U16)(R2BYTEMSK(L_BK_LPLL(0x2A), 0x3FF)));
1545
1546 }
1547 #endif
1548 #define LPLL_TIMEOUT 300 // ms
1549 //-------------------------------------------------------------------------------------------------
1550 /// let display video freeze by disable scaler buffer write
1551 /// @param bEnable \b IN: TRUE: enable, FALSE: otherwise
1552 /// @param eWindow \b IN: which window we are going to set
1553 //-------------------------------------------------------------------------------------------------
MDrv_XC_FreezeImg(void * pInstance,MS_BOOL bEnable,SCALER_WIN eWindow)1554 void MDrv_XC_FreezeImg(void *pInstance, MS_BOOL bEnable, SCALER_WIN eWindow)
1555 {
1556
1557 PQ_WIN ePQWin;
1558 #ifndef K3_U2
1559 #if SUPPORT_SEAMLESS_ZAPPING
1560 MS_U32 u32Delayms = 0;
1561 #endif
1562 #endif
1563 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
1564 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
1565 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
1566 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
1567
1568 #ifdef UFO_XC_FB_LEVEL
1569 if((gSrcInfo[eWindow].eFBLevel == E_XC_FB_LEVEL_FBL) || (gSrcInfo[eWindow].eFBLevel == E_XC_FB_LEVEL_RFBL_DI))
1570 #else
1571 if(gSrcInfo[eWindow].bFBL || gSrcInfo[eWindow].bR_FBL)
1572 #endif
1573 {
1574 return; //not support freeze for FBL mode
1575 }
1576 ePQWin = (eWindow == MAIN_WINDOW) ? PQ_MAIN_WINDOW : PQ_SUB_WINDOW;
1577
1578 if(bEnable)
1579 {
1580 _XC_ENTRY(pInstance);
1581
1582 if(MDrv_XC_MLoad_GetStatus(pInstance) == E_MLOAD_ENABLED)
1583 Hal_SC_set_freezeimg_burst(pInstance, bEnable, eWindow);
1584 else
1585 Hal_SC_set_freezeimg(pInstance, bEnable, eWindow);
1586 _XC_RETURN(pInstance);
1587
1588 //warning: This function is already protected with mutex
1589 #ifdef ENABLE_TV_SC2_PQ
1590 if (psXCInstPri->u32DeviceID == PQ_XC_ID_0)
1591 #endif
1592 {
1593 if(s_PQ_Function_Info[psXCInstPri->u32DeviceID].pq_disable_filmmode)
1594 {
1595 #if PIP_PATCH_USING_SC1_MAIN_AS_SC0_SUB
1596 s_PQ_Function_Info[psXCInstPri->u32DeviceID].pq_disable_filmmode((psXCInstPri->u32DeviceID == 1)?PQ_SUB_WINDOW:PQ_MAIN_WINDOW, bEnable);
1597 #else
1598 s_PQ_Function_Info[psXCInstPri->u32DeviceID].pq_disable_filmmode(ePQWin, bEnable);
1599 #endif
1600 }
1601 }
1602 #ifdef ENABLE_TV_SC2_PQ
1603 else if (psXCInstPri->u32DeviceID == PQ_XC_ID_1)
1604 {
1605 if(s_PQ_Function_Info[psXCInstPri->u32DeviceID].pq_disable_filmmode_ex)
1606 s_PQ_Function_Info[psXCInstPri->u32DeviceID].pq_disable_filmmode_ex(psXCInstPri->u32DeviceID, ePQWin, bEnable);
1607 }
1608 #endif
1609 //
1610
1611 #if SeamlessZapping_DBG
1612 printf("@@#@@ Freeze\n");
1613 if(FALSE == MDrv_XC_InterruptIsAttached(pInstance, SC_INT_VSINT, _MDrv_XC_GetXCReg_ByISR, NULL))
1614 {
1615 printf("###ISR ###\n");
1616 _MDrv_XC_GetXCReg_ByISR(0,NULL);
1617 MDrv_XC_InterruptAttachWithoutMutex(pInstance, SC_INT_VSINT, _MDrv_XC_GetXCReg_ByISR, NULL);
1618 }
1619 #endif
1620 }
1621 else
1622 {
1623 //warning: This function is already protected with mutex
1624 #ifdef ENABLE_TV_SC2_PQ
1625 if (psXCInstPri->u32DeviceID == PQ_XC_ID_0)
1626 #endif
1627 {
1628 if(s_PQ_Function_Info[psXCInstPri->u32DeviceID].pq_disable_filmmode)
1629 {
1630 #if PIP_PATCH_USING_SC1_MAIN_AS_SC0_SUB
1631 s_PQ_Function_Info[psXCInstPri->u32DeviceID].pq_disable_filmmode((psXCInstPri->u32DeviceID == 1)?PQ_SUB_WINDOW:PQ_MAIN_WINDOW, bEnable);
1632 #else
1633 s_PQ_Function_Info[psXCInstPri->u32DeviceID].pq_disable_filmmode(ePQWin, bEnable);
1634 #endif
1635 }
1636 }
1637 #ifdef ENABLE_TV_SC2_PQ
1638 else if (psXCInstPri->u32DeviceID == PQ_XC_ID_1)
1639 {
1640 if(s_PQ_Function_Info[psXCInstPri->u32DeviceID].pq_disable_filmmode_ex)
1641 s_PQ_Function_Info[psXCInstPri->u32DeviceID].pq_disable_filmmode_ex(psXCInstPri->u32DeviceID, ePQWin, bEnable);
1642 }
1643 #endif
1644 //
1645 #ifndef K3_U2
1646 #if SUPPORT_SEAMLESS_ZAPPING
1647 //// for SLZ debug, wait lpll lock, for the stable OP Vsync
1648 if(Hal_SC_GetSeamlessZappingStatus(pInstance, eWindow))
1649 {
1650 //printf("@@#@@ u32Delayms = %u\n", LPLL_TIMEOUT);
1651 while(((R2BYTEMSK(L_BK_LPLL(0x2A), 0x3FF))!=0x1F4)&&(u32Delayms < LPLL_TIMEOUT))
1652 {
1653 MsOS_DelayTask(1);
1654 u32Delayms++;
1655 }
1656 }
1657 /// end
1658 #endif
1659 #endif
1660
1661 _XC_ENTRY(pInstance);
1662 if(MDrv_XC_MLoad_GetStatus(pInstance) == E_MLOAD_ENABLED)
1663 Hal_SC_set_freezeimg_burst(pInstance, bEnable, eWindow);
1664 else
1665 Hal_SC_set_freezeimg(pInstance, bEnable, eWindow);
1666 _XC_RETURN(pInstance);
1667 }
1668
1669 XC_LOG_TRACE(XC_DBGLEVEL_SEAMLESSZAP, "[%s][%06d]SLZ[%s] Freeze = %x\n",
1670 __FUNCTION__, __LINE__, eWindow?"SUB":"MAIN", bEnable);
1671
1672
1673 }
1674
MApi_XC_FreezeImg_U2(void * pInstance,MS_BOOL bEnable,SCALER_WIN eWindow)1675 void MApi_XC_FreezeImg_U2(void* pInstance, MS_BOOL bEnable, SCALER_WIN eWindow)
1676 {
1677 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
1678 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
1679 _XC_SEMAPHORE_ENTRY(pInstance,E_XC_ID_VAR);
1680 MDrv_XC_FreezeImg(pInstance, bEnable,eWindow);
1681 _XC_SEMAPHORE_RETURN(pInstance,E_XC_ID_VAR);
1682 }
1683
MApi_XC_FreezeImg(MS_BOOL bEnable,SCALER_WIN eWindow)1684 void MApi_XC_FreezeImg(MS_BOOL bEnable, SCALER_WIN eWindow)
1685 {
1686 if (pu32XCInst == NULL)
1687 {
1688 printf("[%s,%5d]No instance existed, please get an instance by calling MApi_XC_Init() first\n",__FUNCTION__,__LINE__);
1689 return;
1690 }
1691
1692 stXC_SET_FREEZEIMG XCArgs;
1693 XCArgs.bEnable = bEnable;
1694 XCArgs.eWindow = eWindow;
1695
1696 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_SET_FREEZEIMG, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
1697 {
1698 printf("Obtain XC engine fail\n");
1699 return;
1700 }
1701 else
1702 {
1703 return;
1704 }
1705 }
1706
1707 //-------------------------------------------------------------------------------------------------
1708 /// Query whether the specific window is freeze image status or not
1709 /// @param eWindow \b IN: which window we are going to query
1710 /// @return @ref MS_BOOL
1711 //-------------------------------------------------------------------------------------------------
MApi_XC_IsFreezeImg_U2(void * pInstance,SCALER_WIN eWindow)1712 MS_BOOL MApi_XC_IsFreezeImg_U2(void* pInstance, SCALER_WIN eWindow)
1713 {
1714 MS_BOOL bXCFreezeImg;
1715 _XC_ENTRY(pInstance);
1716
1717 bXCFreezeImg = Hal_SC_get_freezeimg(pInstance, eWindow);
1718 //return Hal_SC_get_freezeimg(eWindow);
1719 _XC_RETURN(pInstance);
1720 return bXCFreezeImg;
1721 }
1722
MApi_XC_IsFreezeImg(SCALER_WIN eWindow)1723 MS_BOOL MApi_XC_IsFreezeImg(SCALER_WIN eWindow)
1724 {
1725 if (pu32XCInst == NULL)
1726 {
1727 printf("[%s,%5d]No instance existed, please get an instance by calling MApi_XC_Init() first\n",__FUNCTION__,__LINE__);
1728 return FALSE;
1729 }
1730
1731 stXC_CHECK_FREEZEIMG XCArgs;
1732 XCArgs.eWindow = eWindow;
1733 XCArgs.bReturnValue = FALSE;
1734
1735 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_CHECK_FREEZEIMG, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
1736 {
1737 printf("Obtain XC engine fail\n");
1738 return FALSE;
1739 }
1740 else
1741 {
1742 return XCArgs.bReturnValue;
1743 }
1744 }
1745
MDrv_XC_GetInfo(void * pInstance,XC_ApiInfo * pXC_Info)1746 void MDrv_XC_GetInfo(void *pInstance, XC_ApiInfo *pXC_Info)
1747 {
1748 UNUSED(pInstance);
1749
1750 pXC_Info->u8MaxWindowNum = MAX_WINDOW_NUM;
1751 pXC_Info->u8NumOfDigitalDDCRam = NUM_OF_DIGITAL_DDCRAM;
1752 pXC_Info->u8MaxFrameNumInMem = MAX_FRAME_NUM_IN_MEM;
1753 pXC_Info->u8MaxFieldNumInMem = MAX_FIELD_NUM_IN_MEM;
1754 }
1755
1756 #ifdef MS_DEBUG
MDrv_XC_ShowTrace_Header(MS_U16 u16LogSwitch)1757 void MDrv_XC_ShowTrace_Header(MS_U16 u16LogSwitch)
1758 {
1759 printf("[XC,");
1760 if (u16LogSwitch & XC_DBGLEVEL_SETTIMING)
1761 printf("LPLL]");
1762 else if (u16LogSwitch & XC_DBGLEVEL_SETWINDOW)
1763 printf("SetWindow]");
1764 else if (u16LogSwitch & XC_DBGLEVEL_MUX)
1765 printf("Mux]");
1766 else if (u16LogSwitch & XC_DGBLEVEL_CROPCALC)
1767 printf("Cropping]");
1768 else if (u16LogSwitch & XC_DBGLEVEL_AUTOGEOMETRY)
1769 printf("AUTOGEO]");
1770 else if (u16LogSwitch & XC_DBGLEVEL_SETTIMING_ISR)
1771 printf("LPLL_ISR]");
1772 else if (u16LogSwitch & XC_DBGLEVEL_FUNCTION_TRACE)
1773 printf("FUNCTION_TRACE]");
1774 else if (u16LogSwitch & XC_DBGLEVEL_PARAMETER_TRACE)
1775 printf("PARAMETER_TRACE]");
1776 else
1777 printf("Unknown]");
1778 }
1779 #endif
1780
1781 //-------------------------------------------------------------------------------------------------
1782 /// General Read Byte Function
1783 /// @param u32Reg \b IN: which value shouldn't contain xc sub bank and address
1784 /// @return @ref MS_U8
1785 //-------------------------------------------------------------------------------------------------
MApi_XC_ReadByte_U2(void * pInstance,MS_U32 u32Reg)1786 MS_U8 MApi_XC_ReadByte_U2(void* pInstance, MS_U32 u32Reg)
1787 {return (MS_U8)MDrv_ReadByte( u32Reg );}
1788
MApi_XC_ReadByte(MS_U32 u32Reg)1789 MS_U8 MApi_XC_ReadByte(MS_U32 u32Reg)
1790 {
1791 if (pu32XCInst == NULL)
1792 {
1793 if(UtopiaOpen(MODULE_XC, &pu32XCInst, 0, NULL) != UTOPIA_STATUS_SUCCESS)
1794 {
1795 printf("UtopiaOpen XC failed\n");
1796 return E_APIXC_RET_FAIL;
1797 }
1798 }
1799
1800 stXC_READBYTE XCArgs;
1801 XCArgs.u32Reg = u32Reg;
1802 XCArgs.u8ReturnValue = 0;
1803
1804 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_READBYTE, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
1805 {
1806 printf("Obtain XC engine fail\n");
1807 return 0;
1808 }
1809 else
1810 {
1811 return XCArgs.u8ReturnValue;
1812 }
1813 }
1814
1815 //-------------------------------------------------------------------------------------------------
1816 /// General Write Byte Function
1817 /// @param u32Reg \b IN: which value shouldn't contain xc sub bank and address
1818 /// @param u8Val \b IN: setting value
1819 //-------------------------------------------------------------------------------------------------
MApi_XC_WriteByte_U2(void * pInstance,MS_U32 u32Reg,MS_U8 u8Val)1820 void MApi_XC_WriteByte_U2(void* pInstance, MS_U32 u32Reg, MS_U8 u8Val)
1821 {MDrv_WriteByte( u32Reg, u8Val );}
1822
MApi_XC_WriteByte(MS_U32 u32Reg,MS_U8 u8Val)1823 void MApi_XC_WriteByte(MS_U32 u32Reg, MS_U8 u8Val)
1824 {
1825 if (pu32XCInst == NULL)
1826 {
1827 if(UtopiaOpen(MODULE_XC, &pu32XCInst, 0, NULL) != UTOPIA_STATUS_SUCCESS)
1828 {
1829 printf("UtopiaOpen XC failed\n");
1830 return;
1831 }
1832 }
1833
1834 stXC_WRITEBYTE XCArgs;
1835 XCArgs.u32Reg = u32Reg;
1836 XCArgs.u8Val = u8Val;
1837
1838 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_WRITEBYTE, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
1839 {
1840 printf("Obtain XC engine fail\n");
1841 return;
1842 }
1843 else
1844 {
1845 return;
1846 }
1847 }
1848
1849 //-------------------------------------------------------------------------------------------------
1850 /// General 2 Write Byte Function
1851 /// @param u32Reg \b IN: which value shouldn't contain xc sub bank and address
1852 /// @param u16Val \b IN: setting value
1853 /// @param u16Msk \b IN: setting value
1854 //-------------------------------------------------------------------------------------------------
MApi_XC_Write2ByteMask_U2(void * pInstance,MS_U32 u32Reg,MS_U16 u16val,MS_U16 u16Mask)1855 void MApi_XC_Write2ByteMask_U2(void* pInstance, MS_U32 u32Reg, MS_U16 u16val, MS_U16 u16Mask)
1856 {MDrv_Write2ByteMask(u32Reg, u16val, u16Mask);}
1857
MApi_XC_Write2ByteMask(MS_U32 u32Reg,MS_U16 u16val,MS_U16 u16Mask)1858 void MApi_XC_Write2ByteMask(MS_U32 u32Reg, MS_U16 u16val, MS_U16 u16Mask)
1859 {
1860 if (pu32XCInst == NULL)
1861 {
1862 if(UtopiaOpen(MODULE_XC, &pu32XCInst, 0, NULL) != UTOPIA_STATUS_SUCCESS)
1863 {
1864 printf("UtopiaOpen XC failed\n");
1865 return;
1866 }
1867 }
1868
1869 stXC_WRITE2BYTEMSK XCArgs;
1870 XCArgs.u32Reg = u32Reg;
1871 XCArgs.u16val = u16val;
1872 XCArgs.u16Mask = u16Mask;
1873
1874 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_WRITE2BYTEMSK, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
1875 {
1876 printf("Obtain XC engine fail\n");
1877 return;
1878 }
1879 else
1880 {
1881 return;
1882 }
1883 }
1884
1885 //-------------------------------------------------------------------------------------------------
1886 /// General Write Byte Mask Function
1887 /// @param u32Reg \b IN: which value shouldn't contain xc sub bank and address
1888 /// @param u8Val \b IN: setting value
1889 /// @param u8Msk \b IN: decide which bit is valied
1890 //-------------------------------------------------------------------------------------------------
MApi_XC_WriteByteMask_U2(void * pInstance,MS_U32 u32Reg,MS_U8 u8Val,MS_U8 u8Msk)1891 void MApi_XC_WriteByteMask_U2(void* pInstance, MS_U32 u32Reg, MS_U8 u8Val, MS_U8 u8Msk)
1892 {
1893 MDrv_WriteByteMask( u32Reg, u8Val, u8Msk );
1894 }
1895
MApi_XC_WriteByteMask(MS_U32 u32Reg,MS_U8 u8Val,MS_U8 u8Msk)1896 void MApi_XC_WriteByteMask(MS_U32 u32Reg, MS_U8 u8Val, MS_U8 u8Msk)
1897 {
1898 if (pu32XCInst == NULL)
1899 {
1900 if(UtopiaOpen(MODULE_XC, &pu32XCInst, 0, NULL) != UTOPIA_STATUS_SUCCESS)
1901 {
1902 printf("UtopiaOpen XC failed\n");
1903 return ;
1904 }
1905 }
1906
1907 stXC_WRITEBYTEMSK XCArgs;
1908 XCArgs.u32Reg = u32Reg;
1909 XCArgs.u8Val = u8Val;
1910 XCArgs.u8Msk = u8Msk;
1911
1912 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_WRITEBYTEMSK, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
1913 {
1914 printf("Obtain XC engine fail\n");
1915 return;
1916 }
1917 else
1918 {
1919 return;
1920 }
1921 }
1922
1923 //-------------------------------------------------------------------------------------------------
1924 /// Scaler Write 2 Byte Function, and use mutex to protect while switch bank and write address
1925 /// @param u32Reg \b IN: which value contain xc sub bank and address
1926 /// @param u16Val \b IN: setting value
1927 //-------------------------------------------------------------------------------------------------
MApi_XC_W2BYTE_U2(void * pInstance,MS_U32 u32Reg,MS_U16 u16Val)1928 void MApi_XC_W2BYTE_U2(void* pInstance, MS_U32 u32Reg, MS_U16 u16Val)
1929 {
1930 MSXC_WR_DBG(printf("W2 BK= %x, REG = %x, Val =%x\n", (MS_U16)((u32Reg&0xFF00)>>8), (MS_U16)(u32Reg&0x00FF), u16Val));
1931 // removed for not need to mutex, just spread function
1932 #if (!ENABLE_REGISTER_SPREAD)
1933 _XC_ENTRY(pInstance);
1934 #endif
1935 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
1936 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
1937 SC_W2BYTE(psXCInstPri->u32DeviceID, u32Reg, u16Val);
1938 #if (!ENABLE_REGISTER_SPREAD)
1939 _XC_RETURN(pInstance);
1940 #endif
1941 }
1942
MApi_XC_W2BYTE(MS_U32 u32Reg,MS_U16 u16Val)1943 void MApi_XC_W2BYTE(MS_U32 u32Reg, MS_U16 u16Val)
1944 {
1945 if (pu32XCInst == NULL)
1946 {
1947 if(UtopiaOpen(MODULE_XC, &pu32XCInst, 0, NULL) != UTOPIA_STATUS_SUCCESS)
1948 {
1949 printf("UtopiaOpen XC failed\n");
1950 return ;
1951 }
1952 }
1953
1954 stXC_W2BYTE XCArgs;
1955 XCArgs.u32Reg = u32Reg;
1956 XCArgs.u16Val = u16Val;
1957
1958 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_W2BYTE, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
1959 {
1960 printf("Obtain XC engine fail\n");
1961 return;
1962 }
1963 else
1964 {
1965 return;
1966 }
1967 }
1968
1969 //-------------------------------------------------------------------------------------------------
1970 /// Scaler Read 2 Byte Function, and use mutex to protect while switch bank and write address
1971 /// @param u32Reg \b IN: which value contain xc sub bank and address
1972 /// @return @ref MS_U16
1973 //-------------------------------------------------------------------------------------------------
MApi_XC_R2BYTE_U2(void * pInstance,MS_U32 u32Reg)1974 MS_U16 MApi_XC_R2BYTE_U2(void* pInstance, MS_U32 u32Reg)
1975 {
1976 MS_U16 u16tmp;
1977 MSXC_WR_DBG(printf("R2 BK= %x, REG = %x\n", (MS_U16)((u32Reg&0xFF00)>>8), (MS_U16)(u32Reg&0x00FF)));
1978 // removed for not need to mutex, just spread function
1979 #if (!ENABLE_REGISTER_SPREAD)
1980 _XC_ENTRY(pInstance);
1981 #endif
1982 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
1983 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
1984 u16tmp = (MS_U16)SC_R2BYTE(psXCInstPri->u32DeviceID, u32Reg );
1985 #if (!ENABLE_REGISTER_SPREAD)
1986 _XC_RETURN(pInstance);
1987 #endif
1988 return u16tmp;
1989 }
1990
MApi_XC_R2BYTE(MS_U32 u32Reg)1991 MS_U16 MApi_XC_R2BYTE(MS_U32 u32Reg)
1992 {
1993 if (pu32XCInst == NULL)
1994 {
1995 if(UtopiaOpen(MODULE_XC, &pu32XCInst, 0, NULL) != UTOPIA_STATUS_SUCCESS)
1996 {
1997 printf("UtopiaOpen XC failed\n");
1998 return E_APIXC_RET_FAIL;
1999 }
2000 }
2001
2002 stXC_R2BYTE XCArgs;
2003 XCArgs.u32Reg = u32Reg;
2004 XCArgs.u16ReturnValue = 0;
2005
2006 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_R2BYTE, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
2007 {
2008 printf("Obtain XC engine fail\n");
2009 return 0;
2010 }
2011 else
2012 {
2013 return XCArgs.u16ReturnValue;
2014 }
2015 }
2016
2017 //-------------------------------------------------------------------------------------------------
2018 /// Scaler Write 4 Byte Function, and use mutex to protect while switch bank and write address
2019 /// @param u32Reg \b IN: which value contain xc sub bank and address
2020 /// @param u32Val \b IN: setting value
2021 //-------------------------------------------------------------------------------------------------
MApi_XC_W4BYTE_U2(void * pInstance,MS_U32 u32Reg,MS_U32 u32Val)2022 void MApi_XC_W4BYTE_U2(void* pInstance, MS_U32 u32Reg, MS_U32 u32Val)
2023 {
2024 MSXC_WR_DBG(printf("W4 BK= %x, REG = %x, Val =%lx\n", (MS_U16)((u32Reg&0xFF00)>>8), (MS_U16)(u32Reg&0x00FF), u32Val));
2025 // removed for not need to mutex, just spread function
2026 #if (!ENABLE_REGISTER_SPREAD)
2027 _XC_ENTRY(pInstance);
2028 #endif
2029 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
2030 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
2031 SC_W4BYTE(psXCInstPri->u32DeviceID, u32Reg, u32Val);
2032 #if (!ENABLE_REGISTER_SPREAD)
2033 _XC_RETURN(pInstance);
2034 #endif
2035 }
2036
MApi_XC_W4BYTE(MS_U32 u32Reg,MS_U32 u32Val)2037 void MApi_XC_W4BYTE(MS_U32 u32Reg, MS_U32 u32Val)
2038 {
2039 if (pu32XCInst == NULL)
2040 {
2041 if(UtopiaOpen(MODULE_XC, &pu32XCInst, 0, NULL) != UTOPIA_STATUS_SUCCESS)
2042 {
2043 printf("UtopiaOpen XC failed\n");
2044 return ;
2045 }
2046 }
2047
2048 stXC_W4BYTE XCArgs;
2049 XCArgs.u32Reg = u32Reg;
2050 XCArgs.u32Val = u32Val;
2051
2052 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_W4BYTE, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
2053 {
2054 printf("Obtain XC engine fail\n");
2055 return;
2056 }
2057 else
2058 {
2059 return;
2060 }
2061 }
2062
2063 //-------------------------------------------------------------------------------------------------
2064 /// Scaler Read 4 Byte Function, and use mutex to protect while switch bank and write address
2065 /// @param u32Reg \b IN: which value contain xc sub bank and address
2066 /// @return @ref MS_U32
2067 //-------------------------------------------------------------------------------------------------
MApi_XC_R4BYTE_U2(void * pInstance,MS_U32 u32Reg)2068 MS_U32 MApi_XC_R4BYTE_U2(void* pInstance, MS_U32 u32Reg)
2069 {
2070 MS_U32 u32tmp;
2071 MSXC_WR_DBG(printf("R4 BK= %x, REG = %x\n", (MS_U16)((u32Reg&0xFF00)>>8), (MS_U16)(u32Reg&0x00FF)));
2072 // removed for not need to mutex, just spread function
2073 #if (!ENABLE_REGISTER_SPREAD)
2074 _XC_ENTRY(pInstance);
2075 #endif
2076 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
2077 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
2078 u32tmp = (MS_U32)SC_R4BYTE(psXCInstPri->u32DeviceID, u32Reg );
2079 #if (!ENABLE_REGISTER_SPREAD)
2080 _XC_RETURN(pInstance);
2081 #endif
2082 return u32tmp;
2083
2084 }
2085
MApi_XC_R4BYTE(MS_U32 u32Reg)2086 MS_U32 MApi_XC_R4BYTE(MS_U32 u32Reg)
2087 {
2088 if (pu32XCInst == NULL)
2089 {
2090 if(UtopiaOpen(MODULE_XC, &pu32XCInst, 0, NULL) != UTOPIA_STATUS_SUCCESS)
2091 {
2092 printf("UtopiaOpen XC failed\n");
2093 return E_APIXC_RET_FAIL;
2094 }
2095 }
2096
2097 stXC_R4BYTE XCArgs;
2098 XCArgs.u32Reg = u32Reg;
2099 XCArgs.u32ReturnValue = 0;
2100
2101 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_R4BYTE, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
2102 {
2103 printf("Obtain XC engine fail\n");
2104 return 0;
2105 }
2106 else
2107 {
2108 return XCArgs.u32ReturnValue;
2109 }
2110 }
2111
2112 //-------------------------------------------------------------------------------------------------
2113 /// Scaler Read 2 Byte Mask Function, and use mutex to protect while switch bank and write address
2114 /// @param u32Reg \b IN: which value contain xc sub bank and address
2115 /// @param u16mask \b IN: decide which bit is valied
2116 /// @return @ref MS_U16
2117 //-------------------------------------------------------------------------------------------------
MApi_XC_R2BYTEMSK_U2(void * pInstance,MS_U32 u32Reg,MS_U16 u16mask)2118 MS_U16 MApi_XC_R2BYTEMSK_U2(void* pInstance, MS_U32 u32Reg, MS_U16 u16mask)
2119 {
2120 MS_U16 u16tmp;
2121 //MS_U8 u8OldBank;
2122
2123 MSXC_WR_DBG(printf("R2M BK= %x, REG = %x\n", (MS_U16)((u32Reg&0xFF00)>>8), (MS_U16)(u32Reg&0x00FF)));
2124 // removed for not need to mutex, just spread function
2125 #if (!ENABLE_REGISTER_SPREAD)
2126 _XC_ENTRY(pInstance);
2127 #endif
2128 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
2129 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
2130
2131 //u8OldBank = MDrv_ReadByte(BK_SELECT_00);
2132
2133 u16tmp = (MS_U16)SC_R2BYTEMSK(psXCInstPri->u32DeviceID, u32Reg, u16mask);
2134
2135 //MDrv_WriteByte(BK_SELECT_00, u8OldBank);
2136 #if (!ENABLE_REGISTER_SPREAD)
2137 _XC_RETURN(pInstance);
2138 #endif
2139 return u16tmp;
2140 }
2141
MApi_XC_R2BYTEMSK(MS_U32 u32Reg,MS_U16 u16mask)2142 MS_U16 MApi_XC_R2BYTEMSK(MS_U32 u32Reg, MS_U16 u16mask)
2143 {
2144 if (pu32XCInst == NULL)
2145 {
2146 if(UtopiaOpen(MODULE_XC, &pu32XCInst, 0, NULL) != UTOPIA_STATUS_SUCCESS)
2147 {
2148 printf("UtopiaOpen XC failed\n");
2149 return E_APIXC_RET_FAIL;
2150 }
2151 }
2152
2153 stXC_R2BYTEMSK XCArgs;
2154 XCArgs.u32Reg = u32Reg;
2155 XCArgs.u16mask = u16mask;
2156 XCArgs.u16ReturnValue = 0;
2157
2158 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_R2BYTEMSK, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
2159 {
2160 printf("Obtain XC engine fail\n");
2161 return 0;
2162 }
2163 else
2164 {
2165 return XCArgs.u16ReturnValue;
2166 }
2167 }
2168
2169 //-------------------------------------------------------------------------------------------------
2170 /// Scaler Write 2 Byte Mask Function, and use mutex to protect while switch bank and write address
2171 /// @param u32Reg \b IN: which value contain xc sub bank and address
2172 /// @param u16Val \b IN: Setting value
2173 /// @param u16mask \b IN: decide which bit is valied
2174 //-------------------------------------------------------------------------------------------------
MApi_XC_W2BYTEMSK_U2(void * pInstance,MS_U32 u32Reg,MS_U16 u16Val,MS_U16 u16mask)2175 void MApi_XC_W2BYTEMSK_U2(void* pInstance, MS_U32 u32Reg, MS_U16 u16Val, MS_U16 u16mask)
2176 {
2177 //MS_U8 u8OldBank;
2178
2179 MSXC_WR_DBG(printf("W2M BK= %x, REG = %x\n", (MS_U16)((u32Reg&0xFF00)>>8), (MS_U16)(u32Reg&0x00FF)));
2180 // removed for not need to mutex, just spread function
2181 #if (!ENABLE_REGISTER_SPREAD)
2182 _XC_ENTRY(pInstance);
2183 #endif
2184 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
2185 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
2186
2187 //u8OldBank = MDrv_ReadByte(BK_SELECT_00);
2188
2189 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, u32Reg, u16Val, u16mask);
2190
2191 //MDrv_WriteByte(BK_SELECT_00, u8OldBank);
2192 #if (!ENABLE_REGISTER_SPREAD)
2193 _XC_RETURN(pInstance);
2194 #endif
2195 }
2196
MApi_XC_W2BYTEMSK(MS_U32 u32Reg,MS_U16 u16Val,MS_U16 u16mask)2197 void MApi_XC_W2BYTEMSK(MS_U32 u32Reg, MS_U16 u16Val, MS_U16 u16mask)
2198 {
2199 if (pu32XCInst == NULL)
2200 {
2201 if(UtopiaOpen(MODULE_XC, &pu32XCInst, 0, NULL) != UTOPIA_STATUS_SUCCESS)
2202 {
2203 printf("UtopiaOpen XC failed\n");
2204 return ;
2205 }
2206 }
2207
2208 stXC_W2BYTEMSK XCArgs;
2209 XCArgs.u32Reg = u32Reg;
2210 XCArgs.u16Val = u16Val;
2211 XCArgs.u16mask = u16mask;
2212
2213 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_W2BYTEMSK, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
2214 {
2215 printf("Obtain XC engine fail\n");
2216 return;
2217 }
2218 else
2219 {
2220 return;
2221 }
2222 }
2223
2224 #if FPGA
mvideo_set_pnl_info_fpga(XC_PANEL_INFO * pPanel_Info)2225 void mvideo_set_pnl_info_fpga(XC_PANEL_INFO *pPanel_Info)
2226 {
2227 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
2228 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
2229 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
2230 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
2231 pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16HStart = pPanel_Info->u16HStart;
2232 pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16Width = pPanel_Info->u16Width;
2233 pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16VStart = pPanel_Info->u16VStart;
2234 pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16Height = pPanel_Info->u16Height;
2235 }
2236 #endif
2237
MApi_XC_EnableRepWindowForFrameColor_U2(void * pInstance,MS_BOOL bEnable)2238 void MApi_XC_EnableRepWindowForFrameColor_U2(void* pInstance, MS_BOOL bEnable)
2239 {
2240 _XC_ENTRY(pInstance);
2241 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
2242 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
2243 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
2244
2245 _XC_SEMAPHORE_ENTRY(pInstance,E_XC_ID_VAR);
2246 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
2247 pXCResourcePrivate->stdrvXC_MVideo_Context.g_bEnableRepWindowForFrameColor = bEnable;
2248
2249 #if 0
2250 if( bEnable == FALSE )
2251 {
2252 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK0F_57_L, 0, BIT(8)|BIT(9) ); // Disable display rep window
2253 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK0F_42_L, 0, 0xFFFF);
2254 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK0F_43_L, 0, 0xFFFF);
2255 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK0F_44_L, 0, 0xFFFF);
2256 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK0F_45_L, 0, 0xFFFF);
2257 }
2258 #endif
2259 _XC_RETURN(pInstance);
2260 _XC_SEMAPHORE_RETURN(pInstance,E_XC_ID_VAR);
2261 }
2262
MApi_XC_EnableRepWindowForFrameColor(MS_BOOL bEnable)2263 void MApi_XC_EnableRepWindowForFrameColor(MS_BOOL bEnable)
2264 {
2265 if (pu32XCInst == NULL)
2266 {
2267 printf("[%s,%5d]No instance existed, please get an instance by calling MApi_XC_Init() first\n",__FUNCTION__,__LINE__);
2268 return;
2269 }
2270
2271 stXC_SET_REPORTWINDOW_FOR_FRAMECOLOR XCArgs;
2272 XCArgs.bEnable = bEnable;
2273
2274 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_SET_REPORTWINDOW_FOR_FRAMECOLOR, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
2275 {
2276 printf("Obtain XC engine fail\n");
2277 return;
2278 }
2279 else
2280 {
2281 return;
2282 }
2283 }
2284
2285 // scmi type 0: A1/A7/T12/T13, 1: M10/J2/A5/A6/A3
MDrv_XC_Get_SCMI_Type(void)2286 MS_BOOL MDrv_XC_Get_SCMI_Type(void)
2287 {
2288 return _FIELD_PACKING_MODE_SUPPORTED;
2289 }
2290
2291 //-------------------------------------------------------------------------------------------------
2292 /// Enable/Disable RW bank auto
2293 /// @param bEnable \b IN: enable or disable
2294 /// @param eWindow \b IN: which window we are going to enable or disable
2295 //-------------------------------------------------------------------------------------------------
MApi_XC_EnableRWBankAuto_U2(void * pInstance,MS_BOOL bEnable,SCALER_WIN eWindow)2296 void MApi_XC_EnableRWBankAuto_U2(void* pInstance, MS_BOOL bEnable, SCALER_WIN eWindow)
2297 {
2298 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
2299 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
2300 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
2301
2302 _XC_SEMAPHORE_ENTRY(pInstance,E_XC_ID_VAR);
2303 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
2304 gSrcInfo[eWindow].bRWBankAuto = bEnable;
2305 _XC_SEMAPHORE_RETURN(pInstance,E_XC_ID_VAR);
2306 }
2307
MApi_XC_EnableRWBankAuto(MS_BOOL bEnable,SCALER_WIN eWindow)2308 void MApi_XC_EnableRWBankAuto(MS_BOOL bEnable, SCALER_WIN eWindow)
2309 {
2310 if (pu32XCInst == NULL)
2311 {
2312 printf("[%s,%5d]No instance existed, please get an instance by calling MApi_XC_Init() first\n",__FUNCTION__,__LINE__);
2313 return;
2314 }
2315
2316 stXC_SET_AUTO_RWBANK_ENABLE XCArgs;
2317 XCArgs.bEnable = bEnable;
2318 XCArgs.eWindow = eWindow;
2319
2320 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_SET_AUTO_RWBANK_ENABLE, (void*)&XCArgs) != UTOPIA_STATUS_SUCCESS)
2321 {
2322 printf("Obtain XC engine fail\n");
2323 return;
2324 }
2325 else
2326 {
2327 return;
2328 }
2329 }
MApi_XC_Dump_SHM_U2(void * pInstance)2330 void MApi_XC_Dump_SHM_U2(void *pInstance)
2331 {
2332 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
2333 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
2334 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
2335
2336 _XC_SEMAPHORE_ENTRY(pInstance,E_XC_ID_VAR);
2337 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
2338
2339 _XC_SEMAPHORE_RETURN(pInstance,E_XC_ID_VAR);
2340 }
MApi_XC_Dump_SHM(void)2341 void MApi_XC_Dump_SHM(void)
2342 {
2343 if (pu32XCInst == NULL)
2344 {
2345 if(UtopiaOpen(MODULE_XC, &pu32XCInst, 0, NULL) != UTOPIA_STATUS_SUCCESS)
2346 {
2347 printf("UtopiaOpen XC failed\n");
2348 return;
2349 }
2350 }
2351
2352 if(UtopiaIoctl(pu32XCInst, E_XC_CMD_DUMP_SHM, NULL) != UTOPIA_STATUS_SUCCESS)
2353 {
2354 printf("Obtain XC engine fail\n");
2355 return;
2356 }
2357 else
2358 {
2359 return;
2360 }
2361 }
2362 //-------------------------------------------------------------------------------------------------
2363 /// MDrv_XC_OSDC_TGEN_Setting
2364 /// @param pstOC_Tgen \b IN: the timing control
2365 //-------------------------------------------------------------------------------------------------
MDrv_XC_OSDC_TGEN_Setting(void * pInstance,MS_XC_OSDC_TGEN_INFO * pstOC_Tgen)2366 void MDrv_XC_OSDC_TGEN_Setting(void *pInstance, MS_XC_OSDC_TGEN_INFO *pstOC_Tgen)
2367 {
2368 MHAL_SC_set_osdc_tgen_htotal(pInstance, pstOC_Tgen->u16OC_Tgen_HTotal);
2369 MHAL_SC_set_osdc_tgen_vtotal(pInstance, pstOC_Tgen->u16OC_Tgen_VTotal);
2370
2371 MHAL_SC_set_osdc_tgen_hsync_start(pInstance, pstOC_Tgen->u16OC_Tgen_Hsync_Start);
2372 MHAL_SC_set_osdc_tgen_hsync_end(pInstance, pstOC_Tgen->u16OC_Tgen_Hsync_End);
2373 MHAL_SC_set_osdc_tgen_hframe_de_start(pInstance, pstOC_Tgen->u16OC_Tgen_HframDE_Start);
2374 MHAL_SC_set_osdc_tgen_hframe_de_end(pInstance, pstOC_Tgen->u16OC_Tgen_HframDE_End);
2375
2376 MHAL_SC_set_osdc_tgen_vsync_start(pInstance, pstOC_Tgen->u16OC_Tgen_Vsync_Start);
2377 MHAL_SC_set_osdc_tgen_vsync_end(pInstance, pstOC_Tgen->u16OC_Tgen_Vsync_End);
2378 MHAL_SC_set_osdc_tgen_vframe_de_start(pInstance, pstOC_Tgen->u16OC_Tgen_VframDE_Start);
2379 MHAL_SC_set_osdc_tgen_vframe_de_end(pInstance, pstOC_Tgen->u16OC_Tgen_VframDE_End);
2380 }
2381
2382 extern void MDrv_PNL_SetOSDCOutputType(void *pInstance, MS_U16 eLPLL_Type, MS_U8 eOC_OutputFormat);
2383 extern void MDrv_PNL_VBY1_Hardware_TrainingMode_En(void *pInstance, MS_BOOL bIsVideoMode ,MS_BOOL bEnable);
MDrv_XC_OSDC_Control(void * pInstance,MS_U32 eCtrl_type)2384 E_APIXC_ReturnValue MDrv_XC_OSDC_Control(void *pInstance, MS_U32 eCtrl_type)
2385 {
2386 E_APIXC_ReturnValue eRet = E_APIXC_RET_FAIL;
2387 MS_U32 u32ldHz = 0;
2388 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
2389 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
2390 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
2391
2392 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
2393 pXCResourcePrivate->stdrvXC_MVideo_Context.g_u32OSDCCtrltype_Suspend = eCtrl_type;
2394
2395 if(gSrcInfo[MAIN_WINDOW].Status2.bIsInitOSDC)
2396 {
2397 if(eCtrl_type == E_XC_OSDC_CTRL_MISC)
2398 {
2399 MDrv_XC_OSDC_MISC_Control(pInstance, &gSrcInfo[MAIN_WINDOW].Status2.stXCOSDC_CTRL);
2400 eRet = E_APIXC_RET_OK;
2401 }
2402 else if(eCtrl_type == E_XC_OSDC_CTRL_TGEN)
2403 {
2404 MDrv_XC_OSDC_TGEN_Setting(pInstance, &gSrcInfo[MAIN_WINDOW].Status2.stXCOSDCTIMING);
2405
2406 //Set OSDC Output clk
2407 u32ldHz = (MS_U32)gSrcInfo[MAIN_WINDOW].Status2.stXCOSDCTIMING.u16OC_Tgen_HTotal*
2408 gSrcInfo[MAIN_WINDOW].Status2.stXCOSDCTIMING.u16OC_Tgen_VTotal*
2409 pXCResourcePrivate->stdrvXC_MVideo.OSDC_FREQ;
2410
2411 if((gSrcInfo[MAIN_WINDOW].Status2.stXCOSDC_CTRL.u16OC_Lpll_type ==0)||
2412 (gSrcInfo[MAIN_WINDOW].Status2.stXCOSDC_CTRL.u16OC_Lpll_type >= E_XC_PNL_LPLL_TYPE_MAX))
2413 {
2414 gSrcInfo[MAIN_WINDOW].Status2.stXCOSDC_CTRL.u16OC_Lpll_type = E_XC_PNL_LPLL_HS_LVDS;
2415 }
2416 MApi_PNL_SetExt_LPLL_Type(gSrcInfo[MAIN_WINDOW].Status2.stXCOSDC_CTRL.u16OC_Lpll_type);
2417
2418 MApi_PNL_CalExtLPLLSETbyDClk(u32ldHz);
2419 eRet = E_APIXC_RET_OK;
2420 }
2421 else if(eCtrl_type == E_XC_OSDC_INIT)
2422 {
2423 if((gSrcInfo[MAIN_WINDOW].Status2.u16OC_PreLplltype !=gSrcInfo[MAIN_WINDOW].Status2.stXCOSDC_CTRL.u16OC_Lpll_type) ||
2424 (gSrcInfo[MAIN_WINDOW].Status2.u16OC_Tgen_HTotal !=gSrcInfo[MAIN_WINDOW].Status2.stXCOSDCTIMING.u16OC_Tgen_HTotal) ||
2425 (gSrcInfo[MAIN_WINDOW].Status2.u16OC_Tgen_VTotal !=gSrcInfo[MAIN_WINDOW].Status2.stXCOSDCTIMING.u16OC_Tgen_VTotal))
2426 {
2427
2428 if((gSrcInfo[MAIN_WINDOW].Status2.stXCOSDC_CTRL.u16OC_Lpll_type >= E_XC_PNL_LPLL_VBY1_10BIT_4LANE)
2429 &&(gSrcInfo[MAIN_WINDOW].Status2.stXCOSDC_CTRL.u16OC_Lpll_type <= E_XC_PNL_LPLL_VBY1_8BIT_8LANE))
2430 {
2431 if(MApi_PNL_GetOSDHWTraining_Status(pInstance))
2432 {
2433 MDrv_PNL_VBY1_Hardware_TrainingMode_En(pInstance, FALSE ,DISABLE);
2434 }
2435 else
2436 {
2437 //Close the RT51 OSD handshack code flow
2438 MOD_W2BYTEMSK(REG_MOD_BK00_44_L, BIT(15), BIT(15));
2439 }
2440 }
2441
2442 MDrv_XC_OSDC_MISC_Control(pInstance, &gSrcInfo[MAIN_WINDOW].Status2.stXCOSDC_CTRL);
2443 MDrv_XC_OSDC_TGEN_Setting(pInstance, &gSrcInfo[MAIN_WINDOW].Status2.stXCOSDCTIMING);
2444
2445 //Set OSDC Output clk
2446 u32ldHz = (MS_U32)gSrcInfo[MAIN_WINDOW].Status2.stXCOSDCTIMING.u16OC_Tgen_HTotal*
2447 gSrcInfo[MAIN_WINDOW].Status2.stXCOSDCTIMING.u16OC_Tgen_VTotal*
2448 pXCResourcePrivate->stdrvXC_MVideo.OSDC_FREQ;
2449 if((gSrcInfo[MAIN_WINDOW].Status2.stXCOSDC_CTRL.u16OC_Lpll_type ==0)||
2450 (gSrcInfo[MAIN_WINDOW].Status2.stXCOSDC_CTRL.u16OC_Lpll_type >= E_XC_PNL_LPLL_TYPE_MAX))
2451 {
2452 gSrcInfo[MAIN_WINDOW].Status2.stXCOSDC_CTRL.u16OC_Lpll_type = E_XC_PNL_LPLL_HS_LVDS;
2453 }
2454 MApi_PNL_SetExt_LPLL_Type(gSrcInfo[MAIN_WINDOW].Status2.stXCOSDC_CTRL.u16OC_Lpll_type);
2455 MDrv_PNL_SetOSDCOutputType(pInstance,
2456 gSrcInfo[MAIN_WINDOW].Status2.stXCOSDC_CTRL.u16OC_Lpll_type,
2457 gSrcInfo[MAIN_WINDOW].Status2.stXCOSDC_CTRL.u8OC_OutputFormat);
2458 MApi_PNL_CalExtLPLLSETbyDClk(u32ldHz);
2459
2460 if((gSrcInfo[MAIN_WINDOW].Status2.stXCOSDC_CTRL.u16OC_Lpll_type >= E_XC_PNL_LPLL_VBY1_10BIT_4LANE)
2461 &&(gSrcInfo[MAIN_WINDOW].Status2.stXCOSDC_CTRL.u16OC_Lpll_type <= E_XC_PNL_LPLL_VBY1_8BIT_8LANE))
2462 {
2463 if(MApi_PNL_GetOSDHWTraining_Status(pInstance))
2464 {
2465 MDrv_PNL_VBY1_Hardware_TrainingMode_En(pInstance, FALSE ,ENABLE);
2466 }
2467 else
2468 {
2469 //Open the RT51 OSD handshack code flow
2470 MOD_W2BYTEMSK(REG_MOD_BK00_44_L, 0, BIT(15));
2471 }
2472 }
2473 gSrcInfo[MAIN_WINDOW].Status2.u16OC_PreLplltype =gSrcInfo[MAIN_WINDOW].Status2.stXCOSDC_CTRL.u16OC_Lpll_type;
2474 gSrcInfo[MAIN_WINDOW].Status2.u16OC_Tgen_HTotal =gSrcInfo[MAIN_WINDOW].Status2.stXCOSDCTIMING.u16OC_Tgen_HTotal;
2475 gSrcInfo[MAIN_WINDOW].Status2.u16OC_Tgen_VTotal =gSrcInfo[MAIN_WINDOW].Status2.stXCOSDCTIMING.u16OC_Tgen_VTotal;
2476
2477 }
2478 eRet = E_APIXC_RET_OK;
2479 }
2480 else if(eCtrl_type == E_XC_OSDC_CTRL_OUTPUT_FORMAT)
2481 {
2482 MDrv_PNL_SetOSDCOutputType(pInstance,
2483 gSrcInfo[MAIN_WINDOW].Status2.stXCOSDC_CTRL.u16OC_Lpll_type,
2484 gSrcInfo[MAIN_WINDOW].Status2.stXCOSDC_CTRL.u8OC_OutputFormat);
2485 eRet = E_APIXC_RET_OK;
2486 }
2487 else
2488 {
2489 printf("[Note]Please re-select the control item!\n");
2490 eRet = E_APIXC_RET_FAIL_ENUM_NOT_SUPPORT;
2491 }
2492 }
2493 else
2494 {
2495 eRet = E_APIXC_RET_FAIL_FUN_NOT_SUPPORT;
2496 }
2497
2498 return eRet;
2499
2500 }
2501
2502 //-------------------------------------------------------------------------------------------------
2503 /// MDrv_XC_OSDC_MISC_Control
2504 /// @param pstOC_Ctrl \b IN: the OSDC MISC control
2505 //-------------------------------------------------------------------------------------------------
MDrv_XC_OSDC_MISC_Control(void * pInstance,MS_XC_OSDC_CTRL_INFO * pstOC_Ctrl)2506 void MDrv_XC_OSDC_MISC_Control(void *pInstance, MS_XC_OSDC_CTRL_INFO *pstOC_Ctrl)
2507 {
2508 MHAL_SC_enable_osdc(pInstance, pstOC_Ctrl->bOC_ClK_En);
2509 MHAL_SC_set_osdc_mixer_bypass_enable(pInstance, pstOC_Ctrl->bOC_Mixer_Bypass_En);
2510 MHAL_SC_set_osdc_mixer_inv_alpha_enable(pInstance, pstOC_Ctrl->bOC_Mixer_InvAlpha_En);
2511 MHAL_SC_set_osdc_mixer_hs_n_vfde_enable(pInstance, pstOC_Ctrl->bOC_Mixer_Hsync_Vfde_Out);
2512 MHAL_SC_set_osdc_mixer_hfde_n_vfde_enable(pInstance, pstOC_Ctrl->bOC_Mixer_Hfde_Vfde_Out);
2513 }
2514
2515 //-------------------------------------------------------------------------------------------------
2516 /// MDrv_XC_OSDC_GetDataFromRegister
2517 /// @param pstOC_Tgen \b IN: the timing control
2518 /// @param pstOC_Ctrl \b IN: the OSDC MISC control
2519 /// @return @ref MS_BOOL
2520 //-------------------------------------------------------------------------------------------------
MDrv_XC_OSDC_GetDataFromRegister(void * pInstance,MS_XC_OSDC_TGEN_INFO * pstOC_Tgen,MS_XC_OSDC_CTRL_INFO * pstOC_Ctrl)2521 MS_BOOL MDrv_XC_OSDC_GetDataFromRegister(void *pInstance, MS_XC_OSDC_TGEN_INFO *pstOC_Tgen, MS_XC_OSDC_CTRL_INFO *pstOC_Ctrl)
2522 {
2523 if((NULL == pstOC_Tgen)||(NULL == pstOC_Ctrl))
2524 {
2525 return FALSE;
2526 }
2527
2528 pstOC_Tgen->u16OC_Tgen_HTotal = MHAL_SC_get_osdc_tgen_htotal(pInstance);
2529 pstOC_Tgen->u16OC_Tgen_Hsync_Start = MHAL_SC_get_osdc_tgen_hsync_start(pInstance);
2530 pstOC_Tgen->u16OC_Tgen_Hsync_End = MHAL_SC_get_osdc_tgen_hsync_end(pInstance);
2531 pstOC_Tgen->u16OC_Tgen_HframDE_Start = MHAL_SC_get_osdc_tgen_hframe_de_start(pInstance);
2532 pstOC_Tgen->u16OC_Tgen_HframDE_End = MHAL_SC_get_osdc_tgen_hframe_de_end(pInstance);
2533 pstOC_Tgen->u16OC_Tgen_VTotal = MHAL_SC_get_osdc_tgen_vtotal(pInstance);
2534 pstOC_Tgen->u16OC_Tgen_Vsync_Start = MHAL_SC_get_osdc_tgen_vsync_start(pInstance);
2535 pstOC_Tgen->u16OC_Tgen_Vsync_End = MHAL_SC_get_osdc_tgen_vsync_end(pInstance);
2536 pstOC_Tgen->u16OC_Tgen_VframDE_Start = MHAL_SC_get_osdc_tgen_vframe_de_start(pInstance);
2537 pstOC_Tgen->u16OC_Tgen_VframDE_End = MHAL_SC_get_osdc_tgen_vframe_de_end(pInstance);
2538
2539 pstOC_Ctrl->bOC_ClK_En = MHAL_SC_get_osdc_onoff_status(pInstance);
2540 pstOC_Ctrl->bOC_Mixer_Bypass_En = MHAL_SC_get_osdc_mixer_bypass_status(pInstance);
2541 pstOC_Ctrl->bOC_Mixer_InvAlpha_En = MHAL_SC_get_osdc_mixer_inv_alpha_status(pInstance);
2542 pstOC_Ctrl->bOC_Mixer_Hsync_Vfde_Out = MHAL_SC_get_osdc_mixer_hs_n_vfde_status(pInstance);
2543 pstOC_Ctrl->bOC_Mixer_Hfde_Vfde_Out = MHAL_SC_get_osdc_mixer_hfde_n_vfde_status(pInstance);
2544
2545 return TRUE;
2546 }
2547
MDrv_XC_OSDC_TGENRST_EN(void * pInstance,MS_BOOL bEnable)2548 void MDrv_XC_OSDC_TGENRST_EN(void *pInstance, MS_BOOL bEnable)
2549 {
2550 MHAL_SC_set_osdc_tgen_reset_enable(pInstance, bEnable);
2551 }
2552
MDrv_XC_OSDC_SWRST_EN(void * pInstance,MS_BOOL bEnable)2553 void MDrv_XC_OSDC_SWRST_EN(void *pInstance, MS_BOOL bEnable)
2554 {
2555 MHAL_SC_set_osdc_swreset_enable(pInstance, bEnable);
2556 }
2557
MDrv_XC_IsSupportPipPatchUsingSc1MainAsSc0Sub(void)2558 MS_BOOL MDrv_XC_IsSupportPipPatchUsingSc1MainAsSc0Sub(void)
2559 {
2560 return (MS_BOOL)PIP_PATCH_USING_SC1_MAIN_AS_SC0_SUB;
2561 }
2562
MDrv_XC_GetChipCaps(void * pInstance,E_XC_CAPS eCapType,MS_U32 * pRet,MS_U32 ret_size)2563 E_APIXC_ReturnValue MDrv_XC_GetChipCaps(void *pInstance, E_XC_CAPS eCapType, MS_U32* pRet, MS_U32 ret_size)
2564 {
2565 switch(eCapType)
2566 {
2567 case E_XC_IMMESWITCH:
2568 *pRet = SUPPORT_IMMESWITCH;
2569 break;
2570 case E_XC_DVI_AUTO_EQ:
2571 *pRet = SUPPORT_DVI_AUTO_EQ;
2572 break;
2573 case E_XC_FRC_INSIDE:
2574 *pRet = FRC_INSIDE;
2575 break;
2576 case E_XC_SUPPORT_FRCM_MODE:
2577 *pRet = SUPPORT_FRCM_MODE;
2578 break;
2579 case E_XC_SUPPORT_4K2K_WITH_PIP:
2580 *pRet = SUPPORT_4K2K_PIP;
2581 break;
2582 case E_XC_DIP_CHIP_CAPS:
2583 {
2584 if( ret_size != sizeof(ST_XC_DIP_CHIPCAPS))
2585 {
2586 return E_APIXC_RET_FAIL_INVALID_PARAMETER;
2587 }
2588 ST_XC_DIP_CHIPCAPS *stDipCaps;
2589 stDipCaps = (ST_XC_DIP_CHIPCAPS *)pRet;
2590 DIP_CHIP_CAP(stDipCaps->eWindow,stDipCaps->u32DipChipCaps);
2591 break;
2592 }
2593 case E_XC_3D_FBL_CAPS:
2594 #ifndef DISABLE_3D_FUNCTION
2595 *pRet = MDrv_SC_3D_IsSupportFBL3D();
2596 #else
2597 *pRet = FALSE;
2598 #endif
2599 break;
2600
2601 case E_XC_SUPPORT_DETECT3D_IN3DMODE:
2602 #ifndef DISABLE_3D_FUNCTION
2603 #if HW_2DTO3D_SUPPORT
2604 *pRet = (HW_2DTO3D_VER >= 3);
2605 #else
2606 *pRet = FALSE;
2607 #endif
2608 #else
2609 *pRet = FALSE;
2610 #endif
2611 break;
2612
2613 case E_XC_HW_SEAMLESS_ZAPPING:
2614 *pRet = SUPPORT_SEAMLESS_ZAPPING;
2615 break;
2616 case E_XC_SUPPORT_DEVICE1:
2617 *pRet = SUPPORT_DEVICE1;
2618 break;
2619
2620 case E_XC_2DTO3D_VERSION:
2621 #if HW_2DTO3D_SUPPORT
2622 *pRet = HW_2DTO3D_VER;
2623 #else
2624 *pRet = 0xFFFFFFFF;
2625 #endif
2626 break;
2627 case E_XC_SUPPORT_FORCE_VSP_IN_DS_MODE:
2628 *pRet = HW_SUPPORT_FORCE_VSP_IN_DS_MODE;
2629 break;
2630 case E_XC_SUPPORT_INTERLACE_OUT:
2631 *pRet = HW_SUPPORT_INTERLACE_OUTPUT;
2632 break;
2633 case E_XC_SUPPORT_4K2K_60P:
2634 *pRet = HW_SUPPORT_4K2K_60P_OUTPUT;
2635 break;
2636 case E_XC_SUPPORT_PIP_PATCH_USING_SC1_MAIN_AS_SC0_SUB:
2637 {
2638 if( ret_size != sizeof(MS_U32))
2639 {
2640 return E_APIXC_RET_FAIL_INVALID_PARAMETER;
2641 }
2642 *pRet = (MS_U32)MDrv_XC_IsSupportPipPatchUsingSc1MainAsSc0Sub();
2643 break;
2644 }
2645 case E_XC_HW_4K2K_VIP_PEAKING_LIMITATION:
2646 *pRet = HW_4K2K_VIP_PEAKING_LIMITATION;
2647 break;
2648
2649 case E_XC_FB_CAPS_GET_FB_LEVEL:
2650 {
2651 XC_GET_FB_LEVEL* stXCGetFBLevel = (XC_GET_FB_LEVEL *)pRet;
2652 stXCGetFBLevel->eFBLevel = MHal_XC_Get_FB_Level(pInstance, &(stXCGetFBLevel->stCropWin), &(stXCGetFBLevel->stDispWin),stXCGetFBLevel->bInterlace,&(stXCGetFBLevel->u16HSizeAfterPrescaling), &(stXCGetFBLevel->u16VSizeAfterPrescaling));
2653 break;
2654 }
2655 #ifdef UFO_XC_AUTO_DOWNLOAD
2656 case E_XC_SUPPORT_AUTODOWNLOAD_CLIENT:
2657 {
2658 if(ret_size != sizeof(XC_AUTODOWNLOAD_CLIENT_SUPPORTED_CAPS))
2659 {
2660 return E_APIXC_RET_FAIL_INVALID_PARAMETER;
2661 }
2662 XC_AUTODOWNLOAD_CLIENT_SUPPORTED_CAPS *pstAutoDownloadCaps;
2663 pstAutoDownloadCaps = (XC_AUTODOWNLOAD_CLIENT_SUPPORTED_CAPS *)pRet;
2664 MDrv_XC_GetAutoDownloadCaps(pstAutoDownloadCaps->enClient, &(pstAutoDownloadCaps->bSupported));
2665 break;
2666 }
2667 #endif
2668 #ifdef UFO_XC_HDR
2669 #if (UFO_XC_HDR_VERSION == 2)
2670 case E_XC_SUPPORT_HDR:
2671 {
2672 if(ret_size != sizeof(XC_HDR_SUPPORTED_CAPS))
2673 {
2674 return E_APIXC_RET_FAIL_INVALID_PARAMETER;
2675 }
2676 XC_HDR_SUPPORTED_CAPS *pstHDRCaps;
2677 pstHDRCaps = (XC_HDR_SUPPORTED_CAPS *)pRet;
2678 MDrv_XC_HDR_GetCaps(pInstance, pstHDRCaps);
2679 break;
2680
2681 }
2682 #endif
2683 #endif
2684 #ifdef UFO_XC_SUPPORT_3D_DS
2685 case E_XC_SUPPORT_3D_DS:
2686 {
2687 *pRet = SUPPORT_3D_DS;
2688 break;
2689 }
2690 #endif
2691 case E_XC_SCALING_LIMITATION:
2692 *pRet = HW_SCALING_LIMITATION;
2693 break;
2694 default:
2695 return E_APIXC_RET_FAIL_ENUM_NOT_SUPPORT;
2696 }
2697 return E_APIXC_RET_OK;
2698 }
2699
MDrv_XC_Get_Semaphore(void * pInstance,E_XC_POOL_ID_TYPE eID_TYPE)2700 MS_U32 MDrv_XC_Get_Semaphore(void *pInstance,E_XC_POOL_ID_TYPE eID_TYPE)
2701 {
2702 E_XC_POOL_ID eID=E_XC_POOL_ID_MAX;
2703 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
2704 MS_U32 u32Return = UTOPIA_STATUS_FAIL;
2705
2706 if(pInstance == NULL)
2707 {
2708 printf("[%s,%5d]No instance existed, please get an instance by calling MApi_XC_Init() first\n",__FUNCTION__,__LINE__);
2709 return u32Return;
2710 }
2711 else
2712 {
2713 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
2714 }
2715
2716 if(eID_TYPE == E_XC_ID_REG)
2717 {
2718 eID=_XC_SELECT_INTERNAL_REGISTER(psXCInstPri->u32DeviceID);
2719 }
2720 else if(eID_TYPE == E_XC_ID_VAR)
2721 {
2722 eID=_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID);
2723 }
2724 else if(eID_TYPE == E_XC_ID_MLD)
2725 {
2726 eID=_XC_SELECT_INTERNAL_MENULOAD(psXCInstPri->u32DeviceID);
2727 }
2728 else if(eID_TYPE == E_XC_ID_DS)
2729 {
2730 eID=_XC_SELECT_INTERNAL_DS(psXCInstPri->u32DeviceID);
2731 }
2732
2733
2734 if (eID >= E_XC_POOL_ID_MAX)
2735 {
2736 printf("[%s,%5d] Unknown XC Pool ID\n",__func__, __LINE__);
2737 return u32Return;
2738 }
2739 if (eID == E_XC_POOL_ID_INTERNAL_REGISTER || eID == E_XC_POOL_ID_INTERNAL_REGISTER_1 ||
2740 eID == E_XC_POOL_ID_INTERNAL_MENULOAD || eID == E_XC_POOL_ID_INTERNAL_MENULOAD_1 ||
2741 eID == E_XC_POOL_ID_INTERNAL_DS || eID == E_XC_POOL_ID_INTERNAL_DS_1 )
2742 {
2743 return u32Return;
2744 }
2745
2746 #if 0 // for Debug. It is important to check the tid
2747 pid_t tid;
2748 tid = syscall(SYS_gettid);
2749 printf("tid = (%d)\n",tid);
2750 #endif
2751
2752 void* pModule = NULL;
2753 UtopiaInstanceGetModule(pInstance, &pModule);
2754
2755 if(UtopiaResourceObtain(pModule, eID, &g_pXCResource[eID]) != UTOPIA_STATUS_SUCCESS)
2756 {
2757 printf("UtopiaResourceObtain fail\n");
2758 return UTOPIA_STATUS_ERR_RESOURCE;
2759 }
2760 u32Return = UTOPIA_STATUS_SUCCESS;
2761 return u32Return;
2762 }
2763
MDrv_XC_Release_Semaphore(void * pInstance,E_XC_POOL_ID_TYPE eID_TYPE)2764 MS_U32 MDrv_XC_Release_Semaphore(void *pInstance,E_XC_POOL_ID_TYPE eID_TYPE)
2765 {
2766 E_XC_POOL_ID eID=E_XC_POOL_ID_MAX;
2767 MS_U32 u32Return = UTOPIA_STATUS_FAIL;
2768 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
2769
2770 if(pInstance == NULL)
2771 {
2772 printf("[%s,%5d]No instance existed, please get an instance by calling MApi_XC_Init() first\n",__FUNCTION__,__LINE__);
2773 return u32Return;
2774 }else
2775 {
2776 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
2777 }
2778 if(eID_TYPE == E_XC_ID_REG)
2779 eID=_XC_SELECT_INTERNAL_REGISTER(psXCInstPri->u32DeviceID);
2780 else if(eID_TYPE == E_XC_ID_VAR)
2781 eID=_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID);
2782 else if(eID_TYPE == E_XC_ID_MLD)
2783 eID=_XC_SELECT_INTERNAL_MENULOAD(psXCInstPri->u32DeviceID);
2784 else if(eID_TYPE == E_XC_ID_DS)
2785 eID=_XC_SELECT_INTERNAL_DS(psXCInstPri->u32DeviceID);
2786
2787 if (eID >= E_XC_POOL_ID_MAX)
2788 {
2789 printf("[%s,%5d] Unknown XC Pool ID\n",__func__, __LINE__);
2790 return u32Return;
2791 }
2792
2793 if (eID == E_XC_POOL_ID_INTERNAL_REGISTER || eID == E_XC_POOL_ID_INTERNAL_REGISTER_1 ||
2794 eID == E_XC_POOL_ID_INTERNAL_MENULOAD || eID == E_XC_POOL_ID_INTERNAL_MENULOAD_1 ||
2795 eID == E_XC_POOL_ID_INTERNAL_DS || eID == E_XC_POOL_ID_INTERNAL_DS_1)
2796 {
2797 return u32Return;
2798 }
2799 #if 0 // for Debug. It is important to check the tid
2800 pid_t tid;
2801 tid = syscall(SYS_gettid);
2802 printf("tid = (%d)\n",tid);
2803 #endif
2804
2805 u32Return = UtopiaResourceRelease(g_pXCResource[eID]);
2806 return u32Return;
2807 }
2808
MDrv_XC_Resource_Mapping(MS_U32 u32InstanceID,E_XC_POOL_ID eID)2809 E_XC_POOL_ID MDrv_XC_Resource_Mapping(MS_U32 u32InstanceID, E_XC_POOL_ID eID)
2810 {
2811 if(eID >= E_XC_POOL_ID_MAX)
2812 {
2813 printf("Error, Invalid POOL ID!!!\n");
2814 return E_XC_POOL_ID_MAX;
2815 }
2816 if(u32InstanceID == 0)
2817 {
2818 //FIXME?
2819 return eID;
2820 }
2821 else if(u32InstanceID == 1)
2822 {
2823 switch(eID)
2824 {
2825 case E_XC_POOL_ID_INTERNAL_REGISTER:
2826 case E_XC_POOL_ID_INTERNAL_REGISTER_1:
2827 return E_XC_POOL_ID_INTERNAL_REGISTER_1;
2828 case E_XC_POOL_ID_INTERNAL_VARIABLE:
2829 case E_XC_POOL_ID_INTERNAL_VARIABLE_1:
2830 return E_XC_POOL_ID_INTERNAL_VARIABLE_1;
2831 case E_XC_POOL_ID_INTERNAL_MENULOAD:
2832 case E_XC_POOL_ID_INTERNAL_MENULOAD_1:
2833 return E_XC_POOL_ID_INTERNAL_MENULOAD_1;
2834 case E_XC_POOL_ID_INTERNAL_DS:
2835 case E_XC_POOL_ID_INTERNAL_DS_1:
2836 return E_XC_POOL_ID_INTERNAL_DS_1;
2837 default:
2838 return eID;
2839 }
2840 }
2841 else
2842 {
2843 printf("u32InstanceID = %td is over 1!!\n", (ptrdiff_t)u32InstanceID);
2844 return E_XC_POOL_ID_MAX;
2845 }
2846 }
2847
2848
MDrv_XC_Set_VOP(void * pInstance,MS_XC_VOP_Data * pstVOPData)2849 void MDrv_XC_Set_VOP(void *pInstance, MS_XC_VOP_Data *pstVOPData)
2850
2851 {
2852 //Note: H/V Total, H/V DE End, H/V Syncwidth all need minus 1 when set to register
2853 MS_U16 u16DE_HEND = pstVOPData->u16HStart + pstVOPData->u16Width - 1;
2854 MS_U16 u16DE_HStart = pstVOPData->u16HStart;
2855 MS_U16 u16DE_VEND = pstVOPData->u16VStart + pstVOPData->u16Height - 1;
2856 MS_U16 u16DE_VStart = pstVOPData->u16VStart;
2857 MS_U16 u16VsyncStart = pstVOPData->u16VTotal - pstVOPData->u16VSyncStart;// vsync start = Vtt - (VSyncWidth + BackPorch)
2858
2859
2860 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
2861 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
2862
2863 printf("##@##[%s][%d][%tx]\n", __FUNCTION__, __LINE__, (ptrdiff_t)psXCInstPri->u32DeviceID);
2864
2865
2866
2867 // Htotal/Vtotal
2868 #if PIP_PATCH_USING_SC1_MAIN_AS_SC0_SUB
2869 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_0C_L, (pstVOPData->u16HTotal/2 - 1), VOP_HTT_MASK); // output htotal
2870 #else
2871 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_0C_L, (pstVOPData->u16HTotal - 1), VOP_HTT_MASK); // output htotal
2872 #endif
2873 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_0D_L, (pstVOPData->u16VTotal - 1), VOP_VTT_MASK); // output vtotal
2874
2875 // DE H/V start/size
2876 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_04_L, u16DE_HStart, VOP_DE_HSTART_MASK); // DE H start
2877 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_05_L, u16DE_HEND , VOP_DE_HEND_MASK); // DE H end
2878 #if PIP_PATCH_USING_SC1_MAIN_AS_SC0_SUB
2879 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_06_L, u16DE_VStart+6, VOP_DE_VSTART_MASK); // DE V start
2880 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_07_L, u16DE_VEND+10 , VOP_DE_VEND_MASK); // DE V end
2881 #else
2882 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_06_L, u16DE_VStart, VOP_DE_VSTART_MASK); // DE V start
2883 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_07_L, u16DE_VEND , VOP_DE_VEND_MASK); // DE V end
2884 #endif
2885
2886 // Display H/V start/size
2887 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_08_L, u16DE_HStart , VOP_DISPLAY_HSTART_MASK); // Display H start
2888 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_09_L, u16DE_HEND , VOP_DISPLAY_HEND_MASK); // Display H end
2889 #if PIP_PATCH_USING_SC1_MAIN_AS_SC0_SUB
2890 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_0A_L, u16DE_VStart+6 , VOP_DISPLAY_VSTART_MASK); // Display V start
2891 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_0B_L, u16DE_VEND+6 , VOP_DISPLAY_VEND_MASK); // Display V end
2892 #else
2893 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_0A_L, u16DE_VStart , VOP_DISPLAY_VSTART_MASK); // Display V start
2894 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_0B_L, u16DE_VEND , VOP_DISPLAY_VEND_MASK); // Display V end
2895 #endif
2896
2897 // H/V sync start/width
2898 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_01_L, (pstVOPData->u8HSyncWidth-1), LBMASK); // hsync width
2899 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_02_L, ((u16VsyncStart & 0x7FF) | ((u16VsyncStart & 0x800) << 1)), 0x17FF); // vsync start = Vtt - (VSyncWidth + BackPorch)
2900 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_03_L, (u16VsyncStart + pstVOPData->u8VSyncWidth - 1), VOP_VSYNC_END_MASK); // vsync end = Vsync start + Vsync Width
2901 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_10_L, (pstVOPData->bManuelVSyncCtrl << 15), BIT(15)); // manual vsync control
2902 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_10_L, BIT(14), BIT(14)); //default set to mode1 // disable auto_htotal
2903 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_23_L, BIT(7), BIT(7));
2904
2905 // output control
2906 SC_W2BYTE(psXCInstPri->u32DeviceID, REG_SC_BK10_21_L, pstVOPData->u16OCTRL);
2907
2908 SC_W2BYTE(psXCInstPri->u32DeviceID, REG_SC_BK10_46_L, pstVOPData->u16OSTRL);
2909
2910 // output driving current
2911 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_47_L, pstVOPData->u16ODRV, LBMASK);
2912 }
2913
2914
2915 #ifndef DISABLE_HW_PATTERN_FUNCTION
2916 #ifdef SUPPORT_HW_TESTPATTERN
MDrv_SC_OP1_PatGen_Init(void * pInstance,EN_XC_OP1_PATGEN_MODE eMode)2917 MS_BOOL MDrv_SC_OP1_PatGen_Init(void *pInstance, EN_XC_OP1_PATGEN_MODE eMode)
2918 {
2919 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
2920 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
2921 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
2922 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
2923 if(!pXCResourcePrivate->stdrvXC_MVideo_Context.bOP1_PatGen_Init)
2924 {
2925 MHal_SC_OP1_Pattern_backup_setting();
2926 pXCResourcePrivate->stdrvXC_MVideo_Context.bOP1_PatGen_Init = TRUE;
2927 }
2928
2929 if(FALSE == MHal_SC_OP1_Pattern_set_patgen_mode(eMode))
2930 {
2931 return FALSE;
2932 }
2933
2934 MHal_SC_OP1_Pattern_init_setting();
2935
2936 MHal_SC_OP1_Pattern_sram_writedone();
2937
2938 //MS_U16 u16OP1_PatGen_HSize = 0;
2939 //MS_U16 u16OP1_PatGen_VSize = 0;
2940
2941 //Set the hSize and VSize
2942 //u16OP1_PatGen_HSize = gSrcInfo[MAIN_WINDOW].stDispWin.width - gSrcInfo[MAIN_WINDOW].stDispWin.x ;
2943 //u16OP1_PatGen_VSize = gSrcInfo[MAIN_WINDOW].stDispWin.height - gSrcInfo[MAIN_WINDOW].stDispWin.y;
2944
2945 //MHal_SC_OP1_Pattern_set_frame_size(u16OP1_PatGen_HSize, u16OP1_PatGen_VSize);
2946 MHal_SC_OP1_Pattern_set_frame_size(pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16Width
2947 , pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16Width);
2948
2949 MHal_SC_OP1_Pattern_enable(ENABLE);
2950
2951 // due to change di1lb, need to wait HW done
2952 MsOS_DelayTask(50);
2953
2954 return TRUE;
2955
2956 }
2957
MDrv_SC_Set_OP1_TestPattern(void * pInstance,EN_XC_OP1_PATTERN ePattern,EN_XC_OP1_PATGEN_MODE eMode)2958 E_APIXC_ReturnValue MDrv_SC_Set_OP1_TestPattern(void *pInstance, EN_XC_OP1_PATTERN ePattern, EN_XC_OP1_PATGEN_MODE eMode)
2959 {
2960 E_APIXC_ReturnValue enResult = E_APIXC_RET_OK;
2961 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
2962 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
2963 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
2964 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
2965 //initialize the op1 pattern gen
2966
2967 //temp solution for fixing the broken problem when changing pattern directly.
2968 //need to mute first before any pattern change ot disable pattern
2969
2970 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_19_L, BIT(1),BIT(1)); //window color en : on
2971 #if (FRC_INSIDE && (HW_DESIGN_4K2K_VER == 6))
2972 if (IsVBY1_16LANE((MS_U8)pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.eLPLL_Type))
2973 {
2974 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BKCB_17_L, BIT(1),BIT(1));
2975 }
2976 #endif
2977 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK01_02_L, BIT(7),BIT(7)); //input source disable
2978
2979 //MDrv_SC_OP1_PatGen_Init(mode);
2980
2981 // Disable then enable to make a reset, to avoid SRAM data wrong
2982 MDrv_SC_OP1_PatGen_Disable(pInstance);
2983 //MsOS_DelayTask(50);
2984 MDrv_SC_OP1_PatGen_Init(pInstance, eMode);
2985 //MsOS_DelayTask(50);
2986
2987 if(gSrcInfo[MAIN_WINDOW].bUseYUVSpace)
2988 {
2989 //if(!bSkipColorMatrix)
2990 MHAL_SC_set_r2y_en(pInstance, ENABLE, MAIN_WINDOW);
2991
2992 }
2993 else if(SC_R2BYTE(psXCInstPri->u32DeviceID, REG_SC_BK10_26_L)!= 0x400 )
2994 {
2995 // prevent fist time boot up with no signal
2996 //if(!bSkipColorMatrix)
2997 MHAL_SC_set_r2y_en(pInstance, ENABLE, MAIN_WINDOW);
2998
2999 }
3000
3001 if(SC_R2BYTE(psXCInstPri->u32DeviceID, REG_SC_BK10_2F_L) == 0 ) //by pass 3x3 color matrix
3002 {
3003 //if(!bSkipColorMatrix)
3004 MHAL_SC_set_r2y_en(pInstance, DISABLE, MAIN_WINDOW);
3005 }
3006
3007 switch (ePattern)
3008 {
3009 case E_XC_OP1_WB_PATTERN:
3010 MDrv_SC_OP1_WB_Pattern(pInstance, 8, 12);
3011 break;
3012 case E_XC_OP1_PURE_RED_PATTERN:
3013 MDrv_SC_OP1_HW_Default_Pattern(pInstance, 0x20);
3014 break;
3015 case E_XC_OP1_PURE_GREEN_PATTERN:
3016 MDrv_SC_OP1_HW_Default_Pattern(pInstance, 0x30);
3017 break;
3018 case E_XC_OP1_PURE_BLUE_PATTERN:
3019 MDrv_SC_OP1_HW_Default_Pattern(pInstance, 0x40);
3020 break;
3021 case E_XC_OP1_PURE_WHITE_PATTERN:
3022 MDrv_SC_OP1_HW_Default_Pattern(pInstance, 0x50);
3023 break;
3024 case E_XC_OP1_PURE_BLACK_PATTERN:
3025 MDrv_SC_OP1_HW_Default_Pattern(pInstance, 0x60);
3026 break;
3027 case E_XC_OP1_PURE_GREY_PATTERN:
3028 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,155,155,155);
3029 break;
3030 case E_XC_OP1_PURE_COLOR_V_BAR_PATTERN:
3031 MDrv_SC_OP1_Pure_Color_V_Bar_Pattern(pInstance, 8, 12);
3032 break;
3033 case E_XC_OP1_PURE_COLOR_H_BAR_PATTERN:
3034 MDrv_SC_OP1_Pure_Color_H_Bar_Pattern(pInstance, 8, 8);
3035 break;
3036 case E_XC_OP1_PURE_GREY_BAR_16_PATTERN:
3037 MDrv_SC_OP1_Pure_Gray_Bar_Pattern(pInstance, 32, 12, 2, 11, 16);
3038 break;
3039 case E_XC_OP1_PURE_GREY_BAR_32_PATTERN:
3040 MDrv_SC_OP1_Pure_Gray_Bar_Pattern(pInstance, 32, 12, 1, 11, 32);
3041 break;
3042 case E_XC_OP1_PURE_GREY_BAR_64_PATTERN:
3043 MDrv_SC_OP1_Pure_Gray_Bar_Pattern(pInstance, 128, 12, 2,11,64);
3044 break;
3045 case E_XC_OP1_PURE_GREY_RGB_32_PATTERN:
3046 MDrv_SC_OP1_Pure_RGB_32_Pattern(pInstance, 32, 8, 1, 1, 32);
3047 break;
3048 case E_XC_OP1_PURE_RGB_CHECKERBOARD_PATTERN:
3049 MDrv_SC_OP1_Pure_RGB_Checkerboard_Pattern_GBChange(pInstance, 3, 3);
3050 break;
3051 case E_XC_OP1_PURE_RGB_CHECKERBOARD_PATTERN_2:
3052 MDrv_SC_OP1_HW_Default_Pattern(pInstance, 0x70);
3053 break;
3054 case E_XC_OP1_DOAFADE_GRAY_PATTERN:
3055 MDrv_SC_OP1_Dotfade_Gray_Pattern(pInstance, 8, 12);
3056 break;
3057 case E_XC_OP1_CALIBRATION_PATTERN:
3058 MDrv_SC_OP1_HW_Default_Pattern(pInstance, 0x80);
3059 break;
3060 case E_XC_OP1_CALIBRATION_COLOR_DOTFADE_PATTERN:
3061 MDrv_SC_OP1_Calibratoin_Color_Dotfade_Pattern(pInstance, 8,12);
3062 break;
3063 case E_XC_OP1_PATTERN_1:
3064 MDrv_SC_OP1_1_Pattern(pInstance, 192,216);
3065 break;
3066 case E_XC_OP1_PATTERN_2:
3067 MDrv_SC_OP1_2_Pattern(pInstance, 16,27);
3068 break;
3069 case E_XC_OP1_PATTERN_3:
3070 MDrv_SC_OP1_3_Pattern(pInstance, 24,108);
3071 break;
3072 case E_XC_OP1_3D_PATTERN:
3073 MDrv_SC_OP1_3D_Pattern(pInstance, 64,30);
3074 break;
3075 case E_XC_OP1_PURE_RED_100IRE_PATTERN:
3076 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,940,0,0);
3077 break;
3078 case E_XC_OP1_PURE_GREEN_100IRE_PATTERN:
3079 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,0,940,0);
3080 break;
3081 case E_XC_OP1_PURE_BLUE_100IRE_PATTERN:
3082 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,0,0,940);
3083 break;
3084 case E_XC_OP1_PURE_RED_70IRE_PATTERN:
3085 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,658,0,0);
3086 break;
3087 case E_XC_OP1_PURE_GREEN_70IRE_PATTERN:
3088 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,0,658,0);
3089 break;
3090 case E_XC_OP1_PURE_BLUE_70IRE_PATTERN:
3091 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,0,0,658);
3092 break;
3093 case E_XC_OP1_PURE_RED_40IRE_PATTERN:
3094 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,376,0,0);
3095 break;
3096 case E_XC_OP1_PURE_GREEN_40IRE_PATTERN:
3097 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,0,376,0);
3098 break;
3099 case E_XC_OP1_PURE_BLUE_40IRE_PATTERN:
3100 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,0,0,376);
3101 break;
3102 case E_XC_OP1_PURE_RED_20IRE_PATTERN:
3103 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,188,0,0);
3104 break;
3105 case E_XC_OP1_PURE_GREEN_20IRE_PATTERN:
3106 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,0,188,0);
3107 break;
3108 case E_XC_OP1_PURE_BLUE_20IRE_PATTERN:
3109 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,0,0,188);
3110 break;
3111 case E_XC_OP1_PURE_RED_10IRE_PATTERN:
3112 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,94,0,0);
3113 break;
3114 case E_XC_OP1_PURE_GREEN_10IRE_PATTERN:
3115 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,0,94,0);
3116 break;
3117 case E_XC_OP1_PURE_BLUE_10IRE_PATTERN:
3118 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,0,0,94);
3119 break;
3120 case E_XC_OP1_PURE_WHITE_100IRE_PATTERN:
3121 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,940,940,940);
3122 break;
3123 case E_XC_OP1_PURE_WHITE_90IRE_PATTERN:
3124 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,846,846,846);
3125 break;
3126 case E_XC_OP1_PURE_WHITE_80IRE_PATTERN:
3127 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,752,752,752);
3128 break;
3129 case E_XC_OP1_PURE_WHITE_70IRE_PATTERN:
3130 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,658,658,658);
3131 break;
3132 case E_XC_OP1_PURE_WHITE_60IRE_PATTERN:
3133 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,564,564,564);
3134 break;
3135 case E_XC_OP1_PURE_WHITE_50IRE_PATTERN:
3136 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,470,470,470);
3137 break;
3138 case E_XC_OP1_PURE_WHITE_40IRE_PATTERN:
3139 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,376,376,376);
3140 break;
3141 case E_XC_OP1_PURE_WHITE_30IRE_PATTERN:
3142 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,282,282,282);
3143 break;
3144 case E_XC_OP1_PURE_WHITE_20IRE_PATTERN:
3145 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,188,188,188);
3146 break;
3147 case E_XC_OP1_PURE_WHITE_10IRE_PATTERN:
3148 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,94,94,94);
3149 break;
3150 case E_XC_OP1_PURE_GAMMA_GREY1_PATTERN:
3151 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,178,178,178);
3152 break;
3153 case E_XC_OP1_PURE_GAMMA_GREY2_PATTERN:
3154 MDrv_SC_OP1_Pure_Color_Tile_Pattern(pInstance, 8,12,50,50,50);
3155 break;
3156 default:
3157 printf("Error : Not support this pattern !!");
3158 enResult = E_APIXC_RET_FAIL_INVALID_PARAMETER;
3159 break;
3160 }
3161
3162 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK01_02_L, 0x00,BIT(7)); //input source enable
3163 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BK10_19_L, 0x00,BIT(1)); //window color en : off
3164 #if (FRC_INSIDE && (HW_DESIGN_4K2K_VER == 6))
3165 if (IsVBY1_16LANE((MS_U8)pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.eLPLL_Type))
3166 {
3167 SC_W2BYTEMSK(psXCInstPri->u32DeviceID, REG_SC_BKCB_17_L, 0x00,BIT(1));
3168 }
3169 #endif
3170
3171 return enResult;
3172 }
3173
MDrv_SC_OP1_PatGen_Disable(void * pInstance)3174 MS_BOOL MDrv_SC_OP1_PatGen_Disable(void *pInstance)
3175 {
3176 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
3177 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
3178 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
3179 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
3180 if(!pXCResourcePrivate->stdrvXC_MVideo_Context.bOP1_PatGen_Init)
3181 return FALSE;
3182
3183 //disable the op1 test pattern
3184 MHal_SC_OP1_Pattern_enable(DISABLE);
3185
3186 //recover to original setting
3187 MHal_SC_OP1_Pattern_restore_setting();
3188
3189 // due to change di1lb, need to wait HW done
3190 MsOS_DelayTask(50);
3191
3192 return TRUE;
3193 }
3194
MDrv_SC_OP1_Align_Width_Height(void * pInstance,MS_U16 u16HTileCnt,MS_U16 u16VTileCnt,MS_U16 * u16AlignWidth,MS_U16 * u16AlignHeight)3195 void MDrv_SC_OP1_Align_Width_Height(void *pInstance, MS_U16 u16HTileCnt, MS_U16 u16VTileCnt, MS_U16 *u16AlignWidth, MS_U16 *u16AlignHeight)
3196 {
3197 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
3198 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
3199 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
3200 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
3201 #if 0
3202 if ((g_XC_InitData.stPanelInfo.u16Width > 1900) && (g_XC_InitData.stPanelInfo.u16Height > 1000))
3203 {
3204 // FHD case
3205 *u16AlignWidth = (MS_U16)(1920/u16HTileCnt +0.5) * u16HTileCnt;
3206 *u16AlignHeight = (MS_U16)(1080/u16VTileCnt +0.5) * u16VTileCnt;
3207 }
3208 else
3209 {
3210 // HD case
3211 *u16AlignWidth = (MS_U16)(1366/u16HTileCnt +0.5) * u16HTileCnt;
3212 *u16AlignHeight = (MS_U16)(768/u16VTileCnt +0.5) * u16VTileCnt;
3213 }
3214 #else
3215 *u16AlignWidth = (MS_U16)(pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16Width/u16HTileCnt +0.5) * u16HTileCnt;
3216 *u16AlignHeight = (MS_U16)(pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16Height/u16VTileCnt +0.5) * u16VTileCnt;
3217 #endif
3218 }
3219
MDrv_SC_OP1_HW_Default_Pattern(void * pInstance,MS_U8 u8Val)3220 void MDrv_SC_OP1_HW_Default_Pattern(void *pInstance, MS_U8 u8Val)
3221 {
3222 //clear default pattern
3223 MHal_SC_OP1_Pattern_pure_color(0x00);
3224
3225 //disable border
3226 MHal_SC_OP1_Pattern_enable_border(FALSE,0x3FF,0x3FF,0x3FF);
3227
3228 MS_U16 u16HTotalSize = 0, u16VTotalSize = 0;
3229 MDrv_SC_OP1_Align_Width_Height(pInstance, 1, 1, &u16HTotalSize, &u16VTotalSize);
3230 MHal_SC_OP1_PatGen_adjust_frame_size(u16HTotalSize, u16VTotalSize);
3231
3232 MHal_SC_OP1_Pattern_pure_color(u8Val);
3233 MHal_SC_OP1_Pattern_enable(ENABLE);
3234 }
3235
MDrv_SC_OP1_WB_Pattern(void * pInstance,MS_U16 u16HTileCnt,MS_U16 u16VTileCnt)3236 void MDrv_SC_OP1_WB_Pattern(void *pInstance, MS_U16 u16HTileCnt, MS_U16 u16VTileCnt)
3237 {
3238 MS_U16 u16HTileSize = 0, u16VTileSize = 0;
3239 MS_U16 u16HTotalSize = 0, u16VTotalSize = 0;
3240 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
3241 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
3242 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
3243 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
3244
3245 //clear default pattern
3246 MHal_SC_OP1_Pattern_pure_color(0x00);
3247
3248 //disable border
3249 MHal_SC_OP1_Pattern_enable_border(FALSE,0x3FF,0x3FF,0x3FF);
3250
3251
3252 MDrv_SC_OP1_Align_Width_Height(pInstance, u16HTileCnt, u16VTileCnt, &u16HTotalSize, &u16VTotalSize);
3253
3254 u16HTileSize = u16HTotalSize/u16HTileCnt;
3255 u16VTileSize = u16VTotalSize/u16VTileCnt;
3256 MHal_SC_OP1_PatGen_adjust_frame_size(u16HTotalSize, u16VTotalSize);
3257
3258 MHal_SC_OP1_Pattern_sram_writestart();
3259
3260 MHal_SC_OP1_Pattern_define_tile(u16HTileSize, u16VTileSize);
3261
3262 if (pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.bMirror)
3263 {
3264 MHal_SC_OP1_Pattern_customize_blcok(8,2,true,true,512,512,512,E_XC_OP1_PATTERN_TYPE_PURE);
3265
3266 MHal_SC_OP1_Pattern_customize_blcok(1,2,true,false,160,160,160,E_XC_OP1_PATTERN_TYPE_PURE);
3267 MHal_SC_OP1_Pattern_customize_blcok(6,2,false,false,263,263,263,E_XC_OP1_PATTERN_TYPE_PURE);
3268 MHal_SC_OP1_Pattern_customize_blcok(1,2,false,true,100,100,100,E_XC_OP1_PATTERN_TYPE_PURE);
3269
3270 MHal_SC_OP1_Pattern_customize_blcok(8,0,true,true,512,512,512,E_XC_OP1_PATTERN_TYPE_PURE);
3271
3272 MHal_SC_OP1_Pattern_customize_blcok(1,2,true,false,512,512,512,E_XC_OP1_PATTERN_TYPE_PURE);
3273 MHal_SC_OP1_Pattern_customize_blcok(6,2,false,false,678,678,678,E_XC_OP1_PATTERN_TYPE_PURE);
3274 MHal_SC_OP1_Pattern_customize_blcok(1,2,false,true,512,512,512,E_XC_OP1_PATTERN_TYPE_PURE);
3275
3276 MHal_SC_OP1_Pattern_customize_blcok(8,2,true,true,512,512,512,E_XC_OP1_PATTERN_TYPE_PURE);
3277 }
3278 else
3279 {
3280 MHal_SC_OP1_Pattern_customize_blcok(8,2,true,true,512,512,512,E_XC_OP1_PATTERN_TYPE_PURE);
3281
3282 MHal_SC_OP1_Pattern_customize_blcok(1,2,true,false,512,512,512,E_XC_OP1_PATTERN_TYPE_PURE);
3283 MHal_SC_OP1_Pattern_customize_blcok(6,2,false,false,678,678,678,E_XC_OP1_PATTERN_TYPE_PURE);
3284 MHal_SC_OP1_Pattern_customize_blcok(1,2,false,true,512,512,512,E_XC_OP1_PATTERN_TYPE_PURE);
3285
3286 MHal_SC_OP1_Pattern_customize_blcok(8,0,true,true,512,512,512,E_XC_OP1_PATTERN_TYPE_PURE);
3287
3288 MHal_SC_OP1_Pattern_customize_blcok(1,2,true,false,160,160,160,E_XC_OP1_PATTERN_TYPE_PURE);
3289 MHal_SC_OP1_Pattern_customize_blcok(6,2,false,false,263,263,263,E_XC_OP1_PATTERN_TYPE_PURE);
3290 MHal_SC_OP1_Pattern_customize_blcok(1,2,false,true,100,100,100,E_XC_OP1_PATTERN_TYPE_PURE);
3291
3292 MHal_SC_OP1_Pattern_customize_blcok(8,1,true,true,512,512,512,E_XC_OP1_PATTERN_TYPE_PURE);
3293 }
3294
3295 MHal_SC_OP1_Pattern_sram_writedone();
3296 }
3297
MDrv_SC_OP1_Pure_Color_V_Bar_Pattern(void * pInstance,MS_U16 u16HTileCnt,MS_U16 u16VTileCnt)3298 void MDrv_SC_OP1_Pure_Color_V_Bar_Pattern(void *pInstance, MS_U16 u16HTileCnt, MS_U16 u16VTileCnt)
3299 {
3300 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
3301 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
3302 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
3303 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
3304
3305 if (!pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.bMirror)
3306 {
3307 MDrv_SC_OP1_HW_Default_Pattern(pInstance, 0x10);
3308 }
3309 else
3310 {
3311
3312 MS_U16 u16HTileSize = 0, u16VTileSize = 0;
3313 MS_U16 u16HTotalSize = 0, u16VTotalSize = 0;
3314
3315 //clear default pattern
3316 MHal_SC_OP1_Pattern_pure_color(0x00);
3317
3318 //disable border
3319 MHal_SC_OP1_Pattern_enable_border(FALSE,0x3FF,0x3FF,0x3FF);
3320
3321 MDrv_SC_OP1_Align_Width_Height(pInstance, u16HTileCnt, u16VTileCnt, &u16HTotalSize, &u16VTotalSize);
3322
3323 u16HTileSize = u16HTotalSize/u16HTileCnt;
3324 u16VTileSize = u16VTotalSize/u16VTileCnt;
3325 MHal_SC_OP1_PatGen_adjust_frame_size(u16HTotalSize, u16VTotalSize);
3326
3327 MHal_SC_OP1_Pattern_sram_writestart();
3328
3329 MHal_SC_OP1_Pattern_define_tile(u16HTileSize, u16VTileSize);
3330
3331
3332 #if 1
3333 // For mirror case
3334 MHal_SC_OP1_Pattern_customize_blcok(1,11,true,false,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
3335 MHal_SC_OP1_Pattern_customize_blcok(1,11,false,false,0,0,1023,E_XC_OP1_PATTERN_TYPE_PURE);
3336 MHal_SC_OP1_Pattern_customize_blcok(1,11,false,false,1023,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
3337 MHal_SC_OP1_Pattern_customize_blcok(1,11,false,false,1023,0,1023,E_XC_OP1_PATTERN_TYPE_PURE);
3338 MHal_SC_OP1_Pattern_customize_blcok(1,11,false,false,0,1023,0,E_XC_OP1_PATTERN_TYPE_PURE);
3339 MHal_SC_OP1_Pattern_customize_blcok(1,11,false,false,0,1023,1023,E_XC_OP1_PATTERN_TYPE_PURE);
3340 MHal_SC_OP1_Pattern_customize_blcok(1,11,false,false,1023,1023,0,E_XC_OP1_PATTERN_TYPE_PURE);
3341 MHal_SC_OP1_Pattern_customize_blcok(1,11,false,true,1023,1023,1023,E_XC_OP1_PATTERN_TYPE_PURE);
3342 #else
3343 if (g_XC_InitData.bMirror)
3344 {
3345 MHal_SC_OP1_Pattern_customize_blcok(1,11,true,false,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
3346 MHal_SC_OP1_Pattern_customize_blcok(1,11,false,false,0,0,1023,E_XC_OP1_PATTERN_TYPE_PURE);
3347 MHal_SC_OP1_Pattern_customize_blcok(1,11,false,false,1023,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
3348 MHal_SC_OP1_Pattern_customize_blcok(1,11,false,false,1023,0,1023,E_XC_OP1_PATTERN_TYPE_PURE);
3349 MHal_SC_OP1_Pattern_customize_blcok(1,11,false,false,0,1023,0,E_XC_OP1_PATTERN_TYPE_PURE);
3350 MHal_SC_OP1_Pattern_customize_blcok(1,11,false,false,0,1023,1023,E_XC_OP1_PATTERN_TYPE_PURE);
3351 MHal_SC_OP1_Pattern_customize_blcok(1,11,false,false,1023,1023,0,E_XC_OP1_PATTERN_TYPE_PURE);
3352 MHal_SC_OP1_Pattern_customize_blcok(1,11,false,true,1023,1023,1023,E_XC_OP1_PATTERN_TYPE_PURE);
3353 }
3354 else
3355 {
3356 MHal_SC_OP1_Pattern_customize_blcok(1,11,true,false,1023,1023,1023,E_XC_OP1_PATTERN_TYPE_PURE);
3357 MHal_SC_OP1_Pattern_customize_blcok(1,11,false,false,1023,1023,0,E_XC_OP1_PATTERN_TYPE_PURE);
3358 MHal_SC_OP1_Pattern_customize_blcok(1,11,false,false,0,1023,1023,E_XC_OP1_PATTERN_TYPE_PURE);
3359 MHal_SC_OP1_Pattern_customize_blcok(1,11,false,false,0,1023,0,E_XC_OP1_PATTERN_TYPE_PURE);
3360 MHal_SC_OP1_Pattern_customize_blcok(1,11,false,false,1023,0,1023,E_XC_OP1_PATTERN_TYPE_PURE);
3361 MHal_SC_OP1_Pattern_customize_blcok(1,11,false,false,1023,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
3362 MHal_SC_OP1_Pattern_customize_blcok(1,11,false,false,0,0,1023,E_XC_OP1_PATTERN_TYPE_PURE);
3363 MHal_SC_OP1_Pattern_customize_blcok(1,11,false,true,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
3364 }
3365 #endif
3366
3367 MHal_SC_OP1_Pattern_sram_writedone();
3368 }
3369
3370 }
MDrv_SC_OP1_Pure_Color_H_Bar_Pattern(void * pInstance,MS_U16 u16HTileCnt,MS_U16 u16VTileCnt)3371 void MDrv_SC_OP1_Pure_Color_H_Bar_Pattern(void *pInstance, MS_U16 u16HTileCnt, MS_U16 u16VTileCnt)
3372 {
3373 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
3374 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
3375 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
3376 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
3377
3378 if (!pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.bMirror)
3379 {
3380 MDrv_SC_OP1_HW_Default_Pattern(pInstance, 0x90);
3381 }
3382 else
3383 {
3384 MS_U16 u16HTileSize = 0, u16VTileSize = 0;
3385 MS_U16 u16HTotalSize = 0, u16VTotalSize = 0;
3386
3387 //clear default pattern
3388 MHal_SC_OP1_Pattern_pure_color(0x00);
3389
3390 //disable border
3391 MHal_SC_OP1_Pattern_enable_border(FALSE,0x3FF,0x3FF,0x3FF);
3392
3393 MDrv_SC_OP1_Align_Width_Height(pInstance, u16HTileCnt, u16VTileCnt, &u16HTotalSize, &u16VTotalSize);
3394
3395 u16HTileSize = u16HTotalSize/u16HTileCnt;
3396 u16VTileSize = u16VTotalSize/u16VTileCnt;
3397 MHal_SC_OP1_PatGen_adjust_frame_size(u16HTotalSize, u16VTotalSize);
3398
3399 MHal_SC_OP1_Pattern_sram_writestart();
3400
3401 MHal_SC_OP1_Pattern_define_tile(u16HTileSize, u16VTileSize);
3402
3403 MHal_SC_OP1_Pattern_customize_blcok(8,0,true,true,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
3404 MHal_SC_OP1_Pattern_customize_blcok(8,0,true,true,0,0,1023,E_XC_OP1_PATTERN_TYPE_PURE);
3405 MHal_SC_OP1_Pattern_customize_blcok(8,0,true,true,1023,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
3406 MHal_SC_OP1_Pattern_customize_blcok(8,0,true,true,1023,0,1023,E_XC_OP1_PATTERN_TYPE_PURE);
3407 MHal_SC_OP1_Pattern_customize_blcok(8,0,true,true,0,1023,0,E_XC_OP1_PATTERN_TYPE_PURE);
3408 MHal_SC_OP1_Pattern_customize_blcok(8,0,true,true,0,1023,1023,E_XC_OP1_PATTERN_TYPE_PURE);
3409 MHal_SC_OP1_Pattern_customize_blcok(8,0,true,true,1023,1023,0,E_XC_OP1_PATTERN_TYPE_PURE);
3410 MHal_SC_OP1_Pattern_customize_blcok(8,0,true,true,1023,1023,1023,E_XC_OP1_PATTERN_TYPE_PURE);
3411
3412 MHal_SC_OP1_Pattern_sram_writedone();
3413 }
3414 }
3415
MDrv_SC_OP1_Pure_Gray_Bar_Pattern(void * pInstance,MS_U16 u16HTileCnt,MS_U16 u16VTileCnt,MS_U8 block_Size,MS_U8 repeat_Num,MS_U8 level)3416 void MDrv_SC_OP1_Pure_Gray_Bar_Pattern(void *pInstance, MS_U16 u16HTileCnt, MS_U16 u16VTileCnt, MS_U8 block_Size, MS_U8 repeat_Num, MS_U8 level)
3417 {
3418 MS_U8 i;
3419 MS_U16 u16ValPerLevel_10bits=0;
3420 MS_U16 u16Cur_Val =0;
3421 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
3422 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
3423 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
3424 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
3425
3426 u16ValPerLevel_10bits = (1024/level) ;
3427
3428 MS_U16 u16HTileSize = 0, u16VTileSize = 0;
3429 MS_U16 u16HTotalSize = 0, u16VTotalSize = 0;
3430
3431 //clear default pattern
3432 MHal_SC_OP1_Pattern_pure_color(0x00);
3433
3434 //disable border
3435 MHal_SC_OP1_Pattern_enable_border(FALSE,0x3FF,0x3FF,0x3FF);
3436
3437 MDrv_SC_OP1_Align_Width_Height(pInstance, u16HTileCnt, u16VTileCnt, &u16HTotalSize, &u16VTotalSize);
3438
3439 u16HTileSize = u16HTotalSize/u16HTileCnt;
3440 u16VTileSize = u16VTotalSize/u16VTileCnt;
3441 MHal_SC_OP1_PatGen_adjust_frame_size(u16HTotalSize, u16VTotalSize);
3442
3443 MHal_SC_OP1_Pattern_sram_writestart();
3444
3445 MHal_SC_OP1_Pattern_define_tile(u16HTileSize, u16VTileSize);
3446
3447 if (pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.bMirror)
3448 {
3449 for(i=0;i<level;i++)
3450 {
3451 if(i==0)
3452 {
3453 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,TRUE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3454 }else if(i== (level -1))
3455 {
3456 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,FALSE,TRUE,0, 0, 0,E_XC_OP1_PATTERN_TYPE_PURE);
3457 }else
3458 {
3459 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,FALSE,FALSE,u16Cur_Val, u16Cur_Val, u16Cur_Val,E_XC_OP1_PATTERN_TYPE_PURE);
3460 }
3461 u16Cur_Val -= ((u16ValPerLevel_10bits) & 0x3ff);
3462 }
3463 }
3464 else
3465 {
3466 for(i=0;i<level;i++)
3467 {
3468 if(i==0)
3469 {
3470 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,TRUE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3471 }else if(i== (level -1))
3472 {
3473 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,FALSE,TRUE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3474 }else
3475 {
3476 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,FALSE,FALSE,u16Cur_Val, u16Cur_Val, u16Cur_Val,E_XC_OP1_PATTERN_TYPE_PURE);
3477 }
3478
3479 u16Cur_Val += ((u16ValPerLevel_10bits) & 0x3ff);
3480 }
3481 }
3482
3483 MHal_SC_OP1_Pattern_sram_writedone();
3484
3485 }
3486
MDrv_SC_OP1_Pure_RGB_32_Pattern(void * pInstance,MS_U16 u16HTileCnt,MS_U16 u16VTileCnt,MS_U8 block_Size,MS_U8 repeat_Num,MS_U8 level)3487 void MDrv_SC_OP1_Pure_RGB_32_Pattern(void *pInstance, MS_U16 u16HTileCnt, MS_U16 u16VTileCnt, MS_U8 block_Size,MS_U8 repeat_Num,MS_U8 level)
3488 {
3489 MS_U8 i;
3490 MS_U16 u16ValPerLevel_10bits=0;
3491 MS_U16 u16Cur_Val =0;
3492 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
3493 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
3494 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
3495 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
3496
3497 u16ValPerLevel_10bits = (1024/level) ;
3498
3499 MS_U16 u16HTileSize = 0, u16VTileSize = 0;
3500 MS_U16 u16HTotalSize = 0, u16VTotalSize = 0;
3501
3502 //clear default pattern
3503 MHal_SC_OP1_Pattern_pure_color(0x00);
3504
3505 //disable border
3506 MHal_SC_OP1_Pattern_enable_border(FALSE,0x3FF,0x3FF,0x3FF);
3507
3508 MDrv_SC_OP1_Align_Width_Height(pInstance, u16HTileCnt, u16VTileCnt, &u16HTotalSize, &u16VTotalSize);
3509
3510 u16HTileSize = u16HTotalSize/u16HTileCnt;
3511 u16VTileSize = u16VTotalSize/u16VTileCnt;
3512 MHal_SC_OP1_PatGen_adjust_frame_size(u16HTotalSize, u16VTotalSize);
3513
3514 MHal_SC_OP1_Pattern_sram_writestart();
3515
3516 MHal_SC_OP1_Pattern_define_tile(u16HTileSize, u16VTileSize);
3517
3518 if (pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.bMirror)
3519 {
3520 //Blue
3521 u16Cur_Val = 1024;
3522
3523 for(i=0;i<level;i++)
3524 {
3525 if(i==0)
3526 {
3527 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,TRUE,FALSE,0x00, 0x00, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3528 }else if(i== (level -1))
3529 {
3530 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,FALSE,TRUE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3531 }else
3532 {
3533 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,FALSE,FALSE,0x00, 0x00, u16Cur_Val,E_XC_OP1_PATTERN_TYPE_PURE);
3534 }
3535 u16Cur_Val -= ((u16ValPerLevel_10bits) & 0x3ff);
3536 }
3537
3538 u16Cur_Val = 1024;
3539 //Green
3540 for(i=0;i<level;i++)
3541 {
3542 if(i==0)
3543 {
3544 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,TRUE,FALSE,0x00, 0x3FF, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3545 }else if(i== (level -1))
3546 {
3547 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,FALSE,TRUE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3548 }else
3549 {
3550 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,FALSE,FALSE,0x00, u16Cur_Val, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3551 }
3552 u16Cur_Val -= ((u16ValPerLevel_10bits) & 0x3ff);
3553 }
3554
3555 u16Cur_Val = 1024;
3556 //Red
3557 for(i=0;i<level;i++)
3558 {
3559 if(i==0)
3560 {
3561 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,TRUE,FALSE,0x3FF, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3562 }else if(i== (level -1))
3563 {
3564 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,FALSE,TRUE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3565 }else
3566 {
3567 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,FALSE,FALSE,u16Cur_Val, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3568 }
3569 u16Cur_Val -= ((u16ValPerLevel_10bits) & 0x3ff);
3570 }
3571
3572 u16Cur_Val = 1024;
3573 //Gray
3574 for(i=0;i<level;i++)
3575 {
3576 if(i==0)
3577 {
3578 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,TRUE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3579 }else if(i== (level -1))
3580 {
3581 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,FALSE,TRUE,0x00, 0x00, 0x0,E_XC_OP1_PATTERN_TYPE_PURE);
3582 }else
3583 {
3584 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,FALSE,FALSE,u16Cur_Val, u16Cur_Val, u16Cur_Val,E_XC_OP1_PATTERN_TYPE_PURE);
3585 }
3586 u16Cur_Val -= ((u16ValPerLevel_10bits) & 0x3ff);
3587 }
3588 u16Cur_Val = 1024;
3589 }
3590 else
3591 {
3592 //Gray
3593 for(i=0;i<level;i++)
3594 {
3595 if(i==0)
3596 {
3597 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,TRUE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3598 }else if(i== (level -1))
3599 {
3600 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,FALSE,TRUE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3601 }else
3602 {
3603 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,FALSE,FALSE,u16Cur_Val, u16Cur_Val, u16Cur_Val,E_XC_OP1_PATTERN_TYPE_PURE);
3604 }
3605 u16Cur_Val += ((u16ValPerLevel_10bits) & 0x3ff);
3606 }
3607
3608 u16Cur_Val = 0;
3609
3610 //Red
3611 for(i=0;i<level;i++)
3612 {
3613 if(i==0)
3614 {
3615 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,TRUE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3616 }else if(i== (level -1))
3617 {
3618 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,FALSE,TRUE,0x3FF, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3619 }else
3620 {
3621 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,FALSE,FALSE,u16Cur_Val, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3622 }
3623 u16Cur_Val += ((u16ValPerLevel_10bits) & 0x3ff);
3624 }
3625 u16Cur_Val = 0;
3626
3627 //Green
3628 for(i=0;i<level;i++)
3629 {
3630 if(i==0)
3631 {
3632 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,TRUE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3633 }else if(i== (level -1))
3634 {
3635 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,FALSE,TRUE,0x00, 0x3FF, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3636 }else
3637 {
3638 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,FALSE,FALSE,0x00, u16Cur_Val, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3639 }
3640 u16Cur_Val += ((u16ValPerLevel_10bits) & 0x3ff);
3641 }
3642 u16Cur_Val = 0;
3643
3644 //Blue
3645 for(i=0;i<level;i++)
3646 {
3647 if(i==0)
3648 {
3649 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,TRUE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3650 }else if(i== (level -1))
3651 {
3652 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,FALSE,TRUE,0x00, 0x00, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3653 }else
3654 {
3655 MHal_SC_OP1_Pattern_customize_blcok(block_Size,repeat_Num,FALSE,FALSE,0x00, 0x00, u16Cur_Val,E_XC_OP1_PATTERN_TYPE_PURE);
3656 }
3657 u16Cur_Val += ((u16ValPerLevel_10bits) & 0x3ff);
3658 }
3659 u16Cur_Val = 0;
3660 }
3661
3662 MHal_SC_OP1_Pattern_sram_writedone();
3663 }
3664
MDrv_SC_OP1_Pure_RGB_Checkerboard_Pattern_GBChange(void * pInstance,MS_U16 u16HTileCnt,MS_U16 u16VTileCnt)3665 void MDrv_SC_OP1_Pure_RGB_Checkerboard_Pattern_GBChange(void *pInstance, MS_U16 u16HTileCnt, MS_U16 u16VTileCnt)
3666 {
3667 MS_U16 u16HTileSize = 0, u16VTileSize = 0;
3668 MS_U16 u16HTotalSize = 0, u16VTotalSize = 0;
3669 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
3670 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
3671 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
3672 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
3673
3674 //clear default pattern
3675 MHal_SC_OP1_Pattern_pure_color(0x00);
3676
3677 //disable border
3678 MHal_SC_OP1_Pattern_enable_border(FALSE,0x3FF,0x3FF,0x3FF);
3679
3680 MDrv_SC_OP1_Align_Width_Height(pInstance, u16HTileCnt, u16VTileCnt, &u16HTotalSize, &u16VTotalSize);
3681
3682 u16HTileSize = u16HTotalSize/u16HTileCnt;
3683 u16VTileSize = u16VTotalSize/u16VTileCnt;
3684 MHal_SC_OP1_PatGen_adjust_frame_size(u16HTotalSize, u16VTotalSize);
3685
3686 MHal_SC_OP1_Pattern_sram_writestart();
3687
3688 MHal_SC_OP1_Pattern_define_tile(u16HTileSize, u16VTileSize);
3689
3690 if (pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.bMirror)
3691 {
3692 MHal_SC_OP1_Pattern_customize_blcok(1,0,TRUE,FALSE,1023,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
3693 MHal_SC_OP1_Pattern_customize_blcok(1,0,FALSE,FALSE,0,0,1023,E_XC_OP1_PATTERN_TYPE_PURE);
3694 MHal_SC_OP1_Pattern_customize_blcok(1,0,FALSE,TRUE,0,1023,0,E_XC_OP1_PATTERN_TYPE_PURE);
3695 MHal_SC_OP1_Pattern_customize_blcok(1,0,TRUE,FALSE,0,1023,0,E_XC_OP1_PATTERN_TYPE_PURE);
3696 MHal_SC_OP1_Pattern_customize_blcok(1,0,FALSE,FALSE,1023,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
3697 MHal_SC_OP1_Pattern_customize_blcok(1,0,FALSE,TRUE,0,0,1023,E_XC_OP1_PATTERN_TYPE_PURE);
3698 MHal_SC_OP1_Pattern_customize_blcok(1,0,TRUE,FALSE,0,0,1023,E_XC_OP1_PATTERN_TYPE_PURE);
3699 MHal_SC_OP1_Pattern_customize_blcok(1,0,FALSE,FALSE,0,1023,0,E_XC_OP1_PATTERN_TYPE_PURE);
3700 MHal_SC_OP1_Pattern_customize_blcok(1,0,FALSE,TRUE,1023,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
3701 }
3702 else
3703 {
3704 MHal_SC_OP1_Pattern_customize_blcok(1,0,TRUE,FALSE,1023,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
3705 MHal_SC_OP1_Pattern_customize_blcok(1,0,FALSE,FALSE,0,1023,0,E_XC_OP1_PATTERN_TYPE_PURE);
3706 MHal_SC_OP1_Pattern_customize_blcok(1,0,FALSE,TRUE,0,0,1023,E_XC_OP1_PATTERN_TYPE_PURE);
3707 MHal_SC_OP1_Pattern_customize_blcok(1,0,TRUE,FALSE,0,0,1023,E_XC_OP1_PATTERN_TYPE_PURE);
3708 MHal_SC_OP1_Pattern_customize_blcok(1,0,FALSE,FALSE,1023,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
3709 MHal_SC_OP1_Pattern_customize_blcok(1,0,FALSE,TRUE,0,1023,0,E_XC_OP1_PATTERN_TYPE_PURE);
3710 MHal_SC_OP1_Pattern_customize_blcok(1,0,TRUE,FALSE,0,1023,0,E_XC_OP1_PATTERN_TYPE_PURE);
3711 MHal_SC_OP1_Pattern_customize_blcok(1,0,FALSE,FALSE,0,0,1023,E_XC_OP1_PATTERN_TYPE_PURE);
3712 MHal_SC_OP1_Pattern_customize_blcok(1,0,FALSE,TRUE,1023,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
3713 }
3714
3715 MHal_SC_OP1_Pattern_sram_writedone();
3716 }
3717
MDrv_SC_OP1_Dotfade_Gray_Pattern(void * pInstance,MS_U16 u16HTileCnt,MS_U16 u16VTileCnt)3718 void MDrv_SC_OP1_Dotfade_Gray_Pattern(void *pInstance, MS_U16 u16HTileCnt, MS_U16 u16VTileCnt)
3719 {
3720 MS_U16 u16HTileSize = 0, u16VTileSize = 0;
3721 MS_U16 u16HTotalSize = 0, u16VTotalSize = 0;
3722 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
3723 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
3724 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
3725 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
3726
3727 //clear default pattern
3728 MHal_SC_OP1_Pattern_pure_color(0x00);
3729
3730 //disable border
3731 MHal_SC_OP1_Pattern_enable_border(FALSE,0x3FF,0x3FF,0x3FF);
3732
3733 MDrv_SC_OP1_Align_Width_Height(pInstance, u16HTileCnt, u16VTileCnt, &u16HTotalSize, &u16VTotalSize);
3734
3735 u16HTileSize = u16HTotalSize/u16HTileCnt;
3736 u16VTileSize = u16VTotalSize/u16VTileCnt;
3737 MHal_SC_OP1_PatGen_adjust_frame_size(u16HTotalSize, u16VTotalSize);
3738
3739 MHal_SC_OP1_Pattern_sram_writestart();
3740
3741 MHal_SC_OP1_Pattern_define_tile(u16HTileSize, u16VTileSize);
3742
3743 if (pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.bMirror)
3744 {
3745 MHal_SC_OP1_Pattern_set_dotfade_value(236, 236, 236);
3746 MHal_SC_OP1_Pattern_set_dotfade_overfollow_protection(TRUE, TRUE, TRUE);
3747 MHal_SC_OP1_Pattern_customize_blcok(8, 11, TRUE, TRUE, 1023, 1023, 1023, E_XC_OP1_PATTERN_TYPE_DOTFADE);
3748 }
3749 else
3750 {
3751 MHal_SC_OP1_Pattern_set_dotfade_value(18, 18, 18);
3752 MHal_SC_OP1_Pattern_set_dotfade_overfollow_protection(TRUE, TRUE, TRUE);
3753 MHal_SC_OP1_Pattern_customize_blcok(8, 11, TRUE, TRUE, 0, 0, 0, E_XC_OP1_PATTERN_TYPE_DOTFADE);
3754 }
3755
3756 MHal_SC_OP1_Pattern_sram_writedone();
3757
3758 }
3759
MDrv_SC_OP1_Calibratoin_Color_Dotfade_Pattern(void * pInstance,MS_U16 u16HTileCnt,MS_U16 u16VTileCnt)3760 void MDrv_SC_OP1_Calibratoin_Color_Dotfade_Pattern(void *pInstance, MS_U16 u16HTileCnt, MS_U16 u16VTileCnt)
3761 {
3762 MS_U16 u16HTileSize = 0, u16VTileSize = 0;
3763 MS_U16 u16HTotalSize = 0, u16VTotalSize = 0;
3764 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
3765 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
3766 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
3767 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
3768
3769 //clear default pattern
3770 MHal_SC_OP1_Pattern_pure_color(0x00);
3771
3772 //disable border
3773 MHal_SC_OP1_Pattern_enable_border(FALSE,0x3FF,0x3FF,0x3FF);
3774
3775 MDrv_SC_OP1_Align_Width_Height(pInstance, u16HTileCnt, u16VTileCnt, &u16HTotalSize, &u16VTotalSize);
3776
3777 u16HTileSize = u16HTotalSize/u16HTileCnt;
3778 u16VTileSize = u16VTotalSize/u16VTileCnt;
3779 MHal_SC_OP1_PatGen_adjust_frame_size(u16HTotalSize, u16VTotalSize);
3780
3781 MHal_SC_OP1_Pattern_sram_writestart();
3782
3783 MHal_SC_OP1_Pattern_define_tile(u16HTileSize, u16VTileSize);
3784
3785 if (pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.bMirror)
3786 {
3787 //dotfade---------------------------------------------------------------------------------
3788 MHal_SC_OP1_Pattern_set_dotfade_value(236, 236, 236);
3789 MHal_SC_OP1_Pattern_set_dotfade_overfollow_protection(TRUE, TRUE, TRUE);
3790 MHal_SC_OP1_Pattern_customize_blcok(8,1, TRUE, TRUE, 1023, 1023, 1023, E_XC_OP1_PATTERN_TYPE_DOTFADE);
3791
3792 //entry8: black
3793 MHal_SC_OP1_Pattern_customize_blcok(1,1,TRUE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3794 //entry7: blue
3795 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3796 //entry6: red
3797 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3798 //entry5: pink
3799 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x00,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3800 //entry4: green
3801 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x3FF,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3802 //entry3: (0,255,255)
3803 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3804 //entry2: yellow
3805 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3806 //entry1: white
3807 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,TRUE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3808
3809 //
3810 MHal_SC_OP1_Pattern_customize_blcok(1,1,TRUE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3811 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3812 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3813 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3814 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3815 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3816 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3817 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,TRUE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3818
3819 MHal_SC_OP1_Pattern_customize_blcok(1,1,TRUE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3820 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3821 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3822 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3823 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3824 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3825 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3826 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,TRUE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3827
3828 MHal_SC_OP1_Pattern_customize_blcok(1,1,TRUE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3829 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3830 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3831 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3832 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3833 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3834 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3835 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,TRUE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3836
3837 MHal_SC_OP1_Pattern_customize_blcok(1,1,TRUE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3838 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3839 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3840 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3841 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3842 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3843 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3844 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,TRUE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3845 }
3846 else
3847 {
3848 MHal_SC_OP1_Pattern_customize_blcok(1,1,TRUE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3849 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3850 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3851 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3852 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3853 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3854 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3855 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,TRUE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3856
3857 MHal_SC_OP1_Pattern_customize_blcok(1,1,TRUE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3858 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3859 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3860 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3861 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3862 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3863 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3864 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,TRUE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3865
3866 MHal_SC_OP1_Pattern_customize_blcok(1,1,TRUE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3867 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3868 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3869 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3870 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3871 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3872 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3873 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,TRUE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3874
3875 MHal_SC_OP1_Pattern_customize_blcok(1,1,TRUE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3876 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3877 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3878 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3879 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3880 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3881 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00, 0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3882 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,TRUE,0x3FF, 0x3FF, 0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3883
3884 //entry1: white
3885 MHal_SC_OP1_Pattern_customize_blcok(1,1,TRUE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3886 //entry2: yellow
3887 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x3FF,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3888 //entry3: (0,255,255)
3889 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3890 //entry4: green
3891 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x3FF,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3892 //entry5: pink
3893 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x00,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3894 //entry6: red
3895 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x3FF, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3896 //entry7: blue
3897 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0x00, 0x00,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
3898 //entry8: black
3899 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
3900
3901 //dotfade---------------------------------------------------------------------------------
3902 MHal_SC_OP1_Pattern_set_dotfade_value(18, 18, 18);
3903 MHal_SC_OP1_Pattern_set_dotfade_overfollow_protection(TRUE, TRUE, TRUE);
3904 MHal_SC_OP1_Pattern_customize_blcok(8,1, TRUE, TRUE, 0, 0, 0, E_XC_OP1_PATTERN_TYPE_DOTFADE);
3905 }
3906
3907 MHal_SC_OP1_Pattern_sram_writedone();
3908
3909 }
3910
MDrv_SC_OP1_Set_Border_Type(MS_U8 * u8GetType,MS_U8 u8Type1,MS_U8 u8Type2,MS_U8 u8Type3,MS_U8 u8Type4,MS_U8 u8Type5)3911 void MDrv_SC_OP1_Set_Border_Type(MS_U8 *u8GetType, MS_U8 u8Type1, MS_U8 u8Type2, MS_U8 u8Type3, MS_U8 u8Type4, MS_U8 u8Type5)
3912 {
3913 u8GetType[0] = u8Type1;
3914 u8GetType[1] = u8Type2;
3915 u8GetType[2] = u8Type3;
3916 u8GetType[3] = u8Type4;
3917 u8GetType[4] = u8Type5;
3918 }
3919
MDrv_SC_OP1_Set_Border_Val(MS_U8 u8BoldValType,MS_U8 u8ValType)3920 XC_OP1_PatGen_Border MDrv_SC_OP1_Set_Border_Val(MS_U8 u8BoldValType, MS_U8 u8ValType)
3921 {
3922 XC_OP1_PatGen_Border tile;
3923 memset(&tile , 0 , sizeof(XC_OP1_PatGen_Border));
3924
3925 switch(u8BoldValType)
3926 {
3927 case 0:
3928 tile.u8TopBold = 1;
3929 tile.u8BottomBold =1;
3930 tile.u8LeftBold =1;
3931 tile.u8RightBold =1;
3932 break;
3933 case 1:
3934 tile.u8TopBold = 1;
3935 tile.u8BottomBold =1;
3936 tile.u8LeftBold =3;
3937 tile.u8RightBold =1;
3938
3939 break;
3940 case 2:
3941 tile.u8TopBold = 3;
3942 tile.u8BottomBold =1;
3943 tile.u8LeftBold =1;
3944 tile.u8RightBold =1;
3945
3946 break;
3947 case 3:
3948 tile.u8TopBold = 1;
3949 tile.u8BottomBold =1;
3950 tile.u8LeftBold =1;
3951 tile.u8RightBold =3;
3952
3953 break;
3954 case 4:
3955 tile.u8TopBold = 1;
3956 tile.u8BottomBold =3;
3957 tile.u8LeftBold =1;
3958 tile.u8RightBold =1;
3959
3960 break;
3961 case 5:
3962 tile.u8TopBold = 3;
3963 tile.u8BottomBold =1;
3964 tile.u8LeftBold =3;
3965 tile.u8RightBold =1;
3966
3967 break;
3968 case 6:
3969 tile.u8TopBold = 3;
3970 tile.u8BottomBold =1;
3971 tile.u8LeftBold =1;
3972 tile.u8RightBold =3;
3973
3974 break;
3975 case 7:
3976 tile.u8TopBold = 1;
3977 tile.u8BottomBold =3;
3978 tile.u8LeftBold =1;
3979 tile.u8RightBold =3;
3980
3981 break;
3982 case 8:
3983 tile.u8TopBold = 1;
3984 tile.u8BottomBold =3;
3985 tile.u8LeftBold =3;
3986 tile.u8RightBold =1;
3987
3988 break;
3989 case 9:
3990 tile.u8TopBold = 3;
3991 tile.u8BottomBold =3;
3992 tile.u8LeftBold =1;
3993 tile.u8RightBold =1;
3994
3995 break;
3996 case 10:
3997 tile.u8TopBold = 1;
3998 tile.u8BottomBold =1;
3999 tile.u8LeftBold =3;
4000 tile.u8RightBold =3;
4001
4002 break;
4003 case 11:
4004 tile.u8TopBold = 3;
4005 tile.u8BottomBold =1;
4006 tile.u8LeftBold =3;
4007 tile.u8RightBold =3;
4008
4009 case 12:
4010 tile.u8TopBold = 3;
4011 tile.u8BottomBold =3;
4012 tile.u8LeftBold =1;
4013 tile.u8RightBold =3;
4014
4015 break;
4016 case 13:
4017 tile.u8TopBold = 1;
4018 tile.u8BottomBold =3;
4019 tile.u8LeftBold =3;
4020 tile.u8RightBold =3;
4021
4022 break;
4023 case 14:
4024 tile.u8TopBold = 3;
4025 tile.u8BottomBold =3;
4026 tile.u8LeftBold =3;
4027 tile.u8RightBold =1;
4028
4029 break;
4030
4031 case 15:
4032 tile.u8TopBold = 3;
4033 tile.u8BottomBold =3;
4034 tile.u8LeftBold =3;
4035 tile.u8RightBold =3;
4036
4037 break;
4038
4039 default:
4040 tile.u8TopBold = 1;
4041 tile.u8BottomBold =1;
4042 tile.u8LeftBold =1;
4043 tile.u8RightBold =1;
4044 break;
4045 }
4046
4047 switch(u8ValType)
4048 {
4049 case 0:
4050 tile.bTop = 0;
4051 tile.bBottom =0;
4052 tile.bLeft =0;
4053 tile.bRight =0;
4054 break;
4055 case 1:
4056 tile.bTop = 0;
4057 tile.bBottom =0;
4058 tile.bLeft =1;
4059 tile.bRight =0;
4060 break;
4061 case 2:
4062 tile.bTop = 1;
4063 tile.bBottom =0;
4064 tile.bLeft =0;
4065 tile.bRight =0;
4066 break;
4067 case 3:
4068 tile.bTop = 0;
4069 tile.bBottom =0;
4070 tile.bLeft =0;
4071 tile.bRight =1;
4072 break;
4073 case 4:
4074 tile.bTop = 0;
4075 tile.bBottom =1;
4076 tile.bLeft =0;
4077 tile.bRight =0;
4078 break;
4079 case 5:
4080 tile.bTop = 1;
4081 tile.bBottom =0;
4082 tile.bLeft =1;
4083 tile.bRight =0;
4084 break;
4085 case 6:
4086 tile.bTop = 1;
4087 tile.bBottom =0;
4088 tile.bLeft =0;
4089 tile.bRight =1;
4090 break;
4091 case 7:
4092 tile.bTop = 0;
4093 tile.bBottom =1;
4094 tile.bLeft =0;
4095 tile.bRight =1;
4096 break;
4097 case 8:
4098 tile.bTop = 0;
4099 tile.bBottom =1;
4100 tile.bLeft =1;
4101 tile.bRight =0;
4102 break;
4103 case 9:
4104 tile.bTop = 1;
4105 tile.bBottom =1;
4106 tile.bLeft =0;
4107 tile.bRight =0;
4108 break;
4109 case 10:
4110 tile.bTop = 0;
4111 tile.bBottom =0;
4112 tile.bLeft =1;
4113 tile.bRight =1;
4114 break;
4115 case 11:
4116 tile.bTop = 1;
4117 tile.bBottom =0;
4118 tile.bLeft =1;
4119 tile.bRight =1;
4120 break;
4121 case 12:
4122 tile.bTop = 1;
4123 tile.bBottom =1;
4124 tile.bLeft =0;
4125 tile.bRight =1;
4126 break;
4127 case 13:
4128 tile.bTop = 0;
4129 tile.bBottom =1;
4130 tile.bLeft =1;
4131 tile.bRight =1;
4132 break;
4133 case 14:
4134 tile.bTop = 1;
4135 tile.bBottom =1;
4136 tile.bLeft =1;
4137 tile.bRight =0;
4138 break;
4139
4140 case 15:
4141 tile.bTop = 1;
4142 tile.bBottom =1;
4143 tile.bLeft =1;
4144 tile.bRight =1;
4145 break;
4146
4147 default:
4148 tile.bTop = 0;
4149 tile.bBottom =0;
4150 tile.bLeft =0;
4151 tile.bRight =0;
4152 break;
4153 }
4154
4155 return tile;
4156 }
4157
MDrv_SC_OP1_Set_Border_Sram(MS_U8 * u8BoldValType,MS_U8 * u8ValType)4158 void MDrv_SC_OP1_Set_Border_Sram(MS_U8 *u8BoldValType, MS_U8 *u8ValType)
4159 {
4160 XC_OP1_PatGen_Border tile1,tile2,tile3,tile4,tile5;
4161
4162 tile1 = MDrv_SC_OP1_Set_Border_Val(u8BoldValType[0], u8ValType[0]);
4163 tile2 = MDrv_SC_OP1_Set_Border_Val(u8BoldValType[1], u8ValType[1]);
4164 tile3 = MDrv_SC_OP1_Set_Border_Val(u8BoldValType[2], u8ValType[2]);
4165 tile4 = MDrv_SC_OP1_Set_Border_Val(u8BoldValType[3], u8ValType[3]);
4166 tile5 = MDrv_SC_OP1_Set_Border_Val(u8BoldValType[4], u8ValType[4]);
4167
4168 MHal_SC_OP1_Pattern_set_border_sram(tile1, tile2, tile3, tile4, tile5);
4169 }
4170
MDrv_SC_OP1_Set_Pattern2_Border(void * pInstance)4171 void MDrv_SC_OP1_Set_Pattern2_Border(void *pInstance)
4172 {
4173 MS_U8 u8BoldValType[5] = {0};
4174 MS_U8 u8ValType[5] = {0};
4175 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
4176 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
4177 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
4178 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
4179
4180 MHal_SC_OP1_Pattern_enable_border(TRUE,0x3FF,0x3FF,0x3FF);
4181
4182 if (pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.bMirror)
4183 { //mirror mode
4184
4185 //0~50
4186 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
4187 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4188
4189 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
4190 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4191
4192 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
4193 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4194
4195 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,13,13,13,13);
4196 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4197
4198 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
4199 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4200
4201 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
4202 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4203
4204 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,15,15,15);
4205 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4206
4207 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,15,15);
4208 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4209
4210 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,15,15);
4211 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4212
4213 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,15,15);
4214 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4215
4216 //51~100
4217 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,15,15);
4218 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4219
4220 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,15,15);
4221 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4222
4223 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,15,5);
4224 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4225
4226 MDrv_SC_OP1_Set_Border_Type(u8ValType,2,6,5,2,2);
4227 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4228
4229 MDrv_SC_OP1_Set_Border_Type(u8ValType,2,2,2,2,2);
4230 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4231
4232 MDrv_SC_OP1_Set_Border_Type(u8ValType,2,6,5,2,6);
4233 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4234
4235 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);
4236 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4237
4238 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
4239 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4240
4241 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
4242 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4243
4244 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);
4245 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4246
4247 //101~150
4248 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
4249 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4250
4251 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);
4252 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4253
4254 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);
4255 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4256
4257 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
4258 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4259
4260 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
4261 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4262
4263 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);
4264 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4265
4266 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
4267 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4268
4269 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
4270 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4271
4272 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);
4273 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4274
4275 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
4276 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4277
4278 //151~200
4279 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
4280 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4281
4282 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);
4283 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4284
4285 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);
4286 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4287
4288 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
4289 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4290
4291 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
4292 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4293
4294 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,8,4,7,8);
4295 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4296
4297 MDrv_SC_OP1_Set_Border_Type(u8ValType,4,4,4,4,4);
4298 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4299
4300 MDrv_SC_OP1_Set_Border_Type(u8ValType,4,4,4,7,8);
4301 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4302
4303 MDrv_SC_OP1_Set_Border_Type(u8ValType,4,7,11,11,11);
4304 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4305
4306 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
4307 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4308
4309 //201~250
4310 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
4311 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4312
4313 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,13,13);
4314 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4315
4316 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
4317 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4318
4319 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
4320 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4321
4322 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,5);
4323 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4324
4325 MDrv_SC_OP1_Set_Border_Type(u8ValType,2,6,5,2,2);
4326 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4327
4328 MDrv_SC_OP1_Set_Border_Type(u8ValType,2,2,2,2,2);
4329 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4330
4331 MDrv_SC_OP1_Set_Border_Type(u8ValType,2,6,5,2,6);
4332 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4333
4334 MDrv_SC_OP1_Set_Border_Type(u8ValType,8,4,7,1,0);
4335 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4336
4337 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
4338 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4339
4340 //251~300
4341 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
4342 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4343
4344 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,5,2,6,1);
4345 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4346
4347 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
4348 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4349
4350 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);
4351 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4352
4353 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);
4354 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4355
4356 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
4357 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4358
4359 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
4360 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4361
4362 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,8,4);
4363 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4364
4365 MDrv_SC_OP1_Set_Border_Type(u8ValType,7,1,0,0,0);
4366 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4367
4368 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
4369 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4370
4371 //301~350
4372 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,5);
4373 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4374
4375 MDrv_SC_OP1_Set_Border_Type(u8ValType,2,6,1,0,0);
4376 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4377
4378 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
4379 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4380
4381 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);
4382 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4383
4384 MDrv_SC_OP1_Set_Border_Type(u8ValType,8,4,7,8,4);
4385 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4386
4387 MDrv_SC_OP1_Set_Border_Type(u8ValType,4,4,4,4,4);
4388 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4389
4390 MDrv_SC_OP1_Set_Border_Type(u8ValType,4,4,7,8,4);
4391 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4392
4393 MDrv_SC_OP1_Set_Border_Type(u8ValType,7,15,15,15,15);
4394 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4395
4396 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,15,15);
4397 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4398
4399 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,15,15);
4400 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4401
4402 //351~400
4403 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,11,11,11);
4404 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4405
4406 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
4407 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4408
4409 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
4410 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4411
4412 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,13,13);
4413 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4414
4415 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
4416 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4417
4418 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
4419 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4420
4421 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,15);
4422 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4423
4424 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,15,15);
4425 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4426
4427 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,15,15);
4428 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4429
4430 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,15,15);
4431 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4432
4433 //401~432
4434 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
4435 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4436
4437 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
4438 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4439
4440 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
4441 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4442
4443 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,13,13,13,13);
4444 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4445
4446 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
4447 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4448
4449 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
4450 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4451
4452 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,0,0,0);
4453 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4454 }
4455 else
4456 {
4457 //0~50
4458 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
4459 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4460
4461 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
4462 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4463
4464 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
4465 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4466
4467 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,13,13,13,13);
4468 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4469
4470 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
4471 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4472
4473 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
4474 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4475
4476 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,15,15,15);
4477 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4478
4479 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,15,15);
4480 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4481
4482 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,15,15);
4483 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4484
4485 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,11,11);
4486 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4487
4488 //51~100
4489 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
4490 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4491
4492 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
4493 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4494
4495 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,13);
4496 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4497
4498 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
4499 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4500
4501 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
4502 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4503
4504 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
4505 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4506
4507 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,15,15);
4508 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4509
4510 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,15,15);
4511 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4512
4513 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,15,15);
4514 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4515
4516 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,5,2,6,5);
4517 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4518
4519 //101~150
4520 MDrv_SC_OP1_Set_Border_Type(u8ValType,2,2,2,2,2);
4521 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4522
4523 MDrv_SC_OP1_Set_Border_Type(u8ValType,2,2,2,6,5);
4524 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4525
4526 MDrv_SC_OP1_Set_Border_Type(u8ValType,2,6,1,0,3);
4527 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4528
4529 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
4530 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4531
4532 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
4533 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4534
4535 MDrv_SC_OP1_Set_Border_Type(u8ValType,8,4,7,1,0);
4536 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4537
4538 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
4539 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4540
4541 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
4542 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4543
4544 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,5,2,6,1);
4545 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4546
4547 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
4548 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4549
4550 //151~200
4551 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
4552 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4553
4554 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);
4555 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4556
4557 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);
4558 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4559
4560 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
4561 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4562
4563 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,8,4);
4564 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4565
4566 MDrv_SC_OP1_Set_Border_Type(u8ValType,7,1,0,3,1);
4567 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4568
4569 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
4570 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4571
4572 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,5);
4573 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4574
4575 MDrv_SC_OP1_Set_Border_Type(u8ValType,2,6,8,4,7);
4576 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4577
4578 MDrv_SC_OP1_Set_Border_Type(u8ValType,8,4,4,4,4);
4579 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4580
4581 //201~250
4582 MDrv_SC_OP1_Set_Border_Type(u8ValType,4,4,4,4,7);
4583 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4584
4585 MDrv_SC_OP1_Set_Border_Type(u8ValType,8,4,7,11,11);
4586 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4587
4588 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
4589 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4590
4591 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
4592 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4593
4594 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,13);
4595 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4596
4597 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
4598 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4599
4600 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
4601 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4602
4603 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
4604 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4605
4606 MDrv_SC_OP1_Set_Border_Type(u8ValType,5,2,6,5,2);
4607 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4608
4609 MDrv_SC_OP1_Set_Border_Type(u8ValType,2,2,2,2,2);
4610 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4611
4612 //251~300
4613 MDrv_SC_OP1_Set_Border_Type(u8ValType,2,2,6,5,2);
4614 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4615
4616 MDrv_SC_OP1_Set_Border_Type(u8ValType,6,1,0,3,1);// 1
4617 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4618
4619 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
4620 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4621
4622 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);
4623 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4624
4625 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);// 2
4626 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4627
4628 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
4629 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4630
4631 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
4632 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4633
4634 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);// 3
4635 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4636
4637 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
4638 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4639
4640 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
4641 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4642
4643 //301~350
4644 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);// 4
4645 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4646
4647 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
4648 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4649
4650 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
4651 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4652
4653 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);
4654 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4655
4656 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);// 5
4657 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4658
4659 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
4660 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4661
4662 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
4663 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4664
4665 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);// 6
4666 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4667
4668 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
4669 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4670
4671 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);
4672 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4673
4674 //351~400
4675 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,8,4,7);
4676 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4677
4678 MDrv_SC_OP1_Set_Border_Type(u8ValType,8,4,4,4,4);
4679 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4680
4681 MDrv_SC_OP1_Set_Border_Type(u8ValType,4,4,4,4,7);
4682 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4683
4684 MDrv_SC_OP1_Set_Border_Type(u8ValType,8,4,7,15,15);
4685 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4686
4687 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,15,15);
4688 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4689
4690 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,15,15);
4691 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4692
4693 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,15,15);
4694 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4695
4696 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,15,15);
4697 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4698
4699 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,15,15);
4700 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4701
4702 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,15,15,15,11);
4703 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4704
4705 //401~432
4706 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
4707 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4708
4709 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
4710 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4711
4712 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
4713 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4714
4715 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,13,13,13,13);
4716 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4717
4718 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
4719 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4720
4721 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
4722 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4723
4724 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,0,0,0);
4725 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
4726
4727 }
4728 }
4729
MDrv_SC_OP1_1_Pattern(void * pInstance,MS_U16 u16HTileCnt,MS_U16 u16VTileCnt)4730 void MDrv_SC_OP1_1_Pattern(void *pInstance, MS_U16 u16HTileCnt, MS_U16 u16VTileCnt)
4731 {
4732 MS_U16 u16HTileSize = 0, u16VTileSize = 0;
4733 MS_U16 u16HTotalSize = 0, u16VTotalSize = 0;
4734 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
4735 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
4736 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
4737 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
4738
4739 //clear default pattern
4740 MHal_SC_OP1_Pattern_pure_color(0x00);
4741
4742 //disable border
4743 MHal_SC_OP1_Pattern_enable_border(FALSE,0x3FF,0x3FF,0x3FF);
4744
4745 if ((pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16Width < 1900)
4746 && (pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16Height < 1000))
4747 {
4748 // For special pattern!!!! HD/FHD use different tile cnt !!!!
4749 u16HTileCnt = 20;
4750 u16VTileCnt = 18;
4751 }
4752
4753 MDrv_SC_OP1_Align_Width_Height(pInstance, u16HTileCnt, u16VTileCnt, &u16HTotalSize, &u16VTotalSize);
4754
4755 u16HTileSize = u16HTotalSize/u16HTileCnt;
4756 u16VTileSize = u16VTotalSize/u16VTileCnt;
4757 MHal_SC_OP1_PatGen_adjust_frame_size(u16HTotalSize, u16VTotalSize);
4758
4759 MHal_SC_OP1_Pattern_sram_writestart();
4760
4761 MHal_SC_OP1_Pattern_define_tile(u16HTileSize, u16VTileSize);
4762
4763 if ((pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16Width > 1900)
4764 && (pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.stPanelInfo.u16Height > 1000))
4765 {
4766 // FHD case
4767 MHal_SC_OP1_Pattern_customize_blcok(48,15,TRUE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4768 MHal_SC_OP1_Pattern_customize_blcok(48,15,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4769 MHal_SC_OP1_Pattern_customize_blcok(48,15,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4770 MHal_SC_OP1_Pattern_customize_blcok(48,15,FALSE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4771
4772 MHal_SC_OP1_Pattern_customize_blcok(12,10,TRUE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4773 MHal_SC_OP1_Pattern_customize_blcok(42,10,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4774 MHal_SC_OP1_Pattern_customize_blcok(42,10,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4775 MHal_SC_OP1_Pattern_customize_blcok(42,10,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4776 MHal_SC_OP1_Pattern_customize_blcok(42,10,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4777 MHal_SC_OP1_Pattern_customize_blcok(12,10,FALSE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4778
4779 MHal_SC_OP1_Pattern_customize_blcok(12,11,TRUE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4780 MHal_SC_OP1_Pattern_customize_blcok(9,11,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4781 MHal_SC_OP1_Pattern_customize_blcok(6,11,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4782 MHal_SC_OP1_Pattern_customize_blcok(42,11,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4783 MHal_SC_OP1_Pattern_customize_blcok(6,11,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4784 MHal_SC_OP1_Pattern_customize_blcok(42,11,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4785 MHal_SC_OP1_Pattern_customize_blcok(6,11,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4786 MHal_SC_OP1_Pattern_customize_blcok(42,11,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4787 MHal_SC_OP1_Pattern_customize_blcok(6,11,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4788 MHal_SC_OP1_Pattern_customize_blcok(9,11,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4789 MHal_SC_OP1_Pattern_customize_blcok(12,11,FALSE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4790
4791 MHal_SC_OP1_Pattern_customize_blcok(12,37,TRUE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4792 MHal_SC_OP1_Pattern_customize_blcok(42,37,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4793 MHal_SC_OP1_Pattern_customize_blcok(42,37,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4794 MHal_SC_OP1_Pattern_customize_blcok(42,37,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4795 MHal_SC_OP1_Pattern_customize_blcok(42,37,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4796 MHal_SC_OP1_Pattern_customize_blcok(12,37,FALSE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4797
4798 MHal_SC_OP1_Pattern_customize_blcok(12,11,TRUE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4799 MHal_SC_OP1_Pattern_customize_blcok(9,11,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4800 MHal_SC_OP1_Pattern_customize_blcok(6,11,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4801 MHal_SC_OP1_Pattern_customize_blcok(42,11,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4802 MHal_SC_OP1_Pattern_customize_blcok(6,11,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4803 MHal_SC_OP1_Pattern_customize_blcok(42,11,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4804 MHal_SC_OP1_Pattern_customize_blcok(6,11,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4805 MHal_SC_OP1_Pattern_customize_blcok(42,11,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4806 MHal_SC_OP1_Pattern_customize_blcok(6,11,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4807 MHal_SC_OP1_Pattern_customize_blcok(9,11,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4808 MHal_SC_OP1_Pattern_customize_blcok(12,11,FALSE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4809
4810 MHal_SC_OP1_Pattern_customize_blcok(12,37,TRUE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4811 MHal_SC_OP1_Pattern_customize_blcok(42,37,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4812 MHal_SC_OP1_Pattern_customize_blcok(42,37,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4813 MHal_SC_OP1_Pattern_customize_blcok(42,37,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4814 MHal_SC_OP1_Pattern_customize_blcok(42,37,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4815 MHal_SC_OP1_Pattern_customize_blcok(12,37,FALSE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4816
4817 MHal_SC_OP1_Pattern_customize_blcok(12,11,TRUE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4818 MHal_SC_OP1_Pattern_customize_blcok(9,11,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4819 MHal_SC_OP1_Pattern_customize_blcok(6,11,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4820 MHal_SC_OP1_Pattern_customize_blcok(42,11,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4821 MHal_SC_OP1_Pattern_customize_blcok(6,11,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4822 MHal_SC_OP1_Pattern_customize_blcok(42,11,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4823 MHal_SC_OP1_Pattern_customize_blcok(6,11,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4824 MHal_SC_OP1_Pattern_customize_blcok(42,11,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4825 MHal_SC_OP1_Pattern_customize_blcok(6,11,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4826 MHal_SC_OP1_Pattern_customize_blcok(9,11,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4827 MHal_SC_OP1_Pattern_customize_blcok(12,11,FALSE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4828
4829 MHal_SC_OP1_Pattern_customize_blcok(12,37,TRUE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4830 MHal_SC_OP1_Pattern_customize_blcok(42,37,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4831 MHal_SC_OP1_Pattern_customize_blcok(42,37,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4832 MHal_SC_OP1_Pattern_customize_blcok(42,37,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4833 MHal_SC_OP1_Pattern_customize_blcok(42,37,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4834 MHal_SC_OP1_Pattern_customize_blcok(12,37,FALSE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4835
4836 MHal_SC_OP1_Pattern_customize_blcok(12,11,TRUE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4837 MHal_SC_OP1_Pattern_customize_blcok(9,11,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4838 MHal_SC_OP1_Pattern_customize_blcok(6,11,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4839 MHal_SC_OP1_Pattern_customize_blcok(42,11,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4840 MHal_SC_OP1_Pattern_customize_blcok(6,11,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4841 MHal_SC_OP1_Pattern_customize_blcok(42,11,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4842 MHal_SC_OP1_Pattern_customize_blcok(6,11,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4843 MHal_SC_OP1_Pattern_customize_blcok(42,11,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4844 MHal_SC_OP1_Pattern_customize_blcok(6,11,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4845 MHal_SC_OP1_Pattern_customize_blcok(9,11,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4846 MHal_SC_OP1_Pattern_customize_blcok(12,11,FALSE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4847
4848
4849 MHal_SC_OP1_Pattern_customize_blcok(12,10,TRUE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4850 MHal_SC_OP1_Pattern_customize_blcok(42,10,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4851 MHal_SC_OP1_Pattern_customize_blcok(42,10,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4852 MHal_SC_OP1_Pattern_customize_blcok(42,10,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4853 MHal_SC_OP1_Pattern_customize_blcok(42,10,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4854 MHal_SC_OP1_Pattern_customize_blcok(12,10,FALSE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4855
4856 MHal_SC_OP1_Pattern_customize_blcok(48,15,TRUE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4857 MHal_SC_OP1_Pattern_customize_blcok(48,15,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4858 MHal_SC_OP1_Pattern_customize_blcok(48,15,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4859 MHal_SC_OP1_Pattern_customize_blcok(48,15,FALSE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4860
4861 }
4862 else
4863 {
4864 // HD case
4865 MHal_SC_OP1_Pattern_customize_blcok(0x14,0x00,TRUE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4866
4867 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,TRUE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4868 MHal_SC_OP1_Pattern_customize_blcok(0x12,0x00,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4869 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4870
4871 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,TRUE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4872 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4873 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4874 MHal_SC_OP1_Pattern_customize_blcok(0x04,0x00,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4875 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4876 MHal_SC_OP1_Pattern_customize_blcok(0x04,0x00,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4877 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4878 MHal_SC_OP1_Pattern_customize_blcok(0x04,0x00,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4879 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4880 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4881 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4882
4883 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x02,TRUE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4884 MHal_SC_OP1_Pattern_customize_blcok(0x12,0x02,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4885 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x02,FALSE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4886
4887 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,TRUE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4888 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4889 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4890 MHal_SC_OP1_Pattern_customize_blcok(0x04,0x00,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4891 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4892 MHal_SC_OP1_Pattern_customize_blcok(0x04,0x00,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4893 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4894 MHal_SC_OP1_Pattern_customize_blcok(0x04,0x00,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4895 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4896 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4897 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4898
4899 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x03,TRUE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4900 MHal_SC_OP1_Pattern_customize_blcok(0x12,0x03,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4901 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x03,FALSE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4902
4903 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,TRUE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4904 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4905 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4906 MHal_SC_OP1_Pattern_customize_blcok(0x04,0x00,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4907 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4908 MHal_SC_OP1_Pattern_customize_blcok(0x04,0x00,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4909 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4910 MHal_SC_OP1_Pattern_customize_blcok(0x04,0x00,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4911 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4912 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4913 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4914
4915 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x02,TRUE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4916 MHal_SC_OP1_Pattern_customize_blcok(0x12,0x02,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4917 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x02,FALSE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4918
4919 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,TRUE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4920 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4921 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4922 MHal_SC_OP1_Pattern_customize_blcok(0x04,0x00,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4923 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4924 MHal_SC_OP1_Pattern_customize_blcok(0x04,0x00,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4925 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4926 MHal_SC_OP1_Pattern_customize_blcok(0x04,0x00,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4927 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4928 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4929 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4930
4931 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,TRUE,FALSE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4932 MHal_SC_OP1_Pattern_customize_blcok(0x12,0x00,FALSE,FALSE,0x3FF, 0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
4933 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4934
4935 MHal_SC_OP1_Pattern_customize_blcok(0x14,0x00,TRUE,TRUE,0x00, 0x00,0x00,E_XC_OP1_PATTERN_TYPE_PURE);
4936 }
4937
4938 MHal_SC_OP1_Pattern_sram_writedone();
4939
4940 }
4941
MDrv_SC_OP1_2_Pattern(void * pInstance,MS_U16 u16HTileCnt,MS_U16 u16VTileCnt)4942 void MDrv_SC_OP1_2_Pattern(void *pInstance, MS_U16 u16HTileCnt, MS_U16 u16VTileCnt)
4943 {
4944 MS_U16 u16HTileSize = 0, u16VTileSize = 0;
4945 MS_U16 u16HTotalSize = 0, u16VTotalSize = 0;
4946 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
4947 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
4948 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
4949 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
4950
4951 //clear default pattern
4952 MHal_SC_OP1_Pattern_pure_color(0x00);
4953
4954 //disable border
4955 MHal_SC_OP1_Pattern_enable_border(FALSE,0x3FF,0x3FF,0x3FF);
4956
4957 MDrv_SC_OP1_Align_Width_Height(pInstance, u16HTileCnt, u16VTileCnt, &u16HTotalSize, &u16VTotalSize);
4958
4959 u16HTileSize = u16HTotalSize/u16HTileCnt;
4960 u16VTileSize = u16VTotalSize/u16VTileCnt;
4961 MHal_SC_OP1_PatGen_adjust_frame_size(u16HTotalSize, u16VTotalSize);
4962
4963 MHal_SC_OP1_Pattern_sram_writestart();
4964
4965 MHal_SC_OP1_Pattern_define_tile(u16HTileSize, u16VTileSize);
4966
4967 if (pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.bMirror)
4968 {
4969 //Fade: 3
4970 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,TRUE,FALSE,((255)<<2),((255)<<2),((255)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
4971 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((255)<<2),((255)<<2),((255)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
4972 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((242)<<2),((238)<<2),((239)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
4973 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((242)<<2),((238)<<2),((239)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
4974 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((226)<<2),((226)<<2),((226)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
4975 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((226)<<2),((226)<<2),((226)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
4976 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((217)<<2),((213)<<2),((214)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
4977 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((217)<<2),((213)<<2),((214)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
4978 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((79)<<2),((79)<<2),((79)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
4979 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((79)<<2),((79)<<2),((79)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
4980 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((56)<<2),((56)<<2),((56)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
4981 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((56)<<2),((56)<<2),((56)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
4982 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((37)<<2),((37)<<2),((37)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
4983 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((37)<<2),((37)<<2),((37)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
4984 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((1)<<2),((1)<<2),((1)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
4985 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,TRUE,((1)<<2),((1)<<2),((1)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
4986
4987 //Fade: 2
4988 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,TRUE,FALSE,(239)<<2, (88)<<2,(204)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
4989 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(233)<<2, (89)<<2,(239)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
4990 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(238)<<2, (73)<<2,(248)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
4991 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(249)<<2, (52)<<2,(254)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
4992 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(253)<<2, (2)<<2,(253)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
4993 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(0)<<2, (219)<<2,(223)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
4994 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(79)<<2, (209)<<2,(211)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
4995 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(82)<<2, (223)<<2,(230)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
4996 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(67)<<2, (229)<<2,(231)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
4997 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(44)<<2, (240)<<2,(238)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
4998 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(0)<<2, (255)<<2,(253)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
4999 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(221)<<2, (254)<<2,(22)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
5000 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(223)<<2, (252)<<2,(76)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
5001 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(255)<<2, (249)<<2,(80)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
5002 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(254)<<2, (248)<<2,(48)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
5003 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,TRUE,(255)<<2, (255)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
5004 //Fade: 1
5005 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,TRUE,FALSE,(255)<<2, (255)<<2,(255)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
5006 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(247)<<2, (247)<<2,(247)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
5007 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(229)<<2, (229)<<2,(229)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
5008 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(211)<<2, (211)<<2,(211)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
5009 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(194)<<2, (194)<<2,(194)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
5010 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(181)<<2, (181)<<2,(181)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
5011 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(160)<<2, (160)<<2,(160)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
5012 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(145)<<2, (145)<<2,(145)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
5013 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(128)<<2, (128)<<2,(128)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
5014 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(112)<<2, (112)<<2,(112)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
5015 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(97)<<2, (97)<<2,(97)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
5016 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(80)<<2, (80)<<2,(80)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
5017 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(64)<<2, (64)<<2,(64)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
5018 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(49)<<2, (49)<<2,(49)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
5019 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(19)<<2, (15)<<2,(12)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
5020 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,TRUE,(1)<<2, (1)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
5021
5022 //rigth pure block
5023 MHal_SC_OP1_Pattern_customize_blcok(0x03,0x07,TRUE,FALSE,0x13c, 0x28,0x1d5, E_XC_OP1_PATTERN_TYPE_PURE);
5024
5025 //middle pure block
5026 MHal_SC_OP1_Pattern_customize_blcok(0x0a,0x07,FALSE,FALSE,0x161, 0x161,0x161, E_XC_OP1_PATTERN_TYPE_PURE);
5027
5028 //left pure block
5029 MHal_SC_OP1_Pattern_customize_blcok(0x03,0x07,FALSE,TRUE,0x00, 0x1c9,0x2f2, E_XC_OP1_PATTERN_TYPE_PURE);
5030
5031
5032 //pure gray 55
5033 int i=0;
5034 for(i=0;i<16;i++)
5035 {
5036 if(i==0){
5037 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,TRUE,FALSE,0xDC, 0xDC,0xDC,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
5038 }else if (i==15)
5039 {
5040 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,TRUE,0xDC, 0xDC,0xDC,E_XC_OP1_PATTERN_TYPE_PURE);
5041 }else
5042 {
5043 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,0xDC, 0xDC,0xDC,E_XC_OP1_PATTERN_TYPE_PURE);
5044 }
5045 }
5046 //item:3
5047 //LineDot: right
5048 MHal_SC_OP1_Pattern_customize_blcok(3,1,TRUE,FALSE,0x470,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
5049 //end of linedot item 3-----------------------------------------------------------------------------
5050
5051
5052 //Pure between LineDot itme3
5053 MHal_SC_OP1_Pattern_customize_blcok(10,1,FALSE,FALSE,0x336, 0x336,0x336, E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
5054
5055
5056 //linedot item3--------------------------------------------------------------------------------------
5057 //LineDot : left
5058
5059 MHal_SC_OP1_Pattern_customize_blcok(3,1,FALSE,TRUE,0x7F0,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
5060
5061 //itme2
5062 //LineDot: right
5063 MHal_SC_OP1_Pattern_customize_blcok(3,2,TRUE,FALSE,0x570,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
5064
5065 //Pure between LineDot itme2
5066 MHal_SC_OP1_Pattern_customize_blcok(10,2,FALSE,FALSE,0x336, 0x336,0x336, E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
5067
5068 //linedot item2--------------------------------------------------------------------------------------
5069 //LineDot : left
5070 MHal_SC_OP1_Pattern_customize_blcok(3,2,FALSE,TRUE,0x7F0,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
5071
5072 //itme1:
5073 //LineDot: right
5074 MHal_SC_OP1_Pattern_customize_blcok(3,1,TRUE,FALSE,0x1F0,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
5075
5076 //Pure between LineDot item1
5077 MHal_SC_OP1_Pattern_customize_blcok(10,1,FALSE,FALSE,0x336, 0x336,0x336, E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
5078
5079 //linedot item1--------------------------------------------------------------------------------------
5080 //LineDot : left
5081 MHal_SC_OP1_Pattern_customize_blcok(3,1,FALSE,TRUE,0x7F0,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
5082
5083 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,TRUE,FALSE,(255)<<2, (255)<<2,(255)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
5084 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(241)<<2, (241)<<2,(241)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
5085 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(224)<<2, (224)<<2,(224)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
5086 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(205)<<2, (205)<<2,(205)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
5087 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(187)<<2, (187)<<2,(187)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
5088 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(172)<<2, (172)<<2,(172)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
5089 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(157)<<2, (157)<<2,(157)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
5090 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(139)<<2, (139)<<2,(139)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
5091 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(121)<<2, (121)<<2,(121)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
5092 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(106)<<2, (106)<<2,(106)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
5093 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(88)<<2, (88)<<2,(88)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
5094 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(71)<<2, (71)<<2,(71)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
5095 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(55)<<2, (55)<<2,(55)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
5096 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(37)<<2, (37)<<2,(37)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
5097 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(19)<<2, (19)<<2,(19)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
5098 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,TRUE,(1)<<2, (1)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
5099
5100 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,TRUE,FALSE,(0)<<2, (0)<<2,(254)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
5101 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(1)<<2, (1)<<2,(239)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
5102 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(1)<<2, (1)<<2,(223)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
5103 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(1)<<2, (0)<<2,(202)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
5104 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(1)<<2, (1)<<2,(187)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
5105 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(0)<<2, (0)<<2,(170)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
5106 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(1)<<2, (2)<<2,(154)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
5107 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(2)<<2, (0)<<2,(136)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
5108 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(0)<<2, (0)<<2,(120)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
5109 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(0)<<2, (2)<<2,(105)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
5110 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(2)<<2, (0)<<2,(84)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
5111 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(0)<<2, (0)<<2,(72)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
5112 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(3)<<2, (0)<<2,(57)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
5113 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(0)<<2, (1)<<2,(32)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
5114 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(0)<<2, (0)<<2,(20)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
5115 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,TRUE,(1)<<2, (1)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
5116
5117 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,TRUE,FALSE,(254)<<2, (0)<<2,(2)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
5118 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(240)<<2, (1)<<2,(4)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
5119 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(224)<<2, (0)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
5120 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(203)<<2, (0)<<2,(4)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
5121 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(185)<<2, (0)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
5122 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(171)<<2, (1)<<2,(2)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
5123 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(153)<<2, (1)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
5124 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(136)<<2, (0)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
5125 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(121)<<2, (1)<<2,(3)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
5126 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(105)<<2, (0)<<2,(4)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
5127 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(85)<<2, (1)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
5128 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(72)<<2, (0)<<2,(3)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
5129 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(56)<<2, (0)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
5130 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(36)<<2, (0)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
5131 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(21)<<2, (1)<<2,(2)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
5132 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,TRUE,(1)<<2, (1)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
5133
5134 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,TRUE,FALSE,((2)<<2),((255)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
5135 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((0)<<2),((242)<<2),((0)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
5136 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((3)<<2),((225)<<2),((0)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
5137 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((3)<<2),((204)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
5138 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((3)<<2),((186)<<2),((0)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
5139 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((1)<<2),((171)<<2),((4)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
5140 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((1)<<2),((156)<<2),((3)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
5141 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((2)<<2),((138)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
5142 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((1)<<2),((120)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
5143 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((0)<<2),((105)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
5144 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((2)<<2),((87)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
5145 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((2)<<2),((72)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
5146 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((0)<<2),((55)<<2),((0)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
5147 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((1)<<2),((36)<<2),((3)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
5148 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((0)<<2),((19)<<2),((0)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
5149 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,TRUE,((1)<<2),((1)<<2),((1)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
5150 }
5151 else
5152 {
5153 //Fade: Green
5154 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,TRUE,FALSE,((1)<<2),((1)<<2),((1)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
5155 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((0)<<2),((19)<<2),((0)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
5156 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((1)<<2),((36)<<2),((3)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
5157 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((0)<<2),((55)<<2),((0)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
5158 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((2)<<2),((72)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
5159 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((2)<<2),((87)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
5160 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((0)<<2),((105)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
5161 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((1)<<2),((120)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
5162 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((2)<<2),((138)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
5163 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((1)<<2),((156)<<2),((3)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
5164 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((1)<<2),((171)<<2),((4)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
5165 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((3)<<2),((186)<<2),((0)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
5166 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((3)<<2),((204)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
5167 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((3)<<2),((225)<<2),((0)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
5168 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((0)<<2),((242)<<2),((0)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
5169 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,TRUE,((2)<<2),((255)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
5170
5171
5172 //Fade: Red
5173 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,TRUE,FALSE,(1)<<2, (1)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
5174 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(21)<<2, (1)<<2,(2)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
5175 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(36)<<2, (0)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
5176 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(56)<<2, (0)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
5177 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(72)<<2, (0)<<2,(3)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
5178 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(85)<<2, (1)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
5179 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(105)<<2, (0)<<2,(4)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
5180 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(121)<<2, (1)<<2,(3)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
5181 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(136)<<2, (0)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
5182 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(153)<<2, (1)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
5183 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(171)<<2, (1)<<2,(2)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
5184 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(185)<<2, (0)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
5185 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(203)<<2, (0)<<2,(4)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
5186 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(224)<<2, (0)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
5187 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(240)<<2, (1)<<2,(4)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
5188 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,TRUE,(254)<<2, (0)<<2,(2)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
5189
5190 //Fade: Blue
5191 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,TRUE,FALSE,(1)<<2, (1)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
5192 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(0)<<2, (0)<<2,(20)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
5193 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(0)<<2, (1)<<2,(32)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
5194 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(3)<<2, (0)<<2,(57)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
5195 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(0)<<2, (0)<<2,(72)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
5196 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(2)<<2, (0)<<2,(84)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
5197 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(0)<<2, (2)<<2,(105)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
5198 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(0)<<2, (0)<<2,(120)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
5199 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(2)<<2, (0)<<2,(136)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
5200 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(1)<<2, (2)<<2,(154)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
5201 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(0)<<2, (0)<<2,(170)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
5202 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(1)<<2, (1)<<2,(187)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
5203 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(1)<<2, (0)<<2,(202)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
5204 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(1)<<2, (1)<<2,(223)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
5205 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,(1)<<2, (1)<<2,(239)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
5206 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,TRUE,(0)<<2, (0)<<2,(254)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
5207
5208
5209 //Fade: White
5210 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,TRUE,FALSE,(1)<<2, (1)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
5211 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(19)<<2, (19)<<2,(19)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
5212 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(37)<<2, (37)<<2,(37)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
5213 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(55)<<2, (55)<<2,(55)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
5214 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(71)<<2, (71)<<2,(71)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
5215 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(88)<<2, (88)<<2,(88)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
5216 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(106)<<2, (106)<<2,(106)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
5217 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(121)<<2, (121)<<2,(121)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
5218 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(139)<<2, (139)<<2,(139)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
5219 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(157)<<2, (157)<<2,(157)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
5220 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(172)<<2, (172)<<2,(172)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
5221 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(187)<<2, (187)<<2,(187)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
5222 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(205)<<2, (205)<<2,(205)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
5223 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(224)<<2, (224)<<2,(224)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
5224 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(241)<<2, (241)<<2,(241)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
5225 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,TRUE,(255)<<2, (255)<<2,(255)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
5226
5227 //linedot item1--------------------------------------------------------------------------------------
5228 //LineDot : left
5229 MHal_SC_OP1_Pattern_customize_blcok(3,1,TRUE,FALSE,0x7F0,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
5230
5231 //Pure between LineDot
5232 MHal_SC_OP1_Pattern_customize_blcok(10,1,FALSE,FALSE,0x336, 0x336,0x336, E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
5233
5234 //LineDot: right
5235 MHal_SC_OP1_Pattern_customize_blcok(3,1,FALSE,TRUE,0x0F0,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
5236
5237 //linedot item2--------------------------------------------------------------------------------------
5238 //LineDot : left
5239 MHal_SC_OP1_Pattern_customize_blcok(3,2,TRUE,FALSE,0x7F0,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
5240
5241 //Pure between LineDot
5242 MHal_SC_OP1_Pattern_customize_blcok(10,2,FALSE,FALSE,0x336, 0x336,0x336,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
5243
5244 //LineDot: right
5245 MHal_SC_OP1_Pattern_customize_blcok(3,2,FALSE,TRUE,0x570,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
5246
5247 //linedot item3--------------------------------------------------------------------------------------
5248 //LineDot : left
5249 MHal_SC_OP1_Pattern_customize_blcok(3,1,TRUE,FALSE,0x7F0,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
5250
5251 //Pure between LineDot
5252 MHal_SC_OP1_Pattern_customize_blcok(10,1,FALSE,FALSE,0x336, 0x336,0x336,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
5253
5254 //LineDot: right
5255 MHal_SC_OP1_Pattern_customize_blcok(3,1,FALSE,TRUE,0x470,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
5256
5257 //pure gray 55
5258 int i=0;
5259 for(i=0;i<16;i++)
5260 {
5261 if(i==0){
5262 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,TRUE,FALSE,0xDC, 0xDC,0xDC, E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
5263 }else if (i==15)
5264 {
5265 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,TRUE,0xDC, 0xDC,0xDC, E_XC_OP1_PATTERN_TYPE_PURE);
5266 }else
5267 {
5268 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,0xDC, 0xDC,0xDC, E_XC_OP1_PATTERN_TYPE_PURE);
5269 }
5270 }
5271
5272 //left pure block
5273 MHal_SC_OP1_Pattern_customize_blcok(0x03,0x07,TRUE,FALSE,0x00, 0x1c9,0x2f2,E_XC_OP1_PATTERN_TYPE_PURE);
5274 //middle pure block
5275 MHal_SC_OP1_Pattern_customize_blcok(0x0a,0x07,FALSE,FALSE,0x161, 0x161,0x161,E_XC_OP1_PATTERN_TYPE_PURE);
5276 //rigth pure block
5277 MHal_SC_OP1_Pattern_customize_blcok(0x03,0x07,FALSE,TRUE,0x13c, 0x28,0x1d5,E_XC_OP1_PATTERN_TYPE_PURE);
5278
5279 //Fade: 1
5280 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,TRUE,FALSE,(1)<<2, (1)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
5281 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(19)<<2, (15)<<2,(12)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
5282 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(49)<<2, (49)<<2,(49)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
5283 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(64)<<2, (64)<<2,(64)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
5284 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(80)<<2, (80)<<2,(80)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
5285 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(97)<<2, (97)<<2,(97)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
5286 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(112)<<2, (112)<<2,(112)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
5287 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(128)<<2, (128)<<2,(128)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
5288 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(145)<<2, (145)<<2,(145)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
5289 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(160)<<2, (160)<<2,(160)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
5290 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(181)<<2, (181)<<2,(181)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
5291 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(194)<<2, (194)<<2,(194)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
5292 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(211)<<2, (211)<<2,(211)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
5293 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(229)<<2, (229)<<2,(229)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
5294 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(247)<<2, (247)<<2,(247)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
5295 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,TRUE,(255)<<2, (255)<<2,(255)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
5296
5297
5298 //Fade: 2
5299 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,TRUE,FALSE,(255)<<2, (255)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
5300 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(254)<<2, (248)<<2,(48)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
5301 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(255)<<2, (249)<<2,(80)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
5302 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(223)<<2, (252)<<2,(76)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
5303 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(221)<<2, (254)<<2,(22)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
5304 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(0)<<2, (255)<<2,(253)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
5305 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(44)<<2, (240)<<2,(238)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
5306 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(67)<<2, (229)<<2,(231)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
5307 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(82)<<2, (223)<<2,(230)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
5308 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(79)<<2, (209)<<2,(211)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
5309 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(0)<<2, (219)<<2,(223)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
5310 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(253)<<2, (2)<<2,(253)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
5311 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(249)<<2, (52)<<2,(254)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
5312 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(238)<<2, (73)<<2,(248)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
5313 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,FALSE,(233)<<2, (89)<<2,(239)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
5314 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x00,FALSE,TRUE,(239)<<2, (88)<<2,(204)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
5315
5316 //Fade: 3
5317 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,TRUE,FALSE,((1)<<2),((1)<<2),((1)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
5318 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((1)<<2),((1)<<2),((1)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
5319 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((37)<<2),((37)<<2),((37)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
5320 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((37)<<2),((37)<<2),((37)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
5321 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((56)<<2),((56)<<2),((56)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
5322 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((56)<<2),((56)<<2),((56)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
5323 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((79)<<2),((79)<<2),((79)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
5324 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((79)<<2),((79)<<2),((79)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
5325 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((217)<<2),((213)<<2),((214)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
5326 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((217)<<2),((213)<<2),((214)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
5327 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((226)<<2),((226)<<2),((226)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
5328 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((226)<<2),((226)<<2),((226)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
5329 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((242)<<2),((238)<<2),((239)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
5330 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((242)<<2),((238)<<2),((239)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
5331 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,FALSE,((255)<<2),((255)<<2),((255)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
5332 MHal_SC_OP1_Pattern_customize_blcok(0x01,0x01,FALSE,TRUE,((255)<<2),((255)<<2),((255)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
5333
5334 }
5335
5336 MHal_SC_OP1_Pattern_sram_write_enable(FALSE);
5337
5338 MHal_SC_OP1_Pattern_sram_write_fastmode(FALSE);
5339
5340 MHal_SC_OP1_Pattern_set_wraddr(0x00);
5341
5342 //reg_sram_jump_thr
5343 MHal_SC_OP1_Pattern_set_jump_threshold(0x00);
5344
5345 MHal_SC_OP1_Pattern_sram_write_enable(TRUE);
5346
5347 MHal_SC_OP1_Pattern_sram_write_fastmode(TRUE);
5348
5349 //Write the border command to second SRAM
5350 MDrv_SC_OP1_Set_Pattern2_Border(pInstance);
5351
5352 MHal_SC_OP1_Pattern_sram_write_enable(FALSE);
5353
5354 MHal_SC_OP1_Pattern_sram_write_fastmode(FALSE);
5355
5356 MHal_SC_OP1_Pattern_sram_writedone();
5357
5358 }
5359
MDrv_SC_OP1_Set_Pattern3_Border(void * pInstance)5360 void MDrv_SC_OP1_Set_Pattern3_Border(void* pInstance)
5361 {
5362 MS_U8 u8BoldValType[5] = {0};
5363 MS_U8 u8ValType[5] = {0};
5364 MS_U16 i;
5365 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
5366 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
5367 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
5368 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
5369
5370 MHal_SC_OP1_Pattern_enable_border(TRUE,0x3FF,0x3FF,0x3FF);
5371
5372 for(i=0;i< ((((24*17))/5));i++) //tile1~ tile405
5373 {
5374 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5375 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5376 }
5377
5378 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5379 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5380
5381 //tile411 ~ 415
5382 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
5383 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
5384 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5385
5386 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5387 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5388 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5389
5390 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5391 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5392
5393 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
5394 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
5395 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5396
5397 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5398 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5399 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5400
5401 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
5402 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,10,10,10,10);
5403 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5404 //row1 : starts at 437
5405
5406 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5407 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
5408 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5409
5410 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
5411 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5412
5413 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
5414 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,1,0,0);
5415 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5416
5417 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
5418 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
5419 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5420
5421 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
5422 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
5423 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5424
5425 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5426 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
5427 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5428
5429 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
5430 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5431
5432 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
5433 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,1,0,0,0);
5434 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5435
5436 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
5437 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,10);
5438 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5439
5440 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5441 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
5442 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5443
5444 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
5445 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5446
5447 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
5448 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
5449 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5450
5451 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
5452 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
5453 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5454
5455 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
5456 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,10,10);
5457 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5458
5459 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5460 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
5461 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5462
5463 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
5464 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5465
5466 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
5467 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,1);
5468 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5469
5470 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5471 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5472 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5473
5474 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
5475 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,13,13,13);
5476 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5477
5478 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5479 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
5480 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5481
5482 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
5483 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5484
5485 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
5486 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,1,0);
5487 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5488
5489 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5490 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5491 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5492
5493 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
5494 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,11,11,11,11); //row2
5495 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5496
5497 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5498 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
5499 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5500
5501 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
5502 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5503
5504 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
5505 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,1,0,0);
5506 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5507
5508 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
5509 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
5510 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5511
5512 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
5513 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
5514 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5515
5516 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5517 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
5518 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5519
5520 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
5521 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5522
5523 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
5524 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,1,0,0,0);
5525 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5526
5527 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
5528 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,13);
5529 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5530
5531 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5532 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
5533 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5534
5535 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
5536 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5537
5538 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
5539 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
5540 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5541
5542 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
5543 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
5544 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5545
5546 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
5547 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,11,11); //row 3
5548 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5549
5550 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5551 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
5552 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5553
5554 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
5555 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5556
5557 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
5558 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,1);
5559 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5560
5561 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5562 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5563
5564 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
5565 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,10,10,10);
5566 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5567
5568 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5569 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
5570 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5571
5572 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
5573 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5574
5575 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
5576 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,1,0);
5577 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5578
5579 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5580 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5581 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5582
5583 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
5584 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,13,13,13,13);
5585 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5586
5587 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5588 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
5589 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5590
5591 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
5592 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5593
5594 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
5595 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,1,0,0);
5596 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5597
5598 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
5599 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
5600 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5601
5602 ///-----
5603 if (pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.bMirror)
5604 {
5605 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
5606 MDrv_SC_OP1_Set_Border_Type(u8ValType,5,2,6,5,2); //pure block -1
5607 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5608
5609 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5610 MDrv_SC_OP1_Set_Border_Type(u8ValType,2,2,2,2,2);
5611 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5612
5613 MDrv_SC_OP1_Set_Border_Type(u8ValType,2,2,6,5,2);
5614 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5615
5616 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
5617 MDrv_SC_OP1_Set_Border_Type(u8ValType,6,1,0,0,0);
5618 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5619
5620 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
5621 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);//pure block -2
5622 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5623
5624 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5625 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
5626 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5627
5628 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5629 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5630
5631 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
5632 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);
5633 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5634
5635 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
5636 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
5637 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5638
5639 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
5640 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
5641 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);//pure block -3
5642
5643 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5644 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
5645 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5646
5647 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5648 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5649
5650 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
5651 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);
5652 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5653
5654 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5655 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5656
5657 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
5658 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3); //pure block -4
5659 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5660
5661 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5662 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
5663 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5664
5665 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
5666 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5667
5668 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
5669 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);
5670 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5671
5672 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5673 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5674
5675 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
5676 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1); //pure block -5
5677 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5678
5679 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5680 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5681
5682 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);
5683 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5684
5685 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
5686 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
5687 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5688
5689 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
5690 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
5691 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5692
5693 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
5694 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);//pure block -6
5695 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5696
5697 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5698 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5699 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5700
5701 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
5702 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5703
5704 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
5705 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
5706 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5707
5708 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
5709 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);//pure block -7
5710 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5711
5712 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5713 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
5714 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5715
5716 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5717 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5718
5719 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
5720 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);
5721 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5722
5723 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
5724 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
5725 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5726
5727 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
5728 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
5729 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);//pure block -8
5730
5731 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5732 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
5733 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5734
5735 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5736 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5737
5738 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
5739 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);
5740 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5741
5742 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5743 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5744
5745 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
5746 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);//pure block -9
5747 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5748
5749 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5750 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
5751 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5752
5753 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
5754 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5755
5756 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
5757 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);
5758 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5759
5760 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5761 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5762
5763 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
5764 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);//pure block -10
5765 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5766
5767 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5768 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5769 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5770
5771 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);
5772 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5773
5774 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
5775 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
5776 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5777
5778 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
5779 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
5780 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5781
5782 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
5783 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0); //pure block -11
5784 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5785
5786 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5787 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5788 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5789
5790 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
5791 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5792
5793 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
5794 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
5795 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5796
5797 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
5798 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1); //pure block -12
5799 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5800
5801 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5802 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
5803 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5804
5805 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5806 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5807
5808 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
5809 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);
5810 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5811
5812 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
5813 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
5814 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5815
5816 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
5817 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
5818 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType); //pure block -13
5819
5820 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5821 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
5822 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5823
5824 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5825 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5826
5827 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
5828 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);
5829 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5830
5831 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5832 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5833
5834 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
5835 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);//pure block -14
5836 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5837
5838 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5839 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
5840 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5841
5842 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
5843 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5844
5845 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
5846 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);
5847 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5848
5849 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5850 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5851
5852 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
5853 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);//pure block -15
5854 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5855
5856 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5857 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5858 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5859
5860 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);
5861 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5862
5863 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
5864 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
5865 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5866
5867 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
5868 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
5869 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5870
5871 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
5872 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);//pure block -16
5873 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5874
5875 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5876 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5877 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5878
5879 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
5880 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5881
5882 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
5883 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
5884 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5885
5886 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
5887 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);//pure block -17
5888 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5889
5890 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5891 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
5892 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5893
5894 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5895 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5896
5897 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
5898 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);
5899 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5900
5901 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
5902 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
5903 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5904
5905 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
5906 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
5907 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);//pure block -18
5908
5909 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5910 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
5911 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5912
5913 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5914 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5915
5916 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
5917 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);
5918 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5919
5920 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5921 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5922
5923 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
5924 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);//pure block -19
5925 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5926
5927 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5928 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
5929 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5930
5931 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
5932 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5933
5934 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
5935 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);
5936 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5937
5938 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5939 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5940
5941 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
5942 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);//pure block -20
5943 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5944
5945 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
5946 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5947
5948 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);
5949 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5950
5951 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
5952 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
5953 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5954
5955 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
5956 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
5957 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5958
5959 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
5960 MDrv_SC_OP1_Set_Border_Type(u8ValType,8,4,7,8,4);//pure block -21
5961 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5962
5963 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5964 MDrv_SC_OP1_Set_Border_Type(u8ValType,4,4,4,4,4);
5965 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5966
5967 MDrv_SC_OP1_Set_Border_Type(u8ValType,4,4,7,8,4);
5968 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5969
5970 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
5971 MDrv_SC_OP1_Set_Border_Type(u8ValType,7,1,0,0,0);
5972 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5973
5974 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
5975 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,11);//middle pure - 1
5976 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5977
5978 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5979 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
5980 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5981
5982 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,15,15,11,11);
5983 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5984
5985 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
5986 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
5987 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5988
5989 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
5990 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
5991 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5992
5993 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
5994 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,10,10);//middle pure - 2
5995 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
5996
5997 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
5998 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
5999 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6000
6001 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
6002 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6003
6004 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6005 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,1);
6006 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6007
6008 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6009 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6010
6011 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6012 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,10,10,10);//middle pure - 3
6013 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6014
6015 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6016 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
6017 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6018
6019 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
6020 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6021
6022 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
6023 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,1,0);
6024 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6025
6026 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6027 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6028
6029 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
6030 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,10,10,10,10);//middle pure - 4
6031 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6032
6033 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6034 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
6035 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6036
6037 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
6038 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6039
6040 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6041 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,1,0,0);
6042 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6043
6044 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
6045 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
6046 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6047
6048 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
6049 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13); //middle pure - 5
6050 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6051
6052 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6053 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
6054 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6055
6056 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
6057 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6058
6059 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
6060 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,1,0,0,0);
6061 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6062
6063 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6064 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,5); // linedot1-1
6065 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6066
6067 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6068 MDrv_SC_OP1_Set_Border_Type(u8ValType,2,6,5,2,2);
6069 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6070
6071 MDrv_SC_OP1_Set_Border_Type(u8ValType,2,15,15,2,2);
6072 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6073
6074 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
6075 MDrv_SC_OP1_Set_Border_Type(u8ValType,2,6,5,2,6);
6076 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6077
6078 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
6079 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
6080 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6081
6082 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
6083 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
6084 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);// linedot1-2
6085
6086 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6087 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
6088 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6089
6090 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6091 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6092
6093 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6094 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);
6095 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6096
6097 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6098 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6099
6100 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6101 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);// linedot1-3
6102 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6103
6104 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6105 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
6106 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6107
6108 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
6109 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6110
6111 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
6112 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);
6113 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6114
6115 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6116 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6117
6118 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
6119 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1); // linedot1-4
6120 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6121
6122 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6123 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6124 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6125
6126 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);
6127 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6128
6129 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6130 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
6131 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6132
6133 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
6134 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
6135 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6136
6137 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
6138 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0); // linedot1-5
6139 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6140
6141 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6142 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6143 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6144
6145 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
6146 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6147
6148 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
6149 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
6150 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6151
6152 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6153 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);// linedot1-6
6154 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6155
6156 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
6157 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6158
6159 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6160 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6161
6162 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
6163 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);
6164 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6165
6166 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
6167 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
6168 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6169
6170 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
6171 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,8,4);// linedot1-7
6172 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6173
6174 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6175 MDrv_SC_OP1_Set_Border_Type(u8ValType,7,1,0,0,0);
6176 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6177
6178 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6179 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6180
6181 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6182 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);
6183 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6184
6185 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6186 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6187
6188 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6189 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,5,2,6);// linedot2-1
6190 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6191
6192 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6193 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
6194 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6195
6196 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
6197 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6198
6199 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
6200 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);
6201 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6202
6203 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6204 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6205
6206 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
6207 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1); // linedot2-2
6208 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6209
6210 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6211 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6212
6213 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);
6214 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6215
6216 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6217 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
6218 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6219
6220 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
6221 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
6222 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6223
6224 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
6225 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);// linedot2-3
6226 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6227
6228 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6229 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6230 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6231
6232 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
6233 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6234
6235 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
6236 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
6237 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6238
6239 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6240 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);// linedot2-4
6241 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6242
6243 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6244 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
6245 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6246
6247 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6248 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6249
6250 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
6251 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);
6252 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6253
6254 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
6255 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
6256 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6257
6258 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
6259 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
6260 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);// linedot2-5
6261
6262 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6263 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
6264 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6265
6266 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6267 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6268
6269 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6270 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);
6271 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6272
6273 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6274 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6275
6276 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6277 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);// linedot2-6
6278 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6279
6280 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6281 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
6282 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6283
6284 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
6285 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6286
6287 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
6288 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);
6289 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6290
6291 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6292 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6293
6294 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
6295 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,8,4,7,1);// linedot2-7
6296 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6297
6298 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6299 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6300 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6301
6302 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);
6303 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6304
6305 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6306 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
6307 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6308
6309 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
6310 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
6311 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6312
6313 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
6314 MDrv_SC_OP1_Set_Border_Type(u8ValType,5,2,6,1,0);// linedot3-1
6315 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6316
6317 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6318 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6319 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6320
6321 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
6322 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6323
6324 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
6325 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
6326 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6327
6328 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6329 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);// linedot3-2
6330 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6331
6332 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6333 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
6334 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6335
6336 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6337 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6338
6339 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
6340 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);
6341 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6342
6343 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
6344 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
6345 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6346
6347 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
6348 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
6349 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);// linedot3-3
6350
6351 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6352 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
6353 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6354
6355 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6356 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6357
6358 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6359 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);
6360 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6361
6362 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6363 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6364
6365 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6366 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);// linedot3-4
6367 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6368
6369 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6370 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
6371 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6372
6373 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
6374 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6375
6376 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
6377 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);
6378 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6379
6380 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6381 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6382
6383 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
6384 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);// linedot3-5
6385 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6386
6387 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6388 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6389 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6390
6391 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);
6392 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6393
6394 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6395 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
6396 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6397
6398 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
6399 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
6400 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6401
6402 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
6403 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);// linedot3-6
6404 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6405
6406 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6407 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6408 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6409
6410 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
6411 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6412
6413 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
6414 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
6415 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6416
6417 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6418 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,8);// linedot3-7
6419 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6420
6421 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6422 MDrv_SC_OP1_Set_Border_Type(u8ValType,4,7,1,0,0);
6423 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6424
6425 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6426 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6427
6428 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
6429 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);
6430 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6431
6432 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
6433 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
6434 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6435
6436 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
6437 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,11,11);// bottom row
6438 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6439
6440 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6441 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
6442 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6443
6444 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
6445 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6446
6447 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6448 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,1);
6449 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6450
6451 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6452 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6453
6454 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6455 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,10,10,10);
6456 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6457
6458 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6459 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
6460 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6461
6462 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
6463 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6464
6465 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
6466 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,1,0);
6467 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6468
6469 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6470 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6471
6472 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
6473 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,13,13,13,13);
6474 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6475
6476 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6477 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
6478 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6479
6480 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
6481 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6482
6483 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6484 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,1,0,0);
6485 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6486
6487 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
6488 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
6489 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6490 }
6491 else
6492 {
6493 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
6494 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11); //row4
6495 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6496
6497 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6498 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
6499 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6500
6501 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
6502 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6503
6504 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
6505 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,1,0,0,0);
6506 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6507
6508 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6509 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,10);
6510 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6511
6512 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6513 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
6514 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6515
6516 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6517 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
6518 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6519
6520 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
6521 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
6522 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6523
6524 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
6525 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
6526 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6527
6528 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
6529 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,13,13);
6530 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6531
6532 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6533 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
6534 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6535
6536 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
6537 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6538
6539 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6540 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,1);
6541 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6542
6543 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6544 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6545 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6546
6547 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6548 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,5,2,6); // linedot1-1
6549 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6550
6551 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6552 MDrv_SC_OP1_Set_Border_Type(u8ValType,5,2,2,2,2);
6553 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6554
6555 MDrv_SC_OP1_Set_Border_Type(u8ValType,2,2,2,2,6);
6556 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6557
6558 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
6559 MDrv_SC_OP1_Set_Border_Type(u8ValType,5,2,6,1,0);
6560 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6561
6562 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6563 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6564 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6565
6566 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
6567 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1); // linedot1-2
6568 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6569
6570 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6571 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6572 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6573
6574 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);
6575 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6576
6577 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6578 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
6579 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6580
6581 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
6582 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
6583 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6584
6585 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
6586 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);// linedot1-3
6587 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6588
6589 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6590 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6591 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6592
6593 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
6594 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6595
6596 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
6597 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
6598 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6599
6600 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6601 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);// linedot1-4
6602 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6603
6604 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6605 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
6606 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6607
6608 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6609 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6610
6611 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
6612 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);
6613 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6614
6615 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
6616 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
6617 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6618
6619 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
6620 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
6621 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);// linedot1-5
6622
6623 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6624 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
6625 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6626
6627 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6628 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6629
6630 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6631 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);
6632 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6633
6634 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6635 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6636
6637 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6638 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);// linedot1-6
6639 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6640
6641 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6642 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
6643 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6644
6645 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
6646 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6647
6648 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
6649 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);
6650 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6651
6652 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6653 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6654 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6655
6656 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
6657 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);// linedot1-7
6658 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6659
6660 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6661 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6662 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6663
6664 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,8);
6665 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6666
6667 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6668 MDrv_SC_OP1_Set_Border_Type(u8ValType,4,7,1,0,0);
6669 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6670
6671 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
6672 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
6673 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6674
6675 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
6676 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0); //linedot2-1
6677 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6678
6679 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6680 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6681 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6682
6683 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,5,2);
6684 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6685
6686 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
6687 MDrv_SC_OP1_Set_Border_Type(u8ValType,6,1,0,0,0);
6688 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6689
6690 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6691 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);//linedot2-2
6692 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6693
6694 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6695 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
6696 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6697
6698 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6699 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6700
6701 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
6702 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);
6703 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6704
6705 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
6706 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
6707 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6708
6709 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
6710 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
6711 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);//linedot2-3
6712
6713 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6714 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
6715 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6716
6717 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6718 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6719
6720 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6721 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);
6722 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6723
6724 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6725 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6726
6727 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6728 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);//linedot2-4
6729 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6730
6731 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6732 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
6733 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6734
6735 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
6736 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6737
6738 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
6739 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);
6740 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6741
6742 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6743 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6744 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6745
6746 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
6747 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);//linedot2-5
6748 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6749
6750 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6751 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6752 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6753
6754 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);
6755 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6756
6757 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6758 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
6759 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6760
6761 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
6762 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
6763 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6764
6765 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
6766 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);//linedot2-6
6767 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6768
6769 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6770 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6771 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6772
6773 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
6774 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6775
6776 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
6777 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
6778 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6779
6780 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6781 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);//linedot2-7
6782 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6783
6784 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
6785 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6786
6787 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6788 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6789
6790 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
6791 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,8,4,7);
6792 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6793
6794 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
6795 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
6796 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6797
6798 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
6799 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
6800 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);//linedot3-1
6801
6802 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6803 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
6804 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6805
6806 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6807 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6808
6809 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6810 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,5,2,6,1);
6811 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6812
6813 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6814 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6815 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6816
6817 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6818 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);//linedot3-2
6819 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6820
6821 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6822 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
6823 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6824
6825 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
6826 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6827
6828 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
6829 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);
6830 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6831
6832 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6833 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6834
6835 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
6836 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);//linedot3-3
6837 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6838
6839 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6840 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6841 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6842
6843 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);
6844 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6845
6846 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6847 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
6848 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6849
6850 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
6851 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
6852 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6853
6854 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
6855 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);//linedot3-4
6856 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6857
6858 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6859 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6860 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6861
6862 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
6863 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6864
6865 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
6866 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
6867 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6868
6869 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6870 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);//linedot3-5
6871 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6872
6873 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6874 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
6875 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6876
6877 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6878 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6879
6880 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
6881 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);
6882 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6883
6884 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
6885 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
6886 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6887
6888 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
6889 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
6890 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);//linedot3-6
6891
6892 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6893 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
6894 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6895
6896 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6897 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6898
6899 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6900 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);
6901 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6902
6903 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6904 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6905
6906 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6907 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,8,4,7);//linedot3-7
6908 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6909
6910 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6911 MDrv_SC_OP1_Set_Border_Type(u8ValType,8,4,4,4,15);
6912 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6913
6914 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,4,4,4,7);
6915 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6916
6917 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
6918 MDrv_SC_OP1_Set_Border_Type(u8ValType,8,4,7,1,0);
6919 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6920
6921 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6922 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6923
6924 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
6925 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,11,11,11,11);//middle pure - 1
6926 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6927
6928 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6929 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
6930 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6931
6932 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
6933 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6934
6935 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6936 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,1,0,0);
6937 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6938
6939 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
6940 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
6941 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6942
6943 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
6944 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10); //middle pure - 2
6945 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6946
6947 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6948 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
6949 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6950
6951 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
6952 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6953
6954 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
6955 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,1,0,0,0);
6956 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6957
6958 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6959 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,10);//middle pure - 3
6960 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6961
6962 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6963 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
6964 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6965
6966 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
6967 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6968
6969 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
6970 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
6971 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6972
6973 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
6974 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
6975 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6976
6977 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
6978 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,10,10);//middle pure - 4
6979 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6980
6981 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6982 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
6983 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6984
6985 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
6986 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6987
6988 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
6989 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,1);
6990 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6991
6992 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
6993 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
6994 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6995
6996 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
6997 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,13,13,13);//middle pure - 5
6998 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
6999
7000 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7001 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,15);
7002 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7003
7004 MDrv_SC_OP1_Set_Border_Type(u8ValType,15,13,13,13,13);
7005 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7006
7007 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
7008 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,1,0);
7009 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7010
7011 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7012 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7013 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7014
7015 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
7016 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,5,2,6,5); // pure block - 1
7017 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7018
7019 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7020 MDrv_SC_OP1_Set_Border_Type(u8ValType,2,2,2,2,2);
7021 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7022
7023 MDrv_SC_OP1_Set_Border_Type(u8ValType,2,2,2,6,5);
7024 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7025
7026 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
7027 MDrv_SC_OP1_Set_Border_Type(u8ValType,2,6,1,0,0);
7028 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7029
7030 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
7031 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
7032 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7033
7034 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
7035 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0); // pure block - 2
7036 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7037
7038 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7039 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7040 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7041
7042 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
7043 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7044
7045 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
7046 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
7047 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7048
7049 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
7050 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);// pure block - 3
7051 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7052
7053 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7054 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
7055 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7056
7057 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7058 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7059
7060 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
7061 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);
7062 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7063
7064 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
7065 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
7066 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7067
7068 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
7069 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
7070 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);// pure block - 4
7071
7072 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7073 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
7074 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7075
7076 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7077 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7078
7079 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
7080 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);
7081 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7082
7083 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7084 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7085
7086 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
7087 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);// pure block - 5
7088 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7089
7090 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
7091 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7092
7093 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
7094 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7095
7096 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
7097 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);
7098 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7099
7100 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7101 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7102
7103 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
7104 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1); // pure block - 6
7105 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7106
7107 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7108 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7109 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7110
7111 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);
7112 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7113
7114 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
7115 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
7116 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7117
7118 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
7119 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
7120 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7121
7122 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
7123 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);
7124 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7125
7126 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7127 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7128 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7129
7130 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
7131 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7132
7133 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
7134 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
7135 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7136
7137 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
7138 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);// pure block - 7
7139 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7140
7141 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7142 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
7143 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7144
7145 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7146 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7147
7148 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
7149 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);
7150 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7151
7152 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
7153 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
7154 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7155
7156 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
7157 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
7158 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);// pure block - 9
7159
7160 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7161 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
7162 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7163
7164 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7165 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7166
7167 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
7168 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);
7169 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7170
7171 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7172 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7173 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7174
7175 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
7176 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);// pure block - 10
7177 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7178
7179 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7180 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
7181 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7182
7183 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
7184 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7185
7186 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
7187 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);
7188 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7189
7190 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7191 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7192 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7193
7194 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
7195 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);// pure block - 11
7196 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7197
7198 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7199 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7200 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7201
7202 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);
7203 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7204
7205 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
7206 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
7207 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7208
7209 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
7210 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
7211 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7212
7213 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
7214 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);// pure block - 12
7215 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7216
7217 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7218 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7219 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7220
7221 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
7222 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7223
7224 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
7225 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
7226 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7227
7228 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
7229 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);// pure block - 13
7230 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7231
7232 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7233 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
7234 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7235
7236 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7237 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7238
7239 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
7240 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);
7241 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7242
7243 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
7244 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
7245 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7246
7247 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
7248 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
7249 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);// pure block - 14
7250
7251 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7252 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
7253 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7254
7255 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7256 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7257
7258 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
7259 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);
7260 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7261
7262 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7263 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7264 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7265
7266 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
7267 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);// pure block - 15
7268 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7269
7270 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7271 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
7272 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7273
7274 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
7275 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7276
7277 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
7278 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);
7279 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7280
7281 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7282 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7283 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7284
7285 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
7286 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);// pure block - 16
7287 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7288
7289 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7290 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7291 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7292
7293 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);
7294 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7295
7296 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
7297 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
7298 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7299
7300 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
7301 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
7302 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7303
7304 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
7305 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);// pure block - 17
7306 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7307
7308 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7309 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7310 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7311
7312 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
7313 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7314
7315 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
7316 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
7317 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7318
7319 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
7320 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);// pure block - 18
7321 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7322
7323 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7324 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,0);
7325 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7326
7327 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7328 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7329
7330 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
7331 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);
7332 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7333
7334 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
7335 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
7336 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7337
7338 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
7339 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,1,0);
7340 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);// pure block - 19
7341
7342 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7343 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,0,0);
7344 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7345
7346 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7347 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7348
7349 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
7350 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,1,0,3,1);
7351 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7352
7353 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7354 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7355
7356 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
7357 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,1,0,3);// pure block - 20
7358 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7359
7360 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
7361 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7362
7363 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
7364 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7365
7366 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
7367 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,3,1,0);
7368 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7369
7370 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7371 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7372
7373 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
7374 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,8,4,7,8);// pure block - 21
7375 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7376
7377 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7378 MDrv_SC_OP1_Set_Border_Type(u8ValType,4,4,4,4,4);
7379 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7380
7381 MDrv_SC_OP1_Set_Border_Type(u8ValType,4,4,4,7,8);
7382 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7383
7384 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
7385 MDrv_SC_OP1_Set_Border_Type(u8ValType,4,7,1,0,0);
7386 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7387
7388 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
7389 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
7390 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7391
7392 }
7393 ///------
7394
7395 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
7396 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);// bottom row 1 -1
7397 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7398
7399 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7400 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
7401 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7402
7403 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
7404 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7405
7406 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
7407 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,1,0,0,0);
7408 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7409
7410 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
7411 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,10); // bottom row 1 -2
7412 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7413
7414 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7415 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
7416 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7417
7418 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
7419 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7420
7421 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
7422 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
7423 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7424
7425 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
7426 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
7427 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7428
7429 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
7430 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,13,13);// bottom row 1 -3
7431 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7432
7433 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7434 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
7435 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7436
7437 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
7438 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7439
7440 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
7441 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,1);
7442 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7443
7444 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7445 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7446
7447 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
7448 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,11,11,11); // bottom row 2 -1
7449 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7450
7451 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7452 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
7453 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7454
7455 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
7456 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7457
7458 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
7459 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,1,0);
7460 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7461
7462 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7463 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7464
7465 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
7466 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,10,10,10,10);// bottom row 2 -2
7467 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7468
7469 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7470 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
7471 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7472
7473 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
7474 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7475
7476 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
7477 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,1,0,0);
7478 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7479
7480 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
7481 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
7482 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7483
7484 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
7485 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);// bottom row 2 -3
7486 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7487
7488 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7489 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
7490 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7491
7492 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,13,13,13,13);
7493 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7494
7495 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
7496 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,1,0,0,0);
7497 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7498
7499 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
7500 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,11);// bottom row 3 -1
7501 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7502
7503 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7504 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
7505 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7506
7507 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
7508 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7509
7510 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
7511 MDrv_SC_OP1_Set_Border_Type(u8ValType,11,11,11,11,11);
7512 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7513
7514 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
7515 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
7516 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7517
7518 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
7519 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,3,10,10);// bottom row 3 -2
7520 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7521
7522 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7523 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
7524 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7525
7526 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
7527 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7528
7529 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
7530 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,1);
7531 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7532
7533 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7534 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7535
7536 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
7537 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,3,10,10,10);// bottom row 3 -3
7538 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7539
7540 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7541 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
7542 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7543
7544 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
7545 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7546
7547 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,3,1,0);
7548 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,1,0);
7549 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7550
7551 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7552 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7553
7554 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
7555 MDrv_SC_OP1_Set_Border_Type(u8ValType,3,10,10,10,10);// bottom row 3 -4
7556 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7557
7558 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7559 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
7560 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7561
7562 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
7563 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7564
7565 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,3,1,0,0);
7566 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,1,0,0);
7567 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7568
7569 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
7570 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
7571 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7572
7573 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
7574 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);// bottom row 3 -5
7575 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7576
7577 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,0);
7578 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
7579 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7580
7581 MDrv_SC_OP1_Set_Border_Type(u8ValType,10,10,10,10,10);
7582 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7583
7584 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,3,1,0,0,0);
7585 MDrv_SC_OP1_Set_Border_Type(u8ValType,13,1,0,0,0);
7586 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7587
7588 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,3,1);
7589 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,3,1);
7590 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7591
7592 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7593 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7594
7595 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7596 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7597
7598 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,0,0,0,0,3);
7599 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,3);
7600 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7601
7602 MDrv_SC_OP1_Set_Border_Type(u8BoldValType,1,0,0,0,0);
7603 MDrv_SC_OP1_Set_Border_Type(u8ValType,1,0,0,0,0);
7604 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7605
7606 for(i=0;i<(412/5)-1;i++)
7607 {
7608 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7609 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7610 }
7611
7612 MDrv_SC_OP1_Set_Border_Type(u8ValType,0,0,0,0,0);
7613 MDrv_SC_OP1_Set_Border_Sram(u8BoldValType, u8ValType);
7614
7615 }
7616
MDrv_SC_OP1_3_Pattern(void * pInstance,MS_U16 u16HTileCnt,MS_U16 u16VTileCnt)7617 void MDrv_SC_OP1_3_Pattern(void *pInstance, MS_U16 u16HTileCnt, MS_U16 u16VTileCnt)
7618 {
7619 MS_U16 u16HTileSize = 0, u16VTileSize = 0;
7620 MS_U16 u16HTotalSize = 0, u16VTotalSize = 0;
7621 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
7622 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
7623 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
7624 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
7625
7626 //clear default pattern
7627 MHal_SC_OP1_Pattern_pure_color(0x00);
7628
7629 //disable border
7630 MHal_SC_OP1_Pattern_enable_border(FALSE,0x3FF,0x3FF,0x3FF);
7631
7632 MDrv_SC_OP1_Align_Width_Height(pInstance, u16HTileCnt, u16VTileCnt, &u16HTotalSize, &u16VTotalSize);
7633
7634 u16HTileSize = u16HTotalSize/u16HTileCnt;
7635 u16VTileSize = u16VTotalSize/u16VTileCnt;
7636 MHal_SC_OP1_PatGen_adjust_frame_size(u16HTotalSize, u16VTotalSize);
7637
7638 MHal_SC_OP1_Pattern_sram_writestart();
7639
7640 MHal_SC_OP1_Pattern_define_tile(u16HTileSize, u16VTileSize);
7641
7642 if (pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.bMirror)
7643 {
7644
7645 //bottom black border
7646 MHal_SC_OP1_Pattern_customize_blcok(12,16,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7647 MHal_SC_OP1_Pattern_customize_blcok(12,16,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7648
7649 //rigth black border - no.12
7650 MHal_SC_OP1_Pattern_customize_blcok(4,0,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7651 MHal_SC_OP1_Pattern_customize_blcok(16,0,FALSE,FALSE,0x3FF,0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
7652 MHal_SC_OP1_Pattern_customize_blcok(4,0,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7653
7654 //rigth black border - no.12
7655 MHal_SC_OP1_Pattern_customize_blcok(4,4,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7656
7657 //Fade: 3
7658 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((255)<<2),((255)<<2),((255)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
7659 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((255)<<2),((255)<<2),((255)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
7660 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((242)<<2),((238)<<2),((239)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
7661 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((242)<<2),((238)<<2),((239)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
7662 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((226)<<2),((226)<<2),((226)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
7663 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((226)<<2),((226)<<2),((226)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
7664 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((217)<<2),((213)<<2),((214)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
7665 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((217)<<2),((213)<<2),((214)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
7666 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((79)<<2),((79)<<2),((79)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
7667 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((79)<<2),((79)<<2),((79)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
7668 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((56)<<2),((56)<<2),((56)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
7669 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((56)<<2),((56)<<2),((56)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
7670 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((37)<<2),((37)<<2),((37)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
7671 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((37)<<2),((37)<<2),((37)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
7672 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((1)<<2),((1)<<2),((1)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
7673 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((1)<<2),((1)<<2),((1)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
7674
7675 //left black border - no.12
7676 MHal_SC_OP1_Pattern_customize_blcok(4,4,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7677
7678 //rigth black border - no.11
7679 MHal_SC_OP1_Pattern_customize_blcok(4,2,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7680
7681 //Fade: 2
7682 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(239)<<2, (88)<<2,(204)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
7683 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(233)<<2, (89)<<2,(239)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
7684 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(238)<<2, (73)<<2,(248)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
7685 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(249)<<2, (52)<<2,(254)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
7686 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(253)<<2, (2)<<2,(253)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
7687 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(0)<<2, (219)<<2,(223)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
7688 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(79)<<2, (209)<<2,(211)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
7689 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(82)<<2, (223)<<2,(230)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
7690 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(67)<<2, (229)<<2,(231)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
7691 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(44)<<2, (240)<<2,(238)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
7692 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(0)<<2, (255)<<2,(253)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
7693 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(221)<<2, (254)<<2,(22)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
7694 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(223)<<2, (252)<<2,(76)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
7695 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(255)<<2, (249)<<2,(80)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
7696 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(254)<<2, (248)<<2,(48)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
7697 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(255)<<2, (255)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
7698
7699 //left black border - no.11
7700 MHal_SC_OP1_Pattern_customize_blcok(4,2,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7701
7702 //rigth black border - no.12
7703 MHal_SC_OP1_Pattern_customize_blcok(4,2,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7704
7705 //Fade: 1
7706 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(255)<<2, (255)<<2,(255)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
7707 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(247)<<2, (247)<<2,(247)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
7708 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(229)<<2, (229)<<2,(229)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
7709 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(211)<<2, (211)<<2,(211)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
7710 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(194)<<2, (194)<<2,(194)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
7711 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(181)<<2, (181)<<2,(181)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
7712 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(160)<<2, (160)<<2,(160)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
7713 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(145)<<2, (145)<<2,(145)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
7714 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(128)<<2, (128)<<2,(128)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
7715 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(112)<<2, (112)<<2,(112)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
7716 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(97)<<2, (97)<<2,(97)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
7717 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(80)<<2, (80)<<2,(80)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
7718 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(64)<<2, (64)<<2,(64)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
7719 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(49)<<2, (49)<<2,(49)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
7720 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(19)<<2, (15)<<2,(12)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
7721 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(1)<<2, (1)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
7722
7723 //left black border - no.12
7724 MHal_SC_OP1_Pattern_customize_blcok(4,2,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7725
7726 //rigth black border - no.13
7727 MHal_SC_OP1_Pattern_customize_blcok(4,20,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7728
7729 //rigth pure block
7730 MHal_SC_OP1_Pattern_customize_blcok(3,20,FALSE,FALSE,0x13c, 0x28,0x1d5,E_XC_OP1_PATTERN_TYPE_PURE);
7731
7732 //middle pure block
7733 MHal_SC_OP1_Pattern_customize_blcok(10,20,FALSE,FALSE,0x161, 0x161,0x161,E_XC_OP1_PATTERN_TYPE_PURE);
7734
7735 //left pure block
7736 MHal_SC_OP1_Pattern_customize_blcok(3,20,FALSE,FALSE,0x00, 0x1c9,0x2f2,E_XC_OP1_PATTERN_TYPE_PURE);
7737
7738 //left black border - no.13
7739 MHal_SC_OP1_Pattern_customize_blcok(4,20,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7740
7741 //rigth black border - no.14
7742 MHal_SC_OP1_Pattern_customize_blcok(4,4,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7743
7744 //pure gray 55
7745 int i=0;
7746 for(i=0;i<16;i++)
7747 {
7748 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,0xDC, 0xDC,0xDC,E_XC_OP1_PATTERN_TYPE_PURE);
7749 }
7750
7751 //left black border - no.14
7752 MHal_SC_OP1_Pattern_customize_blcok(4,4,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7753
7754 //rigth black border -
7755 MHal_SC_OP1_Pattern_customize_blcok(4,0,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7756
7757 //item:4
7758 //LineDot: right
7759 MHal_SC_OP1_Pattern_customize_blcok(3,0,FALSE,FALSE,0x470,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
7760 //end of linedot item 4-----------------------------------------------------------------------------
7761
7762
7763 //Pure between LineDot itme4
7764 MHal_SC_OP1_Pattern_customize_blcok(4,0,FALSE,FALSE,0x336, 0x336,0x336,E_XC_OP1_PATTERN_TYPE_PURE);
7765
7766 MHal_SC_OP1_Pattern_customize_blcok(1,0,FALSE,FALSE,0xDC, 0xDC,0xDC,E_XC_OP1_PATTERN_TYPE_PURE);
7767
7768 MHal_SC_OP1_Pattern_customize_blcok(1,0,FALSE,FALSE,0xDC, 0xDC,0xDC,E_XC_OP1_PATTERN_TYPE_PURE);
7769
7770 MHal_SC_OP1_Pattern_customize_blcok(4,0,FALSE,FALSE,0x336, 0x336,0x336,E_XC_OP1_PATTERN_TYPE_PURE);
7771
7772 //linedot item4--------------------------------------------------------------------------------------
7773 //LineDot : left
7774 MHal_SC_OP1_Pattern_customize_blcok(3,0,FALSE,FALSE,0x7F0,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
7775
7776 //left black border -
7777 MHal_SC_OP1_Pattern_customize_blcok(4,0,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7778
7779 //rigth black border - no.15
7780 MHal_SC_OP1_Pattern_customize_blcok(4,5,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7781
7782 //item:3
7783 //LineDot: right
7784 MHal_SC_OP1_Pattern_customize_blcok(3,5,FALSE,FALSE,0x470,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
7785 //end of linedot item 3-----------------------------------------------------------------------------
7786
7787
7788 //Pure between LineDot itme3
7789 MHal_SC_OP1_Pattern_customize_blcok(10,5,FALSE,FALSE,0x336, 0x336,0x336,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
7790
7791
7792 //linedot item3--------------------------------------------------------------------------------------
7793 //LineDot : left
7794 MHal_SC_OP1_Pattern_customize_blcok(3,5,FALSE,FALSE,0x7F0,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
7795
7796 //left black border - no.15
7797 MHal_SC_OP1_Pattern_customize_blcok(4,5,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7798
7799
7800 //rigth black border - no.16
7801 MHal_SC_OP1_Pattern_customize_blcok(4,6,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7802
7803 //itme2
7804 //LineDot: right
7805 MHal_SC_OP1_Pattern_customize_blcok(3,6,FALSE,FALSE,0x570,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
7806
7807 //Pure between LineDot itme2
7808 MHal_SC_OP1_Pattern_customize_blcok(10,6,FALSE,FALSE,0x336, 0x336,0x336,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
7809
7810 //linedot item2--------------------------------------------------------------------------------------
7811 //LineDot : left
7812 MHal_SC_OP1_Pattern_customize_blcok(3,6,FALSE,FALSE,0x7F0,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
7813
7814 //left black border - no.16
7815 MHal_SC_OP1_Pattern_customize_blcok(4,6,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7816
7817 //rigth black border - no.17
7818 MHal_SC_OP1_Pattern_customize_blcok(4,6,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7819
7820 //itme1:
7821 //LineDot: right
7822 MHal_SC_OP1_Pattern_customize_blcok(3,6,FALSE,FALSE,0x1F0,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
7823
7824 //Pure between LineDot item1
7825 MHal_SC_OP1_Pattern_customize_blcok(10,6,FALSE,FALSE,0x336, 0x336,0x336,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
7826
7827 //linedot item1--------------------------------------------------------------------------------------
7828 //LineDot : left
7829 MHal_SC_OP1_Pattern_customize_blcok(3,6,FALSE,FALSE,0x7F0,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
7830
7831 //left black border - no.17
7832 MHal_SC_OP1_Pattern_customize_blcok(4,6,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7833
7834 //rigth black border - no.18
7835 MHal_SC_OP1_Pattern_customize_blcok(4,2,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7836
7837 //Fade: White
7838 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(255)<<2, (255)<<2,(255)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
7839 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(241)<<2, (241)<<2,(241)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
7840 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(224)<<2, (224)<<2,(224)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
7841 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(205)<<2, (205)<<2,(205)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
7842 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(187)<<2, (187)<<2,(187)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
7843 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(172)<<2, (172)<<2,(172)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
7844 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(157)<<2, (157)<<2,(157)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
7845 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(139)<<2, (139)<<2,(139)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
7846 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(121)<<2, (121)<<2,(121)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
7847 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(106)<<2, (106)<<2,(106)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
7848 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(88)<<2, (88)<<2,(88)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
7849 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(71)<<2, (71)<<2,(71)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
7850 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(55)<<2, (55)<<2,(55)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
7851 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(37)<<2, (37)<<2,(37)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
7852 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(19)<<2, (19)<<2,(19)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
7853 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(1)<<2, (1)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
7854
7855 //left black border - no.18
7856 MHal_SC_OP1_Pattern_customize_blcok(4,2,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7857
7858 //rigth black border - no.19
7859 MHal_SC_OP1_Pattern_customize_blcok(4,2,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7860
7861 //Fade: Blue
7862 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(0)<<2, (0)<<2,(254)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
7863 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(1)<<2, (1)<<2,(239)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
7864 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(1)<<2, (1)<<2,(223)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
7865 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(1)<<2, (0)<<2,(202)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
7866 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(1)<<2, (1)<<2,(187)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
7867 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(0)<<2, (0)<<2,(170)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
7868 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(1)<<2, (2)<<2,(154)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
7869 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(2)<<2, (0)<<2,(136)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
7870 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(0)<<2, (0)<<2,(120)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
7871 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(0)<<2, (2)<<2,(105)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
7872 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(2)<<2, (0)<<2,(84)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
7873 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(0)<<2, (0)<<2,(72)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
7874 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(3)<<2, (0)<<2,(57)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
7875 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(0)<<2, (1)<<2,(32)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
7876 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(0)<<2, (0)<<2,(20)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
7877 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(1)<<2, (1)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
7878
7879 //left black border - no.19
7880 MHal_SC_OP1_Pattern_customize_blcok(4,2,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7881
7882 //rigth black border - no.20
7883 MHal_SC_OP1_Pattern_customize_blcok(4,2,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7884
7885 //Fade: Red
7886 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(254)<<2, (0)<<2,(2)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
7887 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(240)<<2, (1)<<2,(4)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
7888 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(224)<<2, (0)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
7889 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(203)<<2, (0)<<2,(4)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
7890 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(185)<<2, (0)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
7891 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(171)<<2, (1)<<2,(2)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
7892 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(153)<<2, (1)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
7893 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(136)<<2, (0)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
7894 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(121)<<2, (1)<<2,(3)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
7895 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(105)<<2, (0)<<2,(4)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
7896 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(85)<<2, (1)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
7897 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(72)<<2, (0)<<2,(3)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
7898 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(56)<<2, (0)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
7899 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(36)<<2, (0)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
7900 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(21)<<2, (1)<<2,(2)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
7901 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(1)<<2, (1)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
7902
7903 //left black border - no.20
7904 MHal_SC_OP1_Pattern_customize_blcok(4,2,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7905
7906 //rigth black border - no.21
7907 MHal_SC_OP1_Pattern_customize_blcok(4,4,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7908
7909 //Fade: Green
7910 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((2)<<2),((255)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
7911 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((0)<<2),((242)<<2),((0)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
7912 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((3)<<2),((225)<<2),((0)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
7913 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((3)<<2),((204)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
7914 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((3)<<2),((186)<<2),((0)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
7915 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((1)<<2),((171)<<2),((4)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
7916 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((1)<<2),((156)<<2),((3)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
7917 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((2)<<2),((138)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
7918 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((1)<<2),((120)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
7919 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((0)<<2),((105)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
7920 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((2)<<2),((87)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
7921 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((2)<<2),((72)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
7922 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((0)<<2),((55)<<2),((0)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
7923 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((1)<<2),((36)<<2),((3)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
7924 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((0)<<2),((19)<<2),((0)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
7925 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((1)<<2),((1)<<2),((1)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
7926
7927 //left black border - no.21
7928 MHal_SC_OP1_Pattern_customize_blcok(4,4,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7929
7930 MHal_SC_OP1_Pattern_customize_blcok(4,0,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7931 MHal_SC_OP1_Pattern_customize_blcok(16,0,FALSE,FALSE,0x3FF,0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
7932 MHal_SC_OP1_Pattern_customize_blcok(4,0,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7933
7934 //top black border
7935 MHal_SC_OP1_Pattern_customize_blcok(12,16,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7936 MHal_SC_OP1_Pattern_customize_blcok(12,16,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7937 }
7938 else
7939 {
7940 //top black border
7941 MHal_SC_OP1_Pattern_customize_blcok(12,16,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7942 MHal_SC_OP1_Pattern_customize_blcok(12,16,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7943
7944 //top white border
7945 MHal_SC_OP1_Pattern_customize_blcok(4,0,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7946 MHal_SC_OP1_Pattern_customize_blcok(16,0,FALSE,FALSE,0x3FF,0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
7947 MHal_SC_OP1_Pattern_customize_blcok(4,0,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7948
7949 //left black border - no.1
7950 MHal_SC_OP1_Pattern_customize_blcok(4,4,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7951
7952 //Fade: Green
7953 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((1)<<2),((1)<<2),((1)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
7954 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((0)<<2),((19)<<2),((0)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
7955 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((1)<<2),((36)<<2),((3)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
7956 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((0)<<2),((55)<<2),((0)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
7957 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((2)<<2),((72)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
7958 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((2)<<2),((87)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
7959 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((0)<<2),((105)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
7960 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((1)<<2),((120)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
7961 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((2)<<2),((138)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
7962 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((1)<<2),((156)<<2),((3)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
7963 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((1)<<2),((171)<<2),((4)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
7964 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((3)<<2),((186)<<2),((0)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
7965 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((3)<<2),((204)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
7966 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((3)<<2),((225)<<2),((0)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
7967 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((0)<<2),((242)<<2),((0)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
7968 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((2)<<2),((255)<<2),((2)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
7969
7970 //rigth black border - no.1
7971 MHal_SC_OP1_Pattern_customize_blcok(4,4,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7972
7973 //left black border - no.2
7974 MHal_SC_OP1_Pattern_customize_blcok(4,2,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7975
7976 //Fade: Red
7977 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(1)<<2, (1)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
7978 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(21)<<2, (1)<<2,(2)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
7979 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(36)<<2, (0)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
7980 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(56)<<2, (0)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
7981 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(72)<<2, (0)<<2,(3)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
7982 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(85)<<2, (1)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
7983 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(105)<<2, (0)<<2,(4)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
7984 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(121)<<2, (1)<<2,(3)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
7985 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(136)<<2, (0)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
7986 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(153)<<2, (1)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
7987 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(171)<<2, (1)<<2,(2)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
7988 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(185)<<2, (0)<<2,(0)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
7989 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(203)<<2, (0)<<2,(4)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
7990 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(224)<<2, (0)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
7991 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(240)<<2, (1)<<2,(4)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
7992 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(254)<<2, (0)<<2,(2)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
7993
7994 //rigth black border - no.2
7995 MHal_SC_OP1_Pattern_customize_blcok(4,2,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7996
7997 //left black border - no.3
7998 MHal_SC_OP1_Pattern_customize_blcok(4,2,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
7999
8000 //Fade: Blue
8001 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(1)<<2, (1)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
8002 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(0)<<2, (0)<<2,(20)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
8003 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(0)<<2, (1)<<2,(32)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
8004 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(3)<<2, (0)<<2,(57)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
8005 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(0)<<2, (0)<<2,(72)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
8006 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(2)<<2, (0)<<2,(84)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
8007 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(0)<<2, (2)<<2,(105)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
8008 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(0)<<2, (0)<<2,(120)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
8009 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(2)<<2, (0)<<2,(136)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
8010 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(1)<<2, (2)<<2,(154)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
8011 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(0)<<2, (0)<<2,(170)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
8012 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(1)<<2, (1)<<2,(187)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
8013 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(1)<<2, (0)<<2,(202)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
8014 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(1)<<2, (1)<<2,(223)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
8015 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(1)<<2, (1)<<2,(239)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
8016 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(0)<<2, (0)<<2,(254)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
8017
8018 //rigth black border - no.3
8019 MHal_SC_OP1_Pattern_customize_blcok(4,2,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8020
8021 //left black border - no.4
8022 MHal_SC_OP1_Pattern_customize_blcok(4,2,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8023
8024 //Fade: White
8025 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(1)<<2, (1)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
8026 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(19)<<2, (19)<<2,(19)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
8027 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(37)<<2, (37)<<2,(37)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
8028 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(55)<<2, (55)<<2,(55)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
8029 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(71)<<2, (71)<<2,(71)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
8030 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(88)<<2, (88)<<2,(88)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
8031 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(106)<<2, (106)<<2,(106)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
8032 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(121)<<2, (121)<<2,(121)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
8033 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(139)<<2, (139)<<2,(139)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
8034 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(157)<<2, (157)<<2,(157)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
8035 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(172)<<2, (172)<<2,(172)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
8036 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(187)<<2, (187)<<2,(187)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
8037 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(205)<<2, (205)<<2,(205)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
8038 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(224)<<2, (224)<<2,(224)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
8039 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(241)<<2, (241)<<2,(241)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
8040 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(255)<<2, (255)<<2,(255)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
8041
8042 //rigth black border - no.4
8043 MHal_SC_OP1_Pattern_customize_blcok(4,2,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8044
8045 //left black border - no.5
8046 MHal_SC_OP1_Pattern_customize_blcok(4,6,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8047
8048 //linedot item1--------------------------------------------------------------------------------------
8049 //LineDot : left
8050 MHal_SC_OP1_Pattern_customize_blcok(3,6,FALSE,FALSE,0x7F0,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
8051
8052 //Pure between LineDot
8053 MHal_SC_OP1_Pattern_customize_blcok(10,6,FALSE,FALSE,0x336, 0x336,0x336,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
8054
8055 //LineDot: right
8056 MHal_SC_OP1_Pattern_customize_blcok(3,6,FALSE,FALSE,0x0F0,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
8057
8058 //rigth black border - no.5
8059 MHal_SC_OP1_Pattern_customize_blcok(4,6,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8060
8061 //left black border - no.6
8062 MHal_SC_OP1_Pattern_customize_blcok(4,6,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8063
8064 //linedot item2--------------------------------------------------------------------------------------
8065 //LineDot : left
8066 MHal_SC_OP1_Pattern_customize_blcok(3,6,FALSE,FALSE,0x7F0,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
8067
8068 //Pure between LineDot
8069 MHal_SC_OP1_Pattern_customize_blcok(10,6,FALSE,FALSE,0x336, 0x336,0x336,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
8070
8071 //LineDot: right
8072 MHal_SC_OP1_Pattern_customize_blcok(3,6,FALSE,FALSE,0x570,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
8073
8074 //rigth black border - no.6
8075 MHal_SC_OP1_Pattern_customize_blcok(4,6,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8076
8077 //left black border - no.7
8078 MHal_SC_OP1_Pattern_customize_blcok(4,5,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8079
8080 //linedot item3--------------------------------------------------------------------------------------
8081 //LineDot : left
8082 MHal_SC_OP1_Pattern_customize_blcok(3,5,FALSE,FALSE,0x7F0,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
8083
8084 //Pure between LineDot
8085 MHal_SC_OP1_Pattern_customize_blcok(10,5,FALSE,FALSE,0x336, 0x336,0x336,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
8086
8087 //LineDot: right
8088 MHal_SC_OP1_Pattern_customize_blcok(3,5,FALSE,FALSE,0x470,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
8089 //end of linedot item1~3-----------------------------------------------------------------------------
8090
8091 //rigth black border - no.7
8092 MHal_SC_OP1_Pattern_customize_blcok(4,5,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8093
8094
8095 //left black border -
8096 MHal_SC_OP1_Pattern_customize_blcok(4,0,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8097
8098 //linedot item4--------------------------------------------------------------------------------------
8099 //LineDot : left
8100 MHal_SC_OP1_Pattern_customize_blcok(3,0,FALSE,FALSE,0x7F0,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
8101
8102 //Pure between LineDot
8103 MHal_SC_OP1_Pattern_customize_blcok(4,0,FALSE,FALSE,0x336, 0x336,0x336,E_XC_OP1_PATTERN_TYPE_PURE);
8104
8105 MHal_SC_OP1_Pattern_customize_blcok(1,0,FALSE,FALSE,0xDC, 0xDC,0xDC,E_XC_OP1_PATTERN_TYPE_PURE);
8106
8107 MHal_SC_OP1_Pattern_customize_blcok(1,0,FALSE,FALSE,0xDC, 0xDC,0xDC,E_XC_OP1_PATTERN_TYPE_PURE);
8108
8109 MHal_SC_OP1_Pattern_customize_blcok(4,0,FALSE,FALSE,0x336, 0x336,0x336,E_XC_OP1_PATTERN_TYPE_PURE);
8110
8111
8112 //LineDot: right
8113 MHal_SC_OP1_Pattern_customize_blcok(3,0,FALSE,FALSE,0x470,0x03,0x3FF,E_XC_OP1_PATTERN_TYPE_LINEDOT);
8114 //end of linedot item 4-----------------------------------------------------------------------------
8115
8116 //rigth black border -
8117 MHal_SC_OP1_Pattern_customize_blcok(4,0,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8118
8119 //left black border - no.8
8120 MHal_SC_OP1_Pattern_customize_blcok(4,4,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8121
8122 //pure gray 55
8123 int i=0;
8124 for(i=0;i<16;i++)
8125 {
8126 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,0xDC, 0xDC,0xDC,E_XC_OP1_PATTERN_TYPE_PURE);
8127 }
8128
8129 //rigth black border - no.8
8130 MHal_SC_OP1_Pattern_customize_blcok(4,4,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8131
8132 //left black border - no.9
8133 MHal_SC_OP1_Pattern_customize_blcok(4,20,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8134
8135 //left pure block
8136 MHal_SC_OP1_Pattern_customize_blcok(3,20,FALSE,FALSE,0x00, 0x1c9,0x2f2,E_XC_OP1_PATTERN_TYPE_PURE);
8137 //middle pure block
8138 MHal_SC_OP1_Pattern_customize_blcok(10,20,FALSE,FALSE,0x161, 0x161,0x161,E_XC_OP1_PATTERN_TYPE_PURE);
8139 //rigth pure block
8140 MHal_SC_OP1_Pattern_customize_blcok(3,20,FALSE,FALSE,0x13c, 0x28,0x1d5,E_XC_OP1_PATTERN_TYPE_PURE);
8141
8142 //rigth black border - no.9
8143 MHal_SC_OP1_Pattern_customize_blcok(4,20,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8144
8145 //left black border - no.10
8146 MHal_SC_OP1_Pattern_customize_blcok(4,2,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8147
8148 //Fade: 1
8149 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(1)<<2, (1)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
8150 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(19)<<2, (15)<<2,(12)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
8151 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(49)<<2, (49)<<2,(49)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
8152 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(64)<<2, (64)<<2,(64)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
8153 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(80)<<2, (80)<<2,(80)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
8154 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(97)<<2, (97)<<2,(97)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
8155 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(112)<<2, (112)<<2,(112)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
8156 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(128)<<2, (128)<<2,(128)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
8157 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(145)<<2, (145)<<2,(145)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
8158 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(160)<<2, (160)<<2,(160)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
8159 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(181)<<2, (181)<<2,(181)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
8160 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(194)<<2, (194)<<2,(194)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
8161 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(211)<<2, (211)<<2,(211)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
8162 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(229)<<2, (229)<<2,(229)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
8163 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(247)<<2, (247)<<2,(247)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
8164 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(255)<<2, (255)<<2,(255)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
8165
8166 //rigth black border - no.10
8167 MHal_SC_OP1_Pattern_customize_blcok(4,2,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8168
8169 //left black border - no.11
8170 MHal_SC_OP1_Pattern_customize_blcok(4,2,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8171
8172 //Fade: 2
8173 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(255)<<2, (255)<<2,(1)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
8174 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(254)<<2, (248)<<2,(48)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
8175 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(255)<<2, (249)<<2,(80)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
8176 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(223)<<2, (252)<<2,(76)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
8177 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(221)<<2, (254)<<2,(22)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
8178 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(0)<<2, (255)<<2,(253)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
8179 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(44)<<2, (240)<<2,(238)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
8180 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(67)<<2, (229)<<2,(231)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
8181 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(82)<<2, (223)<<2,(230)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
8182 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(79)<<2, (209)<<2,(211)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
8183 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(0)<<2, (219)<<2,(223)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
8184 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(253)<<2, (2)<<2,(253)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
8185 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(249)<<2, (52)<<2,(254)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
8186 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(238)<<2, (73)<<2,(248)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
8187 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(233)<<2, (89)<<2,(239)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
8188 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,(239)<<2, (88)<<2,(204)<<2,E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
8189
8190 //rigth black border - no.11
8191 MHal_SC_OP1_Pattern_customize_blcok(4,2,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8192
8193 //left black border - no.12
8194 MHal_SC_OP1_Pattern_customize_blcok(4,4,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8195
8196 //Fade: 3
8197 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((1)<<2),((1)<<2),((1)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.1
8198 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((1)<<2),((1)<<2),((1)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.2
8199 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((37)<<2),((37)<<2),((37)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.3
8200 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((37)<<2),((37)<<2),((37)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.4
8201 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((56)<<2),((56)<<2),((56)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.5
8202 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((56)<<2),((56)<<2),((56)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.6
8203 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((79)<<2),((79)<<2),((79)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.7
8204 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((79)<<2),((79)<<2),((79)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.8
8205 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((217)<<2),((213)<<2),((214)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.9
8206 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((217)<<2),((213)<<2),((214)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.10
8207 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((226)<<2),((226)<<2),((226)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.11
8208 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((226)<<2),((226)<<2),((226)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.12
8209 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((242)<<2),((238)<<2),((239)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.13
8210 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((242)<<2),((238)<<2),((239)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.14
8211 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((255)<<2),((255)<<2),((255)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.15
8212 MHal_SC_OP1_Pattern_customize_blcok(1,4,FALSE,FALSE,((255)<<2),((255)<<2),((255)<<2),E_XC_OP1_PATTERN_TYPE_PURE); //NO.16
8213
8214 //rigth black border - no.12
8215 MHal_SC_OP1_Pattern_customize_blcok(4,4,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8216
8217 MHal_SC_OP1_Pattern_customize_blcok(4,0,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8218 MHal_SC_OP1_Pattern_customize_blcok(16,0,FALSE,FALSE,0x3FF,0x3FF,0x3FF,E_XC_OP1_PATTERN_TYPE_PURE);
8219 MHal_SC_OP1_Pattern_customize_blcok(4,0,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8220
8221
8222 //bottom black border
8223 MHal_SC_OP1_Pattern_customize_blcok(12,16,TRUE,FALSE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8224 MHal_SC_OP1_Pattern_customize_blcok(12,16,FALSE,TRUE,0,0,0,E_XC_OP1_PATTERN_TYPE_PURE);
8225
8226 }
8227
8228 MHal_SC_OP1_Pattern_sram_write_enable(FALSE);
8229
8230 MHal_SC_OP1_Pattern_sram_write_fastmode(FALSE);
8231
8232 MHal_SC_OP1_Pattern_set_wraddr(0x00);
8233
8234 //reg_sram_jump_thr
8235 MHal_SC_OP1_Pattern_set_jump_threshold(0x00);
8236
8237 MHal_SC_OP1_Pattern_sram_write_enable(TRUE);
8238
8239 MHal_SC_OP1_Pattern_sram_write_fastmode(TRUE);
8240
8241 //Write the border command to second SRAM
8242 MDrv_SC_OP1_Set_Pattern3_Border(pInstance);
8243
8244 MHal_SC_OP1_Pattern_sram_write_enable(FALSE);
8245
8246 MHal_SC_OP1_Pattern_sram_write_fastmode(FALSE);
8247
8248 MHal_SC_OP1_Pattern_sram_writedone();
8249 }
8250
MDrv_SC_OP1_3D_Pattern(void * pInstance,MS_U16 u16HTileCnt,MS_U16 u16VTileCnt)8251 void MDrv_SC_OP1_3D_Pattern(void *pInstance, MS_U16 u16HTileCnt, MS_U16 u16VTileCnt)
8252 {
8253 int i=0;
8254 MS_U16 u16Val =0;
8255 MS_U16 u16Step = 1024/32;
8256 MS_U16 u16HTileSize = 0, u16VTileSize = 0;
8257 MS_U16 u16HTotalSize = 0, u16VTotalSize = 0;
8258 XC_INSTANCE_PRIVATE *psXCInstPri = NULL;
8259 UtopiaInstanceGetPrivate(pInstance, (void**)&psXCInstPri);
8260 XC_RESOURCE_PRIVATE* pXCResourcePrivate = NULL;
8261 UtopiaResourceGetPrivate(g_pXCResource[_XC_SELECT_INTERNAL_VARIABLE(psXCInstPri->u32DeviceID)],(void**)(&pXCResourcePrivate));
8262
8263 //clear default pattern
8264 MHal_SC_OP1_Pattern_pure_color(0x00);
8265
8266 //disable border
8267 MHal_SC_OP1_Pattern_enable_border(FALSE,0x3FF,0x3FF,0x3FF);
8268
8269 MDrv_SC_OP1_Align_Width_Height(pInstance, u16HTileCnt, u16VTileCnt, &u16HTotalSize, &u16VTotalSize);
8270
8271 u16HTileSize = u16HTotalSize/u16HTileCnt;
8272 u16VTileSize = u16VTotalSize/u16VTileCnt;
8273 MHal_SC_OP1_PatGen_adjust_frame_size(u16HTotalSize, u16VTotalSize);
8274
8275 MHal_SC_OP1_Pattern_sram_writestart();
8276
8277 MHal_SC_OP1_Pattern_define_tile(u16HTileSize, u16VTileSize);
8278
8279 if (pXCResourcePrivate->stdrvXC_MVideo_Context.g_XC_InitData.bMirror)
8280 {
8281 //no.7----------------------------------------------------------------------
8282 //RIGHT
8283 u16Val = 1023;
8284 for(i=0;i<32;i++)
8285 {
8286 if(i==0)
8287 {
8288 MHal_SC_OP1_Pattern_customize_blcok(1,16,TRUE,FALSE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
8289 }
8290 else if(i== 31)
8291 {
8292 MHal_SC_OP1_Pattern_customize_blcok(1,16,FALSE,FALSE,0,0,0, E_XC_OP1_PATTERN_TYPE_PURE);
8293 }
8294 else
8295 {
8296 MHal_SC_OP1_Pattern_customize_blcok(1,16,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8297 }
8298 u16Val -= u16Step;
8299 }
8300
8301 //LEFT
8302 u16Val = 1023;
8303 for(i=0;i<32;i++)
8304 {
8305 if(i==0)
8306 {
8307 MHal_SC_OP1_Pattern_customize_blcok(1,16,FALSE,FALSE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
8308 }
8309 else if(i== 31)
8310 {
8311 MHal_SC_OP1_Pattern_customize_blcok(1,16,FALSE,TRUE,0,0,0, E_XC_OP1_PATTERN_TYPE_PURE);
8312 }
8313 else
8314 {
8315 MHal_SC_OP1_Pattern_customize_blcok(1,16,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8316 }
8317 u16Val -= u16Step;
8318 }
8319
8320 //no.6----------------------------------------------------------------------
8321 u16Val = 1023;
8322 for(i=0;i<18;i++)
8323 {
8324 if(i==0)
8325 {
8326 MHal_SC_OP1_Pattern_customize_blcok(1,1,TRUE,FALSE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
8327 }
8328 else
8329 {
8330 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8331 }
8332 u16Val -= u16Step;
8333 }
8334
8335 //green box -16
8336 MHal_SC_OP1_Pattern_customize_blcok(2,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2), E_XC_OP1_PATTERN_TYPE_PURE);
8337 u16Val -= u16Step;
8338 u16Val -= u16Step;
8339
8340 //RIGHT
8341 for(i=0;i<12;i++)
8342 {
8343 if(i==11)
8344 {
8345 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0,0,0, E_XC_OP1_PATTERN_TYPE_PURE);
8346 }
8347 else
8348 {
8349 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8350 }
8351 u16Val -= u16Step;
8352 }
8353
8354 u16Val = 1023;
8355 for(i=0;i<10;i++)
8356 {
8357 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8358 u16Val -= u16Step;
8359 }
8360
8361 // green box - 15
8362 MHal_SC_OP1_Pattern_customize_blcok(3,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8363 u16Val -= u16Step;
8364 u16Val -= u16Step;
8365 u16Val -= u16Step;
8366
8367 for(i=0;i<7;i++)
8368 {
8369 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8370 u16Val -= u16Step;
8371 }
8372
8373 //green box -14
8374 MHal_SC_OP1_Pattern_customize_blcok(3,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8375 u16Val -= u16Step;
8376 u16Val -= u16Step;
8377 u16Val -= u16Step;
8378
8379 //LEFT
8380 for(i=0;i<9;i++)
8381 {
8382 if(i==8)
8383 {
8384 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,TRUE,0,0,0, E_XC_OP1_PATTERN_TYPE_PURE);
8385 }
8386 else
8387 {
8388 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8389 }
8390 u16Val -= u16Step;
8391 }
8392
8393 //no.5
8394 for(i=0;i<8;i++)
8395 {
8396 if(i== 0)
8397 {
8398 MHal_SC_OP1_Pattern_customize_blcok(1,1,TRUE,FALSE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
8399 }
8400 else
8401 {
8402 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8403 }
8404 u16Val -= u16Step;
8405 }
8406
8407 //green box -13
8408 MHal_SC_OP1_Pattern_customize_blcok(2,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8409 u16Val -= u16Step;
8410 u16Val -= u16Step;
8411
8412 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8413 u16Val -= u16Step;
8414
8415 //green box -12
8416 MHal_SC_OP1_Pattern_customize_blcok(2,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8417 u16Val -= u16Step;
8418 u16Val -= u16Step;
8419
8420 for(i=0;i<5;i++)
8421 {
8422 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8423 u16Val -= u16Step;
8424 }
8425
8426 //green box -11
8427 MHal_SC_OP1_Pattern_customize_blcok(2,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8428 u16Val -= u16Step;
8429 u16Val -= u16Step;
8430
8431 //RIGHT
8432 for(i=0;i<12;i++)
8433 {
8434 if(i==11)
8435 {
8436 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0,0,0, E_XC_OP1_PATTERN_TYPE_PURE);
8437 }
8438 else
8439 {
8440 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8441 }
8442 u16Val -= u16Step;
8443 }
8444
8445 //LEFT
8446 u16Val =1023;
8447 for(i=0;i<32;i++)
8448 {
8449 if(i==0)
8450 {
8451 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
8452 }
8453 else if(i== 31)
8454 {
8455 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,TRUE,0,0,0, E_XC_OP1_PATTERN_TYPE_PURE);
8456 }
8457 else
8458 {
8459 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8460 }
8461 u16Val -= u16Step;
8462 }
8463
8464 //no.4
8465 u16Val = 1023;
8466 for(i=0;i<8;i++)
8467 {
8468 if(i== 0)
8469 {
8470 MHal_SC_OP1_Pattern_customize_blcok(1,1,TRUE,FALSE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
8471 }
8472 else
8473 {
8474 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8475 }
8476 u16Val -= u16Step;
8477 }
8478
8479 //green box -10
8480 MHal_SC_OP1_Pattern_customize_blcok(2,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8481 u16Val -= u16Step;
8482 u16Val -= u16Step;
8483
8484 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8485 u16Val -= u16Step;
8486
8487 //green box -9
8488 MHal_SC_OP1_Pattern_customize_blcok(2,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8489 u16Val -= u16Step;
8490 u16Val -= u16Step;
8491
8492 for(i=0;i<5;i++)
8493 {
8494 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8495 u16Val -= u16Step;
8496 }
8497
8498 //green box -8
8499 MHal_SC_OP1_Pattern_customize_blcok(2,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8500 u16Val -= u16Step;
8501 u16Val -= u16Step;
8502
8503 //RIGHT
8504 for(i=0;i<12;i++)
8505 {
8506 if(i==11)
8507 {
8508 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0,0,0, E_XC_OP1_PATTERN_TYPE_PURE);
8509 }
8510 else
8511 {
8512 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8513 }
8514 u16Val -= u16Step;
8515 }
8516
8517 u16Val = 1023;
8518 for(i=0;i<20;i++)
8519 {
8520 if(i==0)
8521 {
8522 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
8523 }
8524 else
8525 {
8526 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8527 }
8528 u16Val -= u16Step;
8529 }
8530
8531 //green box -7
8532 MHal_SC_OP1_Pattern_customize_blcok(3,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8533 u16Val -= u16Step;
8534 u16Val -= u16Step;
8535 u16Val -= u16Step;
8536
8537 //LEFT
8538 for(i=0;i<9;i++)
8539 {
8540 if(i==8)
8541 {
8542 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,TRUE,0,0,0, E_XC_OP1_PATTERN_TYPE_PURE);
8543 }
8544 else
8545 {
8546 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8547 }
8548 u16Val -= u16Step;
8549 }
8550
8551 //no.3
8552 u16Val = 1023;
8553 for(i=0;i<8;i++)
8554 {
8555 if(i== 0)
8556 {
8557 MHal_SC_OP1_Pattern_customize_blcok(1,1,TRUE,FALSE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
8558 }
8559 else
8560 {
8561 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8562 }
8563 u16Val -= u16Step;
8564 }
8565
8566 //green box -6
8567 MHal_SC_OP1_Pattern_customize_blcok(2,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8568 u16Val -= u16Step;
8569 u16Val -= u16Step;
8570
8571 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8572 u16Val -= u16Step;
8573
8574 //green box -5
8575 MHal_SC_OP1_Pattern_customize_blcok(2,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8576 u16Val -= u16Step;
8577 u16Val -= u16Step;
8578
8579 for(i=0;i<5;i++)
8580 {
8581 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8582 u16Val -= u16Step;
8583 }
8584
8585 //green box -4
8586 MHal_SC_OP1_Pattern_customize_blcok(2,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8587 u16Val -= u16Step;
8588 u16Val -= u16Step;
8589
8590 //RIGHT
8591 for(i=0;i<12;i++)
8592 {
8593 if(i==11)
8594 {
8595 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0,0,0, E_XC_OP1_PATTERN_TYPE_PURE);
8596 }
8597 else
8598 {
8599 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8600 }
8601 u16Val -= u16Step;
8602 }
8603
8604 //LEFT
8605 u16Val =1023;
8606 for(i=0;i<32;i++)
8607 {
8608 if(i==0)
8609 {
8610 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8611 }
8612 else if(i== 31)
8613 {
8614 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,TRUE,0,0,0, E_XC_OP1_PATTERN_TYPE_PURE);
8615 }
8616 else
8617 {
8618 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8619 }
8620 u16Val -= u16Step;
8621 }
8622
8623 //no.2
8624 u16Val =1023;
8625 for(i=0;i<18;i++)
8626 {
8627 if(i==0)
8628 {
8629 MHal_SC_OP1_Pattern_customize_blcok(1,1,TRUE,FALSE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
8630 }
8631 else
8632 {
8633 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8634 }
8635 u16Val -= u16Step;
8636 }
8637
8638 //green box -3
8639 MHal_SC_OP1_Pattern_customize_blcok(2,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8640 u16Val -= u16Step;
8641 u16Val -= u16Step;
8642
8643 //RIGTH
8644 for(i=0;i<12;i++)
8645 {
8646 if(i==11)
8647 {
8648 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,0,0,0, E_XC_OP1_PATTERN_TYPE_PURE);
8649 }
8650 else
8651 {
8652 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8653 }
8654 u16Val -= u16Step;
8655 }
8656
8657 u16Val = 1023;
8658 for(i=0;i<10;i++)
8659 {
8660 if(i==0)
8661 {
8662 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
8663 }
8664 else
8665 {
8666 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8667 }
8668 u16Val -= u16Step;
8669 }
8670
8671 // green box - 2
8672 MHal_SC_OP1_Pattern_customize_blcok(3,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8673 u16Val -= u16Step;
8674 u16Val -= u16Step;
8675 u16Val -= u16Step;
8676
8677 for(i=0;i<7;i++)
8678 {
8679 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8680 u16Val -= u16Step;
8681 }
8682
8683 //green box -1
8684 MHal_SC_OP1_Pattern_customize_blcok(3,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8685 u16Val -= u16Step;
8686 u16Val -= u16Step;
8687 u16Val -= u16Step;
8688
8689 //LEFT
8690 for(i=0;i<9;i++)
8691 {
8692 if(i==8)
8693 {
8694 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,TRUE,0,0,0, E_XC_OP1_PATTERN_TYPE_PURE);
8695 }
8696 else
8697 {
8698 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8699 }
8700 u16Val -= u16Step;
8701 }
8702
8703 // no.1
8704 //RIGHT
8705 u16Val = 1023;
8706 for(i=0;i<32;i++)
8707 {
8708 if(i==0)
8709 {
8710 MHal_SC_OP1_Pattern_customize_blcok(1,2,TRUE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8711 }
8712 else if(i== 31)
8713 {
8714 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,0,0,0, E_XC_OP1_PATTERN_TYPE_PURE);
8715 }
8716 else
8717 {
8718 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8719 }
8720 u16Val -= u16Step;
8721 }
8722
8723 //LEFT
8724 u16Val = 1023;
8725 for(i=0;i<32;i++)
8726 {
8727 if(i==0)
8728 {
8729 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8730 }
8731 else if(i== 31)
8732 {
8733 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,TRUE,0,0,0, E_XC_OP1_PATTERN_TYPE_PURE);
8734 }
8735 else
8736 {
8737 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8738 }
8739 u16Val -= u16Step;
8740 }
8741 }
8742 else
8743 {
8744 //no.1----------------------------------------------------------------------
8745 //LEFT
8746 for(i=0;i<32;i++){
8747 if(i==0){
8748 MHal_SC_OP1_Pattern_customize_blcok(1,2,TRUE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8749 }else if(i== 31){
8750 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
8751 }else{
8752 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8753 }
8754 u16Val += u16Step;
8755 }
8756
8757 //RIGHT
8758 u16Val = 0;
8759 for(i=0;i<32;i++){
8760 if(i==0){
8761 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8762 }else if(i== 31){
8763 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,TRUE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
8764 }else{
8765 MHal_SC_OP1_Pattern_customize_blcok(1,2,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8766 }
8767 u16Val += u16Step;
8768 }
8769
8770 //no.2-----------------------------------------------------------------------
8771 //LEFT
8772 u16Val = 0;
8773 for(i=0;i<9;i++){
8774 if(i==0){
8775 MHal_SC_OP1_Pattern_customize_blcok(1,1,TRUE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8776 }
8777 else{
8778 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8779 }
8780 u16Val += u16Step;
8781 }
8782
8783 //green box -1
8784 MHal_SC_OP1_Pattern_customize_blcok(3,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8785 u16Val += u16Step;
8786 u16Val += u16Step;
8787 u16Val += u16Step;
8788
8789 for(i=0;i<7;i++){
8790 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8791 u16Val += u16Step;
8792 }
8793
8794 // green box - 2
8795 MHal_SC_OP1_Pattern_customize_blcok(3,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8796 u16Val += u16Step;
8797 u16Val += u16Step;
8798 u16Val += u16Step;
8799
8800 for(i=0;i<10;i++){
8801 if(i==9){
8802 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
8803 }else{
8804 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8805 }
8806 u16Val += u16Step;
8807 }
8808
8809 //RIGTH
8810 u16Val=0;
8811 for(i=0;i<12;i++){
8812 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8813 u16Val += u16Step;
8814 }
8815
8816 //green box -3
8817 MHal_SC_OP1_Pattern_customize_blcok(2,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8818 u16Val += u16Step;
8819 u16Val += u16Step;
8820
8821 for(i=0;i<18;i++){
8822 if(i==17){
8823 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,TRUE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
8824 }
8825 else{
8826 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8827 }
8828 u16Val += u16Step;
8829 }
8830
8831 //no.3
8832 //LEFT
8833 u16Val =0;
8834 for(i=0;i<32;i++){
8835 if(i==0){
8836 MHal_SC_OP1_Pattern_customize_blcok(1,1,TRUE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8837 }else if(i== 31){
8838 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
8839 }else{
8840 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8841 }
8842 u16Val += u16Step;
8843 }
8844
8845 //RIGHT
8846 u16Val=0;
8847 for(i=0;i<12;i++){
8848 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8849 u16Val += u16Step;
8850 }
8851
8852 //green box -4
8853 MHal_SC_OP1_Pattern_customize_blcok(2,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8854 u16Val += u16Step;
8855 u16Val += u16Step;
8856
8857 for(i=0;i<5;i++){
8858 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8859 u16Val += u16Step;
8860 }
8861
8862 //green box -5
8863 MHal_SC_OP1_Pattern_customize_blcok(2,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8864 u16Val += u16Step;
8865 u16Val += u16Step;
8866
8867 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8868 u16Val += u16Step;
8869
8870 //green box -6
8871 MHal_SC_OP1_Pattern_customize_blcok(2,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8872 u16Val += u16Step;
8873 u16Val += u16Step;
8874
8875 for(i=0;i<8;i++){
8876 if(i== 7){
8877 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,TRUE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
8878 }else{
8879 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8880 }
8881 u16Val += u16Step;
8882 }
8883
8884 //no.4
8885 //LEFT
8886 u16Val = 0;
8887 for(i=0;i<9;i++){
8888 if(i==0){
8889 MHal_SC_OP1_Pattern_customize_blcok(1,1,TRUE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8890 }
8891 else{
8892 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8893 }
8894 u16Val += u16Step;
8895 }
8896
8897 //green box -7
8898 MHal_SC_OP1_Pattern_customize_blcok(3,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8899 u16Val += u16Step;
8900 u16Val += u16Step;
8901 u16Val += u16Step;
8902
8903 for(i=0;i<20;i++){
8904 if(i==19){
8905 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
8906 }
8907 else{
8908 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8909 }
8910 u16Val += u16Step;
8911 }
8912
8913 //RIGHT
8914 u16Val=0;
8915 for(i=0;i<12;i++){
8916 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8917 u16Val += u16Step;
8918 }
8919
8920 //green box -8
8921 MHal_SC_OP1_Pattern_customize_blcok(2,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8922 u16Val += u16Step;
8923 u16Val += u16Step;
8924
8925 for(i=0;i<5;i++){
8926 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8927 u16Val += u16Step;
8928 }
8929
8930 //green box -9
8931 MHal_SC_OP1_Pattern_customize_blcok(2,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8932 u16Val += u16Step;
8933 u16Val += u16Step;
8934
8935 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8936 u16Val += u16Step;
8937
8938 //green box -10
8939 MHal_SC_OP1_Pattern_customize_blcok(2,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8940 u16Val += u16Step;
8941 u16Val += u16Step;
8942
8943 for(i=0;i<8;i++){
8944 if(i== 7){
8945 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,TRUE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
8946 }else{
8947 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8948 }
8949 u16Val += u16Step;
8950 }
8951
8952 //no.5
8953 //LEFT
8954 u16Val =0;
8955 for(i=0;i<32;i++){
8956 if(i==0){
8957 MHal_SC_OP1_Pattern_customize_blcok(1,1,TRUE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8958 }else if(i== 31){
8959 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
8960 }else{
8961 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8962 }
8963 u16Val += u16Step;
8964 }
8965
8966 //RIGHT
8967 u16Val=0;
8968 for(i=0;i<12;i++){
8969 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8970 u16Val += u16Step;
8971 }
8972
8973 //green box -11
8974 MHal_SC_OP1_Pattern_customize_blcok(2,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2),E_XC_OP1_PATTERN_TYPE_PURE);
8975 u16Val += u16Step;
8976 u16Val += u16Step;
8977
8978 for(i=0;i<5;i++){
8979 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8980 u16Val += u16Step;
8981 }
8982
8983 //green box -12
8984 MHal_SC_OP1_Pattern_customize_blcok(2,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2), E_XC_OP1_PATTERN_TYPE_PURE);
8985 u16Val += u16Step;
8986 u16Val += u16Step;
8987
8988 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
8989 u16Val += u16Step;
8990
8991 //green box -13
8992 MHal_SC_OP1_Pattern_customize_blcok(2,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2), E_XC_OP1_PATTERN_TYPE_PURE);
8993 u16Val += u16Step;
8994 u16Val += u16Step;
8995
8996 for(i=0;i<8;i++){
8997 if(i== 7){
8998 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,TRUE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
8999 }else{
9000 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
9001 }
9002 u16Val += u16Step;
9003 }
9004
9005 //no.6
9006 //LEFT
9007 u16Val = 0;
9008 for(i=0;i<9;i++){
9009 if(i==0){
9010 MHal_SC_OP1_Pattern_customize_blcok(1,1,TRUE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
9011 }
9012 else{
9013 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
9014 }
9015 u16Val += u16Step;
9016 }
9017
9018 //green box -14
9019 MHal_SC_OP1_Pattern_customize_blcok(3,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2), E_XC_OP1_PATTERN_TYPE_PURE);
9020 u16Val += u16Step;
9021 u16Val += u16Step;
9022 u16Val += u16Step;
9023
9024 for(i=0;i<7;i++){
9025 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
9026 u16Val += u16Step;
9027 }
9028
9029 // green box - 15
9030 MHal_SC_OP1_Pattern_customize_blcok(3,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2), E_XC_OP1_PATTERN_TYPE_PURE);
9031 u16Val += u16Step;
9032 u16Val += u16Step;
9033 u16Val += u16Step;
9034
9035 for(i=0;i<10;i++){
9036 if(i==9){
9037 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
9038 }else{
9039 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
9040 }
9041 u16Val += u16Step;
9042 }
9043
9044 //RIGHT
9045 u16Val = 0;
9046 for(i=0;i<12;i++){
9047 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
9048 u16Val += u16Step;
9049 }
9050
9051 //green box -16
9052 MHal_SC_OP1_Pattern_customize_blcok(2,1,FALSE,FALSE,(30<<2),(200<<2),(30<<2), E_XC_OP1_PATTERN_TYPE_PURE);
9053 u16Val += u16Step;
9054 u16Val += u16Step;
9055
9056 for(i=0;i<18;i++){
9057 if(i==17){
9058 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,TRUE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
9059 }
9060 else{
9061 MHal_SC_OP1_Pattern_customize_blcok(1,1,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
9062 }
9063 u16Val += u16Step;
9064 }
9065
9066 //no.7----------------------------------------------------------------------
9067 //LEFT
9068 for(i=0;i<32;i++){
9069 if(i==0){
9070 MHal_SC_OP1_Pattern_customize_blcok(1,16,TRUE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
9071 }else if(i== 31){
9072 MHal_SC_OP1_Pattern_customize_blcok(1,16,FALSE,FALSE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
9073 }else{
9074 MHal_SC_OP1_Pattern_customize_blcok(1,16,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
9075 }
9076 u16Val += u16Step;
9077 }
9078
9079 //RIGHT
9080 u16Val =0;
9081 for(i=0;i<32;i++){
9082 if(i==0){
9083 MHal_SC_OP1_Pattern_customize_blcok(1,16,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
9084 }else if(i== 31){
9085 MHal_SC_OP1_Pattern_customize_blcok(1,16,FALSE,TRUE,1023,1023,1023, E_XC_OP1_PATTERN_TYPE_PURE);
9086 }else{
9087 MHal_SC_OP1_Pattern_customize_blcok(1,16,FALSE,FALSE,u16Val,u16Val,u16Val, E_XC_OP1_PATTERN_TYPE_PURE);
9088 }
9089 u16Val += u16Step;
9090 }
9091 }
9092
9093 MHal_SC_OP1_Pattern_sram_writedone();
9094
9095 }
9096
MDrv_SC_OP1_Pure_Color_Tile_Pattern(void * pInstance,MS_U16 u16HTileCnt,MS_U16 u16VTileCnt,MS_U16 u16RVal,MS_U16 u16GVal,MS_U16 u16BVal)9097 void MDrv_SC_OP1_Pure_Color_Tile_Pattern(void *pInstance, MS_U16 u16HTileCnt, MS_U16 u16VTileCnt, MS_U16 u16RVal, MS_U16 u16GVal, MS_U16 u16BVal)
9098 {
9099 MS_U16 u16HTileSize = 0, u16VTileSize = 0;
9100 MS_U16 u16HTotalSize = 0, u16VTotalSize = 0;
9101
9102 //clear default pattern
9103 MHal_SC_OP1_Pattern_pure_color(0x00);
9104
9105 //disable border
9106 MHal_SC_OP1_Pattern_enable_border(FALSE,0x3FF,0x3FF,0x3FF);
9107
9108 MDrv_SC_OP1_Align_Width_Height(pInstance, u16HTileCnt, u16VTileCnt, &u16HTotalSize, &u16VTotalSize);
9109
9110 u16HTileSize = u16HTotalSize/u16HTileCnt;
9111 u16VTileSize = u16VTotalSize/u16VTileCnt;
9112 MHal_SC_OP1_PatGen_adjust_frame_size(u16HTotalSize, u16VTotalSize);
9113
9114 MHal_SC_OP1_Pattern_sram_writestart();
9115
9116 MHal_SC_OP1_Pattern_define_tile(u16HTileSize, u16VTileSize);
9117
9118 MHal_SC_OP1_Pattern_customize_blcok(u16HTileCnt,(u16VTileCnt-1),true,true,u16RVal,u16GVal,u16BVal,E_XC_OP1_PATTERN_TYPE_PURE);
9119
9120 MHal_SC_OP1_Pattern_sram_writedone();
9121 }
9122 #endif
9123 #endif
9124
9125 #ifndef MSOS_TYPE_NOS
9126 #undef _GNU_SOURCE // need this _GNU_SOURCE because we need to check tid by "syscall"
9127 #endif
9128