diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2011-11-12 12:43:30 -0500 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2011-12-21 04:01:37 -0500 |
commit | 84e052e626d88c04c03f79dd95708e556d018d97 (patch) | |
tree | f9ae0deec3e29dabd6ff98350dda0b466f52c477 /drivers/gpu | |
parent | 8a46438a6a7492296c5dbfcc8e4a5106ab37bca8 (diff) |
drm/nvd0/disp: handle yet another interrupt
Spotted while messing with overlay channels (probably as a result of
sending a similar "disable" sequence as we do for the flip channels).
The value in 0x61008c was 0x20, which one would reasonably guess is
"bit 5 == something to report about evo channel 5" - but who knows.
Spotted the binary driver getting this too, and it appears to not do
anything exciting as a result. So, handle it the same way and avoid
an IRQ storm.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/nouveau/nvd0_display.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nvd0_display.c b/drivers/gpu/drm/nouveau/nvd0_display.c index 8fceebd110e6..51e073828471 100644 --- a/drivers/gpu/drm/nouveau/nvd0_display.c +++ b/drivers/gpu/drm/nouveau/nvd0_display.c | |||
@@ -1585,6 +1585,12 @@ nvd0_display_intr(struct drm_device *dev) | |||
1585 | struct nvd0_display *disp = nvd0_display(dev); | 1585 | struct nvd0_display *disp = nvd0_display(dev); |
1586 | u32 intr = nv_rd32(dev, 0x610088); | 1586 | u32 intr = nv_rd32(dev, 0x610088); |
1587 | 1587 | ||
1588 | if (intr & 0x00000001) { | ||
1589 | u32 stat = nv_rd32(dev, 0x61008c); | ||
1590 | nv_wr32(dev, 0x61008c, stat); | ||
1591 | intr &= ~0x00000001; | ||
1592 | } | ||
1593 | |||
1588 | if (intr & 0x00000002) { | 1594 | if (intr & 0x00000002) { |
1589 | u32 stat = nv_rd32(dev, 0x61009c); | 1595 | u32 stat = nv_rd32(dev, 0x61009c); |
1590 | int chid = ffs(stat) - 1; | 1596 | int chid = ffs(stat) - 1; |