Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Enumerations | Functions
nouveau_dma.h File Reference
#include "nouveau_bo.h"
#include "nouveau_chan.h"

Go to the source code of this file.

Macros

#define NOUVEAU_DMA_SKIPS   (128 / 4)
 
#define NV_MEMORY_TO_MEMORY_FORMAT   0x00000039
 
#define NV_MEMORY_TO_MEMORY_FORMAT_NAME   0x00000000
 
#define NV_MEMORY_TO_MEMORY_FORMAT_SET_REF   0x00000050
 
#define NV_MEMORY_TO_MEMORY_FORMAT_NOP   0x00000100
 
#define NV_MEMORY_TO_MEMORY_FORMAT_NOTIFY   0x00000104
 
#define NV_MEMORY_TO_MEMORY_FORMAT_NOTIFY_STYLE_WRITE   0x00000000
 
#define NV_MEMORY_TO_MEMORY_FORMAT_NOTIFY_STYLE_WRITE_LE_AWAKEN   0x00000001
 
#define NV_MEMORY_TO_MEMORY_FORMAT_DMA_NOTIFY   0x00000180
 
#define NV_MEMORY_TO_MEMORY_FORMAT_DMA_SOURCE   0x00000184
 
#define NV_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN   0x0000030c
 
#define NV50_MEMORY_TO_MEMORY_FORMAT   0x00005039
 
#define NV50_MEMORY_TO_MEMORY_FORMAT_UNK200   0x00000200
 
#define NV50_MEMORY_TO_MEMORY_FORMAT_UNK21C   0x0000021c
 
#define NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN_HIGH   0x00000238
 
#define NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT_HIGH   0x0000023c
 
#define WRITE_PUT(val)
 
#define NV01_SUBCHAN_OBJECT   0x00000000
 
#define NV84_SUBCHAN_SEMAPHORE_ADDRESS_HIGH   0x00000010
 
#define NV84_SUBCHAN_SEMAPHORE_ADDRESS_LOW   0x00000014
 
#define NV84_SUBCHAN_SEMAPHORE_SEQUENCE   0x00000018
 
#define NV84_SUBCHAN_SEMAPHORE_TRIGGER   0x0000001c
 
#define NV84_SUBCHAN_SEMAPHORE_TRIGGER_ACQUIRE_EQUAL   0x00000001
 
#define NV84_SUBCHAN_SEMAPHORE_TRIGGER_WRITE_LONG   0x00000002
 
#define NV84_SUBCHAN_SEMAPHORE_TRIGGER_ACQUIRE_GEQUAL   0x00000004
 
#define NVC0_SUBCHAN_SEMAPHORE_TRIGGER_YIELD   0x00001000
 
#define NV84_SUBCHAN_NOTIFY_INTR   0x00000020
 
#define NV84_SUBCHAN_WRCACHE_FLUSH   0x00000024
 
#define NV10_SUBCHAN_REF_CNT   0x00000050
 
#define NVSW_SUBCHAN_PAGE_FLIP   0x00000054
 
#define NV11_SUBCHAN_DMA_SEMAPHORE   0x00000060
 
#define NV11_SUBCHAN_SEMAPHORE_OFFSET   0x00000064
 
#define NV11_SUBCHAN_SEMAPHORE_ACQUIRE   0x00000068
 
#define NV11_SUBCHAN_SEMAPHORE_RELEASE   0x0000006c
 
#define NV40_SUBCHAN_YIELD   0x00000080
 
#define NV_SW_DMA_VBLSEM   0x0000018c
 
#define NV_SW_VBLSEM_OFFSET   0x00000400
 
#define NV_SW_VBLSEM_RELEASE_VALUE   0x00000404
 
#define NV_SW_VBLSEM_RELEASE   0x00000408
 
#define NV_SW_PAGE_FLIP   0x00000500
 

Enumerations

enum  {
  NvSubCtxSurf2D = 0, NvSubSw = 1, NvSubImageBlit = 2, NvSub2D = 3,
  NvSubGdiRect = 3, NvSubCopy = 4
}
 
