Skip to content

Commit

Permalink
s3c-fb: integrate palette setup code into main driver
Browse files Browse the repository at this point in the history
Remove the palette setup code from the header files and put it into the
main driver.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Pawel Osciak <p.osciak@samsung.com>
Cc: InKi Dae <inki.dae@samsung.com>
Cc: KyungMin Park <kyungmin.park.samsung.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Ben Dooks authored and Linus Torvalds committed Aug 11, 2010
1 parent c4bb6ff commit bc2da1b
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 35 deletions.
34 changes: 0 additions & 34 deletions arch/arm/plat-samsung/include/plat/regs-fb-v4.h
Original file line number Diff line number Diff line change
Expand Up @@ -137,40 +137,6 @@
#define WPALCON_W2PAL_16BPP_A555 (1 << 6)


/* system specific implementation code for palette sizes, and other
* information that changes depending on which architecture is being
* compiled.
*/

struct s3c_fb_palette {
struct fb_bitfield r;
struct fb_bitfield g;
struct fb_bitfield b;
struct fb_bitfield a;
};

static inline void s3c_fb_init_palette(unsigned int window,
struct s3c_fb_palette *palette)
{
if (window < 2) {
/* Windows 0/1 are 8/8/8 or A/8/8/8 */
palette->r.offset = 16;
palette->r.length = 8;
palette->g.offset = 8;
palette->g.length = 8;
palette->b.offset = 0;
palette->b.length = 8;
} else {
/* currently we assume RGB 5/6/5 */
palette->r.offset = 11;
palette->r.length = 5;
palette->g.offset = 5;
palette->g.length = 6;
palette->b.offset = 0;
palette->b.length = 5;
}
}

/* Notes on per-window bpp settings
*
* Value Win0 Win1 Win2 Win3 Win 4
Expand Down
33 changes: 32 additions & 1 deletion drivers/video/s3c-fb.c
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,20 @@ struct s3c_fb_driverdata {
struct s3c_fb_win_variant *win[S3C_FB_MAX_WIN];
};

/**
* struct s3c_fb_palette - palette information
* @r: Red bitfield.
* @g: Green bitfield.
* @b: Blue bitfield.
* @a: Alpha bitfield.
*/
struct s3c_fb_palette {
struct fb_bitfield r;
struct fb_bitfield g;
struct fb_bitfield b;
struct fb_bitfield a;
};

/**
* struct s3c_fb_win - per window private data for each framebuffer.
* @windata: The platform data supplied for the window configuration.
Expand Down Expand Up @@ -866,7 +880,24 @@ static int __devinit s3c_fb_probe_win(struct s3c_fb *sfb, unsigned int win_no,
}

/* setup the r/b/g positions for the window's palette */
s3c_fb_init_palette(win_no, &win->palette);
if (win->variant.palette_16bpp) {
/* Set RGB 5:6:5 as default */
win->palette.r.offset = 11;
win->palette.r.length = 5;
win->palette.g.offset = 5;
win->palette.g.length = 6;
win->palette.b.offset = 0;
win->palette.b.length = 5;

} else {
/* Set 8bpp or 8bpp and 1bit alpha */
win->palette.r.offset = 16;
win->palette.r.length = 8;
win->palette.g.offset = 8;
win->palette.g.length = 8;
win->palette.b.offset = 0;
win->palette.b.length = 8;
}

/* setup the initial video mode from the window */
fb_videomode_to_var(&fbinfo->var, initmode);
Expand Down

0 comments on commit bc2da1b

Please sign in to comment.