radeon: Restore software interrupt on resume.
authorDennis Kasprzyk <onestone@opencompositing.org>
Thu, 5 Jun 2008 15:08:44 +0000 (17:08 +0200)
committerMichel Dänzer <michel@tungstengraphics.com>
Thu, 5 Jun 2008 16:23:37 +0000 (18:23 +0200)
Fixes performance drop after suspend/resume on some systems.

shared-core/radeon_cp.c
shared-core/radeon_drv.h
shared-core/radeon_irq.c

index 5675fda..75b1dc5 100644 (file)
@@ -1296,6 +1296,7 @@ static int radeon_do_resume_cp(struct drm_device * dev)
        radeon_cp_init_ring_buffer(dev, dev_priv);
 
        radeon_do_engine_reset(dev);
+       radeon_irq_set_state(dev, RADEON_SW_INT_ENABLE, 1);
 
        DRM_DEBUG("radeon_do_resume_cp() complete\n");
 
index e263c61..1b59f87 100644 (file)
@@ -375,6 +375,7 @@ extern void radeon_mem_release(struct drm_file *file_priv,
                               struct mem_block *heap);
 
                                /* radeon_irq.c */
+extern void radeon_irq_set_state(struct drm_device *dev, u32 mask, int state);
 extern int radeon_irq_emit(struct drm_device *dev, void *data, struct drm_file *file_priv);
 extern int radeon_irq_wait(struct drm_device *dev, void *data, struct drm_file *file_priv);
 
index d21761f..f58d7fa 100644 (file)
@@ -35,7 +35,7 @@
 #include "radeon_drm.h"
 #include "radeon_drv.h"
 
-static void radeon_irq_set_state(struct drm_device *dev, u32 mask, int state)
+void radeon_irq_set_state(struct drm_device *dev, u32 mask, int state)
 {
        drm_radeon_private_t *dev_priv = dev->dev_private;