diff options
-rw-r--r-- | drivers/video/mcde/mcde_hw.c | 13 | ||||
-rw-r--r-- | 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 |