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