aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_irq.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2010-11-02 20:06:43 -0400
committerBen Skeggs <bskeggs@redhat.com>2010-12-03 00:11:30 -0500
commitd7facf9dc50acff69de9688088caa78b3cf69ebb (patch)
treec2ca30472f0ab46daa367ec798dd0dffe43fb6a1 /drivers/gpu/drm/nouveau/nouveau_irq.c
parent8f8a54482b008714ccfad15f4592b3802b80d479 (diff)
drm/nv84: move PCRYPT ISR out of nouveau_irq.c
Reviewed-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_irq.c')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_irq.c25
1 files changed, 1 insertions, 24 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_irq.c b/drivers/gpu/drm/nouveau/nouveau_irq.c
index 819bc3dd89e0..bdaf8ae44476 100644
--- a/drivers/gpu/drm/nouveau/nouveau_irq.c
+++ b/drivers/gpu/drm/nouveau/nouveau_irq.c
@@ -36,19 +36,12 @@
36#include "nouveau_drv.h" 36#include "nouveau_drv.h"
37#include "nouveau_reg.h" 37#include "nouveau_reg.h"
38#include "nouveau_ramht.h" 38#include "nouveau_ramht.h"
39#include <linux/ratelimit.h> 39#include "nouveau_util.h"
40 40
41/* needed for hotplug irq */ 41/* needed for hotplug irq */
42#include "nouveau_connector.h" 42#include "nouveau_connector.h"
43#include "nv50_display.h" 43#include "nv50_display.h"
44 44
45static DEFINE_RATELIMIT_STATE(nouveau_ratelimit_state, 3 * HZ, 20);
46
47static int nouveau_ratelimit(void)
48{
49 return __ratelimit(&nouveau_ratelimit_state);
50}
51
52void 45void
53nouveau_irq_preinstall(struct drm_device *dev) 46nouveau_irq_preinstall(struct drm_device *dev)
54{ 47{
@@ -1240,22 +1233,6 @@ nouveau_irq_handler(DRM_IRQ_ARGS)
1240 status &= ~NV_PMC_INTR_0_PGRAPH_PENDING; 1233 status &= ~NV_PMC_INTR_0_PGRAPH_PENDING;
1241 } 1234 }
1242 1235
1243 if (status & 0x00004000) {
1244 u32 stat = nv_rd32(dev, 0x102130);
1245 u32 mthd = nv_rd32(dev, 0x102190);
1246 u32 data = nv_rd32(dev, 0x102194);
1247 u32 inst = nv_rd32(dev, 0x102188) & 0x7fffffff;
1248
1249 NV_INFO(dev, "PCRYPT_INTR: 0x%08x 0x%08x 0x%08x 0x%08x\n",
1250 stat, mthd, data, inst);
1251 nv_wr32(dev, 0x102130, stat);
1252 nv_wr32(dev, 0x10200c, 0x10);
1253
1254 nv50_fb_vm_trap(dev, nouveau_ratelimit(), "PCRYPT");
1255 status &= ~0x00004000;
1256
1257 }
1258
1259 if (status & NV_PMC_INTR_0_CRTCn_PENDING) { 1236 if (status & NV_PMC_INTR_0_CRTCn_PENDING) {
1260 nouveau_crtc_irq_handler(dev, (status>>24)&3); 1237 nouveau_crtc_irq_handler(dev, (status>>24)&3);
1261 status &= ~NV_PMC_INTR_0_CRTCn_PENDING; 1238 status &= ~NV_PMC_INTR_0_CRTCn_PENDING;