@@ -28,17 +28,11 @@ static int tmds_register_read_bytes(int index, u8 *buff, int buff_len);
28
28
static void __devinit dvi_get_panel_size_from_DDCv1 (
29
29
struct tmds_chip_information * tmds_chip ,
30
30
struct tmds_setting_information * tmds_setting );
31
- static void __devinit dvi_get_panel_size_from_DDCv2 (
32
- struct tmds_chip_information * tmds_chip ,
33
- struct tmds_setting_information * tmds_setting );
34
31
static int viafb_dvi_query_EDID (void );
35
32
36
- static int check_tmds_chip (int device_id_subaddr , int device_id )
33
+ static inline bool check_tmds_chip (int device_id_subaddr , int device_id )
37
34
{
38
- if (tmds_register_read (device_id_subaddr ) == device_id )
39
- return OK ;
40
- else
41
- return FAIL ;
35
+ return tmds_register_read (device_id_subaddr ) == device_id ;
42
36
}
43
37
44
38
void __devinit viafb_init_dvi_size (struct tmds_chip_information * tmds_chip ,
@@ -47,22 +41,13 @@ void __devinit viafb_init_dvi_size(struct tmds_chip_information *tmds_chip,
47
41
DEBUG_MSG (KERN_INFO "viafb_init_dvi_size()\n" );
48
42
49
43
viafb_dvi_sense ();
50
- switch (viafb_dvi_query_EDID ()) {
51
- case 1 :
44
+ if (viafb_dvi_query_EDID () == 1 )
52
45
dvi_get_panel_size_from_DDCv1 (tmds_chip , tmds_setting );
53
- break ;
54
- case 2 :
55
- dvi_get_panel_size_from_DDCv2 (tmds_chip , tmds_setting );
56
- break ;
57
- default :
58
- printk (KERN_WARNING "viafb_init_dvi_size: DVI panel size undetected!\n" );
59
- break ;
60
- }
61
46
62
47
return ;
63
48
}
64
49
65
- int __devinit viafb_tmds_trasmitter_identify (void )
50
+ bool __devinit viafb_tmds_trasmitter_identify (void )
66
51
{
67
52
unsigned char sr2a = 0 , sr1e = 0 , sr3e = 0 ;
68
53
@@ -101,7 +86,7 @@ int __devinit viafb_tmds_trasmitter_identify(void)
101
86
viaparinfo -> chip_info ->
102
87
tmds_chip_info .tmds_chip_slave_addr = VT1632_TMDS_I2C_ADDR ;
103
88
viaparinfo -> chip_info -> tmds_chip_info .i2c_port = VIA_PORT_31 ;
104
- if (check_tmds_chip (VT1632_DEVICE_ID_REG , VT1632_DEVICE_ID ) != FAIL ) {
89
+ if (check_tmds_chip (VT1632_DEVICE_ID_REG , VT1632_DEVICE_ID )) {
105
90
/*
106
91
* Currently only support 12bits,dual edge,add 24bits mode later
107
92
*/
@@ -112,11 +97,10 @@ int __devinit viafb_tmds_trasmitter_identify(void)
112
97
viaparinfo -> chip_info -> tmds_chip_info .tmds_chip_name );
113
98
DEBUG_MSG (KERN_INFO "\n %2d" ,
114
99
viaparinfo -> chip_info -> tmds_chip_info .i2c_port );
115
- return OK ;
100
+ return true ;
116
101
} else {
117
102
viaparinfo -> chip_info -> tmds_chip_info .i2c_port = VIA_PORT_2C ;
118
- if (check_tmds_chip (VT1632_DEVICE_ID_REG , VT1632_DEVICE_ID )
119
- != FAIL ) {
103
+ if (check_tmds_chip (VT1632_DEVICE_ID_REG , VT1632_DEVICE_ID )) {
120
104
tmds_register_write (0x08 , 0x3b );
121
105
DEBUG_MSG (KERN_INFO "\n VT1632 TMDS ! \n" );
122
106
DEBUG_MSG (KERN_INFO "\n %2d" ,
@@ -125,7 +109,7 @@ int __devinit viafb_tmds_trasmitter_identify(void)
125
109
DEBUG_MSG (KERN_INFO "\n %2d" ,
126
110
viaparinfo -> chip_info ->
127
111
tmds_chip_info .i2c_port );
128
- return OK ;
112
+ return true ;
129
113
}
130
114
}
131
115
@@ -135,7 +119,7 @@ int __devinit viafb_tmds_trasmitter_identify(void)
135
119
((viafb_display_hardware_layout == HW_LAYOUT_DVI_ONLY ) ||
136
120
(viafb_display_hardware_layout == HW_LAYOUT_LCD_DVI ))) {
137
121
DEBUG_MSG (KERN_INFO "\n Integrated TMDS ! \n" );
138
- return OK ;
122
+ return true ;
139
123
}
140
124
141
125
switch (viaparinfo -> chip_info -> gfx_chip_name ) {
@@ -159,7 +143,7 @@ int __devinit viafb_tmds_trasmitter_identify(void)
159
143
tmds_chip_info .tmds_chip_name = NON_TMDS_TRANSMITTER ;
160
144
viaparinfo -> chip_info -> tmds_chip_info .
161
145
tmds_chip_slave_addr = VT1632_TMDS_I2C_ADDR ;
162
- return FAIL ;
146
+ return false ;
163
147
}
164
148
165
149
static void tmds_register_write (int index , u8 data )
@@ -306,63 +290,23 @@ static int viafb_dvi_query_EDID(void)
306
290
return EDID_VERSION_1 ; /* Found EDID1 Table */
307
291
}
308
292
309
- data0 = (u8 ) tmds_register_read (0x00 );
310
- viaparinfo -> chip_info -> tmds_chip_info .tmds_chip_slave_addr = restore ;
311
- if (data0 == 0x20 )
312
- return EDID_VERSION_2 ; /* Found EDID2 Table */
313
- else
314
- return false;
293
+ return false;
315
294
}
316
295
317
296
/* Get Panel Size Using EDID1 Table */
318
297
static void __devinit dvi_get_panel_size_from_DDCv1 (
319
298
struct tmds_chip_information * tmds_chip ,
320
299
struct tmds_setting_information * tmds_setting )
321
300
{
322
- int i , max_h = 0 , tmp , restore ;
323
- unsigned char rData ;
301
+ int i , restore ;
324
302
unsigned char EDID_DATA [18 ];
325
303
326
304
DEBUG_MSG (KERN_INFO "\n dvi_get_panel_size_from_DDCv1 \n" );
327
305
328
306
restore = tmds_chip -> tmds_chip_slave_addr ;
329
307
tmds_chip -> tmds_chip_slave_addr = 0xA0 ;
330
-
331
- rData = tmds_register_read (0x23 );
332
- if (rData & 0x3C )
333
- max_h = 640 ;
334
- if (rData & 0xC0 )
335
- max_h = 720 ;
336
- if (rData & 0x03 )
337
- max_h = 800 ;
338
-
339
- rData = tmds_register_read (0x24 );
340
- if (rData & 0xC0 )
341
- max_h = 800 ;
342
- if (rData & 0x1E )
343
- max_h = 1024 ;
344
- if (rData & 0x01 )
345
- max_h = 1280 ;
346
-
347
308
for (i = 0x25 ; i < 0x6D ; i ++ ) {
348
309
switch (i ) {
349
- case 0x26 :
350
- case 0x28 :
351
- case 0x2A :
352
- case 0x2C :
353
- case 0x2E :
354
- case 0x30 :
355
- case 0x32 :
356
- case 0x34 :
357
- rData = tmds_register_read (i );
358
- if (rData == 1 )
359
- break ;
360
- /* data = (data + 31) * 8 */
361
- tmp = (rData + 31 ) << 3 ;
362
- if (tmp > max_h )
363
- max_h = tmp ;
364
- break ;
365
-
366
310
case 0x36 :
367
311
case 0x48 :
368
312
case 0x5A :
@@ -383,91 +327,11 @@ static void __devinit dvi_get_panel_size_from_DDCv1(
383
327
}
384
328
}
385
329
386
- tmds_setting -> max_hres = max_h ;
387
- switch (max_h ) {
388
- case 640 :
389
- tmds_setting -> max_vres = 480 ;
390
- break ;
391
- case 800 :
392
- tmds_setting -> max_vres = 600 ;
393
- break ;
394
- case 1024 :
395
- tmds_setting -> max_vres = 768 ;
396
- break ;
397
- case 1280 :
398
- tmds_setting -> max_vres = 1024 ;
399
- break ;
400
- case 1400 :
401
- tmds_setting -> max_vres = 1050 ;
402
- break ;
403
- case 1440 :
404
- tmds_setting -> max_vres = 1050 ;
405
- break ;
406
- case 1600 :
407
- tmds_setting -> max_vres = 1200 ;
408
- break ;
409
- case 1920 :
410
- tmds_setting -> max_vres = 1080 ;
411
- break ;
412
- default :
413
- DEBUG_MSG (KERN_INFO "Unknown panel size max resolution = %d ! "
414
- "set default panel size.\n" , max_h );
415
- break ;
416
- }
417
-
418
330
DEBUG_MSG (KERN_INFO "DVI max pixelclock = %d\n" ,
419
331
tmds_setting -> max_pixel_clock );
420
332
tmds_chip -> tmds_chip_slave_addr = restore ;
421
333
}
422
334
423
- /* Get Panel Size Using EDID2 Table */
424
- static void __devinit dvi_get_panel_size_from_DDCv2 (
425
- struct tmds_chip_information * tmds_chip ,
426
- struct tmds_setting_information * tmds_setting )
427
- {
428
- int restore ;
429
- unsigned char R_Buffer [2 ];
430
-
431
- DEBUG_MSG (KERN_INFO "\n dvi_get_panel_size_from_DDCv2 \n" );
432
-
433
- restore = tmds_chip -> tmds_chip_slave_addr ;
434
- tmds_chip -> tmds_chip_slave_addr = 0xA2 ;
435
-
436
- /* Horizontal: 0x76, 0x77 */
437
- tmds_register_read_bytes (0x76 , R_Buffer , 2 );
438
- tmds_setting -> max_hres = R_Buffer [0 ] + (R_Buffer [1 ] << 8 );
439
-
440
- switch (tmds_setting -> max_hres ) {
441
- case 640 :
442
- tmds_setting -> max_vres = 480 ;
443
- break ;
444
- case 800 :
445
- tmds_setting -> max_vres = 600 ;
446
- break ;
447
- case 1024 :
448
- tmds_setting -> max_vres = 768 ;
449
- break ;
450
- case 1280 :
451
- tmds_setting -> max_vres = 1024 ;
452
- break ;
453
- case 1400 :
454
- tmds_setting -> max_vres = 1050 ;
455
- break ;
456
- case 1440 :
457
- tmds_setting -> max_vres = 1050 ;
458
- break ;
459
- case 1600 :
460
- tmds_setting -> max_vres = 1200 ;
461
- break ;
462
- default :
463
- DEBUG_MSG (KERN_INFO "Unknown panel size max resolution = %d! "
464
- "set default panel size.\n" , tmds_setting -> max_hres );
465
- break ;
466
- }
467
-
468
- tmds_chip -> tmds_chip_slave_addr = restore ;
469
- }
470
-
471
335
/* If Disable DVI, turn off pad */
472
336
void viafb_dvi_disable (void )
473
337
{
0 commit comments