OMAPDSS: writeback: add mechanism to do mem to mem updates
authorArchit Taneja <archit@ti.com>
Tue, 30 Oct 2012 10:07:27 +0000 (15:37 +0530)
committerArchit Taneja <archit@ti.com>
Wed, 7 Nov 2012 14:26:20 +0000 (19:56 +0530)
commit18e209ca966239220cd193d05c6841fcf19f3a8e
tree64f684c984de994f0eef67bea9284b250da93d57
parent393097ce842d641fb81b16234b87a46943f0af55
OMAPDSS: writeback: add mechanism to do mem to mem updates

writeback in mem to mem mode works like an overlay manager connected to a
disaply in stallmode. When we set ENABLE in DISPC_WB_ATTRIBUTES writeback, it
starts a mem to mem transfer. On completion, we get a FRAMEDONEWB interrupt and
the ENABLE bit is cleared by HW.

In APPLY, we add dss_wb_start_update, this function is similar to
dss_mgr_start_update, but is responsible for configuring both the manager(and
the overlays connected to it) and the writeback registers. We add an updating
field in the writeback private data which tells APPLY when we are busy and
when we are done with a mem to mem transfer. We register to the framedone isr
when needed and we update the updating field in dss_apply_irq_handler when we
are done with the transfer.

In the writeback output driver, we add a semaphore based way to lock the
writeback resource as we do in DSI command mode. The writeback user is expected
to lock the bus, call omapdss_writeback_update and mention a callback along with
it, and unlock the bus in the callback. omapdss_writeback_update registers to
the FRAMEDONE interrupt to trigger the callback and starts the update by calling
the corresponding APPLY function.

Signed-off-by: Archit Taneja <archit@ti.com>
drivers/video/omap2/dss/apply.c
drivers/video/omap2/dss/dss.h
drivers/video/omap2/dss/writeback.c
include/video/omapdss.h