summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJayarami Reddy <jayarami.reddy@stericsson.com>2011-09-26 11:19:49 +0530
committerJonas ABERG <jonas.aberg@stericsson.com>2011-09-26 11:38:21 +0200
commitacd9a97a9e1b84afeeb72de9495e50e2708eef8b (patch)
tree472217e80d7a554a35475e28d7d5005368081879
parentb73bd297f5c2709b50ea2347ca5121c140da2156 (diff)
video: mcde: fix pixelwatermarklevel
In order to avoid mcde underflow, the pixelwatermarklevel is set based on mcde hardware version. ST-Ericsson ID: 351086 ST-Ericsson Linux next: Not tested, ER 282779 ST-Ericsson FOSS-OUT ID: Trivial Signed-off-by: Jayarami Reddy <jayarami.reddy@stericsson.com> Change-Id: Ida63433629f84409c4c7c45c63dca4872fc1106a Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/31937 Reviewed-by: Per PERSSON <per.xb.persson@stericsson.com> Reviewed-by: Anders BAUER <anders.bauer@stericsson.com> Reviewed-by: Jimmy RUBIN <jimmy.rubin@stericsson.com> Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
-rw-r--r--drivers/video/mcde/mcde_hw.c13
-rw-r--r--include/video/mcde.h5
2 files changed, 13 insertions, 5 deletions
diff --git a/drivers/video/mcde/mcde_hw.c b/drivers/video/mcde/mcde_hw.c
index 5cdf4be73a6..320b53f51c9 100644
--- a/drivers/video/mcde/mcde_hw.c
+++ b/drivers/video/mcde/mcde_hw.c
@@ -841,6 +841,15 @@ static u8 portfmt2cdwin(enum mcde_port_pix_fmt pix_fmt)
}
}
+static u32 get_input_fifo_size(void)
+{
+ if (hardware_version == MCDE_CHIP_VERSION_1_0_4 ||
+ hardware_version == MCDE_CHIP_VERSION_4_0_4)
+ return MCDE_INPUT_FIFO_SIZE_4_0_4;
+ else
+ return MCDE_INPUT_FIFO_SIZE_3_0_8;
+}
+
static u32 get_output_fifo_size(enum mcde_fifo fifo)
{
u32 ret = 1; /* Avoid div by zero */
@@ -1477,9 +1486,9 @@ static void update_overlay_registers(u8 idx, struct ovly_regs *regs,
if ((fifo == MCDE_FIFO_A || fifo == MCDE_FIFO_B) &&
regs->ppl >= fifo_size * 2)
- pixelfetchwtrmrklevel = MCDE_PIXFETCH_LARGE_WTRMRKLVL;
+ pixelfetchwtrmrklevel = get_input_fifo_size() * 2;
else
- pixelfetchwtrmrklevel = MCDE_PIXFETCH_MEDIUM_WTRMRKLVL;
+ pixelfetchwtrmrklevel = get_input_fifo_size() / 2;
if (port->update_auto_trig && port->type == MCDE_PORTTYPE_DSI) {
switch (port->sync_src) {
diff --git a/include/video/mcde.h b/include/video/mcde.h
index 6f6632405d8..b81d88af5fd 100644
--- a/include/video/mcde.h
+++ b/include/video/mcde.h
@@ -231,9 +231,8 @@ enum mcde_display_rotation {
#define MCDE_FIFO_AB_SIZE 640
#define MCDE_FIFO_C0C1_SIZE 160
-#define MCDE_PIXFETCH_LARGE_WTRMRKLVL 256
-#define MCDE_PIXFETCH_MEDIUM_WTRMRKLVL 64
-#define MCDE_PIXFETCH_SMALL_WTRMRKLVL 16
+#define MCDE_INPUT_FIFO_SIZE_4_0_4 80
+#define MCDE_INPUT_FIFO_SIZE_3_0_8 128
/* Tv-out defines */
#define MCDE_CONFIG_TVOUT_HBORDER 2