asiliantfb: Fix pseudo_palette setup in asiliantfb_setcolreg()
PATCH 1/1 asiliantfb: Fix pseudo_palette setup in asiliantfb_setcolreg()
The setcolreg function will attempt to write 24 color entries to the pseudo_pallette. However, the pseudo_palette has only space for 16 entries.
Thanks to Atsushi Nemoto for reporting this bug.
Signed-off-by Antonino Daplas <[email protected]>
---
drivers/video/asiliantfb.c | 21 +++++++++------------ 1 files changed, 9 insertions(+), 12 deletions(-)
drivers/video/asiliantfb.c +9 -12
@@ -322,32 +322,29 @@ static int asiliantfb_setcolreg(u_int rewriteb (green, mmio_base +0x791 );writeb (blue, mmio_base +0x791 ); -switch (p->var.bits_per_pixel) { -case 15 : -if (regno <16 ) { +if (regno <16 ) { +switch (p->var.red.offset) { +case 10 :/* RGB 555 */ ((u32 *)(p->pseudo_palette))[regno] = ((red &0xf8 ) <<7 ) | ((green &0xf8 ) <<2 ) | ((blue &0xf8 ) >>3 ); - } -break ; -case 16 : -if (regno <16 ) { +break ; +case 11 :/* RGB 565 */ ((u32 *)(p->pseudo_palette))[regno] = ((red &0xf8 ) <<8 ) | ((green &0xfc ) <<3 ) | ((blue &0xf8 ) >>3 ); - } -break ; -case 24 : -if (regno <24 ) { +break ; +case 16 :/* RGB 888 */ ((u32 *)(p->pseudo_palette))[regno] = (red <<16 ) | (green <<8 ) | (blue); +break ; } -break ; } +return 0 ; }
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642