import PULS_20160108
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / misc / mediatek / hdmi / internal_hdmi / mt8127 / hdmicmd.c
1 #ifdef CONFIG_MTK_INTERNAL_HDMI_SUPPORT
2
3 #include "hdmi_ctrl.h"
4 #include "hdmicmd.h"
5
6 static unsigned int pdMpegInfoReg[] =
7 {
8 0x19c, 0x00000001,//version
9 0x1A0, 0x00000085,//type
10 0x1A4, 0x0000000a,//length
11 0x188, 0x000000dE,//check sum
12 0x188, 0x00000040,
13 0x188, 0x00000050,
14 0x188, 0x00000000,
15 0x188, 0x00000002,
16 0x188, 0x00000000,
17 0x188, 0x00000000,
18 0x188, 0x00000000,
19 0x188, 0x00000000,
20 0x188, 0x00000000,
21 0x188, 0x00000000
22
23 };
24 static unsigned int pdMpegInfoReg2[] =
25 {
26 0x19c, 0x00000001,//version
27 0x1A0, 0x00000085,//type
28 0x1A4, 0x0000000a,//length
29 0x188, 0x000000d4,//check sum
30 0x188, 0x00000041,
31 0x188, 0x00000052,
32 0x188, 0x00000003,
33 0x188, 0x00000002,
34 0x188, 0x00000000,
35 0x188, 0x00000000,
36 0x188, 0x00000000,
37 0x188, 0x00000000,
38 0x188, 0x00000000,
39 0x188, 0x00000004
40
41 };
42
43
44 static unsigned int pdSpdInfoReg[] =
45 {
46 0x19c, 0x00000001,//version
47 0x1A0, 0x00000083,//type
48 0x1A4, 0x00000019,//length, 25 bytes
49 0x188, 0x000000d1,//check sum
50 0x188, 0x00000040,
51 0x188, 0x00000050,
52 0x188, 0x00000000,
53 0x188, 0x00000002,
54 0x188, 0x00000000,
55 0x188, 0x00000000,
56 0x188, 0x00000000,
57 0x188, 0x00000000,
58 0x188, 0x00000000,
59 0x188, 0x00000000,
60 0x188, 0x00000000,
61 0x188, 0x00000000,
62 0x188, 0x00000000,
63 0x188, 0x00000000,
64 0x188, 0x00000000,
65 0x188, 0x00000000,
66 0x188, 0x00000000,
67 0x188, 0x00000000,
68 0x188, 0x00000000,
69 0x188, 0x00000000,
70 0x188, 0x00000000,
71 0x188, 0x00000000,
72 0x188, 0x00000000,
73 0x188, 0x00000000,
74 0x188, 0x00000000
75
76 };
77 static unsigned int pdSpdInfoReg2[] =
78 {
79 0x19c, 0x00000001,//version
80 0x1A0, 0x00000083,//type
81 0x1A4, 0x00000019,//length, 25 bytes
82 0x188, 0x000000cf,//check sum
83 0x188, 0x00000040,
84 0x188, 0x00000050,
85 0x188, 0x00000000,
86 0x188, 0x00000002,
87 0x188, 0x00000000,
88 0x188, 0x00000000,
89 0x188, 0x00000000,
90 0x188, 0x00000000,
91 0x188, 0x00000000,
92 0x188, 0x00000000,
93 0x188, 0x00000000,
94 0x188, 0x00000000,
95 0x188, 0x00000000,
96 0x188, 0x00000000,
97 0x188, 0x00000000,
98 0x188, 0x00000000,
99 0x188, 0x00000000,
100 0x188, 0x00000000,
101 0x188, 0x00000000,
102 0x188, 0x00000000,
103 0x188, 0x00000000,
104 0x188, 0x00000000,
105 0x188, 0x00000000,
106 0x188, 0x00000000,
107 0x188, 0x00000002
108
109 };
110
111
112
113 static unsigned int pdAudioInfoReg[] =
114 {
115 0x19c, 0x00000001,//version
116 0x1A0, 0x00000084,//type
117 0x1A4, 0x0000000a,//length
118 0x188, 0x0000006a,//check sum
119 0x188, 0x00000000,
120 0x188, 0x00000000,
121 0x188, 0x00000000,
122 0x188, 0x00000007,
123 0x188, 0x00000000,
124 0x188, 0x00000000,
125 0x188, 0x00000000,
126 0x188, 0x00000000,
127 0x188, 0x00000000,
128 0x188, 0x00000000
129
130 };
131 static unsigned int pdAudioInfoReg2[] =
132 {
133 0x19c, 0x00000001,//version
134 0x1A0, 0x00000084,//type
135 0x1A4, 0x0000000a,//length
136 0x188, 0x00000055,//check sum
137 0x188, 0x00000000,
138 0x188, 0x00000000,
139 0x188, 0x00000000,
140 0x188, 0x00000007,
141 0x188, 0x00000001,
142 0x188, 0x00000002,
143 0x188, 0x00000003,
144 0x188, 0x00000004,
145 0x188, 0x00000005,
146 0x188, 0x00000006
147
148 };
149
150
151 static unsigned int pdVendorSpecInfoReg[] =
152 {
153 0x19c, 0x00000001,//version
154 0x1A0, 0x00000081,//type
155 0x1A4, 0x0000000a,//length
156 0x188, 0x000000E2,//check sum
157 0x188, 0x00000040,
158 0x188, 0x00000050,
159 0x188, 0x00000000,
160 0x188, 0x00000002,
161 0x188, 0x00000000,
162 0x188, 0x00000000,
163 0x188, 0x00000000,
164 0x188, 0x00000000,
165 0x188, 0x00000000,
166 0x188, 0x00000000
167
168 };
169 static unsigned int pdVendorSpecInfoReg2[] =
170 {
171 0x19c, 0x00000001,//version
172 0x1A0, 0x00000081,//type
173 0x1A4, 0x0000000a,//length
174 0x188, 0x000000d2,//check sum
175 0x188, 0x00000040,
176 0x188, 0x00000050,
177 0x188, 0x00000000,
178 0x188, 0x00000002,
179 0x188, 0x00000001,
180 0x188, 0x00000002,
181 0x188, 0x00000003,
182 0x188, 0x00000004,
183 0x188, 0x00000006,
184 0x188, 0x00000000
185
186 };
187
188
189 static unsigned int pdGenericInfoReg[] =
190 {
191 0x19c, 0x00000001,//version
192 0x1A0, 0x00000087,//type
193 0x1A4, 0x0000000a,//length
194 0x188, 0x000000DC,//check sum
195 0x188, 0x00000040,
196 0x188, 0x00000050,
197 0x188, 0x00000000,
198 0x188, 0x00000002,
199 0x188, 0x00000000,
200 0x188, 0x00000000,
201 0x188, 0x00000000,
202 0x188, 0x00000000,
203 0x188, 0x00000000,
204 0x188, 0x00000000
205 };
206 static unsigned int pdGenericInfoReg2[] =
207 {
208 0x19c, 0x00000001,//version
209 0x1A0, 0x00000087,//type
210 0x1A4, 0x0000000a,//length
211 0x188, 0x000000BA,//check sum
212 0x188, 0x00000041,
213 0x188, 0x00000051,
214 0x188, 0x00000000,
215 0x188, 0x00000002,
216 0x188, 0x00000010,
217 0x188, 0x00000001,
218 0x188, 0x00000002,
219 0x188, 0x00000003,
220 0x188, 0x00000004,
221 0x188, 0x00000006
222 };
223
224
225 static unsigned int pdACPInfoReg[] =
226 {
227 0x19c, 0x00000002,//version, acp type
228 0x1A0, 0x00000004,//type
229 0x1A4, 0x00000000,//length
230 0x188, 0x000000dE,//check sum, PB0
231 0x188, 0x00000040,
232 0x188, 0x00000050,
233 0x188, 0x00000000,
234 0x188, 0x00000002
235
236
237 };
238 static unsigned int pdACPInfoReg2[] =
239 {
240 0x19c, 0x00000002,//version, acp type
241 0x1A0, 0x00000004,//type
242 0x1A4, 0x00000000,//length
243 0x188, 0x000000dE,//check sum, PB0
244 0x188, 0x00000040,
245 0x188, 0x00000050,
246 0x188, 0x00000001,
247 0x188, 0x00000001
248
249
250 };
251
252
253 static unsigned int pdISRC1InfoReg[] =
254 {
255 0x19c, 0x00000002,//version, ISRC status
256 0x1A0, 0x00000005,//type
257 0x1A4, 0x00000000,//length
258 0x188, 0x000000dE,//check sum, PB0
259 0x188, 0x00000040,
260 0x188, 0x00000050,
261 0x188, 0x00000000,
262 0x188, 0x00000002
263
264 };
265 static unsigned int pdISRC1InfoReg2[] =
266 {
267 0x19c, 0x00000002,//version, ISRC status
268 0x1A0, 0x00000005,//type
269 0x1A4, 0x00000000,//length
270 0x188, 0x000000d0,//check sum, PB0
271 0x188, 0x00000041,
272 0x188, 0x00000051,
273 0x188, 0x00000003,
274 0x188, 0x00000001
275
276 };
277
278
279 static unsigned int pdISRC2InfoReg[] =
280 {
281 0x19c, 0x00000000,//version, ISRC status
282 0x1A0, 0x00000006,//type
283 0x1A4, 0x00000000,//length
284 0x188, 0x000000dE,//check sum, PB0
285 0x188, 0x00000040,
286 0x188, 0x00000050,
287 0x188, 0x00000000,
288 0x188, 0x00000002
289
290 };
291 static unsigned int pdISRC2InfoReg2[] =
292 {
293 0x19c, 0x00000000,//version, ISRC status
294 0x1A0, 0x00000006,//type
295 0x1A4, 0x00000000,//length
296 0x188, 0x000000d6,//check sum, PB0
297 0x188, 0x00000042,
298 0x188, 0x00000052,
299 0x188, 0x00000002,
300 0x188, 0x00000004
301
302 };
303
304
305 static unsigned int pdGamutInfoReg[] =
306 {
307 0x19c, 0x00000080,//HB1 version
308 0x1A0, 0x0000000a,//HB0 type
309 0x1A4, 0x00000030,//HB2
310 0x188, 0x00000000//PB0
311
312 };
313 static unsigned int pdGamutInfoReg2[] =
314 {
315 0x19c, 0x00000080,//HB1 version
316 0x1A0, 0x0000000a,//HB0 type
317 0x1A4, 0x00000030,//HB2
318 0x188, 0x00000001//PB0
319
320 };
321
322 void hdmi_InfoframeSetting (unsigned char i1typemode, unsigned char i1typeselect)
323 {
324 unsigned int u4Ind;
325 unsigned char bData;
326
327 if((i1typemode==0xff)&&(i1typeselect==0xff))
328 {
329 printk("Arg1: Infoframe output type\n");
330 printk("1: AVi, 2: Mpeg, 3: SPD\n");
331 printk("4: Vendor, 5: Audio, 6: ACP\n");
332 printk("7: ISRC1, 8: ISRC2, 9:GENERIC \n");
333 printk("10:GAMUT \n");
334
335 printk("Arg2: Infoframe data select\n");
336 printk("0: old(default), 1: new;\n");
337 return ;
338 }
339
340 if(i1typeselect == 0)
341 {
342 switch(i1typemode)
343 {
344 case 1: //Avi
345
346 vSendAVIInfoFrame(HDMI_VIDEO_1280x720p_50Hz, 1);
347
348 break;
349
350 case 2: //Mpeg
351 vWriteHdmiGRLMsk(GRL_CTRL,0,(1<<4));
352 for(u4Ind=0;u4Ind< (sizeof(pdMpegInfoReg)/4) ;u4Ind+=2)
353 vWriteByteHdmiGRL(pdMpegInfoReg[u4Ind], pdMpegInfoReg[u4Ind+1]);
354 vWriteHdmiGRLMsk(GRL_CTRL,(1<<4),(1<<4));
355
356 break;
357
358 case 3:
359 vWriteHdmiGRLMsk(GRL_CTRL,0,(1<<3));
360 for(u4Ind=0;u4Ind< (sizeof(pdSpdInfoReg)/4) ;u4Ind+=2)
361 vWriteByteHdmiGRL(pdSpdInfoReg[u4Ind], pdSpdInfoReg[u4Ind+1]);
362 vWriteHdmiGRLMsk(GRL_CTRL,(1<<3),(1<<3));
363 break;
364
365
366 case 4:
367 //Vendor spec
368 vWriteHdmiGRLMsk(GRL_ACP_ISRC_CTRL,0,(1<<0));
369 for(u4Ind=0;u4Ind< (sizeof(pdVendorSpecInfoReg)/4) ;u4Ind+=2)
370 vWriteByteHdmiGRL(pdVendorSpecInfoReg[u4Ind], pdVendorSpecInfoReg[u4Ind+1]);
371 vWriteHdmiGRLMsk(GRL_ACP_ISRC_CTRL,(1<<0),(1<<0));
372 break;
373
374
375 case 5:
376 vWriteHdmiGRLMsk(GRL_CTRL,0,(1<<5));
377 for(u4Ind=0;u4Ind< (sizeof(pdAudioInfoReg)/4) ;u4Ind+=2)
378 vWriteByteHdmiGRL(pdAudioInfoReg[u4Ind], pdAudioInfoReg[u4Ind+1]);
379 vWriteHdmiGRLMsk(GRL_CTRL,(1<<5),(1<<5));
380
381 break;
382
383 //ACP
384 case 6:
385 vWriteHdmiGRLMsk(GRL_ACP_ISRC_CTRL,0,(1<<1));
386 for(u4Ind=0;u4Ind< (sizeof(pdACPInfoReg)/4) ;u4Ind+=2)
387 vWriteByteHdmiGRL(pdACPInfoReg[u4Ind], pdACPInfoReg[u4Ind+1]);
388
389 for(u4Ind=0;u4Ind< 23 ;u4Ind++)
390 vWriteByteHdmiGRL(GRL_IFM_PORT, 0);
391 vWriteHdmiGRLMsk(GRL_ACP_ISRC_CTRL,(1<<1),(1<<1));
392 break;
393
394 //ISCR1
395 case 7:
396 vWriteHdmiGRLMsk(GRL_ACP_ISRC_CTRL,0,(1<<2));
397 for(u4Ind=0;u4Ind< (sizeof(pdISRC1InfoReg)/4) ;u4Ind+=2)
398 vWriteByteHdmiGRL(pdISRC1InfoReg[u4Ind], pdISRC1InfoReg[u4Ind+1]);
399
400 for(u4Ind=0;u4Ind< 23 ;u4Ind++)
401 vWriteByteHdmiGRL(GRL_IFM_PORT, 0);
402
403 vWriteHdmiGRLMsk(GRL_ACP_ISRC_CTRL,(1<<2),(1<<2));
404 break;
405
406 case 8:
407 //ISCR2
408 vWriteHdmiGRLMsk(GRL_ACP_ISRC_CTRL,0,(1<<3));
409 for(u4Ind=0;u4Ind< (sizeof(pdISRC2InfoReg)/4) ;u4Ind+=2)
410 vWriteByteHdmiGRL(pdISRC2InfoReg[u4Ind], pdISRC2InfoReg[u4Ind+1]);
411
412 for(u4Ind=0;u4Ind< 23 ;u4Ind++)
413 vWriteByteHdmiGRL(GRL_IFM_PORT, 0);
414
415 vWriteHdmiGRLMsk(GRL_ACP_ISRC_CTRL,(1<<3),(1<<3));
416 break;
417
418 case 9:
419 //Generic spec
420
421 vWriteHdmiGRLMsk(GRL_CTRL,0,(1<<2));
422 for(u4Ind=0;u4Ind< (sizeof(pdGenericInfoReg)/4) ;u4Ind+=2)
423 vWriteByteHdmiGRL(pdGenericInfoReg[u4Ind], pdGenericInfoReg[u4Ind+1]);
424
425 vWriteHdmiGRLMsk(GRL_CTRL,(1<<2),(1<<2));
426 break;
427
428 case 10:
429
430 vWriteHdmiGRLMsk(GRL_ACP_ISRC_CTRL,0,(1<<4));
431 for(u4Ind=0;u4Ind< (sizeof(pdGamutInfoReg)/4) ;u4Ind+=2)
432 vWriteByteHdmiGRL(pdGamutInfoReg[u4Ind], pdGamutInfoReg[u4Ind+1]);
433
434 for(u4Ind=0;u4Ind< 27 ;u4Ind+=1)
435 vWriteByteHdmiGRL(GRL_IFM_PORT, 0);
436
437 vWriteHdmiGRLMsk(GRL_ACP_ISRC_CTRL,(1<<4),(1<<4));
438
439 vSendAVIInfoFrame(HDMI_VIDEO_720x480p_60Hz, HDMI_XV_YCC);
440
441 break;
442
443
444 case 11:
445 bData=bReadByteHdmiGRL(GRL_CTRL);
446 bData &= ~(0x1 << 7) ;
447 vWriteByteHdmiGRL(GRL_CTRL, bData);
448
449 for(u4Ind=0;u4Ind< 27 ;u4Ind+=1);
450
451 bData |= (0x1 << 7) ;
452
453 vWriteByteHdmiGRL(GRL_CTRL, bData);
454 break;
455
456 case 12:
457 bData=bReadByteHdmiGRL(GRL_CFG4);
458 bData |= (0x1 << 5);//disable original mute
459 bData &= ~(0x1 << 6) ; //disable
460 vWriteByteHdmiGRL(GRL_CFG4, bData);
461
462 for(u4Ind=0;u4Ind< 27 ;u4Ind+=1);
463
464 bData &= ~(0x1 << 5);//disable original mute
465 bData |= (0x1 << 6) ; //disable
466 vWriteByteHdmiGRL(GRL_CFG4, bData);
467 break;
468
469 case 13:
470
471 bData=bReadByteHdmiGRL(GRL_CFG4);
472 bData &=~(0x1 << 5);//enable original mute
473 bData &= ~(0x1 << 6); //disable
474 vWriteByteHdmiGRL(GRL_CFG4, bData);
475
476 bData=bReadByteHdmiGRL(GRL_CTRL);
477 bData &= ~(0x1 << 7) ;
478 vWriteByteHdmiGRL(GRL_CTRL, bData);
479
480 for(u4Ind=0;u4Ind< 27 ;u4Ind+=1);
481
482 bData |= (0x1 << 7) ;
483
484 vWriteByteHdmiGRL(GRL_CTRL, bData);
485
486 for(u4Ind=0;u4Ind< 27 ;u4Ind+=1);
487
488 bData &= ~(0x1 << 7) ;
489 vWriteByteHdmiGRL(GRL_CTRL, bData);
490
491 break;
492 case 14:
493 bData=bReadByteHdmiGRL(GRL_CFG4);
494 bData |= (0x1 << 6); //disable
495 vWriteByteHdmiGRL(GRL_CFG4, bData);
496 for(u4Ind=0;u4Ind< 27 ;u4Ind+=1);
497 bData &= ~(0x1 << 6);
498 vWriteByteHdmiGRL(GRL_CFG4, bData);
499
500 break;
501 case 15:
502 //vCMDHwNCTSOnOff(FALSE);// change to software NCTS;
503 // vCMDHDMI_NCTS(0x03, 0x12);
504
505 break;
506 default:
507 break;
508
509 }
510 }
511 else
512 {
513 switch(i1typemode)
514 {
515 case 1: //Avi
516
517 vSendAVIInfoFrame(HDMI_VIDEO_1280x720p_50Hz, 2);
518
519 break;
520
521 case 2: //Mpeg
522 vWriteHdmiGRLMsk(GRL_CTRL,0,(1<<4));
523 for(u4Ind=0;u4Ind< (sizeof(pdMpegInfoReg2)/4) ;u4Ind+=2)
524 vWriteByteHdmiGRL(pdMpegInfoReg2[u4Ind], pdMpegInfoReg2[u4Ind+1]);
525 vWriteHdmiGRLMsk(GRL_CTRL,(1<<4),(1<<4));
526
527 break;
528
529 case 3:
530 vWriteHdmiGRLMsk(GRL_CTRL,0,(1<<3));
531 for(u4Ind=0;u4Ind< (sizeof(pdSpdInfoReg2)/4) ;u4Ind+=2)
532 vWriteByteHdmiGRL(pdSpdInfoReg2[u4Ind], pdSpdInfoReg2[u4Ind+1]);
533 vWriteHdmiGRLMsk(GRL_CTRL,(1<<3),(1<<3));
534 break;
535
536
537 case 4:
538 //Vendor spec
539 vWriteHdmiGRLMsk(GRL_ACP_ISRC_CTRL,0,(1<<0));
540 for(u4Ind=0;u4Ind< (sizeof(pdVendorSpecInfoReg2)/4) ;u4Ind+=2)
541 vWriteByteHdmiGRL(pdVendorSpecInfoReg2[u4Ind], pdVendorSpecInfoReg2[u4Ind+1]);
542 vWriteHdmiGRLMsk(GRL_ACP_ISRC_CTRL,(1<<0),(1<<0));
543 break;
544
545
546 case 5:
547 vWriteHdmiGRLMsk(GRL_CTRL,0,(1<<5));
548 for(u4Ind=0;u4Ind< (sizeof(pdAudioInfoReg2)/4) ;u4Ind+=2)
549 vWriteByteHdmiGRL(pdAudioInfoReg2[u4Ind], pdAudioInfoReg2[u4Ind+1]);
550 vWriteHdmiGRLMsk(GRL_CTRL,(1<<5),(1<<5));
551
552 break;
553
554
555 //ACP
556 case 6:
557 vWriteHdmiGRLMsk(GRL_ACP_ISRC_CTRL,0,(1<<1));
558 for(u4Ind=0;u4Ind< (sizeof(pdACPInfoReg2)/4) ;u4Ind+=2)
559 vWriteByteHdmiGRL(pdACPInfoReg2[u4Ind], pdACPInfoReg2[u4Ind+1]);
560
561 for(u4Ind=0;u4Ind< 23 ;u4Ind++)
562 vWriteByteHdmiGRL(GRL_IFM_PORT, 0);
563 vWriteHdmiGRLMsk(GRL_ACP_ISRC_CTRL,(1<<1),(1<<1));
564 break;
565
566 //ISCR1
567 case 7:
568 vWriteHdmiGRLMsk(GRL_ACP_ISRC_CTRL,0,(1<<2));
569 for(u4Ind=0;u4Ind< (sizeof(pdISRC1InfoReg2)/4) ;u4Ind+=2)
570 vWriteByteHdmiGRL(pdISRC1InfoReg2[u4Ind], pdISRC1InfoReg2[u4Ind+1]);
571
572 for(u4Ind=0;u4Ind< 23 ;u4Ind++)
573 vWriteByteHdmiGRL(GRL_IFM_PORT, 0);
574
575 vWriteHdmiGRLMsk(GRL_ACP_ISRC_CTRL,(1<<2),(1<<2));
576 break;
577
578 case 8:
579 //ISCR2
580 vWriteHdmiGRLMsk(GRL_ACP_ISRC_CTRL,0,(1<<3));
581 for(u4Ind=0;u4Ind< (sizeof(pdISRC2InfoReg2)/4) ;u4Ind+=2)
582 vWriteByteHdmiGRL(pdISRC2InfoReg2[u4Ind], pdISRC2InfoReg2[u4Ind+1]);
583
584 for(u4Ind=0;u4Ind< 23 ;u4Ind++)
585 vWriteByteHdmiGRL(GRL_IFM_PORT, 0);
586
587 vWriteHdmiGRLMsk(GRL_ACP_ISRC_CTRL,(1<<3),(1<<3));
588 break;
589
590 case 9:
591 //Generic spec
592
593 vWriteHdmiGRLMsk(GRL_CTRL,0,(1<<2));
594 for(u4Ind=0;u4Ind< (sizeof(pdGenericInfoReg2)/4) ;u4Ind+=2)
595 vWriteByteHdmiGRL(pdGenericInfoReg2[u4Ind], pdGenericInfoReg2[u4Ind+1]);
596
597 vWriteHdmiGRLMsk(GRL_CTRL,(1<<2),(1<<2));
598 break;
599
600 case 10:
601
602 vWriteHdmiGRLMsk(GRL_ACP_ISRC_CTRL,0,(1<<4));
603 for(u4Ind=0;u4Ind< (sizeof(pdGamutInfoReg2)/4) ;u4Ind+=2)
604 vWriteByteHdmiGRL(pdGamutInfoReg2[u4Ind], pdGamutInfoReg2[u4Ind+1]);
605
606 for(u4Ind=0;u4Ind< 27 ;u4Ind+=1)
607 vWriteByteHdmiGRL(GRL_IFM_PORT, 0);
608
609 vWriteHdmiGRLMsk(GRL_ACP_ISRC_CTRL,(1<<4),(1<<4));
610
611 vSendAVIInfoFrame(HDMI_VIDEO_720x480p_60Hz, HDMI_XV_YCC);
612
613 break;
614
615
616 case 11:
617 bData=bReadByteHdmiGRL(GRL_CTRL);
618 bData &= ~(0x1 << 7) ;
619 vWriteByteHdmiGRL(GRL_CTRL, bData);
620
621 for(u4Ind=0;u4Ind< 27 ;u4Ind+=1);
622
623 bData |= (0x1 << 7) ;
624
625 vWriteByteHdmiGRL(GRL_CTRL, bData);
626 break;
627
628 case 12:
629 bData=bReadByteHdmiGRL(GRL_CFG4);
630 bData |= (0x1 << 5);//disable original mute
631 bData &= ~(0x1 << 6) ; //disable
632 vWriteByteHdmiGRL(GRL_CFG4, bData);
633
634 for(u4Ind=0;u4Ind< 27 ;u4Ind+=1);
635
636 bData &= ~(0x1 << 5);//disable original mute
637 bData |= (0x1 << 6) ; //disable
638 vWriteByteHdmiGRL(GRL_CFG4, bData);
639 break;
640
641 case 13:
642
643 bData=bReadByteHdmiGRL(GRL_CFG4);
644 bData &=~(0x1 << 5);//enable original mute
645 bData &= ~(0x1 << 6); //disable
646 vWriteByteHdmiGRL(GRL_CFG4, bData);
647
648 bData=bReadByteHdmiGRL(GRL_CTRL);
649 bData &= ~(0x1 << 7) ;
650 vWriteByteHdmiGRL(GRL_CTRL, bData);
651
652 for(u4Ind=0;u4Ind< 27 ;u4Ind+=1);
653
654 bData |= (0x1 << 7) ;
655
656 vWriteByteHdmiGRL(GRL_CTRL, bData);
657
658 for(u4Ind=0;u4Ind< 27 ;u4Ind+=1);
659
660 bData &= ~(0x1 << 7) ;
661 vWriteByteHdmiGRL(GRL_CTRL, bData);
662 break;
663 case 14:
664 bData=bReadByteHdmiGRL(GRL_CFG4);
665
666 bData |= (0x1 << 6); //disable
667 vWriteByteHdmiGRL(GRL_CFG4, bData);
668 for(u4Ind=0;u4Ind< 27 ;u4Ind+=1);
669 bData &= ~(0x1 << 6);
670 vWriteByteHdmiGRL(GRL_CFG4, bData);
671
672 break;
673 case 15:
674 //vCMDHwNCTSOnOff(FALSE);// change to software NCTS;
675 // vCMDHDMI_NCTS(0x03, 0x12);
676
677 break;
678 default:
679 break;
680
681 }
682
683 }
684 }
685 #endif
686