SiMotion VoyagerGX framebuffer: blue stripped background
Subsystems (2)
PATCH 1/1 SiMotion VoyagerGX framebuffer: blue stripped background
Hello.
This driver was using an incorrect typecast when setting pseudopalette,
hence were the blue strips on the black char background. As this driver happens to be maintaned by Linux/MIPS, here's the patch (I've also noticed a typo in the head comment, hence comes another hunk)...
WBR, Sergei
drivers/video/smivgxfb.c +2 -2
@@ -1,5 +1,5 @@/*************************************************************************** -* Silicon Motion VoyaagerGX framebuffer driver +* Silicon Motion VoyagerGX framebuffer driver * * ported to 2.6 by Embedded Alley Solutions, Inc * Copyright (C) 2005 Embedded Alley Solutions, Inc
@@ -162,7 +162,7 @@ smi_setcolreg(unsigned regno, unsigned rif (regno >255 )return 1 ; - ((u16 *)(info->pseudo_palette))[regno] = + ((u32 *)(info->pseudo_palette))[regno] = ((red &0xf800 ) >>0 ) | ((green &0xfc00 ) >>5 ) | ((blue &0xf800 ) >>11 );
Hello.
Quoted 4 lines · Sergei Shtylylov
This driver was using an incorrect typecast when setting pseudopalette,
hence were the blue strips on the black char background. As this driver happens to be maintaned by Linux/MIPS, here's the patch (I've also noticed a typo in the head comment, hence comes another hunk)...
Have noticed that regno check in smi_setcolreg() is too relaxed as
pseudo-palette has only 16 entries. So, had to update the patch.
WBR, Sergei
drivers/video/smivgxfb.c +5 -5
@@ -1,5 +1,5 @@/*************************************************************************** -* Silicon Motion VoyaagerGX framebuffer driver +* Silicon Motion VoyagerGX framebuffer driver * * ported to 2.6 by Embedded Alley Solutions, Inc * Copyright (C) 2005 Embedded Alley Solutions, Inc
@@ -159,10 +159,10 @@ smi_setcolreg(unsigned regno, unsigned r unsigned blue, unsigned transp, struct fb_info *info) { - if (regno > 255) + if (regno > 15) return 1; - ((u16 *)(info->pseudo_palette))[regno] = + ((u32 *)(info->pseudo_palette))[regno] = ((red &0xf800 ) >>0 ) | ((green &0xfc00 ) >>5 ) | ((blue &0xf800 ) >>11 );
@@ -318,9 +318,9 @@ static int __devinit vgx_pci_probe(strucif (!info.pseudo_palette) {return -ENOMEM ; } -memset (info.pseudo_palette,0 ,sizeof (u32) *16 ); +memset (info.pseudo_palette,0 ,sizeof (u32) *16 ); -fb_alloc_cmap (&info.cmap,256 ,0 ); +fb_alloc_cmap (&info.cmap,256 ,0 );smi_setmode ();
Quoted 3 lines · Sergei Shtylylov
This driver was using an incorrect typecast when setting pseudopalette,
hence were the blue strips on the black char background. As this driver happens to be maintaned by Linux/MIPS, here's the patch (I've also noticed a
Framebuffer stuff to it's maintainer "Antonino A. Daplas" <[email protected]> and [email protected], please.
Ralf