drm/nouveau/core: pull in most of the new core infrastructure
[deliverable/linux.git] / drivers / gpu / drm / nouveau / core / include / core / class.h
CommitLineData
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
24struct 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
47struct 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
59struct 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
71struct nv_channel_ind_class {
72 u32 pushbuf;
73 u32 ilength;
74 u64 ioffset;
75};
76
77#endif
This page took 0.031621 seconds and 5 git commands to generate.