drm/nouveau/fifo: version the dma channel class struct
[deliverable/linux.git] / drivers / gpu / drm / nouveau / core / include / core / class.h
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 * 176e: NV17_CHANNEL_DMA
57 * 406e: NV40_CHANNEL_DMA
58 */
59
60 struct nv03_channel_dma_class {
61 u32 pushbuf;
62 u32 pad0;
63 u64 offset;
64 };
65
66 /* 506f: NV50_CHANNEL_IND
67 * 826f: NV84_CHANNEL_IND
68 * 906f: NVC0_CHANNEL_IND
69 */
70
71 struct nv50_channel_ind_class {
72 u32 pushbuf;
73 u32 ilength;
74 u64 ioffset;
75 };
76
77 /* a06f: NVE0_CHANNEL_IND
78 */
79
80 #define NVE0_CHANNEL_IND_ENGINE_GR 0x00000001
81 #define NVE0_CHANNEL_IND_ENGINE_VP 0x00000002
82 #define NVE0_CHANNEL_IND_ENGINE_PPP 0x00000004
83 #define NVE0_CHANNEL_IND_ENGINE_BSP 0x00000008
84 #define NVE0_CHANNEL_IND_ENGINE_CE0 0x00000010
85 #define NVE0_CHANNEL_IND_ENGINE_CE1 0x00000020
86 #define NVE0_CHANNEL_IND_ENGINE_ENC 0x00000040
87
88 struct nve0_channel_ind_class {
89 u32 pushbuf;
90 u32 ilength;
91 u64 ioffset;
92 u32 engine;
93 };
94
95 #endif
This page took 0.037001 seconds and 6 git commands to generate.