Commit f2e55b9e authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/mc/tu104: initial support



Things are a bit different here on Turing, and will require further changes
yet once I've investigated them more thoroughly.

For now though, the existing GP100 code is compatible enough with one small
hack to forward on fault buffer interrupts.

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 575d583a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -31,4 +31,5 @@ int gk104_mc_new(struct nvkm_device *, int, struct nvkm_mc **);
int gk20a_mc_new(struct nvkm_device *, int, struct nvkm_mc **);
int gp100_mc_new(struct nvkm_device *, int, struct nvkm_mc **);
int gp10b_mc_new(struct nvkm_device *, int, struct nvkm_mc **);
int tu104_mc_new(struct nvkm_device *, int, struct nvkm_mc **);
#endif
+1 −0
Original line number Diff line number Diff line
@@ -2443,6 +2443,7 @@ nv164_chipset = {
	.gpio = gk104_gpio_new,
	.i2c = gm200_i2c_new,
	.ibus = gm200_ibus_new,
	.mc = tu104_mc_new,
	.pci = gp100_pci_new,
	.top = gk104_top_new,
};
+1 −0
Original line number Diff line number Diff line
@@ -12,3 +12,4 @@ nvkm-y += nvkm/subdev/mc/gk104.o
nvkm-y += nvkm/subdev/mc/gk20a.o
nvkm-y += nvkm/subdev/mc/gp100.o
nvkm-y += nvkm/subdev/mc/gp10b.o
nvkm-y += nvkm/subdev/mc/tu104.o
+3 −0
Original line number Diff line number Diff line
@@ -108,6 +108,9 @@ nvkm_mc_intr(struct nvkm_device *device, bool *handled)
	if (stat)
		nvkm_error(&mc->subdev, "intr %08x\n", stat);
	*handled = intr != 0;

	if (mc->func->intr_hack)
		mc->func->intr_hack(mc, handled);
}

static u32
+1 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ struct nvkm_mc_func {
	void (*intr_mask)(struct nvkm_mc *, u32 mask, u32 stat);
	/* retrieve pending interrupt mask (NV_PMC_INTR) */
	u32 (*intr_stat)(struct nvkm_mc *);
	void (*intr_hack)(struct nvkm_mc *, bool *handled);
	const struct nvkm_mc_map *reset;
	void (*unk260)(struct nvkm_mc *, u32);
};
Loading