aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorDan Johansson <dan.johansson@stericsson.com>2011-04-06 10:18:21 +0200
committerJonas ABERG <jonas.aberg@stericsson.com>2011-05-05 08:15:53 +0200
commit02e940233cc1aa34f43b6f302249a38290ee4116 (patch)
tree8f318c2c8b91f26adb04598c8dfd09a501ba4803 /arch
parent544dac5fc3592f3f07fc700cd78230ba3d30e5d2 (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>
Diffstat (limited to 'arch')
-rwxr-xr-xarch/arm/configs/u8500_defconfig1
-rw-r--r--arch/arm/mach-ux500/Kconfig-arch6
-rw-r--r--arch/arm/mach-ux500/board-mop500-mcde.c6
3 files changed, 13 insertions, 0 deletions
diff --git a/arch/arm/configs/u8500_defconfig b/arch/arm/configs/u8500_defconfig
index 20204613d42..2b1bcd0cb25 100755
--- a/arch/arm/configs/u8500_defconfig
+++ b/arch/arm/configs/u8500_defconfig
@@ -308,6 +308,7 @@ CONFIG_DISPLAY_GENERIC_DSI_PRIMARY_VSYNC=y
# CONFIG_DISPLAY_GENERIC_DSI_SECONDARY is not set
# CONFIG_DISPLAY_AB8500_TERTIARY is not set
# CONFIG_DISPLAY_AV8100_TERTIARY is not set
+# CONFIG_DISPLAY_AV8100_TRIPPLE_BUFFER is not set
CONFIG_U8500_CPUFREQ=y
CONFIG_U8500_CPUIDLE=y
CONFIG_U8500_CPUIDLE_DEEPEST_STATE=4
diff --git a/arch/arm/mach-ux500/Kconfig-arch b/arch/arm/mach-ux500/Kconfig-arch
index a845bc59757..04b90f366e3 100644
--- a/arch/arm/mach-ux500/Kconfig-arch
+++ b/arch/arm/mach-ux500/Kconfig-arch
@@ -149,6 +149,12 @@ config DISPLAY_AV8100_TERTIARY
help
Say yes here if HDMI output support
+config DISPLAY_AV8100_TRIPPLE_BUFFER
+ bool "Enable tripple buffer for HDMI display"
+ depends on DISPLAY_AV8100_TERTIARY
+ help
+ Say yes to enable tripple buffer. You'll get double buffer otherwise
+
endmenu
endif
diff --git a/arch/arm/mach-ux500/board-mop500-mcde.c b/arch/arm/mach-ux500/board-mop500-mcde.c
index 53e88150139..0139fb7034a 100644
--- a/arch/arm/mach-ux500/board-mop500-mcde.c
+++ b/arch/arm/mach-ux500/board-mop500-mcde.c
@@ -462,6 +462,7 @@ static int display_postregistered_callback(struct notifier_block *nb,
virtual_width = width;
virtual_height = height * 2;
+
#ifdef CONFIG_DISPLAY_GENERIC_DSI_PRIMARY_AUTO_SYNC
if (ddev->id == PRIMARY_DISPLAY_ID)
virtual_height = height;
@@ -472,6 +473,11 @@ static int display_postregistered_callback(struct notifier_block *nb,
virtual_height = height;
#endif
+#ifdef CONFIG_DISPLAY_AV8100_TRIPPLE_BUFFER
+ if (ddev->id == TERTIARY_DISPLAY_ID)
+ virtual_height = height * 3;
+#endif
+
if (ddev->id == TERTIARY_DISPLAY_ID) {
#ifdef CONFIG_MCDE_DISPLAY_HDMI_FB_AUTO_CREATE
hdmi_fb_onoff(ddev, 1, 0, 0);