Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
pl330.c File Reference
#include <linux/kernel.h>
#include <linux/io.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/string.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/dma-mapping.h>
#include <linux/dmaengine.h>
#include <linux/amba/bus.h>
#include <linux/amba/pl330.h>
#include <linux/scatterlist.h>
#include <linux/of.h>
#include "dmaengine.h"

Go to the source code of this file.

Data Structures

struct  pl330_config
 
struct  pl330_info
 
struct  pl330_reqcfg
 
struct  pl330_xfer
 
struct  pl330_req
 
struct  pl330_chanstatus
 
struct  _xfer_spec
 
struct  _pl330_req
 
struct  _pl330_tbd
 
struct  pl330_thread
 
struct  pl330_dmac
 
struct  dma_pl330_chan
 
struct  dma_pl330_dmac
 
struct  dma_pl330_desc
 
struct  _arg_LPEND
 
struct  _arg_GO
 

Macros

#define PL330_MAX_CHAN   8
 
#define PL330_MAX_IRQS   32
 
#define PL330_MAX_PERI   32
 
#define DS   0x0
 
#define DS_ST_STOP   0x0
 
#define DS_ST_EXEC   0x1
 
#define DS_ST_CMISS   0x2
 
#define DS_ST_UPDTPC   0x3
 
#define DS_ST_WFE   0x4
 
#define DS_ST_ATBRR   0x5
 
#define DS_ST_QBUSY   0x6
 
#define DS_ST_WFP   0x7
 
#define DS_ST_KILL   0x8
 
#define DS_ST_CMPLT   0x9
 
#define DS_ST_FLTCMP   0xe
 
#define DS_ST_FAULT   0xf
 
#define DPC   0x4
 
#define INTEN   0x20
 
#define ES   0x24
 
#define INTSTATUS   0x28
 
#define INTCLR   0x2c
 
#define FSM   0x30
 
#define FSC   0x34
 
#define FTM   0x38
 
#define _FTC   0x40
 
#define FTC(n)   (_FTC + (n)*0x4)
 
#define _CS   0x100
 
#define CS(n)   (_CS + (n)*0x8)
 
#define CS_CNS   (1 << 21)
 
#define _CPC   0x104
 
#define CPC(n)   (_CPC + (n)*0x8)
 
#define _SA   0x400
 
#define SA(n)   (_SA + (n)*0x20)
 
#define _DA   0x404
 
#define DA(n)   (_DA + (n)*0x20)
 
#define _CC   0x408
 
#define CC(n)   (_CC + (n)*0x20)
 
#define CC_SRCINC   (1 << 0)
 
#define CC_DSTINC   (1 << 14)
 
#define CC_SRCPRI   (1 << 8)
 
#define CC_DSTPRI   (1 << 22)
 
#define CC_SRCNS   (1 << 9)
 
#define CC_DSTNS   (1 << 23)
 
#define CC_SRCIA   (1 << 10)
 
#define CC_DSTIA   (1 << 24)
 
#define CC_SRCBRSTLEN_SHFT   4
 
#define CC_DSTBRSTLEN_SHFT   18
 
#define CC_SRCBRSTSIZE_SHFT   1
 
#define CC_DSTBRSTSIZE_SHFT   15
 
#define CC_SRCCCTRL_SHFT   11
 
#define CC_SRCCCTRL_MASK   0x7
 
#define CC_DSTCCTRL_SHFT   25
 
#define CC_DRCCCTRL_MASK   0x7
 
#define CC_SWAP_SHFT   28
 
#define _LC0   0x40c
 
#define LC0(n)   (_LC0 + (n)*0x20)
 
#define _LC1   0x410
 
#define LC1(n)   (_LC1 + (n)*0x20)
 
#define DBGSTATUS   0xd00
 
#define DBG_BUSY   (1 << 0)
 
#define DBGCMD   0xd04
 
#define DBGINST0   0xd08
 
#define DBGINST1   0xd0c
 
#define CR0   0xe00
 
#define CR1   0xe04
 
#define CR2   0xe08
 
#define CR3   0xe0c
 
#define CR4   0xe10
 
#define CRD   0xe14
 
#define PERIPH_ID   0xfe0
 
#define PERIPH_REV_SHIFT   20
 
#define PERIPH_REV_MASK   0xf
 
