diff options
author | Jimmy Rubin <jimmy.rubin@stericsson.com> | 2010-10-30 20:06:10 +0200 |
---|---|---|
committer | Sundar Iyer <sundar.iyer@stericsson.com> | 2010-11-19 14:47:46 +0530 |
commit | e73cecaacd918d15254b33107c5418650a00bf19 (patch) | |
tree | c5a42b0087b0957338011aaf04bc241f0a161905 /drivers/video/mcde/mcde_fb.c | |
parent | fa0bde6c9ad87f4a954594cb5d6e34b07b608e5c (diff) |
MCDE: Add support for blanking
This patch does the following:
* FB_BLANK_NORMAL, FB_BLANK_UNBLANK is implemented.
ST Ericsson Id: ER 260786
Change-Id: I1735f498e585e0b6dbdbadc24bdc94322f65dd53
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/8261
Tested-by: Jimmy RUBIN <jimmy.rubin@stericsson.com>
Reviewed-by: Dan JOHANSSON <dan.johansson@stericsson.com>
Reviewed-by: Linus WALLEIJ <linus.walleij@stericsson.com>
Diffstat (limited to 'drivers/video/mcde/mcde_fb.c')
-rw-r--r-- | drivers/video/mcde/mcde_fb.c | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/drivers/video/mcde/mcde_fb.c b/drivers/video/mcde/mcde_fb.c index 51b9a5e8bf4..3cc275fa0d5 100644 --- a/drivers/video/mcde/mcde_fb.c +++ b/drivers/video/mcde/mcde_fb.c @@ -518,9 +518,36 @@ static int mcde_fb_set_par(struct fb_info *fbi) static int mcde_fb_blank(int blank, struct fb_info *fbi) { + int ret = 0; + int i; + struct mcde_display_device *ddev = fb_to_display(fbi); + struct mcde_fb *mfb = to_mcde_fb(fbi); + dev_vdbg(fbi->dev, "%s\n", __func__); - /* REVIEW: is this supposed to be empty? */ - return 0; + + switch (blank) { + case FB_BLANK_NORMAL: + case FB_BLANK_VSYNC_SUSPEND: + case FB_BLANK_HSYNC_SUSPEND: + case FB_BLANK_POWERDOWN: + for (i = 0; i < mfb->num_ovlys; i++) { + struct mcde_overlay *ovly = mfb->ovlys[i]; + mcde_dss_disable_overlay(ovly); + } + mcde_dss_disable_display(ddev); + break; + case FB_BLANK_UNBLANK: + ret = mcde_dss_enable_display(ddev); + for (i = 0; i < mfb->num_ovlys; i++) { + struct mcde_overlay *ovly = mfb->ovlys[i]; + ret = mcde_dss_enable_overlay(ovly); + ret = mcde_dss_update_overlay(ovly); + } + break; + default: + ret = -EINVAL; + } + return ret; } static int mcde_fb_pan_display(struct fb_var_screeninfo *var, |