42 lines
995 B
C
42 lines
995 B
C
#ifndef __NVKM_FAULT_H__
|
|
#define __NVKM_FAULT_H__
|
|
#include <core/subdev.h>
|
|
#include <core/event.h>
|
|
|
|
struct nvkm_fault {
|
|
const struct nvkm_fault_func *func;
|
|
struct nvkm_subdev subdev;
|
|
|
|
struct nvkm_inth info_fault;
|
|
|
|
struct nvkm_fault_buffer *buffer[2];
|
|
int buffer_nr;
|
|
|
|
#define NVKM_FAULT_BUFFER_EVENT_PENDING BIT(0)
|
|
struct nvkm_event event;
|
|
|
|
struct nvkm_event_ntfy nrpfb;
|
|
struct work_struct nrpfb_work;
|
|
|
|
struct nvkm_device_oclass user;
|
|
};
|
|
|
|
struct nvkm_fault_data {
|
|
u64 addr;
|
|
u64 inst;
|
|
u64 time;
|
|
u8 engine;
|
|
u8 valid;
|
|
u8 gpc;
|
|
u8 hub;
|
|
u8 access;
|
|
u8 client;
|
|
u8 reason;
|
|
};
|
|
|
|
int gp100_fault_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fault **);
|
|
int gp10b_fault_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fault **);
|
|
int gv100_fault_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fault **);
|
|
int tu102_fault_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fault **);
|
|
#endif
|