1 #ifndef __NVKM_FAULT_H__ 2 #define __NVKM_FAULT_H__ 3 #include <core/subdev.h> 4 #include <core/event.h> 5 #include <core/notify.h> 6 7 struct nvkm_fault { 8 const struct nvkm_fault_func *func; 9 struct nvkm_subdev subdev; 10 11 struct nvkm_fault_buffer *buffer[2]; 12 int buffer_nr; 13 14 struct nvkm_event event; 15 16 struct nvkm_notify nrpfb; 17 18 struct nvkm_device_oclass user; 19 }; 20 21 struct nvkm_fault_data { 22 u64 addr; 23 u64 inst; 24 u64 time; 25 u8 engine; 26 u8 valid; 27 u8 gpc; 28 u8 hub; 29 u8 access; 30 u8 client; 31 u8 reason; 32 }; 33 34 int gp100_fault_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fault **); 35 int gp10b_fault_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fault **); 36 int gv100_fault_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fault **); 37 int tu102_fault_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fault **); 38 #endif 39