Commit 9b02baf1 authored by Ben Skeggs's avatar Ben Skeggs

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

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 5805bd1e
...@@ -84,6 +84,14 @@ gf100_mc_intr_stat(struct nvkm_mc *mc) ...@@ -84,6 +84,14 @@ gf100_mc_intr_stat(struct nvkm_mc *mc)
return intr0 | intr1; 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 void
gf100_mc_unk260(struct nvkm_mc *mc, u32 data) gf100_mc_unk260(struct nvkm_mc *mc, u32 data)
{ {
...@@ -96,6 +104,7 @@ gf100_mc = { ...@@ -96,6 +104,7 @@ gf100_mc = {
.intr = gf100_mc_intr, .intr = gf100_mc_intr,
.intr_unarm = gf100_mc_intr_unarm, .intr_unarm = gf100_mc_intr_unarm,
.intr_rearm = gf100_mc_intr_rearm, .intr_rearm = gf100_mc_intr_rearm,
.intr_mask = gf100_mc_intr_mask,
.intr_stat = gf100_mc_intr_stat, .intr_stat = gf100_mc_intr_stat,
.reset = gf100_mc_reset, .reset = gf100_mc_reset,
.unk260 = gf100_mc_unk260, .unk260 = gf100_mc_unk260,
......
...@@ -52,6 +52,7 @@ gk104_mc = { ...@@ -52,6 +52,7 @@ gk104_mc = {
.intr = gk104_mc_intr, .intr = gk104_mc_intr,
.intr_unarm = gf100_mc_intr_unarm, .intr_unarm = gf100_mc_intr_unarm,
.intr_rearm = gf100_mc_intr_rearm, .intr_rearm = gf100_mc_intr_rearm,
.intr_mask = gf100_mc_intr_mask,
.intr_stat = gf100_mc_intr_stat, .intr_stat = gf100_mc_intr_stat,
.reset = gk104_mc_reset, .reset = gk104_mc_reset,
.unk260 = gf100_mc_unk260, .unk260 = gf100_mc_unk260,
......
...@@ -29,6 +29,7 @@ gk20a_mc = { ...@@ -29,6 +29,7 @@ gk20a_mc = {
.intr = gk104_mc_intr, .intr = gk104_mc_intr,
.intr_unarm = gf100_mc_intr_unarm, .intr_unarm = gf100_mc_intr_unarm,
.intr_rearm = gf100_mc_intr_rearm, .intr_rearm = gf100_mc_intr_rearm,
.intr_mask = gf100_mc_intr_mask,
.intr_stat = gf100_mc_intr_stat, .intr_stat = gf100_mc_intr_stat,
.reset = gk104_mc_reset, .reset = gk104_mc_reset,
}; };
......
...@@ -44,6 +44,7 @@ void nv50_mc_init(struct nvkm_mc *); ...@@ -44,6 +44,7 @@ void nv50_mc_init(struct nvkm_mc *);
void gf100_mc_intr_unarm(struct nvkm_mc *); void gf100_mc_intr_unarm(struct nvkm_mc *);
void gf100_mc_intr_rearm(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 *); u32 gf100_mc_intr_stat(struct nvkm_mc *);
void gf100_mc_unk260(struct nvkm_mc *, u32); void gf100_mc_unk260(struct nvkm_mc *, u32);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment