/* Acknowledge interrupts we handle */ RADEON_WRITE(RADEON_GEN_INT_STATUS, stat); 
irqreturn_t radeon_driver_irq_handler( DRM_IRQ_ARGS ){	drm_device_t *dev = (drm_device_t *) arg;	drm_radeon_private_t *dev_priv = 	   (drm_radeon_private_t *)dev->dev_private;   	u32 stat;	/* 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 IRQ_NONE;	/* SW interrupt */	if (stat & RADEON_SW_INT_TEST) {		DRM_WAKEUP( &dev_priv->swi_queue );	}	/* VBLANK interrupt */	if (stat & RADEON_CRTC_VBLANK_STAT) {		atomic_inc(&dev->vbl_received);		DRM_WAKEUP(&dev->vbl_queue);		drm_vbl_send_signals( dev );	}	/* Acknowledge interrupts we handle */	RADEON_WRITE(RADEON_GEN_INT_STATUS, stat);	return IRQ_HANDLED;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/6921e3310486a6e5ac3f36efcc7351347503c71a/radeon_irq.c/buggy/drivers/char/drm/radeon_irq.c