On Mon, Nov 23, 2009 at 17:01, Ben Dooks <ben@xxxxxxxxxxxx> wrote: > From: Vincent Sanders <vince@xxxxxxxxxxxx> > > The cfbfillrect routine was incorrectly using the palette to lookup true and > direct colours, but using indexed colours directly. This was simply the > inversion of the sense of an 'if' statement. This patch fixes that so that > colours other than black work properly for cfbfillrect. > > Signed-off-by: Vincent Sanders <vince@xxxxxxxxxxxx> > Signed-off-by: Simtec Linux Team <linux@xxxxxxxxxxxx> > > --- > drivers/video/cfbfillrect.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > Index: b/drivers/video/cfbfillrect.c > =================================================================== > --- a/drivers/video/cfbfillrect.c 2009-05-10 14:11:19.000000000 +0100 > +++ b/drivers/video/cfbfillrect.c 2009-05-10 14:16:33.000000000 +0100 > @@ -289,9 +289,9 @@ void cfb_fillrect(struct fb_info *p, con > > if (p->fix.visual == FB_VISUAL_TRUECOLOR || > p->fix.visual == FB_VISUAL_DIRECTCOLOR ) > - fg = ((u32 *) (p->pseudo_palette))[rect->color]; > - else > fg = rect->color; > + else > + fg = ((u32 *) (p->pseudo_palette))[rect->color]; This is not correct. The pseudo palette must be used in truecolor and directcolor mode, as rect->color is a console palette index, not a pixel value. Perhaps you forgot to initialize pseudo_palette in your fbdev driver? P.S. Please send patches inline, so it's easier for us to comment on them. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx 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 -- To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html