Skip to contentSkip to conversation

s3fb: Limit 8x16 rectangles when tileblitting is enabled

PATCH In review Antonino A. Daplas 1 participant 1 message Apr 25, 2007 Framebuffer layer

lore
Share & tools
lore
#0 lore raw

PATCH 30/41 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.

---

 drivers/video/Kconfig |    1 +
 drivers/video/s3fb.c  |    6 ++++++
 2 files changed, 7 insertions(+), 0 deletions(-)
drivers/video/Kconfig +1 -0
index e440caf..4958493 100644
@@ -1191,6 +1191,7 @@ config FB_S3
 	select FB_TILEBLITTING
 	select FB_SVGALIB
 	select VGASTATE
+	select FONT_8x16 if FRAMEBUFFER_CONSOLE
 	---help---
 	  Driver for graphics boards with S3 Trio / S3 Virge chip.
 
drivers/video/s3fb.c +6 -0
index f3470bb..53f1eb9 100644
@@ -449,6 +449,9 @@ static int s3fb_set_par(struct fb_info *
 		info->flags &= ~FBINFO_MISC_TILEBLITTING;
 		info->tileops = NULL;
 
+		/* supports blit rectangles of any dimension */
+		info->pixmap.blit_x = ~(u32)0;
+		info->pixmap.blit_y = ~(u32)0;
 		offset_value = (info->var.xres_virtual * bpp) / 64;
 		screen_size = info->var.yres_virtual * info->fix.line_length;
 	} else {
@@ -457,6 +460,9 @@ static int s3fb_set_par(struct fb_info *
 
 		info->flags |= FBINFO_MISC_TILEBLITTING;
 		info->tileops = fasttext ? &s3fb_fast_tile_ops : &s3fb_tile_ops;
+		/* supports 8x16 tiles only */
+		info->pixmap.blit_x = 1 << (8 - 1);
+		info->pixmap.blit_y = 1 << (16 - 1);
 
 		offset_value = info->var.xres_virtual / 16;
 		screen_size = (info->var.xres_virtual * info->var.yres_virtual) / 64;

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/