18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: MIT */
28c2ecf20Sopenharmony_ci#ifndef __NVIF_CL0002_H__
38c2ecf20Sopenharmony_ci#define __NVIF_CL0002_H__
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_cistruct nv_dma_v0 {
68c2ecf20Sopenharmony_ci	__u8  version;
78c2ecf20Sopenharmony_ci#define NV_DMA_V0_TARGET_VM                                                0x00
88c2ecf20Sopenharmony_ci#define NV_DMA_V0_TARGET_VRAM                                              0x01
98c2ecf20Sopenharmony_ci#define NV_DMA_V0_TARGET_PCI                                               0x02
108c2ecf20Sopenharmony_ci#define NV_DMA_V0_TARGET_PCI_US                                            0x03
118c2ecf20Sopenharmony_ci#define NV_DMA_V0_TARGET_AGP                                               0x04
128c2ecf20Sopenharmony_ci	__u8  target;
138c2ecf20Sopenharmony_ci#define NV_DMA_V0_ACCESS_VM                                                0x00
148c2ecf20Sopenharmony_ci#define NV_DMA_V0_ACCESS_RD                                                0x01
158c2ecf20Sopenharmony_ci#define NV_DMA_V0_ACCESS_WR                                                0x02
168c2ecf20Sopenharmony_ci#define NV_DMA_V0_ACCESS_RDWR                 (NV_DMA_V0_ACCESS_RD | NV_DMA_V0_ACCESS_WR)
178c2ecf20Sopenharmony_ci	__u8  access;
188c2ecf20Sopenharmony_ci	__u8  pad03[5];
198c2ecf20Sopenharmony_ci	__u64 start;
208c2ecf20Sopenharmony_ci	__u64 limit;
218c2ecf20Sopenharmony_ci	/* ... chipset-specific class data */
228c2ecf20Sopenharmony_ci};
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_cistruct nv50_dma_v0 {
258c2ecf20Sopenharmony_ci	__u8  version;
268c2ecf20Sopenharmony_ci#define NV50_DMA_V0_PRIV_VM                                                0x00
278c2ecf20Sopenharmony_ci#define NV50_DMA_V0_PRIV_US                                                0x01
288c2ecf20Sopenharmony_ci#define NV50_DMA_V0_PRIV__S                                                0x02
298c2ecf20Sopenharmony_ci	__u8  priv;
308c2ecf20Sopenharmony_ci#define NV50_DMA_V0_PART_VM                                                0x00
318c2ecf20Sopenharmony_ci#define NV50_DMA_V0_PART_256                                               0x01
328c2ecf20Sopenharmony_ci#define NV50_DMA_V0_PART_1KB                                               0x02
338c2ecf20Sopenharmony_ci	__u8  part;
348c2ecf20Sopenharmony_ci#define NV50_DMA_V0_COMP_NONE                                              0x00
358c2ecf20Sopenharmony_ci#define NV50_DMA_V0_COMP_1                                                 0x01
368c2ecf20Sopenharmony_ci#define NV50_DMA_V0_COMP_2                                                 0x02
378c2ecf20Sopenharmony_ci#define NV50_DMA_V0_COMP_VM                                                0x03
388c2ecf20Sopenharmony_ci	__u8  comp;
398c2ecf20Sopenharmony_ci#define NV50_DMA_V0_KIND_PITCH                                             0x00
408c2ecf20Sopenharmony_ci#define NV50_DMA_V0_KIND_VM                                                0x7f
418c2ecf20Sopenharmony_ci	__u8  kind;
428c2ecf20Sopenharmony_ci	__u8  pad05[3];
438c2ecf20Sopenharmony_ci};
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_cistruct gf100_dma_v0 {
468c2ecf20Sopenharmony_ci	__u8  version;
478c2ecf20Sopenharmony_ci#define GF100_DMA_V0_PRIV_VM                                               0x00
488c2ecf20Sopenharmony_ci#define GF100_DMA_V0_PRIV_US                                               0x01
498c2ecf20Sopenharmony_ci#define GF100_DMA_V0_PRIV__S                                               0x02
508c2ecf20Sopenharmony_ci	__u8  priv;
518c2ecf20Sopenharmony_ci#define GF100_DMA_V0_KIND_PITCH                                            0x00
528c2ecf20Sopenharmony_ci#define GF100_DMA_V0_KIND_VM                                               0xff
538c2ecf20Sopenharmony_ci	__u8  kind;
548c2ecf20Sopenharmony_ci	__u8  pad03[5];
558c2ecf20Sopenharmony_ci};
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_cistruct gf119_dma_v0 {
588c2ecf20Sopenharmony_ci	__u8  version;
598c2ecf20Sopenharmony_ci#define GF119_DMA_V0_PAGE_LP                                               0x00
608c2ecf20Sopenharmony_ci#define GF119_DMA_V0_PAGE_SP                                               0x01
618c2ecf20Sopenharmony_ci	__u8  page;
628c2ecf20Sopenharmony_ci#define GF119_DMA_V0_KIND_PITCH                                            0x00
638c2ecf20Sopenharmony_ci#define GF119_DMA_V0_KIND_VM                                               0xff
648c2ecf20Sopenharmony_ci	__u8  kind;
658c2ecf20Sopenharmony_ci	__u8  pad03[5];
668c2ecf20Sopenharmony_ci};
678c2ecf20Sopenharmony_ci#endif
68