: logo fix
Subsystems (3)
PATCH 1/5 : logo fix
The attached patch (linux-2.5.61 + James' fbdev.diff) fixes the following:
1. compile error because of missing scripts/pmntologo.
2. Break up of fb_show_logo() to fb_prepare_logo()/fb_show_logo() to fix weird "double drawing" or the "single draw, erase in a flash" of the logo.
3. Fixed all drivers affected by the (image.depth == 0) is color expansion.
Tony
drivers/video/cfbimgblt.c +4 -4
@@ -113,7 +113,7 @@int i, n, bpp = p->var.bits_per_pixel;unsigned long null_bits =BITS_PER_LONG - bpp;u32 *palette = (u32 *) p->pseudo_palette; -u8 *src = image->data; +u8 *src = (u8 *) image->data; dst2 = (unsigned long *) dst1;for (i = image->height; i--; ) {
@@ -173,7 +173,7 @@unsigned long *dst, *dst2, val, pitch = p->fix.line_length;unsigned long null_bits =BITS_PER_LONG - bpp;unsigned long spitch = (image->width+7 )/8 ; -u8 *src = image->data, *s; +const char *src = image->data, *s;unsigned long i, j, l; dst2 = (unsigned long *) dst1;
@@ -246,7 +246,7 @@u32 fgx = fgcolor, bgx = bgcolor, bpp = p->var.bits_per_pixel;u32 ppw =BITS_PER_LONG /bpp, spitch = (image->width +7 )/8 ;u32 bit_mask, end_mask, eorx, shift; -char *s = image->data, *src; +const char *s = image->data, *src;unsigned long *dst;u32 *tab =NULL ;int i, j, k;
@@ -328,7 +328,7 @@if (p->fbops->fb_sync) p->fbops->fb_sync (p); -if (image->depth ==1 ) { +if (image->depth ==0 ) {if (p->fix.visual ==FB_VISUAL_TRUECOLOR || p->fix.visual ==FB_VISUAL_DIRECTCOLOR ) { fgcolor = ((u32 *)(p->pseudo_palette))[image->fg_color];
drivers/video/console/fbcon.c +3 -2
@@ -555,7 +555,7 @@ cursor.image.height = height; cursor.image.dx = xx * width; cursor.image.dy = yy * height; - cursor.image.depth =1 ; + cursor.image.depth =0 ; cursor.image.data = image; cursor.image.bg_color = bgcolor; cursor.image.fg_color = fgcolor;
@@ -945,6 +945,7 @@int cnt;int step; + logo_height =fb_prepare_logo (info); logo_lines = (logo_height + vc->vc_font.height -1 ) / vc->vc_font.height; q = (unsigned short *) (vc->vc_origin +
@@ -1942,7 +1943,7 @@if (logo_shown ==-2 ) { logo_shown = fg_console;/* This is protected above by initmem_freed */ - logo_height =fb_show_logo (info); +fb_show_logo (info); update_region(fg_console, vc->vc_origin + vc->vc_size_row * vc->vc_top, vc->vc_size_row * (vc->vc_bottom -
drivers/video/fbmem.c +85 -65
219 lines not on this page · raw message
drivers/video/tdfxfb.c +1 -1
@@ -939,7 +939,7 @@u8 *chardata = (u8 *) pixmap->data;u32 srcfmt; -if (pixmap->depth !=1 ) { +if (pixmap->depth !=0 ) {//banshee_make_room(par, 6 + ((size + 3) >> 2)); //srcfmt = stride | ((bpp+((bpp==8) ? 0 : 8)) << 13) | 0x400000; cfb_imageblit (info, pixmap);
drivers/video/tgafb.c +1 -1
@@ -585,7 +585,7 @@can do better than the generic code. */ /* ??? There is a DMA write mode; I wonder if that could be made to pull the data from the image buffer... */ -if (image->depth >1 ) { +if (image->depth >0 ) {cfb_imageblit (info, image);return ; }
include/linux/fb.h +1 -0
@@ -462,6 +462,7 @@/* drivers/video/fbmem.c */ extern int register_framebuffer (struct fb_info *fb_info);extern int unregister_framebuffer (struct fb_info *fb_info); +extern int fb_prepare_logo (struct fb_info *fb_info);extern int fb_show_logo (struct fb_info *fb_info);extern struct fb_info *registered_fb[FB_MAX ];extern int num_registered_fb;
scripts/Makefile +1 -1
@@ -8,7 +8,7 @@ # docproc: Preprocess .tmpl file in order to generate .sgml documentation # conmakehash: Create arrays for initializing the kernel console tables -host-progs := fixdep split-include conmakehash docproc kallsyms +host-progs := fixdep split-include conmakehash docproc kallsyms pnmtologo build-targets := $(host-progs) # Let clean descend into subdirs
scripts/pnmtologo.c +498 -0
498 lines not on this page · raw message
Quoted 11 lines · Antonino Daplas
The attached patch (linux-2.5.61 + James' fbdev.diff) fixes the following:
1. compile error because of missing
scripts/pmntologo.2. Break up of
fb_show_logo()to fb_prepare_logo()/fb_show_logo() to fix weird "double drawing" or the "single draw, erase in a flash" of the logo.3. Fixed all drivers affected by the (image.depth == 0) is color expansion.
Here's an incremental diff to protect logo drawing code with an #ifdef CONFIG_FB_LOGO
Tony
drivers/video/fbmem.c +7 -1
@@ -41,7 +41,6 @@#include <asm/pgtable.h> #include <linux/fb.h> -#include <linux/linux_logo.h> #ifdef CONFIG_FRAMEBUFFER_CONSOLE #include "console/fbcon.h"
@@ -369,6 +368,9 @@return n <0 ? d >> -n : d << n; } +#ifdef CONFIG_FB_LOGO +#include <linux/linux_logo.h> +static void __init fb_set_logocmap (struct fb_info *info,const struct linux_logo *logo) {
@@ -656,6 +658,10 @@kfree (logo_new); return fb_logo.logo->height; } +#else +int fb_prepare_logo (struct fb_info *info) {return 0 ; } +int fb_show_logo (struct fb_info *info) {return 0 ; } +#endif /* CONFIG_FB_LOGO */ static int fbmem_read_proc (char *buf,char **start,off_t offset,int len,int *eof,void *private)
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
James Simmons
AppliedApplied.
Quoted 42 lines · Antonino Daplas
Quoted 11 lines · Antonino Daplas
The attached patch (linux-2.5.61 + James' fbdev.diff) fixes the following:
1. compile error because of missing
scripts/pmntologo.2. Break up of
fb_show_logo()to fb_prepare_logo()/fb_show_logo() to fix weird "double drawing" or the "single draw, erase in a flash" of the logo.3. Fixed all drivers affected by the (image.depth == 0) is color expansion.
Here's an incremental diff to protect logo drawing code with an #ifdef
CONFIG_FB_LOGOTony
diff -Naur
linux-2.5.61-fbdev/drivers/video/fbmem.clinux-2.5.61-ad/drivers/video/fbmem.cdrivers/video/fbmem.c +3
-1@@ -41,7 +41,6 @@#include <asm/pgtable.h> #include <linux/fb.h> -#include <linux/linux_logo.h> #ifdef CONFIG_FRAMEBUFFER_CONSOLE #include "console/fbcon.h" @@ -369,6 +368,9 @@return n <0 ? d >> -n : d << n; } +#ifdef CONFIG_FB_LOGO +#include <linux/linux_logo.h> +static void __init fb_set_logocmap (struct fb_info *info,const struct linux_logo *logo) {
drivers/video/fbmem.c line 667
Quoted 10 lines
drivers/video/fbmem.c +4
-0@@ -656,6 +658,10 @@kfree (logo_new); return fb_logo.logo->height; } +#else +int fb_prepare_logo (struct fb_info *info) {return 0 ; } +int fb_show_logo (struct fb_info *info) {return 0 ; } +#endif /* CONFIG_FB_LOGO */ static int fbmem_read_proc (char *buf,char **start,off_t offset,int len,int *eof,void *private)
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
Quoted 9 lines · Antonino Daplas
Quoted 8 lines · Antonino Daplas
The attached patch (linux-2.5.61 + James' fbdev.diff) fixes the following:
1. compile error because of missing
scripts/pmntologo.2. Break up of
fb_show_logo()to fb_prepare_logo()/fb_show_logo() to fix weird "double drawing" or the "single draw, erase in a flash" of the logo.
Quoted 6 lines
Quoted 3 lines
3. Fixed all drivers affected by the (image.depth == 0) is color expansion.
Here's an incremental diff to protect logo drawing code with an #ifdef
CONFIG_FB_LOGO
Note that it's called CONFIG_LOGO now.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
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
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
James Simmons
AppliedApplied.
Quoted 3 lines
The attached patch (linux-2.5.61 + James' fbdev.diff) fixes the following:
1. compile error because of missing
scripts/pmntologo.
Hm. I thought there was only a c file that generated a binary to. That shouldn't be missing. It might be a BK sync issue on my part.
Quoted 6 lines
2. Break up of
fb_show_logo()to fb_prepare_logo()/fb_show_logo() to fix weird "double drawing" or the "single draw, erase in a flash" of the logo.3. Fixed all drivers affected by the (image.depth == 0) is color expansion.
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
Quoted 3 lines · Antonino Daplas
3. Fixed all drivers affected by the (image.depth == 0) is color expansion.
Sigh, missed fbcon_putc().
Tony
drivers/video/console/fbcon.c +1 -1
@@ -1157,7 +1157,7 @@ image.dy =real_y (p, ypos) * vc->vc_font.height; image.width = vc->vc_font.width; image.height = vc->vc_font.height; - image.depth =1 ; + image.depth =0 ; image.data = p->fontdata + (c & charmask) * vc->vc_font.height * width; info->fbops->fb_imageblit (info, &image);
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf