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