diff options
author | Michel Daenzer <michel@daenzer.net> | 2003-02-04 15:56:37 +0000 |
---|---|---|
committer | Michel Daenzer <michel@daenzer.net> | 2003-02-04 15:56:37 +0000 |
commit | f13af50838a2a207269ef46c3561ca1250dc6c12 (patch) | |
tree | 1fee583ffb6e2bc4fe5710af1f2801149c26774c /shared/radeon_irq.c | |
parent | f3751850c8b5b4216c460474147e0dcfc26a144e (diff) |
only acknowledge interrupts we handle - others could be used outside the
DRM
Diffstat (limited to 'shared/radeon_irq.c')
-rw-r--r-- | shared/radeon_irq.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/shared/radeon_irq.c b/shared/radeon_irq.c index c5cd61c5..596706bf 100644 --- a/shared/radeon_irq.c +++ b/shared/radeon_irq.c @@ -61,7 +61,11 @@ void DRM(dma_service)( DRM_IRQ_ARGS ) (drm_radeon_private_t *)dev->dev_private; u32 stat; - stat = RADEON_READ(RADEON_GEN_INT_STATUS); + /* Only consider the bits we're interested in - others could be used + * outside the DRM + */ + stat = RADEON_READ(RADEON_GEN_INT_STATUS) + & (RADEON_SW_INT_TEST | RADEON_CRTC_VBLANK_STAT); if (!stat) return; @@ -77,15 +81,14 @@ void DRM(dma_service)( DRM_IRQ_ARGS ) DRM(vbl_send_signals)( dev ); } - /* Acknowledge all the bits in GEN_INT_STATUS -- seem to get - * more than we asked for... - */ + /* Acknowledge interrupts we handle */ RADEON_WRITE(RADEON_GEN_INT_STATUS, stat); } static __inline__ void radeon_acknowledge_irqs(drm_radeon_private_t *dev_priv) { - u32 tmp = RADEON_READ( RADEON_GEN_INT_STATUS ); + u32 tmp = RADEON_READ( RADEON_GEN_INT_STATUS ) + & (RADEON_SW_INT_TEST_ACK | RADEON_CRTC_VBLANK_STAT); if (tmp) RADEON_WRITE( RADEON_GEN_INT_STATUS, tmp ); } |