Commit 9058be43cf9f32b6c636aa6954b4f1a6b22098f6
Committed by
Linus Torvalds
1 parent
c771eba1fe
Exists in
master
and in
4 other branches
gbefb: the pseudo_palette is only 16 elements long
The pseudo_palette is only 16 elements long. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing 1 changed file with 21 additions and 20 deletions Side-by-side Diff
drivers/video/gbefb.c
... | ... | @@ -86,7 +86,7 @@ |
86 | 86 | |
87 | 87 | static int ypan, ywrap; |
88 | 88 | |
89 | -static uint32_t pseudo_palette[256]; | |
89 | +static uint32_t pseudo_palette[16]; | |
90 | 90 | |
91 | 91 | static char *mode_option __initdata = NULL; |
92 | 92 | |
... | ... | @@ -854,8 +854,7 @@ |
854 | 854 | green >>= 8; |
855 | 855 | blue >>= 8; |
856 | 856 | |
857 | - switch (info->var.bits_per_pixel) { | |
858 | - case 8: | |
857 | + if (info->var.bits_per_pixel <= 8) { | |
859 | 858 | /* wait for the color map FIFO to have a free entry */ |
860 | 859 | for (i = 0; i < 1000 && gbe->cm_fifo >= 63; i++) |
861 | 860 | udelay(10); |
... | ... | @@ -864,23 +863,25 @@ |
864 | 863 | return 1; |
865 | 864 | } |
866 | 865 | gbe->cmap[regno] = (red << 24) | (green << 16) | (blue << 8); |
867 | - break; | |
868 | - case 15: | |
869 | - case 16: | |
870 | - red >>= 3; | |
871 | - green >>= 3; | |
872 | - blue >>= 3; | |
873 | - pseudo_palette[regno] = | |
874 | - (red << info->var.red.offset) | | |
875 | - (green << info->var.green.offset) | | |
876 | - (blue << info->var.blue.offset); | |
877 | - break; | |
878 | - case 32: | |
879 | - pseudo_palette[regno] = | |
880 | - (red << info->var.red.offset) | | |
881 | - (green << info->var.green.offset) | | |
882 | - (blue << info->var.blue.offset); | |
883 | - break; | |
866 | + } else if (regno < 16) { | |
867 | + switch (info->var.bits_per_pixel) { | |
868 | + case 15: | |
869 | + case 16: | |
870 | + red >>= 3; | |
871 | + green >>= 3; | |
872 | + blue >>= 3; | |
873 | + pseudo_palette[regno] = | |
874 | + (red << info->var.red.offset) | | |
875 | + (green << info->var.green.offset) | | |
876 | + (blue << info->var.blue.offset); | |
877 | + break; | |
878 | + case 32: | |
879 | + pseudo_palette[regno] = | |
880 | + (red << info->var.red.offset) | | |
881 | + (green << info->var.green.offset) | | |
882 | + (blue << info->var.blue.offset); | |
883 | + break; | |
884 | + } | |
884 | 885 | } |
885 | 886 | |
886 | 887 | return 0; |