0001 #ifndef __NVKM_FAULT_H__
0002 #define __NVKM_FAULT_H__
0003 #include <core/subdev.h>
0004 #include <core/event.h>
0005 #include <core/notify.h>
0006
0007 struct nvkm_fault {
0008 const struct nvkm_fault_func *func;
0009 struct nvkm_subdev subdev;
0010
0011 struct nvkm_fault_buffer *buffer[2];
0012 int buffer_nr;
0013
0014 struct nvkm_event event;
0015
0016 struct nvkm_notify nrpfb;
0017
0018 struct nvkm_device_oclass user;
0019 };
0020
0021 struct nvkm_fault_data {
0022 u64 addr;
0023 u64 inst;
0024 u64 time;
0025 u8 engine;
0026 u8 valid;
0027 u8 gpc;
0028 u8 hub;
0029 u8 access;
0030 u8 client;
0031 u8 reason;
0032 };
0033
0034 int gp100_fault_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fault **);
0035 int gp10b_fault_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fault **);
0036 int gv100_fault_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fault **);
0037 int tu102_fault_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fault **);
0038 #endif