Commit ad04490a authored by InKi Dae's avatar InKi Dae Committed by Linus Torvalds

s3c-fb: add default window feature.

s5pv210 has five window layers (window0 ~ 4), among them, window0 ~ 2
could be used for local path with fimc(capture device) and fimd writeback
feature so this patch makes default window layer for UI to be set at
machine code.
Signed-off-by: default avatarInKi Dae <inki.dae@samsung.com>
Reviewed-by: KyungMin Park <kyungmin.park.samsung.com>
Signed-off-by: default avatarBen Dooks <ben-linux@fluff.org>
Signed-off-by: default avatarPawel Osciak <p.osciak@samsung.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 45649fdb
...@@ -42,6 +42,7 @@ struct s3c_fb_pd_win { ...@@ -42,6 +42,7 @@ struct s3c_fb_pd_win {
* @setup_gpio: Setup the external GPIO pins to the right state to transfer * @setup_gpio: Setup the external GPIO pins to the right state to transfer
* the data from the display system to the connected display * the data from the display system to the connected display
* device. * device.
* @default_win: default window layer number to be used for UI layer.
* @vidcon0: The base vidcon0 values to control the panel data format. * @vidcon0: The base vidcon0 values to control the panel data format.
* @vidcon1: The base vidcon1 values to control the panel data output. * @vidcon1: The base vidcon1 values to control the panel data output.
* @win: The setup data for each hardware window, or NULL for unused. * @win: The setup data for each hardware window, or NULL for unused.
...@@ -58,6 +59,8 @@ struct s3c_fb_platdata { ...@@ -58,6 +59,8 @@ struct s3c_fb_platdata {
struct s3c_fb_pd_win *win[S3C_FB_MAX_WIN]; struct s3c_fb_pd_win *win[S3C_FB_MAX_WIN];
u32 default_win;
u32 vidcon0; u32 vidcon0;
u32 vidcon1; u32 vidcon1;
}; };
......
...@@ -300,9 +300,9 @@ static int s3c_fb_set_par(struct fb_info *info) ...@@ -300,9 +300,9 @@ static int s3c_fb_set_par(struct fb_info *info)
/* disable the window whilst we update it */ /* disable the window whilst we update it */
writel(0, regs + WINCON(win_no)); writel(0, regs + WINCON(win_no));
/* use window 0 as the basis for the lcd output timings */ /* use platform specified window as the basis for the lcd timings */
if (win_no == 0) { if (win_no == sfb->pdata->default_win) {
clkdiv = s3c_fb_calc_pixclk(sfb, var->pixclock); clkdiv = s3c_fb_calc_pixclk(sfb, var->pixclock);
data = sfb->pdata->vidcon0; data = sfb->pdata->vidcon0;
...@@ -636,7 +636,7 @@ static int s3c_fb_blank(int blank_mode, struct fb_info *info) ...@@ -636,7 +636,7 @@ static int s3c_fb_blank(int blank_mode, struct fb_info *info)
/* we're stuck with this until we can do something about overriding /* we're stuck with this until we can do something about overriding
* the power control using the blanking event for a single fb. * the power control using the blanking event for a single fb.
*/ */
if (index == 0) if (index == sfb->pdata->default_win)
s3c_fb_enable(sfb, blank_mode != FB_BLANK_POWERDOWN ? 1 : 0); s3c_fb_enable(sfb, blank_mode != FB_BLANK_POWERDOWN ? 1 : 0);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment