Commit | Line | Data |
---|---|---|
9274f4a9 BS |
1 | #ifndef __NOUVEAU_CLASS_H__ |
2 | #define __NOUVEAU_CLASS_H__ | |
3 | ||
4 | /* 0080: NV_DEVICE | |
5 | */ | |
6 | ||
7 | #define NV_DEVICE_DISABLE_IDENTIFY 0x0000000000000001ULL | |
8 | #define NV_DEVICE_DISABLE_MMIO 0x0000000000000002ULL | |
9 | #define NV_DEVICE_DISABLE_VBIOS 0x0000000000000004ULL | |
10 | #define NV_DEVICE_DISABLE_CORE 0x0000000000000008ULL | |
11 | #define NV_DEVICE_DISABLE_DISP 0x0000000000010000ULL | |
12 | #define NV_DEVICE_DISABLE_FIFO 0x0000000000020000ULL | |
13 | #define NV_DEVICE_DISABLE_GRAPH 0x0000000100000000ULL | |
14 | #define NV_DEVICE_DISABLE_MPEG 0x0000000200000000ULL | |
15 | #define NV_DEVICE_DISABLE_ME 0x0000000400000000ULL | |
16 | #define NV_DEVICE_DISABLE_VP 0x0000000800000000ULL | |
17 | #define NV_DEVICE_DISABLE_CRYPT 0x0000001000000000ULL | |
18 | #define NV_DEVICE_DISABLE_BSP 0x0000002000000000ULL | |
19 | #define NV_DEVICE_DISABLE_PPP 0x0000004000000000ULL | |
20 | #define NV_DEVICE_DISABLE_COPY0 0x0000008000000000ULL | |
21 | #define NV_DEVICE_DISABLE_COPY1 0x0000010000000000ULL | |
22 | #define NV_DEVICE_DISABLE_UNK1C1 0x0000020000000000ULL | |
23 | ||
24 | struct nv_device_class { | |
25 | u64 device; /* device identifier, ~0 for client default */ | |
26 | u64 disable; /* disable particular subsystems */ | |
27 | u64 debug0; /* as above, but *internal* ids, and *NOT* ABI */ | |
28 | }; | |
29 | ||
30 | /* 0002: NV_DMA_FROM_MEMORY | |
31 | * 0003: NV_DMA_TO_MEMORY | |
32 | * 003d: NV_DMA_IN_MEMORY | |
33 | */ | |
34 | ||
35 | #define NV_DMA_TARGET_MASK 0x000000ff | |
36 | #define NV_DMA_TARGET_VM 0x00000000 | |
37 | #define NV_DMA_TARGET_VRAM 0x00000001 | |
38 | #define NV_DMA_TARGET_PCI 0x00000002 | |
39 | #define NV_DMA_TARGET_PCI_US 0x00000003 | |
40 | #define NV_DMA_TARGET_AGP 0x00000004 | |
41 | #define NV_DMA_ACCESS_MASK 0x00000f00 | |
42 | #define NV_DMA_ACCESS_VM 0x00000000 | |
43 | #define NV_DMA_ACCESS_RD 0x00000100 | |
44 | #define NV_DMA_ACCESS_WR 0x00000200 | |
45 | #define NV_DMA_ACCESS_RDWR 0x00000300 | |
46 | ||
47 | struct nv_dma_class { | |
48 | u32 flags; | |
49 | u32 pad0; | |
50 | u64 start; | |
51 | u64 limit; | |
52 | }; | |
53 | ||
54 | /* 006b: NV03_CHANNEL_DMA | |
55 | * 006e: NV10_CHANNEL_DMA | |
56 | * 406e: NV40_CHANNEL_DMA | |
57 | */ | |
58 | ||
59 | struct nv_channel_dma_class { | |
60 | u32 pushbuf; | |
61 | u32 pad0; | |
62 | u64 offset; | |
63 | }; | |
64 | ||
65 | /* 506f: NV50_CHANNEL_IND | |
66 | * 826f: NV84_CHANNEL_IND | |
67 | * 906f: NVC0_CHANNEL_IND | |
68 | * a06f: NVE0_CHANNEL_IND | |
69 | */ | |
70 | ||
71 | struct nv_channel_ind_class { | |
72 | u32 pushbuf; | |
73 | u32 ilength; | |
74 | u64 ioffset; | |
75 | }; | |
76 | ||
77 | #endif |