summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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