aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_irq.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2010-11-02 21:36:09 -0400
committerBen Skeggs <bskeggs@redhat.com>2010-12-03 00:11:38 -0500
commit25b85783da8c71e577c676173e9d60a1b7e6113a (patch)
tree28cf293c419d0f7fba158d8a504539149f256770 /drivers/gpu/drm/nouveau/nouveau_irq.c
parent8cbe71a6e70b5439ae60bd542231c4b8878a8f1c (diff)
drm/nv04-nv40: register vblank isr
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.c19
1 files changed, 0 insertions, 19 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_irq.c b/drivers/gpu/drm/nouveau/nouveau_irq.c
index e8a3c400f741..6c30669ac0b6 100644
--- a/drivers/gpu/drm/nouveau/nouveau_irq.c
+++ b/drivers/gpu/drm/nouveau/nouveau_irq.c
@@ -1131,20 +1131,6 @@ nv50_pgraph_irq_handler(struct drm_device *dev)
1131 nv_wr32(dev, 0x400824, nv_rd32(dev, 0x400824) & ~(1 << 31)); 1131 nv_wr32(dev, 0x400824, nv_rd32(dev, 0x400824) & ~(1 << 31));
1132} 1132}
1133 1133
1134static void
1135nouveau_crtc_irq_handler(struct drm_device *dev, int crtc)
1136{
1137 if (crtc & 1) {
1138 nv_wr32(dev, NV_CRTC0_INTSTAT, NV_CRTC_INTR_VBLANK);
1139 drm_handle_vblank(dev, 0);
1140 }
1141
1142 if (crtc & 2) {
1143 nv_wr32(dev, NV_CRTC1_INTSTAT, NV_CRTC_INTR_VBLANK);
1144 drm_handle_vblank(dev, 1);
1145 }
1146}
1147
1148irqreturn_t 1134irqreturn_t
1149nouveau_irq_handler(DRM_IRQ_ARGS) 1135nouveau_irq_handler(DRM_IRQ_ARGS)
1150{ 1136{
@@ -1174,11 +1160,6 @@ nouveau_irq_handler(DRM_IRQ_ARGS)
1174 status &= ~NV_PMC_INTR_0_PGRAPH_PENDING; 1160 status &= ~NV_PMC_INTR_0_PGRAPH_PENDING;
1175 } 1161 }
1176 1162
1177 if (status & NV_PMC_INTR_0_CRTCn_PENDING) {
1178 nouveau_crtc_irq_handler(dev, (status>>24)&3);
1179 status &= ~NV_PMC_INTR_0_CRTCn_PENDING;
1180 }
1181
1182 for (i = 0; i < 32 && status; i++) { 1163 for (i = 0; i < 32 && status; i++) {
1183 if (!(status & (1 << i)) || !dev_priv->irq_handler[i]) 1164 if (!(status & (1 << i)) || !dev_priv->irq_handler[i])
1184 continue; 1165 continue;