|
@@ -199,16 +199,20 @@
|
|
|
extern void (*sa1100fb_backlight_power)(int on);
|
|
|
extern void (*sa1100fb_lcd_power)(int on);
|
|
|
|
|
|
-/*
|
|
|
- * IMHO this looks wrong. In 8BPP, length should be 8.
|
|
|
- */
|
|
|
-static struct sa1100fb_rgb rgb_8 = {
|
|
|
+static struct sa1100fb_rgb rgb_4 = {
|
|
|
.red = { .offset = 0, .length = 4, },
|
|
|
.green = { .offset = 0, .length = 4, },
|
|
|
.blue = { .offset = 0, .length = 4, },
|
|
|
.transp = { .offset = 0, .length = 0, },
|
|
|
};
|
|
|
|
|
|
+static struct sa1100fb_rgb rgb_8 = {
|
|
|
+ .red = { .offset = 0, .length = 8, },
|
|
|
+ .green = { .offset = 0, .length = 8, },
|
|
|
+ .blue = { .offset = 0, .length = 8, },
|
|
|
+ .transp = { .offset = 0, .length = 0, },
|
|
|
+};
|
|
|
+
|
|
|
static struct sa1100fb_rgb def_rgb_16 = {
|
|
|
.red = { .offset = 11, .length = 5, },
|
|
|
.green = { .offset = 5, .length = 6, },
|
|
@@ -613,7 +617,7 @@ sa1100fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
|
|
|
DPRINTK("var->bits_per_pixel=%d\n", var->bits_per_pixel);
|
|
|
switch (var->bits_per_pixel) {
|
|
|
case 4:
|
|
|
- rgbidx = RGB_8;
|
|
|
+ rgbidx = RGB_4;
|
|
|
break;
|
|
|
case 8:
|
|
|
rgbidx = RGB_8;
|
|
@@ -1382,6 +1386,7 @@ static struct sa1100fb_info * __init sa1100fb_init_fbinfo(struct device *dev)
|
|
|
fbi->fb.monspecs = monspecs;
|
|
|
fbi->fb.pseudo_palette = (fbi + 1);
|
|
|
|
|
|
+ fbi->rgb[RGB_4] = &rgb_4;
|
|
|
fbi->rgb[RGB_8] = &rgb_8;
|
|
|
fbi->rgb[RGB_16] = &def_rgb_16;
|
|
|
|