Skip to content

Commit

Permalink
Swap Red and Blue over in 32bpp framebuffer mode
Browse files Browse the repository at this point in the history
  • Loading branch information
popcornmix committed May 2, 2012
1 parent e09244e commit 42119ba
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions drivers/video/bcm2708_fb.c
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,12 @@ static int bcm2708_fb_set_bitfields(struct fb_var_screeninfo *var)
* encoded in the pixel data. Calculate their position from
* the bitfield length defined above.
*/
if (ret == 0 && var->bits_per_pixel >= 16) {
if (ret == 0 && var->bits_per_pixel >= 24) {
var->red.offset = 0;
var->green.offset = var->red.offset + var->red.length;
var->blue.offset = var->green.offset + var->green.length;
var->transp.offset = var->blue.offset + var->blue.length;
} else if (ret == 0 && var->bits_per_pixel >= 16) {
var->blue.offset = 0;
var->green.offset = var->blue.offset + var->blue.length;
var->red.offset = var->green.offset + var->green.length;
Expand Down Expand Up @@ -312,6 +317,7 @@ static struct fb_ops bcm2708_fb_ops = {

static int fbwidth = 800; /* module parameter */
static int fbheight = 480; /* module parameter */
static int fbdepth = 16; /* module parameter */

static int bcm2708_fb_register(struct bcm2708_fb *fb)
{
Expand Down Expand Up @@ -346,7 +352,7 @@ static int bcm2708_fb_register(struct bcm2708_fb *fb)
fb->fb.var.yres = fbheight;
fb->fb.var.xres_virtual = fbwidth;
fb->fb.var.yres_virtual = fbheight;
fb->fb.var.bits_per_pixel = 16;
fb->fb.var.bits_per_pixel = fbdepth;
fb->fb.var.vmode = FB_VMODE_NONINTERLACED;
fb->fb.var.activate = FB_ACTIVATE_NOW;
fb->fb.var.nonstd = 0;
Expand All @@ -369,8 +375,8 @@ static int bcm2708_fb_register(struct bcm2708_fb *fb)

fb_set_var(&fb->fb, &fb->fb.var);

pr_info("BCM2708FB: registering framebuffer (%d, %d)\n", fbwidth,
fbheight);
pr_info("BCM2708FB: registering framebuffer (%dx%d@%d)\n", fbwidth,
fbheight, fbdepth);

ret = register_framebuffer(&fb->fb);
pr_info("BCM2708FB: register framebuffer (%d)\n", ret);
Expand Down Expand Up @@ -453,9 +459,11 @@ module_exit(bcm2708_fb_exit);

module_param(fbwidth, int, 0644);
module_param(fbheight, int, 0644);
module_param(fbdepth, int, 0644);

MODULE_DESCRIPTION("BCM2708 framebuffer driver");
MODULE_LICENSE("GPL");

MODULE_PARM_DESC(fbwidth, "Width of ARM Framebuffer");
MODULE_PARM_DESC(fbheight, "Height of ARM Framebuffer");
MODULE_PARM_DESC(fbdepth, "Bit depth of ARM Framebuffer");

0 comments on commit 42119ba

Please sign in to comment.