Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
dma.h File Reference
#include <linux/list.h>
#include <mach/msm_iomap.h>

Go to the source code of this file.

Data Structures

struct  msm_dmov_errdata
 
struct  msm_dmov_cmd
 
struct  dmov_s
 
struct  dmov_sg
 
struct  dmov_box
 

Macros

#define DMOV_SD0(off, ch)   (MSM_DMOV_BASE + 0x0000 + (off) + ((ch) << 2))
 
#define DMOV_SD1(off, ch)   (MSM_DMOV_BASE + 0x0400 + (off) + ((ch) << 2))
 
#define DMOV_SD2(off, ch)   (MSM_DMOV_BASE + 0x0800 + (off) + ((ch) << 2))
 
#define DMOV_SD3(off, ch)   (MSM_DMOV_BASE + 0x0C00 + (off) + ((ch) << 2))
 
#define DMOV_SD_AARM   DMOV_SD3
 
#define DMOV_CMD_PTR(ch)   DMOV_SD_AARM(0x000, ch)
 
#define DMOV_CMD_LIST   (0 << 29) /* does not work */
 
#define DMOV_CMD_PTR_LIST   (1 << 29) /* works */
 
#define DMOV_CMD_INPUT_CFG   (2 << 29) /* untested */
 
#define DMOV_CMD_OUTPUT_CFG   (3 << 29) /* untested */
 
#define DMOV_CMD_ADDR(addr)   ((addr) >> 3)
 
#define DMOV_RSLT(ch)   DMOV_SD_AARM(0x040, ch)
 
#define DMOV_RSLT_VALID   (1 << 31) /* 0 == host has empties result fifo */
 
#define DMOV_RSLT_ERROR   (1 << 3)
 
#define DMOV_RSLT_FLUSH   (1 << 2)
 
#define DMOV_RSLT_DONE   (1 << 1) /* top pointer done */
 
#define DMOV_RSLT_USER   (1 << 0) /* command with FR force result */
 
#define DMOV_FLUSH0(ch)   DMOV_SD_AARM(0x080, ch)
 
#define DMOV_FLUSH1(ch)   DMOV_SD_AARM(0x0C0, ch)
 
#define DMOV_FLUSH2(ch)   DMOV_SD_AARM(0x100, ch)
 
#define DMOV_FLUSH3(ch)   DMOV_SD_AARM(0x140, ch)
 
#define DMOV_FLUSH4(ch)   DMOV_SD_AARM(0x180, ch)
 
#define DMOV_FLUSH5(ch)   DMOV_SD_AARM(0x1C0, ch)
 
#define DMOV_STATUS(ch)   DMOV_SD_AARM(0x200, ch)
 
#define DMOV_STATUS_RSLT_COUNT(n)   (((n) >> 29))
 
#define DMOV_STATUS_CMD_COUNT(n)   (((n) >> 27) & 3)
 
#define DMOV_STATUS_RSLT_VALID   (1 << 1)
 
#define DMOV_STATUS_CMD_PTR_RDY   (1 << 0)
 
#define DMOV_ISR   DMOV_SD_AARM(0x380, 0)
 
#define DMOV_CONFIG(ch)   DMOV_SD_AARM(0x300, ch)
 
#define DMOV_CONFIG_FORCE_TOP_PTR_RSLT   (1 << 2)
 
#define DMOV_CONFIG_FORCE_FLUSH_RSLT   (1 << 1)
 
#define DMOV_CONFIG_IRQ_EN   (1 << 0)
 
#define DMOV_NAND_CHAN   7
 
#define DMOV_NAND_CRCI_CMD   5
 
#define DMOV_NAND_CRCI_DATA   4
 
#define DMOV_SDC1_CHAN   8
 
#define DMOV_SDC1_CRCI   6
 
#define DMOV_SDC2_CHAN   8
 
#define DMOV_SDC2_CRCI   7
 
#define DMOV_TSIF_CHAN   10
 
#define DMOV_TSIF_CRCI   10
 
#define DMOV_USB_CHAN   11
 
#define DMOV_NONE_CRCI   0
 
#define CMD_PTR_ADDR(addr)   ((addr) >> 3)
 
#define CMD_PTR_LP   (1 << 31) /* last pointer */
 
#define CMD_PTR_PT   (3 << 29) /* ? */
 
#define CMD_LC   (1 << 31) /* last command */
 
#define CMD_FR   (1 << 22) /* force result -- does not work? */
 
#define CMD_OCU   (1 << 21) /* other channel unblock */
 
#define CMD_OCB   (1 << 20) /* other channel block */
 
#define CMD_TCB   (1 << 19) /* ? */
 
#define CMD_DAH   (1 << 18) /* destination address hold -- does not work?*/
 
#define CMD_SAH   (1 << 17) /* source address hold -- does not work? */
 
#define CMD_MODE_SINGLE   (0 << 0) /* dmov_s structure used */
 
#define CMD_MODE_SG   (1 << 0) /* untested */
 
