~ubuntu-branches/ubuntu/precise/linux-lowlatency/precise

« back to all changes in this revision

Viewing changes to arch/cris/arch-v10/lib/dmacopy.c

  • Committer: Package Import Robot
  • Author(s): Alessio Igor Bogani
  • Date: 2011-10-26 11:13:05 UTC
  • Revision ID: package-import@ubuntu.com-20111026111305-tz023xykf0i6eosh
Tags: upstream-3.2.0
ImportĀ upstreamĀ versionĀ 3.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * memcpy for large blocks, using memory-memory DMA channels 6 and 7 in Etrax
 
3
 */
 
4
 
 
5
#include <asm/svinto.h>
 
6
#include <asm/io.h>
 
7
 
 
8
#define D(x)
 
9
 
 
10
void *dma_memcpy(void *pdst,
 
11
                 const void *psrc,
 
12
                 unsigned int pn)
 
13
{
 
14
        static etrax_dma_descr indma, outdma;
 
15
 
 
16
        D(printk(KERN_DEBUG "dma_memcpy %d bytes... ", pn));
 
17
 
 
18
#if 0
 
19
        *R_GEN_CONFIG = genconfig_shadow =
 
20
                (genconfig_shadow & ~0x3c0000) |
 
21
                IO_STATE(R_GEN_CONFIG, dma6, intdma7) |
 
22
                IO_STATE(R_GEN_CONFIG, dma7, intdma6);
 
23
#endif
 
24
        indma.sw_len = outdma.sw_len = pn;
 
25
        indma.ctrl = d_eol | d_eop;
 
26
        outdma.ctrl = d_eol;
 
27
        indma.buf = psrc;
 
28
        outdma.buf = pdst;
 
29
 
 
30
        *R_DMA_CH6_FIRST = &indma;
 
31
        *R_DMA_CH7_FIRST = &outdma;
 
32
        *R_DMA_CH6_CMD = IO_STATE(R_DMA_CH6_CMD, cmd, start);
 
33
        *R_DMA_CH7_CMD = IO_STATE(R_DMA_CH7_CMD, cmd, start);
 
34
 
 
35
        while (*R_DMA_CH7_CMD == 1)
 
36
                /* wait for completion */;
 
37
 
 
38
        D(printk(KERN_DEBUG "done\n"));
 
39
}
 
40
 
 
41
 
 
42