enum  {
  NvM2MF = 0x80000001, NvDmaFB = 0x80000002, NvDmaTT = 0x80000003, NvNotify0 = 0x80000006,
  Nv2D = 0x80000007, NvCtxSurf2D = 0x80000008, NvRop = 0x80000009, NvImagePatt = 0x8000000a,
  NvClipRect = 0x8000000b, NvGdiRect = 0x8000000c, NvImageBlit = 0x8000000d, NvSw = 0x8000000e,
  NvSema = 0x8000000f, NvEvoSema0 = 0x80000010, NvEvoSema1 = 0x80000011, NvNotify1 = 0x80000012,
  NvEvoVRAM = 0x01000000, NvEvoFB16 = 0x01000001, NvEvoFB32 = 0x01000002, NvEvoVRAM_LP = 0x01000003,
  NvEvoSync = 0xcafe0000
}
 

Functions

int nouveau_dma_wait (struct nouveau_channel *, int slots, int size)
 
void nv50_dma_push (struct nouveau_channel *, struct nouveau_bo *, int delta, int length)
 
void OUT_RINGp (struct nouveau_channel *chan, const void *data, unsigned nr_dwords)
 

Macro Definition Documentation

#define NOUVEAU_DMA_SKIPS   (128 / 4)

Definition at line 47 of file nouveau_dma.h.

#define NV01_SUBCHAN_OBJECT   0x00000000

Definition at line 185 of file nouveau_dma.h.

#define NV10_SUBCHAN_REF_CNT   0x00000050

Definition at line 196 of file nouveau_dma.h.

#define NV11_SUBCHAN_DMA_SEMAPHORE   0x00000060

Definition at line 198 of file nouveau_dma.h.

#define NV11_SUBCHAN_SEMAPHORE_ACQUIRE   0x00000068

Definition at line 200 of file nouveau_dma.h.

#define NV11_SUBCHAN_SEMAPHORE_OFFSET   0x00000064

Definition at line 199 of file nouveau_dma.h.

#define NV11_SUBCHAN_SEMAPHORE_RELEASE   0x0000006c

Definition at line 201 of file nouveau_dma.h.

#define NV40_SUBCHAN_YIELD   0x00000080

Definition at line 202 of file nouveau_dma.h.

#define NV50_MEMORY_TO_MEMORY_FORMAT   0x00005039

Definition at line 97 of file nouveau_dma.h.

#define NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN_HIGH   0x00000238

Definition at line 100 of file nouveau_dma.h.

#define NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT_HIGH   0x0000023c

Definition at line 101 of file nouveau_dma.h.

#define NV50_MEMORY_TO_MEMORY_FORMAT_UNK200   0x00000200

Definition at line 98 of file nouveau_dma.h.

#define NV50_MEMORY_TO_MEMORY_FORMAT_UNK21C   0x0000021c

Definition at line 99 of file nouveau_dma.h.

#define NV84_SUBCHAN_NOTIFY_INTR   0x00000020

Definition at line 194 of file nouveau_dma.h.

#define NV84_SUBCHAN_SEMAPHORE_ADDRESS_HIGH   0x00000010

Definition at line 186 of file nouveau_dma.h.

#define NV84_SUBCHAN_SEMAPHORE_ADDRESS_LOW   0x00000014

Definition at line 187 of file nouveau_dma.h.

#define NV84_SUBCHAN_SEMAPHORE_SEQUENCE   0x00000018

Definition at line 188 of file nouveau_dma.h.

#define NV84_SUBCHAN_SEMAPHORE_TRIGGER   0x0000001c

Definition at line 189 of file nouveau_dma.h.

#define NV84_SUBCHAN_SEMAPHORE_TRIGGER_ACQUIRE_EQUAL   0x00000001

Definition at line 190 of file nouveau_dma.h.

#define NV84_SUBCHAN_SEMAPHORE_TRIGGER_ACQUIRE_GEQUAL   0x00000004

Definition at line 192 of file nouveau_dma.h.

#define NV84_SUBCHAN_SEMAPHORE_TRIGGER_WRITE_LONG   0x00000002

Definition at line 191 of file nouveau_dma.h.

#define NV84_SUBCHAN_WRCACHE_FLUSH   0x00000024