#define PERIPH_REV_R0P0   0
 
#define PERIPH_REV_R1P0   1
 
#define PERIPH_REV_R1P1   2
 
#define PCELL_ID   0xff0
 
#define CR0_PERIPH_REQ_SET   (1 << 0)
 
#define CR0_BOOT_EN_SET   (1 << 1)
 
#define CR0_BOOT_MAN_NS   (1 << 2)
 
#define CR0_NUM_CHANS_SHIFT   4
 
#define CR0_NUM_CHANS_MASK   0x7
 
#define CR0_NUM_PERIPH_SHIFT   12
 
#define CR0_NUM_PERIPH_MASK   0x1f
 
#define CR0_NUM_EVENTS_SHIFT   17
 
#define CR0_NUM_EVENTS_MASK   0x1f
 
#define CR1_ICACHE_LEN_SHIFT   0
 
#define CR1_ICACHE_LEN_MASK   0x7
 
#define CR1_NUM_ICACHELINES_SHIFT   4
 
#define CR1_NUM_ICACHELINES_MASK   0xf
 
#define CRD_DATA_WIDTH_SHIFT   0
 
#define CRD_DATA_WIDTH_MASK   0x7
 
#define CRD_WR_CAP_SHIFT   4
 
#define CRD_WR_CAP_MASK   0x7
 
#define CRD_WR_Q_DEP_SHIFT   8
 
#define CRD_WR_Q_DEP_MASK   0xf
 
#define CRD_RD_CAP_SHIFT   12
 
#define CRD_RD_CAP_MASK   0x7
 
#define CRD_RD_Q_DEP_SHIFT   16
 
#define CRD_RD_Q_DEP_MASK   0xf
 
#define CRD_DATA_BUFF_SHIFT   20
 
#define CRD_DATA_BUFF_MASK   0x3ff
 
#define PART   0x330
 
#define DESIGNER   0x41
 
#define REVISION   0x0
 
#define INTEG_CFG   0x0
 
#define PERIPH_ID_VAL   ((PART << 0) | (DESIGNER << 12))
 
#define PCELL_ID_VAL   0xb105f00d
 
#define PL330_STATE_STOPPED   (1 << 0)
 
#define PL330_STATE_EXECUTING   (1 << 1)
 
#define PL330_STATE_WFE   (1 << 2)
 
#define PL330_STATE_FAULTING   (1 << 3)
 
#define PL330_STATE_COMPLETING   (1 << 4)
 
#define PL330_STATE_WFP   (1 << 5)
 
#define PL330_STATE_KILLING   (1 << 6)
 
#define PL330_STATE_FAULT_COMPLETING   (1 << 7)
 
#define PL330_STATE_CACHEMISS   (1 << 8)
 
#define PL330_STATE_UPDTPC   (1 << 9)
 
#define PL330_STATE_ATBARRIER   (1 << 10)
 
#define PL330_STATE_QUEUEBUSY   (1 << 11)
 
#define PL330_STATE_INVALID   (1 << 15)
 
#define PL330_STABLE_STATES
 
#define CMD_DMAADDH   0x54
 
#define CMD_DMAEND   0x00
 
#define CMD_DMAFLUSHP   0x35
 
#define CMD_DMAGO   0xa0
 
#define CMD_DMALD   0x04
 
#define CMD_DMALDP   0x25
 
#define CMD_DMALP   0x20
 
#define CMD_DMALPEND   0x28
 
#define CMD_DMAKILL   0x01
 
#define CMD_DMAMOV   0xbc
 
#define CMD_DMANOP   0x18
 
#define CMD_DMARMB   0x12
 
#define CMD_DMASEV   0x34
 
#define CMD_DMAST   0x08
 
#define CMD_DMASTP   0x29
 
#define CMD_DMASTZ   0x0c
 
#define CMD_DMAWFE   0x36
 
#define CMD_DMAWFP   0x30
 
#define CMD_DMAWMB   0x13
 
#define SZ_DMAADDH   3
 
#define SZ_DMAEND   1
 
#define SZ_DMAFLUSHP   2
 
#define SZ_DMALD   1
 
#define SZ_DMALDP   2
 
#define SZ_DMALP   2
 
#define SZ_DMALPEND   2
 
#define SZ_DMAKILL   1
 
#define SZ_DMAMOV   6
 