#define CMD_MODE_IND_SG   (2 << 0) /* untested */
 
#define CMD_MODE_BOX   (3 << 0) /* untested */
 
#define CMD_DST_SWAP_BYTES   (1 << 14) /* exchange each byte n with byte n+1 */
 
#define CMD_DST_SWAP_SHORTS   (1 << 15) /* exchange each short n with short n+1 */
 
#define CMD_DST_SWAP_WORDS   (1 << 16) /* exchange each word n with word n+1 */
 
#define CMD_SRC_SWAP_BYTES   (1 << 11) /* exchange each byte n with byte n+1 */
 
#define CMD_SRC_SWAP_SHORTS   (1 << 12) /* exchange each short n with short n+1 */
 
#define CMD_SRC_SWAP_WORDS   (1 << 13) /* exchange each word n with word n+1 */
 
#define CMD_DST_CRCI(n)   (((n) & 15) << 7)
 
#define CMD_SRC_CRCI(n)   (((n) & 15) << 3)
 

Functions

void msm_dmov_enqueue_cmd (unsigned id, struct msm_dmov_cmd *cmd)
 
void msm_dmov_stop_cmd (unsigned id, struct msm_dmov_cmd *cmd, int graceful)
 
int msm_dmov_exec_cmd (unsigned id, unsigned int cmdptr)
 

Macro Definition Documentation

#define CMD_DAH   (1 << 18) /* destination address hold -- does not work?*/

Definition at line 158 of file dma.h.

#define CMD_DST_CRCI (   n)    (((n) & 15) << 7)

Definition at line 174 of file dma.h.

#define CMD_DST_SWAP_BYTES   (1 << 14) /* exchange each byte n with byte n+1 */

Definition at line 166 of file dma.h.

#define CMD_DST_SWAP_SHORTS   (1 << 15) /* exchange each short n with short n+1 */

Definition at line 167 of file dma.h.

#define CMD_DST_SWAP_WORDS   (1 << 16) /* exchange each word n with word n+1 */

Definition at line 168 of file dma.h.

#define CMD_FR   (1 << 22) /* force result -- does not work? */

Definition at line 154 of file dma.h.

#define CMD_LC   (1 << 31) /* last command */

Definition at line 153 of file dma.h.

#define CMD_MODE_BOX   (3 << 0) /* untested */

Definition at line 164 of file dma.h.

#define CMD_MODE_IND_SG   (2 << 0) /* untested */

Definition at line 163 of file dma.h.

#define CMD_MODE_SG   (1 << 0) /* untested */

Definition at line 162 of file dma.h.

#define CMD_MODE_SINGLE   (0 << 0) /* dmov_s structure used */

Definition at line 161 of file dma.h.

#define CMD_OCB   (1 << 20) /* other channel block */

Definition at line 156 of file dma.h.

#define CMD_OCU   (1 << 21) /* other channel unblock */

Definition at line 155 of file dma.h.

#define CMD_PTR_ADDR (   addr)    ((addr) >> 3)

Definition at line 121 of file dma.h.

#define CMD_PTR_LP   (1 << 31) /* last pointer */

Definition at line 122 of file dma.h.

#define CMD_PTR_PT   (3 << 29) /* ? */

Definition at line 123 of file dma.h.

#define CMD_SAH   (1 << 17) /* source address hold -- does not work? */

Definition at line 159 of file dma.h.

#define CMD_SRC_CRCI (   n)    (((n) & 15) << 3)

Definition at line 175 of file dma.h.

#define CMD_SRC_SWAP_BYTES   (1 << 11) /* exchange each byte n with byte n+1 */

Definition at line 170 of file dma.h.

#define CMD_SRC_SWAP_SHORTS   (1 << 12) /* exchange each short n with short n+1 */

Definition at line 171 of file dma.h.

#define CMD_SRC_SWAP_WORDS   (1 << 13) /* exchange each word n with word n+1 */

Definition at line 172 of file dma.h.

#define CMD_TCB   (1 << 19) /* ? */

Definition at line 157 of file dma.h.

#define DMOV_CMD_ADDR (   addr)    ((addr) >> 3)

Definition at line 65 of file dma.h.

#define DMOV_CMD_INPUT_CFG   (2 << 29) /* untested */

Definition at line 63 of file dma.h.

#define DMOV_CMD_LIST   (0 << 29) /* does not work */

Definition at line 61 of file dma.h.

#define DMOV_CMD_OUTPUT_CFG   (3 << 29) /* untested */

Definition at line 64 of file dma.h.

#define DMOV_CMD_PTR (   ch)    DMOV_SD_AARM(0x000, ch)

Definition at line 60 of file dma.h.

#define DMOV_CMD_PTR_LIST   (1 << 29) /* works */

Definition at line 62 of file dma.h.

#define DMOV_CONFIG (   ch)    DMOV_SD_AARM(0x300, ch)

Definition at line 89 of file dma.h.

