summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPhilippe Langlais <philippe.langlais@linaro.org>2011-05-11 10:04:48 +0200
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:03:54 +0200
commit3fd14c064eb8300e73380e3f99a42938fa8913d3 (patch)
treee1ad0504d52cb633de7a63ecfa58d5949185c4e7 /include
parent8c07839b5579caa069801923df99ed4ac62b08b0 (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 'include')
-rw-r--r--include/video/mcde.h3
-rw-r--r--include/video/mcde_display.h2
-rw-r--r--include/video/mcde_dss.h2
3 files changed, 4 insertions, 3 deletions
diff --git a/include/video/mcde.h b/include/video/mcde.h
index ef828f0d560..4803779b36f 100644
--- a/include/video/mcde.h
+++ b/include/video/mcde.h
@@ -332,7 +332,8 @@ int mcde_chnl_set_power_mode(struct mcde_chnl_state *chnl,
int mcde_chnl_apply(struct mcde_chnl_state *chnl);
int mcde_chnl_update(struct mcde_chnl_state *chnl,
- struct mcde_rectangle *update_area);
+ struct mcde_rectangle *update_area,
+ bool tripple_buffer);
void mcde_chnl_put(struct mcde_chnl_state *chnl);
void mcde_chnl_stop_flow(struct mcde_chnl_state *chnl);
diff --git a/include/video/mcde_display.h b/include/video/mcde_display.h
index 69ff1de4ef2..524e62904fc 100644
--- a/include/video/mcde_display.h
+++ b/include/video/mcde_display.h
@@ -97,7 +97,7 @@ struct mcde_display_device {
int (*apply_config)(struct mcde_display_device *dev);
int (*invalidate_area)(struct mcde_display_device *dev,
struct mcde_rectangle *area);
- int (*update)(struct mcde_display_device *dev);
+ int (*update)(struct mcde_display_device *dev, bool tripple_buffer);
int (*prepare_for_update)(struct mcde_display_device *dev,
u16 x, u16 y, u16 w, u16 h);
int (*on_first_update)(struct mcde_display_device *dev);
diff --git a/include/video/mcde_dss.h b/include/video/mcde_dss.h
index 6a149a5dee6..c2603b87235 100644
--- a/include/video/mcde_dss.h
+++ b/include/video/mcde_dss.h
@@ -30,7 +30,7 @@ int mcde_dss_enable_overlay(struct mcde_overlay *ovl);
void mcde_dss_disable_overlay(struct mcde_overlay *ovl);
int mcde_dss_apply_overlay(struct mcde_overlay *ovl,
struct mcde_overlay_info *info);
-int mcde_dss_update_overlay(struct mcde_overlay *ovl);
+int mcde_dss_update_overlay(struct mcde_overlay *ovl, bool tripple_buffer);
void mcde_dss_get_native_resolution(struct mcde_display_device *ddev,
u16 *x_res, u16 *y_res);