1  /* SPDX-License-Identifier: MIT */
2  #ifndef __NVIF_CL0002_H__
3  #define __NVIF_CL0002_H__
4  
5  struct nv_dma_v0 {
6  	__u8  version;
7  #define NV_DMA_V0_TARGET_VM                                                0x00
8  #define NV_DMA_V0_TARGET_VRAM                                              0x01
9  #define NV_DMA_V0_TARGET_PCI                                               0x02
10  #define NV_DMA_V0_TARGET_PCI_US                                            0x03
11  #define NV_DMA_V0_TARGET_AGP                                               0x04
12  	__u8  target;
13  #define NV_DMA_V0_ACCESS_VM                                                0x00
14  #define NV_DMA_V0_ACCESS_RD                                                0x01
15  #define NV_DMA_V0_ACCESS_WR                                                0x02
16  #define NV_DMA_V0_ACCESS_RDWR                 (NV_DMA_V0_ACCESS_RD | NV_DMA_V0_ACCESS_WR)
17  	__u8  access;
18  	__u8  pad03[5];
19  	__u64 start;
20  	__u64 limit;
21  	/* ... chipset-specific class data */
22  };
23  
24  struct nv50_dma_v0 {
25  	__u8  version;
26  #define NV50_DMA_V0_PRIV_VM                                                0x00
27  #define NV50_DMA_V0_PRIV_US                                                0x01
28  #define NV50_DMA_V0_PRIV__S                                                0x02
29  	__u8  priv;
30  #define NV50_DMA_V0_PART_VM                                                0x00
31  #define NV50_DMA_V0_PART_256                                               0x01
32  #define NV50_DMA_V0_PART_1KB                                               0x02
33  	__u8  part;
34  #define NV50_DMA_V0_COMP_NONE                                              0x00
35  #define NV50_DMA_V0_COMP_1                                                 0x01
36  #define NV50_DMA_V0_COMP_2                                                 0x02
37  #define NV50_DMA_V0_COMP_VM                                                0x03
38  	__u8  comp;
39  #define NV50_DMA_V0_KIND_PITCH                                             0x00
40  #define NV50_DMA_V0_KIND_VM                                                0x7f
41  	__u8  kind;
42  	__u8  pad05[3];
43  };
44  
45  struct gf100_dma_v0 {
46  	__u8  version;
47  #define GF100_DMA_V0_PRIV_VM                                               0x00
48  #define GF100_DMA_V0_PRIV_US                                               0x01
49  #define GF100_DMA_V0_PRIV__S                                               0x02
50  	__u8  priv;
51  #define GF100_DMA_V0_KIND_PITCH                                            0x00
52  #define GF100_DMA_V0_KIND_VM                                               0xff
53  	__u8  kind;
54  	__u8  pad03[5];
55  };
56  
57  struct gf119_dma_v0 {
58  	__u8  version;
59  #define GF119_DMA_V0_PAGE_LP                                               0x00
60  #define GF119_DMA_V0_PAGE_SP                                               0x01
61  	__u8  page;
62  #define GF119_DMA_V0_KIND_PITCH                                            0x00
63  #define GF119_DMA_V0_KIND_VM                                               0xff
64  	__u8  kind;
65  	__u8  pad03[5];
66  };
67  #endif
68