Skip to content

Commit

Permalink
OMAPDSS: VRAM: Remove clearing with sDMA
Browse files Browse the repository at this point in the history
Currently vram.c clears the allocated memory automatically using OMAP
system DMA. In an effort to reduce OMAP dependencies, we'll do the
memory clear with CPU from now on.

The previous patch implemented memory clear in the omapfb driver, and
this patch removes the now obsolete clear functionality from vram.c.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Russell King - ARM Linux <linux@arm.linux.org.uk>
  • Loading branch information
Tomi Valkeinen committed Sep 7, 2012
1 parent ca44415 commit 5ae1f37
Showing 1 changed file with 0 additions and 56 deletions.
56 changes: 0 additions & 56 deletions drivers/video/omap2/vram.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
#include <asm/setup.h>

#include <plat/vram.h>
#include <plat/dma.h>

#ifdef DEBUG
#define DBG(format, ...) pr_debug("VRAM: " format, ## __VA_ARGS__)
Expand Down Expand Up @@ -250,59 +249,6 @@ int omap_vram_reserve(unsigned long paddr, size_t size)
}
EXPORT_SYMBOL(omap_vram_reserve);

static void _omap_vram_dma_cb(int lch, u16 ch_status, void *data)
{
struct completion *compl = data;
complete(compl);
}

static int _omap_vram_clear(u32 paddr, unsigned pages)
{
struct completion compl;
unsigned elem_count;
unsigned frame_count;
int r;
int lch;

init_completion(&compl);

r = omap_request_dma(OMAP_DMA_NO_DEVICE, "VRAM DMA",
_omap_vram_dma_cb,
&compl, &lch);
if (r) {
pr_err("VRAM: request_dma failed for memory clear\n");
return -EBUSY;
}

elem_count = pages * PAGE_SIZE / 4;
frame_count = 1;

omap_set_dma_transfer_params(lch, OMAP_DMA_DATA_TYPE_S32,
elem_count, frame_count,
OMAP_DMA_SYNC_ELEMENT,
0, 0);

omap_set_dma_dest_params(lch, 0, OMAP_DMA_AMODE_POST_INC,
paddr, 0, 0);

omap_set_dma_color_mode(lch, OMAP_DMA_CONSTANT_FILL, 0x000000);

omap_start_dma(lch);

if (wait_for_completion_timeout(&compl, msecs_to_jiffies(1000)) == 0) {
omap_stop_dma(lch);
pr_err("VRAM: dma timeout while clearing memory\n");
r = -EIO;
goto err;
}

r = 0;
err:
omap_free_dma(lch);

return r;
}

static int _omap_vram_alloc(unsigned pages, unsigned long *paddr)
{
struct vram_region *rm;
Expand Down Expand Up @@ -337,8 +283,6 @@ static int _omap_vram_alloc(unsigned pages, unsigned long *paddr)

*paddr = start;

_omap_vram_clear(start, pages);

return 0;
}

Expand Down

0 comments on commit 5ae1f37

Please sign in to comment.