19
19
#include <asm/types.h>
20
20
#include <asm/io.h>
21
21
22
-
23
22
/* Write a CRT register value spread across multiple registers */
24
23
void svga_wcrt_multi (void __iomem * regbase , const struct vga_regset * regset , u32 value )
25
24
{
@@ -31,12 +30,13 @@ void svga_wcrt_multi(void __iomem *regbase, const struct vga_regset *regset, u32
31
30
while (bitnum <= regset -> highbit ) {
32
31
bitval = 1 << bitnum ;
33
32
regval = regval & ~bitval ;
34
- if (value & 1 ) regval = regval | bitval ;
35
- bitnum ++ ;
33
+ if (value & 1 )
34
+ regval = regval | bitval ;
35
+ bitnum ++ ;
36
36
value = value >> 1 ;
37
37
}
38
38
vga_wcrt (regbase , regset -> regnum , regval );
39
- regset ++ ;
39
+ regset ++ ;
40
40
}
41
41
}
42
42
@@ -51,12 +51,13 @@ void svga_wseq_multi(void __iomem *regbase, const struct vga_regset *regset, u32
51
51
while (bitnum <= regset -> highbit ) {
52
52
bitval = 1 << bitnum ;
53
53
regval = regval & ~bitval ;
54
- if (value & 1 ) regval = regval | bitval ;
55
- bitnum ++ ;
54
+ if (value & 1 )
55
+ regval = regval | bitval ;
56
+ bitnum ++ ;
56
57
value = value >> 1 ;
57
58
}
58
59
vga_wseq (regbase , regset -> regnum , regval );
59
- regset ++ ;
60
+ regset ++ ;
60
61
}
61
62
}
62
63
@@ -66,15 +67,13 @@ static unsigned int svga_regset_size(const struct vga_regset *regset)
66
67
67
68
while (regset -> regnum != VGA_REGSET_END_VAL ) {
68
69
count += regset -> highbit - regset -> lowbit + 1 ;
69
- regset ++ ;
70
+ regset ++ ;
70
71
}
71
72
return 1 << count ;
72
73
}
73
74
74
-
75
75
/* ------------------------------------------------------------------------- */
76
76
77
-
78
77
/* Set graphics controller registers to sane values */
79
78
void svga_set_default_gfx_regs (void __iomem * regbase )
80
79
{
@@ -102,7 +101,7 @@ void svga_set_default_atc_regs(void __iomem *regbase)
102
101
vga_w (regbase , VGA_ATT_W , 0x00 );
103
102
104
103
/* All standard ATC registers (AR00 - AR14) */
105
- for (count = 0 ; count <= 0xF ; count ++ )
104
+ for (count = 0 ; count <= 0xF ; count ++ )
106
105
svga_wattr (regbase , count , count );
107
106
108
107
svga_wattr (regbase , VGA_ATC_MODE , 0x01 );
@@ -187,10 +186,8 @@ void svga_dump_var(struct fb_var_screeninfo *var, int node)
187
186
}
188
187
#endif /* 0 */
189
188
190
-
191
189
/* ------------------------------------------------------------------------- */
192
190
193
-
194
191
void svga_settile (struct fb_info * info , struct fb_tilemap * map )
195
192
{
196
193
const u8 * font = map -> data ;
@@ -229,15 +226,15 @@ void svga_tilecopy(struct fb_info *info, struct fb_tilearea *area)
229
226
((area -> sy == area -> dy ) && (area -> sx > area -> dx ))) {
230
227
src = fb + area -> sx * colstride + area -> sy * rowstride ;
231
228
dst = fb + area -> dx * colstride + area -> dy * rowstride ;
232
- } else {
229
+ } else {
233
230
src = fb + (area -> sx + area -> width - 1 ) * colstride
234
231
+ (area -> sy + area -> height - 1 ) * rowstride ;
235
232
dst = fb + (area -> dx + area -> width - 1 ) * colstride
236
233
+ (area -> dy + area -> height - 1 ) * rowstride ;
237
234
238
235
colstride = - colstride ;
239
236
rowstride = - rowstride ;
240
- }
237
+ }
241
238
242
239
for (dy = 0 ; dy < area -> height ; dy ++ ) {
243
240
u16 __iomem * src2 = src ;
@@ -284,19 +281,19 @@ void svga_tileblit(struct fb_info *info, struct fb_tileblit *blit)
284
281
u8 __iomem * fb = (u8 __iomem * )info -> screen_base ;
285
282
fb += blit -> sx * colstride + blit -> sy * rowstride ;
286
283
287
- i = 0 ;
288
- for (dy = 0 ; dy < blit -> height ; dy ++ ) {
284
+ i = 0 ;
285
+ for (dy = 0 ; dy < blit -> height ; dy ++ ) {
289
286
u8 __iomem * fb2 = fb ;
290
- for (dx = 0 ; dx < blit -> width ; dx ++ ) {
287
+ for (dx = 0 ; dx < blit -> width ; dx ++ ) {
291
288
fb_writeb (blit -> indices [i ], fb2 );
292
289
fb_writeb (attr , fb2 + 1 );
293
290
fb2 += colstride ;
294
- i ++ ;
295
- if (i == blit -> length ) return ;
291
+ i ++ ;
292
+ if (i == blit -> length )
293
+ return ;
296
294
}
297
295
fb += rowstride ;
298
296
}
299
-
300
297
}
301
298
302
299
/* Set cursor in text (tileblit) mode */
@@ -308,15 +305,15 @@ void svga_tilecursor(void __iomem *regbase, struct fb_info *info, struct fb_tile
308
305
+ (cursor -> sy + (info -> var .yoffset / 16 ))
309
306
* (info -> var .xres_virtual / 8 );
310
307
311
- if (! cursor -> mode )
308
+ if (!cursor -> mode )
312
309
return ;
313
310
314
311
svga_wcrt_mask (regbase , 0x0A , 0x20 , 0x20 ); /* disable cursor */
315
312
316
- if (cursor -> shape == FB_TILE_CURSOR_NONE )
313
+ if (cursor -> shape == FB_TILE_CURSOR_NONE )
317
314
return ;
318
315
319
- switch (cursor -> shape ) {
316
+ switch (cursor -> shape ) {
320
317
case FB_TILE_CURSOR_UNDERLINE :
321
318
cs = 0x0d ;
322
319
break ;
@@ -374,7 +371,6 @@ EXPORT_SYMBOL(svga_get_caps);
374
371
375
372
/* ------------------------------------------------------------------------- */
376
373
377
-
378
374
/*
379
375
* Compute PLL settings (M, N, R)
380
376
* F_VCO = (F_BASE * M) / N
@@ -385,7 +381,7 @@ int svga_compute_pll(const struct svga_pll *pll, u32 f_wanted, u16 *m, u16 *n, u
385
381
u16 am , an , ar ;
386
382
u32 f_vco , f_current , delta_current , delta_best ;
387
383
388
- pr_debug ("fb%d: ideal frequency: %d kHz\n" , node , (unsigned int ) f_wanted );
384
+ pr_debug ("fb%d: ideal frequency: %d kHz\n" , node , (unsigned int )f_wanted );
389
385
390
386
ar = pll -> r_max ;
391
387
f_vco = f_wanted << ar ;
@@ -416,66 +412,63 @@ int svga_compute_pll(const struct svga_pll *pll, u32 f_wanted, u16 *m, u16 *n, u
416
412
417
413
while ((am <= pll -> m_max ) && (an <= pll -> n_max )) {
418
414
f_current = (pll -> f_base * am ) / an ;
419
- delta_current = abs_diff (f_current , f_vco );
415
+ delta_current = abs_diff (f_current , f_vco );
420
416
421
417
if (delta_current < delta_best ) {
422
418
delta_best = delta_current ;
423
419
* m = am ;
424
420
* n = an ;
425
421
}
426
422
427
- if (f_current <= f_vco ) {
428
- am ++ ;
429
- } else {
430
- an ++ ;
431
- }
423
+ if (f_current <= f_vco )
424
+ am ++ ;
425
+ else
426
+ an ++ ;
432
427
}
433
428
434
429
f_current = (pll -> f_base * * m ) / * n ;
435
- pr_debug ("fb%d: found frequency: %d kHz (VCO %d kHz)\n" , node , (int ) (f_current >> ar ), (int ) f_current );
436
- pr_debug ("fb%d: m = %d n = %d r = %d\n" , node , (unsigned int ) * m , (unsigned int ) * n , (unsigned int ) * r );
430
+ pr_debug ("fb%d: found frequency: %d kHz (VCO %d kHz)\n" , node , (int )(f_current >> ar ), (int )f_current );
431
+ pr_debug ("fb%d: m = %d n = %d r = %d\n" , node , (unsigned int )* m , (unsigned int )* n , (unsigned int )* r );
437
432
return 0 ;
438
433
}
439
434
440
-
441
435
/* ------------------------------------------------------------------------- */
442
436
443
-
444
437
/* Check CRT timing values */
445
438
int svga_check_timings (const struct svga_timing_regs * tm , struct fb_var_screeninfo * var , int node )
446
439
{
447
440
u32 value ;
448
441
449
- var -> xres = (var -> xres + 7 ) & ~7 ;
450
- var -> left_margin = (var -> left_margin + 7 ) & ~7 ;
451
- var -> right_margin = (var -> right_margin + 7 ) & ~7 ;
452
- var -> hsync_len = (var -> hsync_len + 7 ) & ~7 ;
442
+ var -> xres = (var -> xres + 7 ) & ~7 ;
443
+ var -> left_margin = (var -> left_margin + 7 ) & ~7 ;
444
+ var -> right_margin = (var -> right_margin + 7 ) & ~7 ;
445
+ var -> hsync_len = (var -> hsync_len + 7 ) & ~7 ;
453
446
454
447
/* Check horizontal total */
455
448
value = var -> xres + var -> left_margin + var -> right_margin + var -> hsync_len ;
456
- if (((value / 8 ) - 5 ) >= svga_regset_size (tm -> h_total_regs ))
449
+ if (((value / 8 ) - 5 ) >= svga_regset_size (tm -> h_total_regs ))
457
450
return - EINVAL ;
458
451
459
452
/* Check horizontal display and blank start */
460
453
value = var -> xres ;
461
- if (((value / 8 ) - 1 ) >= svga_regset_size (tm -> h_display_regs ))
454
+ if (((value / 8 ) - 1 ) >= svga_regset_size (tm -> h_display_regs ))
462
455
return - EINVAL ;
463
- if (((value / 8 ) - 1 ) >= svga_regset_size (tm -> h_blank_start_regs ))
456
+ if (((value / 8 ) - 1 ) >= svga_regset_size (tm -> h_blank_start_regs ))
464
457
return - EINVAL ;
465
458
466
459
/* Check horizontal sync start */
467
460
value = var -> xres + var -> right_margin ;
468
- if (((value / 8 ) - 1 ) >= svga_regset_size (tm -> h_sync_start_regs ))
461
+ if (((value / 8 ) - 1 ) >= svga_regset_size (tm -> h_sync_start_regs ))
469
462
return - EINVAL ;
470
463
471
464
/* Check horizontal blank end (or length) */
472
465
value = var -> left_margin + var -> right_margin + var -> hsync_len ;
473
- if ((value == 0 ) || ((value / 8 ) >= svga_regset_size (tm -> h_blank_end_regs )))
466
+ if ((value == 0 ) || ((value / 8 ) >= svga_regset_size (tm -> h_blank_end_regs )))
474
467
return - EINVAL ;
475
468
476
469
/* Check horizontal sync end (or length) */
477
470
value = var -> hsync_len ;
478
- if ((value == 0 ) || ((value / 8 ) >= svga_regset_size (tm -> h_sync_end_regs )))
471
+ if ((value == 0 ) || ((value / 8 ) >= svga_regset_size (tm -> h_sync_end_regs )))
479
472
return - EINVAL ;
480
473
481
474
/* Check vertical total */
@@ -497,12 +490,12 @@ int svga_check_timings(const struct svga_timing_regs *tm, struct fb_var_screenin
497
490
498
491
/* Check vertical blank end (or length) */
499
492
value = var -> upper_margin + var -> lower_margin + var -> vsync_len ;
500
- if ((value == 0 ) || (value >= svga_regset_size (tm -> v_blank_end_regs )))
493
+ if ((value == 0 ) || (value >= svga_regset_size (tm -> v_blank_end_regs )))
501
494
return - EINVAL ;
502
495
503
496
/* Check vertical sync end (or length) */
504
497
value = var -> vsync_len ;
505
- if ((value == 0 ) || (value >= svga_regset_size (tm -> v_sync_end_regs )))
498
+ if ((value == 0 ) || (value >= svga_regset_size (tm -> v_sync_end_regs )))
506
499
return - EINVAL ;
507
500
508
501
return 0 ;
@@ -596,18 +589,15 @@ void svga_set_timings(void __iomem *regbase, const struct svga_timing_regs *tm,
596
589
vga_w (regbase , VGA_MIS_W , regval );
597
590
}
598
591
599
-
600
592
/* ------------------------------------------------------------------------- */
601
593
602
-
603
594
static inline int match_format (const struct svga_fb_format * frm ,
604
595
struct fb_var_screeninfo * var )
605
596
{
606
597
int i = 0 ;
607
598
int stored = - EINVAL ;
608
599
609
- while (frm -> bits_per_pixel != SVGA_FORMAT_END_VAL )
610
- {
600
+ while (frm -> bits_per_pixel != SVGA_FORMAT_END_VAL ) {
611
601
if ((var -> bits_per_pixel == frm -> bits_per_pixel ) &&
612
602
(var -> red .length <= frm -> red .length ) &&
613
603
(var -> green .length <= frm -> green .length ) &&
@@ -647,7 +637,6 @@ int svga_match_format(const struct svga_fb_format *frm,
647
637
return i ;
648
638
}
649
639
650
-
651
640
EXPORT_SYMBOL (svga_wcrt_multi );
652
641
EXPORT_SYMBOL (svga_wseq_multi );
653
642
0 commit comments