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