diff options
author | Dennis Kasprzyk <onestone@opencompositing.org> | 2008-06-05 17:08:44 +0200 |
---|---|---|
committer | Michel Dänzer <michel@tungstengraphics.com> | 2008-06-05 18:23:37 +0200 |
commit | 6905c7a29d2a3bc0e605a09b98ac02a4a50893d0 (patch) | |
tree | 92eba57fa745f2724fe240de671b885811bd3d52 /shared-core | |
parent | ba7263b8c2f8c14c647da725ecbc73fcd456d63c (diff) |
radeon: Restore software interrupt on resume.
Fixes performance drop after suspend/resume on some systems.
Diffstat (limited to 'shared-core')
-rw-r--r-- | shared-core/radeon_cp.c | 1 | ||||
-rw-r--r-- | shared-core/radeon_drv.h | 1 | ||||
-rw-r--r-- | shared-core/radeon_irq.c | 2 |
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; |