On Fri, 30 May 2008, Geoff Levand wrote:
> You don't have CONFIG_LOGO_LINUX_CLUT224 set, so the SPE logos are not
> rendered correctly.  It looks like the lines of pixel are not aligned.
> Geert, can you say why?  Is it a bug in the logo code?

If there's no main logo, it also skips (using `return') drawing the extra
SPE logos.

I looked into it a few days ago, and came up with the patch below. But this
is not sufficient to fix the issue, as fb_show_logo_line() needs fb_logo.logo.
As this looks very low-priority to me, I didn't go further.
---
 drivers/video/fbmem.c |   15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

--- a/drivers/video/fbmem.c
+++ b/drivers/video/fbmem.c
@@ -553,6 +553,7 @@ static inline int fb_show_extra_logos(st
 int fb_prepare_logo(struct fb_info *info, int rotate)
 {
        int depth = fb_get_color_depth(&info->var, &info->fix);
+       int height = 0;
        unsigned int yres;
 
        memset(&fb_logo, 0, sizeof(struct logo_data));
@@ -574,12 +575,10 @@ int fb_prepare_logo(struct fb_info *info
                depth = 4;
        }
 
-       /* Return if no suitable logo was found */
+       /* Skip if no suitable logo was found */
        fb_logo.logo = fb_find_logo(depth);
-
-       if (!fb_logo.logo) {
-               return 0;
-       }
+       if (!fb_logo.logo)
+               goto out;
 
        if (rotate == FB_ROTATE_UR || rotate == FB_ROTATE_UD)
                yres = info->var.yres;
@@ -588,8 +587,9 @@ int fb_prepare_logo(struct fb_info *info
 
        if (fb_logo.logo->height > yres) {
                fb_logo.logo = NULL;
-               return 0;
+               goto out;
        }
+       height = fb_logo.logo->height;
 
        /* What depth we asked for might be different from what we get */
        if (fb_logo.logo->type == LINUX_LOGO_CLUT224)
@@ -615,7 +615,8 @@ int fb_prepare_logo(struct fb_info *info
                }
        }
 
-       return fb_prepare_extra_logos(info, fb_logo.logo->height, yres);
+out:
+       return fb_prepare_extra_logos(info, height, yres);
 }
 
 int fb_show_logo(struct fb_info *info, int rotate)

With kind regards,

Geert Uytterhoeven
Software Architect

Sony Network and Software Technology Center Europe
The Corporate Village · Da Vincilaan 7-D1 · B-1935 Zaventem · Belgium

Phone:    +32 (0)2 700 8453
Fax:      +32 (0)2 700 8622
E-mail:   [EMAIL PROTECTED]
Internet: http://www.sony-europe.com/

Sony Network and Software Technology Center Europe
A division of Sony Service Centre (Europe) N.V.
Registered office: Technologielaan 7 · B-1840 Londerzeel · Belgium
VAT BE 0413.825.160 · RPR Brussels
Fortis Bank Zaventem · BIC GEBABEBB08A · IBAN BE39001382358619

Reply via email to