mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-02 16:44:10 +08:00
OMAPDSS: VRAM: Remove clearing with sDMA
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>
This commit is contained in:
parent
ca44415872
commit
5ae1f3723f
@ -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__)
|
||||
@ -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;
|
||||
@ -337,8 +283,6 @@ found:
|
||||
|
||||
*paddr = start;
|
||||
|
||||
_omap_vram_clear(start, pages);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user