#define DMOV_CONFIG_FORCE_FLUSH_RSLT   (1 << 1)

Definition at line 91 of file dma.h.

#define DMOV_CONFIG_FORCE_TOP_PTR_RSLT   (1 << 2)

Definition at line 90 of file dma.h.

#define DMOV_CONFIG_IRQ_EN   (1 << 0)

Definition at line 92 of file dma.h.

#define DMOV_FLUSH0 (   ch)    DMOV_SD_AARM(0x080, ch)

Definition at line 74 of file dma.h.

#define DMOV_FLUSH1 (   ch)    DMOV_SD_AARM(0x0C0, ch)

Definition at line 75 of file dma.h.

#define DMOV_FLUSH2 (   ch)    DMOV_SD_AARM(0x100, ch)

Definition at line 76 of file dma.h.

#define DMOV_FLUSH3 (   ch)    DMOV_SD_AARM(0x140, ch)

Definition at line 77 of file dma.h.

#define DMOV_FLUSH4 (   ch)    DMOV_SD_AARM(0x180, ch)

Definition at line 78 of file dma.h.

#define DMOV_FLUSH5 (   ch)    DMOV_SD_AARM(0x1C0, ch)

Definition at line 79 of file dma.h.

#define DMOV_ISR   DMOV_SD_AARM(0x380, 0)

Definition at line 87 of file dma.h.

#define DMOV_NAND_CHAN   7

Definition at line 96 of file dma.h.

#define DMOV_NAND_CRCI_CMD   5

Definition at line 97 of file dma.h.

#define DMOV_NAND_CRCI_DATA   4

Definition at line 98 of file dma.h.

#define DMOV_NONE_CRCI   0

Definition at line 112 of file dma.h.

#define DMOV_RSLT (   ch)    DMOV_SD_AARM(0x040, ch)

Definition at line 67 of file dma.h.

#define DMOV_RSLT_DONE   (1 << 1) /* top pointer done */

Definition at line 71 of file dma.h.

#define DMOV_RSLT_ERROR   (1 << 3)

Definition at line 69 of file dma.h.

#define DMOV_RSLT_FLUSH   (1 << 2)

Definition at line 70 of file dma.h.

#define DMOV_RSLT_USER   (1 << 0) /* command with FR force result */

Definition at line 72 of file dma.h.

#define DMOV_RSLT_VALID   (1 << 31) /* 0 == host has empties result fifo */

Definition at line 68 of file dma.h.

#define DMOV_SD0 (   off,
  ch 
)    (MSM_DMOV_BASE + 0x0000 + (off) + ((ch) << 2))

Definition at line 49 of file dma.h.

#define DMOV_SD1 (   off,
  ch 
)    (MSM_DMOV_BASE + 0x0400 + (off) + ((ch) << 2))

Definition at line 50 of file dma.h.

#define DMOV_SD2 (   off,
  ch 
)    (MSM_DMOV_BASE + 0x0800 + (off) + ((ch) << 2))

Definition at line 51 of file dma.h.

#define DMOV_SD3 (   off,
  ch 
)    (MSM_DMOV_BASE + 0x0C00 + (off) + ((ch) << 2))

Definition at line 52 of file dma.h.

#define DMOV_SD_AARM   DMOV_SD3

Definition at line 57 of file dma.h.

#define DMOV_SDC1_CHAN   8

Definition at line 100 of file dma.h.

#define DMOV_SDC1_CRCI   6

Definition at line 101 of file dma.h.

#define DMOV_SDC2_CHAN   8

Definition at line 103 of file dma.h.

#define DMOV_SDC2_CRCI   7

Definition at line 104 of file dma.h.

#define DMOV_STATUS (   ch)    DMOV_SD_AARM(0x200, ch)

Definition at line 81 of file dma.h.

#define DMOV_STATUS_CMD_COUNT (   n)    (((n) >> 27) & 3)

Definition at line 83 of file dma.h.

#define DMOV_STATUS_CMD_PTR_RDY   (1 << 0)

Definition at line 85 of file dma.h.

#define DMOV_STATUS_RSLT_COUNT (   n)    (((n) >> 29))

Definition at line 82 of file dma.h.

#define DMOV_STATUS_RSLT_VALID   (1 << 1)

Definition at line 84 of file dma.h.

#define DMOV_TSIF_CHAN   10

Definition at line 106 of file dma.h.

#define DMOV_TSIF_CRCI   10

Definition at line 107 of file dma.h.

#define DMOV_USB_CHAN   11

Definition at line 109 of file dma.h.

Function Documentation

void msm_dmov_enqueue_cmd ( unsigned  id,
struct msm_dmov_cmd cmd 
)

Definition at line 55 of file dma.c.

int msm_dmov_exec_cmd ( unsigned  id,
unsigned int  cmdptr 
)

Definition at line 114 of file dma.c.

void msm_dmov_stop_cmd ( unsigned  id,
struct msm_dmov_cmd cmd,
int  graceful 
)

Definition at line 50 of file dma.c.