aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/rs600.c
diff options
context:
space:
mode:
authorJerome Glisse <jglisse@redhat.com>2009-10-07 05:08:22 -0400
committerDave Airlie <airlied@redhat.com>2009-10-07 19:40:04 -0400
commit01ceae8edd7a0a6d8588dc103ad9f55e2c52cae9 (patch)
treea13db0485066f15da0da5f8fe298b0d430ce51c0 /drivers/gpu/drm/radeon/rs600.c
parentaa96e341c2a14d6bec114c933bd813ecb972605f (diff)
drm/radeon/kms: Fix RS600/RV515/R520/RS690 IRQ
Bad generated header file leaded to use wrong register to check IRQ status and acknowledge them. Fix the header and use proper registers. Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/rs600.c')
-rw-r--r--drivers/gpu/drm/radeon/rs600.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/gpu/drm/radeon/rs600.c b/drivers/gpu/drm/radeon/rs600.c
index 01f6834aa4b1..10dfa78762da 100644
--- a/drivers/gpu/drm/radeon/rs600.c
+++ b/drivers/gpu/drm/radeon/rs600.c
@@ -206,10 +206,10 @@ int rs600_irq_set(struct radeon_device *rdev)
206 206
207static inline uint32_t rs600_irq_ack(struct radeon_device *rdev, u32 *r500_disp_int) 207static inline uint32_t rs600_irq_ack(struct radeon_device *rdev, u32 *r500_disp_int)
208{ 208{
209 uint32_t irqs = RREG32(R_000040_GEN_INT_CNTL); 209 uint32_t irqs = RREG32(R_000044_GEN_INT_STATUS);
210 uint32_t irq_mask = ~C_000040_SW_INT_EN; 210 uint32_t irq_mask = ~C_000044_SW_INT;
211 211
212 if (G_000040_DISPLAY_INT_STATUS(irqs)) { 212 if (G_000044_DISPLAY_INT_STAT(irqs)) {
213 *r500_disp_int = RREG32(R_007EDC_DISP_INTERRUPT_STATUS); 213 *r500_disp_int = RREG32(R_007EDC_DISP_INTERRUPT_STATUS);
214 if (G_007EDC_LB_D1_VBLANK_INTERRUPT(*r500_disp_int)) { 214 if (G_007EDC_LB_D1_VBLANK_INTERRUPT(*r500_disp_int)) {
215 WREG32(R_006534_D1MODE_VBLANK_STATUS, 215 WREG32(R_006534_D1MODE_VBLANK_STATUS,
@@ -224,7 +224,7 @@ static inline uint32_t rs600_irq_ack(struct radeon_device *rdev, u32 *r500_disp_
224 } 224 }
225 225
226 if (irqs) { 226 if (irqs) {
227 WREG32(R_000040_GEN_INT_CNTL, irqs); 227 WREG32(R_000044_GEN_INT_STATUS, irqs);
228 } 228 }
229 return irqs & irq_mask; 229 return irqs & irq_mask;
230} 230}