Browse Source

drm/nouveau/mc/gf100-: support for masking interrupts

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs 9 years ago
parent
commit
9b02baf19f

+ 9 - 0
drivers/gpu/drm/nouveau/nvkm/subdev/mc/gf100.c

@@ -84,6 +84,14 @@ gf100_mc_intr_stat(struct nvkm_mc *mc)
 	return intr0 | intr1;
 }
 
+void
+gf100_mc_intr_mask(struct nvkm_mc *mc, u32 mask, u32 stat)
+{
+	struct nvkm_device *device = mc->subdev.device;
+	nvkm_mask(device, 0x000640, mask, stat);
+	nvkm_mask(device, 0x000644, mask, stat);
+}
+
 void
 gf100_mc_unk260(struct nvkm_mc *mc, u32 data)
 {
@@ -96,6 +104,7 @@ gf100_mc = {
 	.intr = gf100_mc_intr,
 	.intr_unarm = gf100_mc_intr_unarm,
 	.intr_rearm = gf100_mc_intr_rearm,
+	.intr_mask = gf100_mc_intr_mask,
 	.intr_stat = gf100_mc_intr_stat,
 	.reset = gf100_mc_reset,
 	.unk260 = gf100_mc_unk260,

+ 1 - 0
drivers/gpu/drm/nouveau/nvkm/subdev/mc/gk104.c

@@ -52,6 +52,7 @@ gk104_mc = {
 	.intr = gk104_mc_intr,
 	.intr_unarm = gf100_mc_intr_unarm,
 	.intr_rearm = gf100_mc_intr_rearm,
+	.intr_mask = gf100_mc_intr_mask,
 	.intr_stat = gf100_mc_intr_stat,
 	.reset = gk104_mc_reset,
 	.unk260 = gf100_mc_unk260,

+ 1 - 0
drivers/gpu/drm/nouveau/nvkm/subdev/mc/gk20a.c

@@ -29,6 +29,7 @@ gk20a_mc = {
 	.intr = gk104_mc_intr,
 	.intr_unarm = gf100_mc_intr_unarm,
 	.intr_rearm = gf100_mc_intr_rearm,
+	.intr_mask = gf100_mc_intr_mask,
 	.intr_stat = gf100_mc_intr_stat,
 	.reset = gk104_mc_reset,
 };

+ 1 - 0
drivers/gpu/drm/nouveau/nvkm/subdev/mc/priv.h

@@ -44,6 +44,7 @@ void nv50_mc_init(struct nvkm_mc *);
 
 void gf100_mc_intr_unarm(struct nvkm_mc *);
 void gf100_mc_intr_rearm(struct nvkm_mc *);
+void gf100_mc_intr_mask(struct nvkm_mc *, u32, u32);
 u32 gf100_mc_intr_stat(struct nvkm_mc *);
 void gf100_mc_unk260(struct nvkm_mc *, u32);