From 4acba63bb7045e6bf665580cf6cea111f0786f77 Mon Sep 17 00:00:00 2001 From: Michel Daenzer Date: Tue, 3 Dec 2002 00:43:47 +0000 Subject: vertical blank interrupt cleanups: use spinlock instead of semaphore, send signal directly from interrupt handler instead of using a taskqueue (based on feedback by Linus Torvalds) --- shared/mga_irq.c | 5 +---- shared/r128_irq.c | 5 +---- shared/radeon_irq.c | 5 +---- 3 files changed, 3 insertions(+), 12 deletions(-) (limited to 'shared') diff --git a/shared/mga_irq.c b/shared/mga_irq.c index 30ee7834..66236053 100644 --- a/shared/mga_irq.c +++ b/shared/mga_irq.c @@ -50,10 +50,7 @@ void mga_dma_service( DRM_IRQ_ARGS ) MGA_WRITE( MGA_ICLEAR, MGA_VLINEICLR ); atomic_inc(&dev->vbl_received); DRM_WAKEUP(&dev->vbl_queue); - - /* kick off bottom half for signals */ - queue_task(&dev->vbl_tq, &tq_immediate); - mark_bh(IMMEDIATE_BH); + DRM(vbl_send_signals)( dev ); } } diff --git a/shared/r128_irq.c b/shared/r128_irq.c index 722f2362..8dfee07e 100644 --- a/shared/r128_irq.c +++ b/shared/r128_irq.c @@ -50,10 +50,7 @@ void r128_dma_service( DRM_IRQ_ARGS ) R128_WRITE( R128_GEN_INT_STATUS, R128_CRTC_VBLANK_INT_AK ); atomic_inc(&dev->vbl_received); DRM_WAKEUP(&dev->vbl_queue); - - /* kick off bottom half for signals */ - queue_task(&dev->vbl_tq, &tq_immediate); - mark_bh(IMMEDIATE_BH); + DRM(vbl_send_signals)( dev ); } } diff --git a/shared/radeon_irq.c b/shared/radeon_irq.c index b8f33f95..e2182ff7 100644 --- a/shared/radeon_irq.c +++ b/shared/radeon_irq.c @@ -74,10 +74,7 @@ void DRM(dma_service)( DRM_IRQ_ARGS ) if (stat & RADEON_CRTC_VBLANK_STAT) { atomic_inc(&dev->vbl_received); DRM_WAKEUP(&dev->vbl_queue); - - /* kick off bottom half for signals */ - queue_task(&dev->vbl_tq, &tq_immediate); - mark_bh(IMMEDIATE_BH); + DRM(vbl_send_signals)( dev ); } /* Acknowledge all the bits in GEN_INT_STATUS -- seem to get -- cgit v1.2.3