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

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

drm/nouveau/mc: bracket interrupt handler with NV_PMC_INTR_EN disable/re-enable



This looks to be what NVIDIA do pretty much everywhere, since forever.

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 6dcee40a
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -33,6 +33,9 @@ nouveau_mc_intr(int irq, void *arg)
	struct nouveau_subdev *unit;
	u32 intr, stat;

	nv_wr32(pmc, 0x000140, 0x00000000);
	nv_rd32(pmc, 0x000140);

	intr = nv_rd32(pmc, 0x000100);
	if (intr == 0xffffffff) /* likely fallen off the bus */
		intr = 0x00000000;
@@ -54,6 +57,7 @@ nouveau_mc_intr(int irq, void *arg)
			nv_error(pmc, "unknown intr 0x%08x\n", stat);
	}

	nv_wr32(pmc, 0x000140, 0x00000001);
	return intr ? IRQ_HANDLED : IRQ_NONE;
}