Definition at line 195 of file nouveau_dma.h.

#define NV_MEMORY_TO_MEMORY_FORMAT   0x00000039

Definition at line 86 of file nouveau_dma.h.

#define NV_MEMORY_TO_MEMORY_FORMAT_DMA_NOTIFY   0x00000180

Definition at line 93 of file nouveau_dma.h.

#define NV_MEMORY_TO_MEMORY_FORMAT_DMA_SOURCE   0x00000184

Definition at line 94 of file nouveau_dma.h.

#define NV_MEMORY_TO_MEMORY_FORMAT_NAME   0x00000000

Definition at line 87 of file nouveau_dma.h.

#define NV_MEMORY_TO_MEMORY_FORMAT_NOP   0x00000100

Definition at line 89 of file nouveau_dma.h.

#define NV_MEMORY_TO_MEMORY_FORMAT_NOTIFY   0x00000104

Definition at line 90 of file nouveau_dma.h.

#define NV_MEMORY_TO_MEMORY_FORMAT_NOTIFY_STYLE_WRITE   0x00000000

Definition at line 91 of file nouveau_dma.h.

#define NV_MEMORY_TO_MEMORY_FORMAT_NOTIFY_STYLE_WRITE_LE_AWAKEN   0x00000001

Definition at line 92 of file nouveau_dma.h.

#define NV_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN   0x0000030c

Definition at line 95 of file nouveau_dma.h.

#define NV_MEMORY_TO_MEMORY_FORMAT_SET_REF   0x00000050

Definition at line 88 of file nouveau_dma.h.

#define NV_SW_DMA_VBLSEM   0x0000018c

Definition at line 205 of file nouveau_dma.h.

#define NV_SW_PAGE_FLIP   0x00000500

Definition at line 209 of file nouveau_dma.h.

#define NV_SW_VBLSEM_OFFSET   0x00000400

Definition at line 206 of file nouveau_dma.h.

#define NV_SW_VBLSEM_RELEASE   0x00000408

Definition at line 208 of file nouveau_dma.h.

#define NV_SW_VBLSEM_RELEASE_VALUE   0x00000404

Definition at line 207 of file nouveau_dma.h.

#define NVC0_SUBCHAN_SEMAPHORE_TRIGGER_YIELD   0x00001000

Definition at line 193 of file nouveau_dma.h.

#define NVSW_SUBCHAN_PAGE_FLIP   0x00000054

Definition at line 197 of file nouveau_dma.h.

#define WRITE_PUT (   val)
Value:
do { \
DRM_MEMORYBARRIER(); \
nouveau_bo_rd32(chan->push.buffer, 0); \
nv_wo32(chan->object, chan->user_put, ((val) << 2) + chan->push.vma.offset); \
} while (0)

Definition at line 155 of file nouveau_dma.h.

Enumeration Type Documentation

anonymous enum
Enumerator:
NvSubCtxSurf2D 
NvSubSw 
NvSubImageBlit 
NvSub2D 
NvSubGdiRect 
NvSubCopy 

Definition at line 50 of file nouveau_dma.h.

anonymous enum
Enumerator:
NvM2MF 
NvDmaFB 
NvDmaTT 
NvNotify0 
Nv2D 
NvCtxSurf2D 
NvRop 
NvImagePatt 
NvClipRect 
NvGdiRect 
NvImageBlit 
NvSw 
NvSema 
NvEvoSema0 
NvEvoSema1 
NvNotify1 
NvEvoVRAM 
NvEvoFB16 
NvEvoFB32 
NvEvoVRAM_LP 
NvEvoSync 

Definition at line 60 of file nouveau_dma.h.

Function Documentation

int nouveau_dma_wait ( struct nouveau_channel ,
int  slots,
int  size 
)

Definition at line 181 of file nouveau_dma.c.

void nv50_dma_push ( struct nouveau_channel ,
struct nouveau_bo ,
int  delta,
int  length 
)

Definition at line 84 of file nouveau_dma.c.

void OUT_RINGp ( struct nouveau_channel chan,
const void data,
unsigned  nr_dwords 
)

Definition at line 33 of file nouveau_dma.c.