mirror of https://gitee.com/openkylin/linux.git
drm/nouveau/fault/gv100: fix fault buffer initialisation
Not sure how this happened, it worked last time I tested it! Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
bdf4424dc3
commit
60cda66572
|
@ -133,8 +133,14 @@ nvkm_fault_oneinit(struct nvkm_subdev *subdev)
|
|||
}
|
||||
}
|
||||
|
||||
return nvkm_event_init(&nvkm_fault_ntfy, 1, fault->buffer_nr,
|
||||
&fault->event);
|
||||
ret = nvkm_event_init(&nvkm_fault_ntfy, 1, fault->buffer_nr,
|
||||
&fault->event);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (fault->func->oneinit)
|
||||
ret = fault->func->oneinit(fault);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void *
|
||||
|
|
|
@ -176,8 +176,17 @@ gv100_fault_init(struct nvkm_fault *fault)
|
|||
nvkm_notify_get(&fault->nrpfb);
|
||||
}
|
||||
|
||||
static int
|
||||
gv100_fault_oneinit(struct nvkm_fault *fault)
|
||||
{
|
||||
return nvkm_notify_init(&fault->buffer[0]->object, &fault->event,
|
||||
gv100_fault_ntfy_nrpfb, false, NULL, 0, 0,
|
||||
&fault->nrpfb);
|
||||
}
|
||||
|
||||
static const struct nvkm_fault_func
|
||||
gv100_fault = {
|
||||
.oneinit = gv100_fault_oneinit,
|
||||
.init = gv100_fault_init,
|
||||
.fini = gv100_fault_fini,
|
||||
.intr = gv100_fault_intr,
|
||||
|
@ -192,15 +201,5 @@ int
|
|||
gv100_fault_new(struct nvkm_device *device, int index,
|
||||
struct nvkm_fault **pfault)
|
||||
{
|
||||
struct nvkm_fault *fault;
|
||||
int ret;
|
||||
|
||||
ret = nvkm_fault_new_(&gv100_fault, device, index, &fault);
|
||||
*pfault = fault;
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
return nvkm_notify_init(&fault->buffer[0]->object, &fault->event,
|
||||
gv100_fault_ntfy_nrpfb, false, NULL, 0, 0,
|
||||
&fault->nrpfb);
|
||||
return nvkm_fault_new_(&gv100_fault, device, index, pfault);
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@ int nvkm_fault_new_(const struct nvkm_fault_func *, struct nvkm_device *,
|
|||
int index, struct nvkm_fault **);
|
||||
|
||||
struct nvkm_fault_func {
|
||||
int (*oneinit)(struct nvkm_fault *);
|
||||
void (*init)(struct nvkm_fault *);
|
||||
void (*fini)(struct nvkm_fault *);
|
||||
void (*intr)(struct nvkm_fault *);
|
||||
|
|
Loading…
Reference in New Issue