summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDennis Kasprzyk <onestone@opencompositing.org>2008-06-05 17:08:44 +0200
committerMichel Dänzer <michel@tungstengraphics.com>2008-06-05 18:23:37 +0200
commit6905c7a29d2a3bc0e605a09b98ac02a4a50893d0 (patch)
tree92eba57fa745f2724fe240de671b885811bd3d52
parentba7263b8c2f8c14c647da725ecbc73fcd456d63c (diff)
radeon: Restore software interrupt on resume.
Fixes performance drop after suspend/resume on some systems.
-rw-r--r--shared-core/radeon_cp.c1
-rw-r--r--shared-core/radeon_drv.h1
-rw-r--r--shared-core/radeon_irq.c2
3 files changed, 3 insertions, 1 deletions
diff --git a/shared-core/radeon_cp.c b/shared-core/radeon_cp.c
index 5675fda6..75b1dc55 100644
--- a/shared-core/radeon_cp.c
+++ b/shared-core/radeon_cp.c
@@ -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");
diff --git a/shared-core/radeon_drv.h b/shared-core/radeon_drv.h
index e263c610..1b59f871 100644
--- a/shared-core/radeon_drv.h
+++ b/shared-core/radeon_drv.h
@@ -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);
diff --git a/shared-core/radeon_irq.c b/shared-core/radeon_irq.c
index d21761fb..f58d7fa2 100644
--- a/shared-core/radeon_irq.c
+++ b/shared-core/radeon_irq.c
@@ -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;