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>
This commit is contained in:
parent
c771eba1fe
commit
9058be43cf
1 changed files with 21 additions and 20 deletions
|
@ -86,7 +86,7 @@ static int gbe_revision;
|
||||||
|
|
||||||
static int ypan, ywrap;
|
static int ypan, ywrap;
|
||||||
|
|
||||||
static uint32_t pseudo_palette[256];
|
static uint32_t pseudo_palette[16];
|
||||||
|
|
||||||
static char *mode_option __initdata = NULL;
|
static char *mode_option __initdata = NULL;
|
||||||
|
|
||||||
|
@ -854,8 +854,7 @@ static int gbefb_setcolreg(unsigned regno, unsigned red, unsigned green,
|
||||||
green >>= 8;
|
green >>= 8;
|
||||||
blue >>= 8;
|
blue >>= 8;
|
||||||
|
|
||||||
switch (info->var.bits_per_pixel) {
|
if (info->var.bits_per_pixel <= 8) {
|
||||||
case 8:
|
|
||||||
/* wait for the color map FIFO to have a free entry */
|
/* wait for the color map FIFO to have a free entry */
|
||||||
for (i = 0; i < 1000 && gbe->cm_fifo >= 63; i++)
|
for (i = 0; i < 1000 && gbe->cm_fifo >= 63; i++)
|
||||||
udelay(10);
|
udelay(10);
|
||||||
|
@ -864,23 +863,25 @@ static int gbefb_setcolreg(unsigned regno, unsigned red, unsigned green,
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
gbe->cmap[regno] = (red << 24) | (green << 16) | (blue << 8);
|
gbe->cmap[regno] = (red << 24) | (green << 16) | (blue << 8);
|
||||||
break;
|
} else if (regno < 16) {
|
||||||
case 15:
|
switch (info->var.bits_per_pixel) {
|
||||||
case 16:
|
case 15:
|
||||||
red >>= 3;
|
case 16:
|
||||||
green >>= 3;
|
red >>= 3;
|
||||||
blue >>= 3;
|
green >>= 3;
|
||||||
pseudo_palette[regno] =
|
blue >>= 3;
|
||||||
(red << info->var.red.offset) |
|
pseudo_palette[regno] =
|
||||||
(green << info->var.green.offset) |
|
(red << info->var.red.offset) |
|
||||||
(blue << info->var.blue.offset);
|
(green << info->var.green.offset) |
|
||||||
break;
|
(blue << info->var.blue.offset);
|
||||||
case 32:
|
break;
|
||||||
pseudo_palette[regno] =
|
case 32:
|
||||||
(red << info->var.red.offset) |
|
pseudo_palette[regno] =
|
||||||
(green << info->var.green.offset) |
|
(red << info->var.red.offset) |
|
||||||
(blue << info->var.blue.offset);
|
(green << info->var.green.offset) |
|
||||||
break;
|
(blue << info->var.blue.offset);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in a new issue