OMAPDSS: DISPC: Preload more data in pipeline DMAs for OMAP4+ SoCs
authorArchit Taneja <archit@ti.com>
Tue, 17 Dec 2013 11:10:21 +0000 (16:40 +0530)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Mon, 13 Jan 2014 10:19:56 +0000 (12:19 +0200)
commit8bc655521bb18dd8a306ef58ed97e6862d74cd67
tree5bfa5d1136ae9251ab616d3ca2e4f4bb2311c94a
parentb52a6e7fb61682db1ae309c5fa51b5c04168838d
OMAPDSS: DISPC: Preload more data in pipeline DMAs for OMAP4+ SoCs

DISPC pipeline DMAs preload some bytes of pixel data in the vertical blanking
region before the start of each frame. The preload ensures the pipeline doesn't
underflow when the active region of the display starts.

DISPC_GFX/VIDp_PRELOAD registers allow us to program how many bytes of data
should be preloaded for each pipeline. Calculating a precise preload value
would be a complex function of the pixel clock of the connected display, the
vertical blanking duration and the interconnect traffic at that instance. If
the register is left untouched, a default value is preloaded.

We observe underflows for OMAP4+ SoCs for certain bandwidth intensive use cases
with many other initiators active, and in situations where memory access isn't
very efficient(like accessing Tiler mapped buffers and EMIF configured in
non-interleaved more). The cause of the underflow is because the default preload
value isn't sufficient for the DMA to reach a steady state. We configure the
PRELOAD register such that the pipelines preload data up to the high threshold
of the FIFO.

Preloading lot of data for older SoCs can have a negative impact. Due to slower
interconnects, it's possible that the DISPC DMA cannot preload up to the high
threshold within the vertical blanking region of the panel. We leave the PRELOAD
registers to their reset values since we haven't faced underflows with these
SoCs because of low value of PRELOAD.

Signed-off-by: Archit Taneja <archit@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/video/omap2/dss/dispc.c
This page took 0.025302 seconds and 5 git commands to generate.