aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntonino A. Daplas <adaplas@gmail.com>2007-05-08 03:39:14 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-08 14:15:31 -0400
commit8db51668f5ef6ae31ed4e4f0c6e2976a190dfa11 (patch)
tree172c273f795530fffdea6f5f8f2cc8d9158a54bd
parentd60d2d8a423be91c5ad1a745c4e9dda9cea1b3c5 (diff)
s3fb: limit 8x16 rectangles when tileblitting is enabled
If tileblitting is enabled (text mode), the hardware can only accept 8x16 bitmaps. Advertise this to the upper layer. And to ensure that an appropriate font is always available, select an 8x16 font in Kconfig. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--drivers/video/Kconfig1
-rw-r--r--drivers/video/s3fb.c6
2 files changed, 7 insertions, 0 deletions
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 51c4b25dad25..863c5983ee60 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -1194,6 +1194,7 @@ config FB_S3
1194 select FB_TILEBLITTING 1194 select FB_TILEBLITTING
1195 select FB_SVGALIB 1195 select FB_SVGALIB
1196 select VGASTATE 1196 select VGASTATE
1197 select FONT_8x16 if FRAMEBUFFER_CONSOLE
1197 ---help--- 1198 ---help---
1198 Driver for graphics boards with S3 Trio / S3 Virge chip. 1199 Driver for graphics boards with S3 Trio / S3 Virge chip.
1199 1200
diff --git a/drivers/video/s3fb.c b/drivers/video/s3fb.c
index f3470bb7d549..53f1eb9638ae 100644
--- a/drivers/video/s3fb.c
+++ b/drivers/video/s3fb.c
@@ -449,6 +449,9 @@ static int s3fb_set_par(struct fb_info *info)
449 info->flags &= ~FBINFO_MISC_TILEBLITTING; 449 info->flags &= ~FBINFO_MISC_TILEBLITTING;
450 info->tileops = NULL; 450 info->tileops = NULL;
451 451
452 /* supports blit rectangles of any dimension */
453 info->pixmap.blit_x = ~(u32)0;
454 info->pixmap.blit_y = ~(u32)0;
452 offset_value = (info->var.xres_virtual * bpp) / 64; 455 offset_value = (info->var.xres_virtual * bpp) / 64;
453 screen_size = info->var.yres_virtual * info->fix.line_length; 456 screen_size = info->var.yres_virtual * info->fix.line_length;
454 } else { 457 } else {
@@ -457,6 +460,9 @@ static int s3fb_set_par(struct fb_info *info)
457 460
458 info->flags |= FBINFO_MISC_TILEBLITTING; 461 info->flags |= FBINFO_MISC_TILEBLITTING;
459 info->tileops = fasttext ? &s3fb_fast_tile_ops : &s3fb_tile_ops; 462 info->tileops = fasttext ? &s3fb_fast_tile_ops : &s3fb_tile_ops;
463 /* supports 8x16 tiles only */
464 info->pixmap.blit_x = 1 << (8 - 1);
465 info->pixmap.blit_y = 1 << (16 - 1);
460 466
461 offset_value = info->var.xres_virtual / 16; 467 offset_value = info->var.xres_virtual / 16;
462 screen_size = (info->var.xres_virtual * info->var.yres_virtual) / 64; 468 screen_size = (info->var.xres_virtual * info->var.yres_virtual) / 64;