#define SZ_DMANOP   1
 
#define SZ_DMARMB   1
 
#define SZ_DMASEV   2
 
#define SZ_DMAST   1
 
#define SZ_DMASTP   2
 
#define SZ_DMASTZ   1
 
#define SZ_DMAWFE   2
 
#define SZ_DMAWFP   2
 
#define SZ_DMAWMB   1
 
#define SZ_DMAGO   6
 
#define BRST_LEN(ccr)   ((((ccr) >> CC_SRCBRSTLEN_SHFT) & 0xf) + 1)
 
#define BRST_SIZE(ccr)   (1 << (((ccr) >> CC_SRCBRSTSIZE_SHFT) & 0x7))
 
#define BYTE_TO_BURST(b, ccr)   ((b) / BRST_SIZE(ccr) / BRST_LEN(ccr))
 
#define BURST_TO_BYTE(c, ccr)   ((c) * BRST_SIZE(ccr) * BRST_LEN(ccr))
 
#define MCODE_BUFF_PER_REQ   256
 
#define IS_FREE(req)   (*((u8 *)((req)->mc_cpu)) == CMD_DMAEND)
 
#define UNTIL(t, s)   while (!(_state(t) & (s))) cpu_relax();
 
#define PL330_DBGCMD_DUMP(off, x...)   do {} while (0)
 
#define PL330_DBGMC_START(addr)   do {} while (0)
 
#define NR_DEFAULT_DESC   16
 
#define DMAC_MODE_NS   (1 << 0)
 
#define msecs_to_loops(t)   (loops_per_jiffy / 1000 * HZ * t)
 

Enumerations

enum  pl330_srccachectrl {
  SCCTRL0, SCCTRL1, SCCTRL2, SCCTRL3,
  SINVALID1, SINVALID2, SCCTRL6, SCCTRL7
}
 
enum  pl330_dstcachectrl {
  DCCTRL0, DCCTRL1, DCCTRL2, DCCTRL3,
  DINVALID1, DINVALID2, DCCTRL6, DCCTRL7
}
 
enum  pl330_byteswap {
  SWAP_NO, SWAP_2, SWAP_4, SWAP_8,
  SWAP_16
}
 
enum  pl330_reqtype { MEMTOMEM, MEMTODEV, DEVTOMEM, DEVTODEV }
 
enum  pl330_op_err { PL330_ERR_NONE, PL330_ERR_ABORT, PL330_ERR_FAIL }
 
enum  pl330_chan_op { PL330_OP_START, PL330_OP_ABORT, PL330_OP_FLUSH }
 
enum  dmamov_dst { SAR = 0, CCR, DAR }
 
enum  pl330_dst { SRC = 0, DST }
 
enum  pl330_cond { SINGLE, BURST, ALWAYS }
 
enum  pl330_dmac_state { UNINIT, INIT, DYING }
 
enum  desc_status { FREE, PREP, BUSY, DONE }
 

Functions

bool pl330_filter (struct dma_chan *chan, void *param)
 
 EXPORT_SYMBOL (pl330_filter)
 
 MODULE_DEVICE_TABLE (amba, pl330_ids)
 
 module_amba_driver (pl330_driver)
 
 MODULE_AUTHOR ("Jaswinder Singh <[email protected]>")
 
 MODULE_DESCRIPTION ("API Driver for PL330 DMAC")
 
 MODULE_LICENSE ("GPL")
 

Macro Definition Documentation

#define _CC   0x408

Definition at line 111 of file pl330.c.

#define _CPC   0x104

Definition at line 102 of file pl330.c.

#define _CS   0x100

Definition at line 98 of file pl330.c.

#define _DA   0x404

Definition at line 108 of file pl330.c.

#define _FTC   0x40

Definition at line 95 of file pl330.c.

#define _LC0   0x40c

Definition at line 132 of file pl330.c.

#define _LC1   0x410

Definition at line 135 of file pl330.c.

#define _SA   0x400

Definition at line 105 of file pl330.c.

#define BRST_LEN (   ccr)    ((((ccr) >> CC_SRCBRSTLEN_SHFT) & 0xf) + 1)

Definition at line 253 of file pl330.c.

#define BRST_SIZE (   ccr)    (1 << (((ccr) >> CC_SRCBRSTSIZE_SHFT) & 0x7))

