diff options
author | Philippe Langlais <philippe.langlais@linaro.org> | 2011-05-11 10:04:48 +0200 |
---|---|---|
committer | Robert Marklund <robert.marklund@stericsson.com> | 2011-10-05 12:11:44 +0200 |
commit | b2870246288c6d39c0a6cfa54cf507ec998dc84a (patch) | |
tree | e0b631cfbe85e614ceffa07d545a231e0c2066d8 /drivers/video/mcde/mcde_fb.c | |
parent | 6c709a08a191cba83cac768fe71521cc73f16855 (diff) |
video: mcde: Add tripple buffer support
This patch adds tripple buffer support to the mcde
driver. Useful for video mode devices (e.g. HDMI)
where a missed v-sync leads to half frame rate
(the client has to wait for the next v-sync).
Tripple buffering solves this problem since there
are two back buffers the client can use.
Tripple buffering for HDMI is activated in
menuconfig by enabling:
System Type -> Display selection -> Enable tripple
buffer for HDMI display
ST-Ericsson ID: 335004
ST-Ericsson Linux next: Not tested, ER 282779
ST-Ericsson FOSS-OUT ID: Trivial
Change-Id: Ice1f936a8a00e2fbc8fdf7e8c6621c539efe0ac4
Signed-off-by: Jimmy Rubin <jimmy.rubin@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/21839
Reviewed-by: QATOOLS
Reviewed-by: Per PERSSON <per.xb.persson@stericsson.com>
Reviewed-by: QATEST
Reviewed-by: Marcel TUNNISSEN <marcel.tuennissen@stericsson.com>
Conflicts:
arch/arm/configs/u8500_defconfig
drivers/misc/dispdev/dispdev.c
Diffstat (limited to 'drivers/video/mcde/mcde_fb.c')
-rw-r--r-- | drivers/video/mcde/mcde_fb.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/video/mcde/mcde_fb.c b/drivers/video/mcde/mcde_fb.c index 039a60ad05c..dc0812761c7 100644 --- a/drivers/video/mcde/mcde_fb.c +++ b/drivers/video/mcde/mcde_fb.c @@ -507,10 +507,13 @@ static int apply_var(struct fb_info *fbi, struct mcde_display_device *ddev) for (i = 0; i < mfb->num_ovlys; i++) { struct mcde_overlay *ovly = mfb->ovlys[i]; struct mcde_overlay_info info; + int num_buffers; get_ovly_info(fbi, ovly, &info); (void) mcde_dss_apply_overlay(ovly, &info); - ret = mcde_dss_update_overlay(ovly); + + num_buffers = var->yres_virtual / var->yres; + mcde_dss_update_overlay(ovly, num_buffers == 3); } return 0; |