Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 60cda665 authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/fault/gv100: fix fault buffer initialisation



Not sure how this happened, it worked last time I tested it!

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent bdf4424d
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -133,8 +133,14 @@ nvkm_fault_oneinit(struct nvkm_subdev *subdev)
		}
	}

	return nvkm_event_init(&nvkm_fault_ntfy, 1, fault->buffer_nr,
	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 *
+10 −11
Original line number Diff line number Diff line
@@ -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);
}
+1 −0
Original line number Diff line number Diff line
@@ -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 *);