fbdev: Fix logo if logo depth is less than framebuffer depth
PATCH 2/33 fbdev: Fix logo if logo depth is less than framebuffer depth
The VGA16 logo (bpp = 4) and monochrome logo (bpp = 1) do not contain any color information (no CLUT). If the fb depth is > logo depth, these logo's will not properly display. Fix by using the console palette instead of creating a new one.
Signed-off-by Antonino Daplas <[email protected]>
---
drivers/video/fbmem.c | 42 ++++++++++++++++++++++++++---------------- 1 files changed, 26 insertions(+), 16 deletions(-)
drivers/video/fbmem.c +26 -16
@@ -244,8 +244,17 @@ static void fb_set_logo(struct fb_info *u8 xor = (info->fix.visual ==FB_VISUAL_MONO01 ) ?0xff :0 ;u8 fg =1 , d; -if (fb_get_color_depth (&info->var, &info->fix) ==3 ) +switch (fb_get_color_depth (&info->var, &info->fix)) { +case 1 : + fg =1 ; +break ; +case 2 : + fg =3 ; +break ; +default : fg =7 ; +break ; + }if (info->fix.visual ==FB_VISUAL_MONO01 || info->fix.visual ==FB_VISUAL_MONO10 )
@@ -564,21 +573,6 @@ int fb_prepare_logo(struct fb_info *info depth =4 ; } -if (depth >=8 ) { -switch (info->fix.visual) { -case FB_VISUAL_TRUECOLOR : - fb_logo.needs_truepalette =1 ; -break ; -case FB_VISUAL_DIRECTCOLOR : - fb_logo.needs_directpalette =1 ; - fb_logo.needs_cmapreset =1 ; -break ; -case FB_VISUAL_PSEUDOCOLOR : - fb_logo.needs_cmapreset =1 ; -break ; - } - } -/* Return if no suitable logo was found */ fb_logo.logo =fb_find_logo (depth);
@@ -604,6 +598,22 @@ int fb_prepare_logo(struct fb_info *infoelse fb_logo.depth =1 ; + +if (fb_logo.depth >4 && depth >4 ) { +switch (info->fix.visual) { +case FB_VISUAL_TRUECOLOR : + fb_logo.needs_truepalette =1 ; +break ; +case FB_VISUAL_DIRECTCOLOR : + fb_logo.needs_directpalette =1 ; + fb_logo.needs_cmapreset =1 ; +break ; +case FB_VISUAL_PSEUDOCOLOR : + fb_logo.needs_cmapreset =1 ; +break ; + } + } +return fb_prepare_extra_logos (info, fb_logo.logo->height, yres); }
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/