diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2012-11-21 21:49:42 -0500 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2012-11-28 18:58:03 -0500 |
commit | e0cdd1e5451efb46515804550aa7eaa9672b0cf0 (patch) | |
tree | e12b4ad3493ba2ee1c03468672adb8b56bcbb307 | |
parent | 3cb0ebddd05b5bbdbd7d7214ee6983a034a0b0be (diff) |
drm/nouveau/mc: allow calling of multiple handlers for a give intr bit
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r-- | drivers/gpu/drm/nouveau/core/subdev/mc/base.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/gpu/drm/nouveau/core/subdev/mc/base.c b/drivers/gpu/drm/nouveau/core/subdev/mc/base.c index de5721cfc4c2..8379aafa6e1b 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/mc/base.c +++ b/drivers/gpu/drm/nouveau/core/subdev/mc/base.c | |||
@@ -30,20 +30,20 @@ nouveau_mc_intr(struct nouveau_subdev *subdev) | |||
30 | struct nouveau_mc *pmc = nouveau_mc(subdev); | 30 | struct nouveau_mc *pmc = nouveau_mc(subdev); |
31 | const struct nouveau_mc_intr *map = pmc->intr_map; | 31 | const struct nouveau_mc_intr *map = pmc->intr_map; |
32 | struct nouveau_subdev *unit; | 32 | struct nouveau_subdev *unit; |
33 | u32 stat; | 33 | u32 stat, intr; |
34 | 34 | ||
35 | stat = nv_rd32(pmc, 0x000100); | 35 | intr = stat = nv_rd32(pmc, 0x000100); |
36 | while (stat && map->stat) { | 36 | while (stat && map->stat) { |
37 | if (stat & map->stat) { | 37 | if (stat & map->stat) { |
38 | unit = nouveau_subdev(subdev, map->unit); | 38 | unit = nouveau_subdev(subdev, map->unit); |
39 | if (unit && unit->intr) | 39 | if (unit && unit->intr) |
40 | unit->intr(unit); | 40 | unit->intr(unit); |
41 | stat &= ~map->stat; | 41 | intr &= ~map->stat; |
42 | } | 42 | } |
43 | map++; | 43 | map++; |
44 | } | 44 | } |
45 | 45 | ||
46 | if (stat) { | 46 | if (intr) { |
47 | nv_error(pmc, "unknown intr 0x%08x\n", stat); | 47 | nv_error(pmc, "unknown intr 0x%08x\n", stat); |
48 | } | 48 | } |
49 | } | 49 | } |