From: Thiemo S. <ic...@cs...> - 2003-04-26 23:37:05
|
Hello Geert, this patch adds logo drawing support for mono visuals with 8 bits per pixel. The DECstation's PMAG-AA is such a card. 2.4 only, the 2.5 logo code is very different. Thiemo diff -BurpNX /bigdisk/src/dontdiff linux-orig/drivers/video/fbcon.c linux/drivers/video/fbcon.c --- linux-orig/drivers/video/fbcon.c Sat Jan 11 22:55:05 2003 +++ linux/drivers/video/fbcon.c Sat Apr 12 15:44:11 2003 @@ -2339,6 +2342,37 @@ static int __init fbcon_show_logo( void } done = 1; } + if (depth == 8 && p->type == FB_TYPE_PACKED_PIXELS + && (p->visual == FB_VISUAL_MONO10 + || p->visual == FB_VISUAL_MONO01)) { + /* depth 8, but only monochrome */ + + unsigned char inverse = 0xff; + + /* monochrome */ + if (p->inverse) + inverse = ~inverse; + if (p->visual == FB_VISUAL_MONO01) + inverse = ~inverse; + + for( y1 = 0; y1 < LOGO_H; y1++ ) { + src = linux_logo_bw + y1*LOGO_LINE; + dst = fb + y1*line + x; + for( x1 = 0; x1 < LOGO_LINE; x1++ ) { + u8 bits = *src++ ^ inverse; + + fb_writeb ((bits >> 7) & 0x01, dst++); + fb_writeb ((bits >> 6) & 0x01, dst++); + fb_writeb ((bits >> 5) & 0x01, dst++); + fb_writeb ((bits >> 4) & 0x01, dst++); + fb_writeb ((bits >> 3) & 0x01, dst++); + fb_writeb ((bits >> 2) & 0x01, dst++); + fb_writeb ((bits >> 1) & 0x01, dst++); + fb_writeb ((bits >> 0) & 0x01, dst++); + } + } + done = 1; + } #endif #if defined(CONFIG_FBCON_AFB) || defined(CONFIG_FBCON_ILBM) || \ defined(CONFIG_FBCON_IPLAN2P2) || defined(CONFIG_FBCON_IPLAN2P4) || \ |
From: Thiemo S. <ic...@cs...> - 2003-04-27 00:09:50
|
Thiemo Seufer wrote: > Hello Geert, > > this patch adds logo drawing support for mono visuals with 8 bits > per pixel. The DECstation's PMAG-AA is such a card. > > 2.4 only, the 2.5 logo code is very different. This patch is also needed to make it work. Thiemo diff -BurpNX /bigdisk/src/dontdiff linux-orig/drivers/video/fbcon.c linux/drivers/video/fbcon.c --- linux-orig/drivers/video/fbcon.c Sat Jan 11 22:55:05 2003 +++ linux/drivers/video/fbcon.c Sat Apr 12 15:44:11 2003 @@ -2328,7 +2329,9 @@ static int __init fbcon_show_logo( void } #endif #if defined(CONFIG_FBCON_CFB8) || defined(CONFIG_FB_SBUS) - if (depth == 8 && p->type == FB_TYPE_PACKED_PIXELS) { + if (depth == 8 && p->type == FB_TYPE_PACKED_PIXELS + && p->visual != FB_VISUAL_MONO10 + && p->visual != FB_VISUAL_MONO01) { /* depth 8 or more, packed, with color registers */ src = logo; |
From: Geert U. <ge...@li...> - 2003-05-01 13:21:40
|
On Sun, 27 Apr 2003, Thiemo Seufer wrote: > this patch adds logo drawing support for mono visuals with 8 bits > per pixel. The DECstation's PMAG-AA is such a card. > > 2.4 only, the 2.5 logo code is very different. BTW, does it also work if you write 0xff (i.e. (1<<var.bits_per_pixel)-1) instead of 1 to the frame buffer? Since this is what 2.5 does/will do. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@li... In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds |
From: Thiemo S. <ic...@cs...> - 2003-05-01 17:48:16
|
Geert Uytterhoeven wrote: > On Sun, 27 Apr 2003, Thiemo Seufer wrote: > > this patch adds logo drawing support for mono visuals with 8 bits > > per pixel. The DECstation's PMAG-AA is such a card. > > > > 2.4 only, the 2.5 logo code is very different. > > BTW, does it also work if you write 0xff (i.e. (1<<var.bits_per_pixel)-1) > instead of 1 to the frame buffer? Since this is what 2.5 does/will do. It won't make a difference, only the LSB is relevant. Thiemo |