Definition at line 254 of file pl330.c.

#define BURST_TO_BYTE (   c,
  ccr 
)    ((c) * BRST_SIZE(ccr) * BRST_LEN(ccr))

Definition at line 257 of file pl330.c.

#define BYTE_TO_BURST (   b,
  ccr 
)    ((b) / BRST_SIZE(ccr) / BRST_LEN(ccr))

Definition at line 256 of file pl330.c.

#define CC (   n)    (_CC + (n)*0x20)

Definition at line 112 of file pl330.c.

#define CC_DRCCCTRL_MASK   0x7

Definition at line 129 of file pl330.c.

#define CC_DSTBRSTLEN_SHFT   18

Definition at line 123 of file pl330.c.

#define CC_DSTBRSTSIZE_SHFT   15

Definition at line 125 of file pl330.c.

#define CC_DSTCCTRL_SHFT   25

Definition at line 128 of file pl330.c.

#define CC_DSTIA   (1 << 24)

Definition at line 121 of file pl330.c.

#define CC_DSTINC   (1 << 14)

Definition at line 115 of file pl330.c.

#define CC_DSTNS   (1 << 23)

Definition at line 119 of file pl330.c.

#define CC_DSTPRI   (1 << 22)

Definition at line 117 of file pl330.c.

#define CC_SRCBRSTLEN_SHFT   4

Definition at line 122 of file pl330.c.

#define CC_SRCBRSTSIZE_SHFT   1

Definition at line 124 of file pl330.c.

#define CC_SRCCCTRL_MASK   0x7

Definition at line 127 of file pl330.c.

#define CC_SRCCCTRL_SHFT   11

Definition at line 126 of file pl330.c.

#define CC_SRCIA   (1 << 10)

Definition at line 120 of file pl330.c.

#define CC_SRCINC   (1 << 0)

Definition at line 114 of file pl330.c.

#define CC_SRCNS   (1 << 9)

Definition at line 118 of file pl330.c.

#define CC_SRCPRI   (1 << 8)

Definition at line 116 of file pl330.c.

#define CC_SWAP_SHFT   28

Definition at line 130 of file pl330.c.

#define CMD_DMAADDH   0x54

Definition at line 213 of file pl330.c.

#define CMD_DMAEND   0x00

Definition at line 214 of file pl330.c.

#define CMD_DMAFLUSHP   0x35

Definition at line 215 of file pl330.c.

#define CMD_DMAGO   0xa0

Definition at line 216 of file pl330.c.

#define CMD_DMAKILL   0x01

Definition at line 221 of file pl330.c.

#define CMD_DMALD   0x04

Definition at line 217 of file pl330.c.

#define CMD_DMALDP   0x25

Definition at line 218 of file pl330.c.

#define CMD_DMALP   0x20

Definition at line 219 of file pl330.c.

#define CMD_DMALPEND   0x28

Definition at line 220 of file pl330.c.

#define CMD_DMAMOV   0xbc

Definition at line 222 of file pl330.c.

#define CMD_DMANOP   0x18

Definition at line 223 of file pl330.c.

#define CMD_DMARMB   0x12

Definition at line 224 of file pl330.c.

#define CMD_DMASEV   0x34

Definition at line 225 of file pl330.c.

#define CMD_DMAST   0x08

Definition at line 226 of file pl330.c.

#define CMD_DMASTP   0x29

Definition at line 227 of file pl330.c.

#define CMD_DMASTZ   0x0c

Definition at line 228 of file pl330.c.

#define CMD_DMAWFE   0x36

Definition at line 229 of file pl330.c.

#define CMD_DMAWFP   0x30

Definition at line 230 of file pl330.c.

#define CMD_DMAWMB   0x13

Definition at line 231 of file pl330.c.

#define CPC (   n)    (_CPC + (n)*0x8)

Definition at line 103 of file pl330.c.

#define CR0   0xe00

Definition at line 145 of file pl330.c.

#define CR0_BOOT_EN_SET   (1 << 1)

Definition at line 161 of file pl330.c.

#define CR0_BOOT_MAN_NS   (1 << 2)

Definition at line 162 of file pl330.c.

#define CR0_NUM_CHANS_MASK   0x7

Definition at line 164 of file pl330.c.

#define CR0_NUM_CHANS_SHIFT   4

