xref: /linux/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/gpu.h (revision 25489a4f556414445d342951615178368ee45cde)
1 /* SPDX-License-Identifier: MIT
2  *
3  * Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved.
4  */
5 #ifndef __NVKM_RM_GPU_H__
6 #define __NVKM_RM_GPU_H__
7 #include "rm.h"
8 
9 struct nvkm_rm_gpu {
10 	struct {
11 		struct {
12 			u32 root;
13 			u32 caps;
14 			u32 core;
15 			u32 wndw;
16 			u32 wimm;
17 			u32 curs;
18 		} class;
19 	} disp;
20 
21 	struct {
22 		u32 class;
23 	} usermode;
24 
25 	struct {
26 		struct {
27 			u32 class;
28 			u32 (*doorbell_handle)(struct nvkm_chan *);
29 		} chan;
30 	} fifo;
31 
32 	struct {
33 		u32 class;
34 		u32 (*grce_mask)(struct nvkm_device *);
35 	} ce;
36 
37 	struct {
38 		struct {
39 			u32 i2m;
40 			u32 twod;
41 			u32 threed;
42 			u32 compute;
43 		} class;
44 	} gr;
45 
46 	struct {
47 		u32 class;
48 	} nvdec;
49 
50 	struct {
51 		u32 class;
52 	} nvenc;
53 
54 	struct {
55 		u32 class;
56 	} nvjpg;
57 
58 	struct {
59 		u32 class;
60 	} ofa;
61 };
62 
63 extern const struct nvkm_rm_gpu tu1xx_gpu;
64 extern const struct nvkm_rm_gpu ga100_gpu;
65 extern const struct nvkm_rm_gpu ga1xx_gpu;
66 extern const struct nvkm_rm_gpu ad10x_gpu;
67 extern const struct nvkm_rm_gpu gh100_gpu;
68 extern const struct nvkm_rm_gpu gb10x_gpu;
69 extern const struct nvkm_rm_gpu gb20x_gpu;
70 #endif
71