summaryrefslogtreecommitdiff
path: root/drivers/video/mcde/mcde_fb.c
diff options
context:
space:
mode:
authorPhilippe Langlais <philippe.langlais@linaro.org>2011-05-11 10:04:48 +0200
committerRobert Marklund <robert.marklund@stericsson.com>2011-10-05 12:11:44 +0200
commitb2870246288c6d39c0a6cfa54cf507ec998dc84a (patch)
treee0b631cfbe85e614ceffa07d545a231e0c2066d8 /drivers/video/mcde/mcde_fb.c
parent6c709a08a191cba83cac768fe71521cc73f16855 (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.c5
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;