Definition at line 163 of file pl330.c.

#define CR0_NUM_EVENTS_MASK   0x1f

Definition at line 168 of file pl330.c.

#define CR0_NUM_EVENTS_SHIFT   17

Definition at line 167 of file pl330.c.

#define CR0_NUM_PERIPH_MASK   0x1f

Definition at line 166 of file pl330.c.

#define CR0_NUM_PERIPH_SHIFT   12

Definition at line 165 of file pl330.c.

#define CR0_PERIPH_REQ_SET   (1 << 0)

Definition at line 160 of file pl330.c.

#define CR1   0xe04

Definition at line 146 of file pl330.c.

#define CR1_ICACHE_LEN_MASK   0x7

Definition at line 171 of file pl330.c.

#define CR1_ICACHE_LEN_SHIFT   0

Definition at line 170 of file pl330.c.

#define CR1_NUM_ICACHELINES_MASK   0xf

Definition at line 173 of file pl330.c.

#define CR1_NUM_ICACHELINES_SHIFT   4

Definition at line 172 of file pl330.c.

#define CR2   0xe08

Definition at line 147 of file pl330.c.

#define CR3   0xe0c

Definition at line 148 of file pl330.c.

#define CR4   0xe10

Definition at line 149 of file pl330.c.

#define CRD   0xe14

Definition at line 150 of file pl330.c.

#define CRD_DATA_BUFF_MASK   0x3ff

Definition at line 186 of file pl330.c.

#define CRD_DATA_BUFF_SHIFT   20

Definition at line 185 of file pl330.c.

#define CRD_DATA_WIDTH_MASK   0x7

Definition at line 176 of file pl330.c.

#define CRD_DATA_WIDTH_SHIFT   0

Definition at line 175 of file pl330.c.

#define CRD_RD_CAP_MASK   0x7

Definition at line 182 of file pl330.c.

#define CRD_RD_CAP_SHIFT   12

Definition at line 181 of file pl330.c.

#define CRD_RD_Q_DEP_MASK   0xf

Definition at line 184 of file pl330.c.

#define CRD_RD_Q_DEP_SHIFT   16

Definition at line 183 of file pl330.c.

#define CRD_WR_CAP_MASK   0x7

Definition at line 178 of file pl330.c.

#define CRD_WR_CAP_SHIFT   4

Definition at line 177 of file pl330.c.

#define CRD_WR_Q_DEP_MASK   0xf

Definition at line 180 of file pl330.c.

#define CRD_WR_Q_DEP_SHIFT   8

Definition at line 179 of file pl330.c.

#define CS (   n)    (_CS + (n)*0x8)

Definition at line 99 of file pl330.c.

#define CS_CNS   (1 << 21)

Definition at line 100 of file pl330.c.

#define DA (   n)    (_DA + (n)*0x20)

Definition at line 109 of file pl330.c.

#define DBG_BUSY   (1 << 0)

Definition at line 139 of file pl330.c.

#define DBGCMD   0xd04

Definition at line 141 of file pl330.c.

#define DBGINST0   0xd08

Definition at line 142 of file pl330.c.

#define DBGINST1   0xd0c

Definition at line 143 of file pl330.c.

#define DBGSTATUS   0xd00

Definition at line 138 of file pl330.c.

#define DESIGNER   0x41

Definition at line 189 of file pl330.c.

#define DMAC_MODE_NS   (1 << 0)

Definition at line 294 of file pl330.c.

#define DPC   0x4

Definition at line 86 of file pl330.c.

#define DS   0x0

Definition at line 72 of file pl330.c.

#define DS_ST_ATBRR   0x5

Definition at line 78 of file pl330.c.

#define DS_ST_CMISS   0x2

Definition at line 75 of file pl330.c.

#define DS_ST_CMPLT   0x9

Definition at line 82 of file pl330.c.

#define DS_ST_EXEC   0x1

Definition at line 74 of file pl330.c.

#define DS_ST_FAULT   0xf

Definition at line 84 of file pl330.c.

#define DS_ST_FLTCMP   0xe

Definition at line 83 of file pl330.c.

#define DS_ST_KILL   0x8

Definition at line 81 of file pl330.c.

#define DS_ST_QBUSY   0x6

Definition at line 79 of file pl330.c.

#define DS_ST_STOP   0x0

