mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 06:50:58 +07:00
[PATCH] 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 <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
cacfc8cf4e
commit
ee713059d4
@ -322,32 +322,29 @@ static int asiliantfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
|
|||||||
writeb(green, mmio_base + 0x791);
|
writeb(green, mmio_base + 0x791);
|
||||||
writeb(blue, mmio_base + 0x791);
|
writeb(blue, mmio_base + 0x791);
|
||||||
|
|
||||||
switch(p->var.bits_per_pixel) {
|
if (regno < 16) {
|
||||||
case 15:
|
switch(p->var.red.offset) {
|
||||||
if (regno < 16) {
|
case 10: /* RGB 555 */
|
||||||
((u32 *)(p->pseudo_palette))[regno] =
|
((u32 *)(p->pseudo_palette))[regno] =
|
||||||
((red & 0xf8) << 7) |
|
((red & 0xf8) << 7) |
|
||||||
((green & 0xf8) << 2) |
|
((green & 0xf8) << 2) |
|
||||||
((blue & 0xf8) >> 3);
|
((blue & 0xf8) >> 3);
|
||||||
}
|
break;
|
||||||
break;
|
case 11: /* RGB 565 */
|
||||||
case 16:
|
|
||||||
if (regno < 16) {
|
|
||||||
((u32 *)(p->pseudo_palette))[regno] =
|
((u32 *)(p->pseudo_palette))[regno] =
|
||||||
((red & 0xf8) << 8) |
|
((red & 0xf8) << 8) |
|
||||||
((green & 0xfc) << 3) |
|
((green & 0xfc) << 3) |
|
||||||
((blue & 0xf8) >> 3);
|
((blue & 0xf8) >> 3);
|
||||||
}
|
break;
|
||||||
break;
|
case 16: /* RGB 888 */
|
||||||
case 24:
|
|
||||||
if (regno < 24) {
|
|
||||||
((u32 *)(p->pseudo_palette))[regno] =
|
((u32 *)(p->pseudo_palette))[regno] =
|
||||||
(red << 16) |
|
(red << 16) |
|
||||||
(green << 8) |
|
(green << 8) |
|
||||||
(blue);
|
(blue);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user