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

Commit 13e95729 authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/fault/gp100: expose MaxwellFaultBufferA



This nvclass exposes the replayable fault buffer, which will be used
by SVM to manage GPU page faults.

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent ab2ee9ff
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -54,6 +54,8 @@

#define VOLTA_USERMODE_A                                             0x0000c361

#define MAXWELL_FAULT_BUFFER_A                        /* clb069.h */ 0x0000b069

#define NV03_CHANNEL_DMA                              /* cl506b.h */ 0x0000006b
#define NV10_CHANNEL_DMA                              /* cl506b.h */ 0x0000006e
#define NV17_CHANNEL_DMA                              /* cl506b.h */ 0x0000176e
+12 −0
Original line number Diff line number Diff line
#ifndef __NVIF_CLB069_H__
#define __NVIF_CLB069_H__
struct nvif_clb069_v0 {
	__u8  version;
	__u8  pad01[3];
	__u32 entries;
	__u32 get;
	__u32 put;
};

#define NVB069_V0_NTFY_FAULT                                                0x00
#endif
+2 −0
Original line number Diff line number Diff line
@@ -13,6 +13,8 @@ struct nvkm_fault {
	struct nvkm_event event;

	struct nvkm_notify nrpfb;

	struct nvkm_device_oclass user;
};

struct nvkm_fault_data {
+7 −8
Original line number Diff line number Diff line
@@ -365,16 +365,15 @@ nvkm_udevice_child_get(struct nvkm_object *object, int index,
	}

	if (!sclass) {
		switch (index) {
		case 0: sclass = &nvkm_control_oclass; break;
		case 1:
			if (!device->mmu)
				return -EINVAL;
		if (index-- == 0)
			sclass = &nvkm_control_oclass;
		else if (device->mmu && index-- == 0)
			sclass = &device->mmu->user;
			break;
		default:
		else if (device->fault && index-- == 0)
			sclass = &device->fault->user;
		else
			return -EINVAL;
		}

		oclass->base = sclass->base;
	}

+1 −0
Original line number Diff line number Diff line
nvkm-y += nvkm/subdev/fault/base.o
nvkm-y += nvkm/subdev/fault/user.o
nvkm-y += nvkm/subdev/fault/gp100.o
nvkm-y += nvkm/subdev/fault/gv100.o
nvkm-y += nvkm/subdev/fault/tu102.o
Loading