Definition at line 73 of file pl330.c.

#define DS_ST_UPDTPC   0x3

Definition at line 76 of file pl330.c.

#define DS_ST_WFE   0x4

Definition at line 77 of file pl330.c.

#define DS_ST_WFP   0x7

Definition at line 80 of file pl330.c.

#define ES   0x24

Definition at line 88 of file pl330.c.

#define FSC   0x34

Definition at line 92 of file pl330.c.

#define FSM   0x30

Definition at line 91 of file pl330.c.

#define FTC (   n)    (_FTC + (n)*0x4)

Definition at line 96 of file pl330.c.

#define FTM   0x38

Definition at line 93 of file pl330.c.

#define INTCLR   0x2c

Definition at line 90 of file pl330.c.

#define INTEG_CFG   0x0

Definition at line 191 of file pl330.c.

#define INTEN   0x20

Definition at line 87 of file pl330.c.

#define INTSTATUS   0x28

Definition at line 89 of file pl330.c.

#define IS_FREE (   req)    (*((u8 *)((req)->mc_cpu)) == CMD_DMAEND)

Definition at line 268 of file pl330.c.

#define LC0 (   n)    (_LC0 + (n)*0x20)

Definition at line 133 of file pl330.c.

#define LC1 (   n)    (_LC1 + (n)*0x20)

Definition at line 136 of file pl330.c.

#define MCODE_BUFF_PER_REQ   256

Definition at line 265 of file pl330.c.

#define msecs_to_loops (   t)    (loops_per_jiffy / 1000 * HZ * t)

Definition at line 1009 of file pl330.c.

#define NR_DEFAULT_DESC   16

Definition at line 288 of file pl330.c.

#define PART   0x330

Definition at line 188 of file pl330.c.

#define PCELL_ID   0xff0

Definition at line 158 of file pl330.c.

#define PCELL_ID_VAL   0xb105f00d

Definition at line 194 of file pl330.c.

#define PERIPH_ID   0xfe0

Definition at line 152 of file pl330.c.

#define PERIPH_ID_VAL   ((PART << 0) | (DESIGNER << 12))

Definition at line 192 of file pl330.c.

#define PERIPH_REV_MASK   0xf

Definition at line 154 of file pl330.c.

#define PERIPH_REV_R0P0   0

Definition at line 155 of file pl330.c.

#define PERIPH_REV_R1P0   1

Definition at line 156 of file pl330.c.

#define PERIPH_REV_R1P1   2

Definition at line 157 of file pl330.c.

#define PERIPH_REV_SHIFT   20

Definition at line 153 of file pl330.c.

#define PL330_DBGCMD_DUMP (   off,
  x... 
)    do {} while (0)

Definition at line 282 of file pl330.c.

#define PL330_DBGMC_START (   addr)    do {} while (0)

Definition at line 283 of file pl330.c.

#define PL330_MAX_CHAN   8

Definition at line 30 of file pl330.c.

#define PL330_MAX_IRQS   32

Definition at line 31 of file pl330.c.

#define PL330_MAX_PERI   32

Definition at line 32 of file pl330.c.

#define PL330_STABLE_STATES
#define PL330_STATE_ATBARRIER   (1 << 10)

Definition at line 206 of file pl330.c.

#define PL330_STATE_CACHEMISS   (1 << 8)

Definition at line 204 of file pl330.c.

#define PL330_STATE_COMPLETING   (1 << 4)

Definition at line 200 of file pl330.c.

#define PL330_STATE_EXECUTING   (1 << 1)

Definition at line 197 of file pl330.c.

#define PL330_STATE_FAULT_COMPLETING   (1 << 7)

Definition at line 203 of file pl330.c.

#define PL330_STATE_FAULTING   (1 << 3)

Definition at line 199 of file pl330.c.

#define PL330_STATE_INVALID   (1 << 15)

Definition at line 208 of file pl330.c.

#define PL330_STATE_KILLING   (1 << 6)

Definition at line 202 of file pl330.c.

#define PL330_STATE_QUEUEBUSY   (1 << 11)

Definition at line 207 of file pl330.c.

#define PL330_STATE_STOPPED   (1 << 0)

Definition at line 196 of file pl330.c.

#define PL330_STATE_UPDTPC   (1 << 9)

