From acd9a97a9e1b84afeeb72de9495e50e2708eef8b Mon Sep 17 00:00:00 2001 From: Jayarami Reddy Date: Mon, 26 Sep 2011 11:19:49 +0530 Subject: 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 Change-Id: Ida63433629f84409c4c7c45c63dca4872fc1106a Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/31937 Reviewed-by: Per PERSSON Reviewed-by: Anders BAUER Reviewed-by: Jimmy RUBIN Reviewed-by: Jonas ABERG --- drivers/video/mcde/mcde_hw.c | 13 +++++++++++-- include/video/mcde.h | 5 ++--- 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 -- cgit v1.2.3