Definition at line 205 of file pl330.c.

#define PL330_STATE_WFE   (1 << 2)

Definition at line 198 of file pl330.c.

#define PL330_STATE_WFP   (1 << 5)

Definition at line 201 of file pl330.c.

#define REVISION   0x0

Definition at line 190 of file pl330.c.

#define SA (   n)    (_SA + (n)*0x20)

Definition at line 106 of file pl330.c.

#define SZ_DMAADDH   3

Definition at line 233 of file pl330.c.

#define SZ_DMAEND   1

Definition at line 234 of file pl330.c.

#define SZ_DMAFLUSHP   2

Definition at line 235 of file pl330.c.

#define SZ_DMAGO   6

Definition at line 251 of file pl330.c.

#define SZ_DMAKILL   1

Definition at line 240 of file pl330.c.

#define SZ_DMALD   1

Definition at line 236 of file pl330.c.

#define SZ_DMALDP   2

Definition at line 237 of file pl330.c.

#define SZ_DMALP   2

Definition at line 238 of file pl330.c.

#define SZ_DMALPEND   2

Definition at line 239 of file pl330.c.

#define SZ_DMAMOV   6

Definition at line 241 of file pl330.c.

#define SZ_DMANOP   1

Definition at line 242 of file pl330.c.

#define SZ_DMARMB   1

Definition at line 243 of file pl330.c.

#define SZ_DMASEV   2

Definition at line 244 of file pl330.c.

#define SZ_DMAST   1

Definition at line 245 of file pl330.c.

#define SZ_DMASTP   2

Definition at line 246 of file pl330.c.

#define SZ_DMASTZ   1

Definition at line 247 of file pl330.c.

#define SZ_DMAWFE   2

Definition at line 248 of file pl330.c.

#define SZ_DMAWFP   2

Definition at line 249 of file pl330.c.

#define SZ_DMAWMB   1

Definition at line 250 of file pl330.c.

#define UNTIL (   t,
  s 
)    while (!(_state(t) & (s))) cpu_relax();

Definition at line 271 of file pl330.c.

Enumeration Type Documentation

Enumerator:
FREE 
PREP 
BUSY 
DONE 

Definition at line 520 of file pl330.c.

enum dmamov_dst
Enumerator:
SAR 
CCR 
DAR 

Definition at line 442 of file pl330.c.

Enumerator:
SWAP_NO 
SWAP_2 
SWAP_4 
SWAP_8 
SWAP_16 

Definition at line 56 of file pl330.c.

Enumerator:
PL330_OP_START 
PL330_OP_ABORT 
PL330_OP_FLUSH 

Definition at line 427 of file pl330.c.

enum pl330_cond
Enumerator:
SINGLE 
BURST 
ALWAYS 

Definition at line 453 of file pl330.c.

Enumerator:
UNINIT 
INIT 
DYING 

Definition at line 490 of file pl330.c.

enum pl330_dst
Enumerator:
SRC 
DST 

Definition at line 448 of file pl330.c.

Enumerator:
DCCTRL0 
DCCTRL1 
DCCTRL2 
DCCTRL3 
DINVALID1 
DINVALID2 
DCCTRL6 
DCCTRL7 

Definition at line 45 of file pl330.c.

Enumerator:
PL330_ERR_NONE 
PL330_ERR_ABORT 
PL330_ERR_FAIL 

Definition at line 372 of file pl330.c.

Enumerator:
MEMTOMEM 
MEMTODEV 
DEVTOMEM 
DEVTODEV 

Definition at line 64 of file pl330.c.

Enumerator:
SCCTRL0 
SCCTRL1 
SCCTRL2 
SCCTRL3 
SINVALID1 
SINVALID2 
SCCTRL6 
SCCTRL7 

Definition at line 34 of file pl330.c.

Function Documentation

EXPORT_SYMBOL ( pl330_filter  )
module_amba_driver ( pl330_driver  )
MODULE_AUTHOR ( "Jaswinder Singh <[email protected]>"  )
MODULE_DESCRIPTION ( "API Driver for PL330 DMAC )
MODULE_DEVICE_TABLE ( amba  ,
pl330_ids   
)
MODULE_LICENSE ( "GPL"  )
bool pl330_filter ( struct dma_chan chan,
void param 
)

Definition at line 2355 of file pl330.c.