diff options
author | Dennis Kasprzyk <onestone@opencompositing.org> | 2008-06-18 22:36:55 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2008-06-18 22:36:55 -0400 |
commit | 7ecabc53a29bb31689fa1852a926e021179a64a6 (patch) | |
tree | a4c7426a429cf0c9c787d4448ae7d5f876337ede /drivers/char | |
parent | 70b13d510fc9d137e362b7db3ac5b14b50d78477 (diff) |
drm/radeon: Restore sw interrupt on resume
Fixes performance drop after suspend/resume on some systems.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/drm/radeon_cp.c | 1 | ||||
-rw-r--r-- | drivers/char/drm/radeon_drv.h | 1 | ||||
-rw-r--r-- | drivers/char/drm/radeon_irq.c | 2 |
3 files changed, 3 insertions, 1 deletions
diff --git a/drivers/char/drm/radeon_cp.c b/drivers/char/drm/radeon_cp.c index f5e22bfcc3cb..d4feccbe46d5 100644 --- a/drivers/char/drm/radeon_cp.c +++ b/drivers/char/drm/radeon_cp.c | |||
@@ -1292,6 +1292,7 @@ static int radeon_do_resume_cp(struct drm_device * dev) | |||
1292 | radeon_cp_init_ring_buffer(dev, dev_priv); | 1292 | radeon_cp_init_ring_buffer(dev, dev_priv); |
1293 | 1293 | ||
1294 | radeon_do_engine_reset(dev); | 1294 | radeon_do_engine_reset(dev); |
1295 | radeon_enable_interrupt(dev); | ||
1295 | 1296 | ||
1296 | DRM_DEBUG("radeon_do_resume_cp() complete\n"); | 1297 | DRM_DEBUG("radeon_do_resume_cp() complete\n"); |
1297 | 1298 | ||
diff --git a/drivers/char/drm/radeon_drv.h b/drivers/char/drm/radeon_drv.h index f43e1f9b9550..e20b5d878716 100644 --- a/drivers/char/drm/radeon_drv.h +++ b/drivers/char/drm/radeon_drv.h | |||
@@ -386,6 +386,7 @@ extern irqreturn_t radeon_driver_irq_handler(DRM_IRQ_ARGS); | |||
386 | extern void radeon_driver_irq_preinstall(struct drm_device * dev); | 386 | extern void radeon_driver_irq_preinstall(struct drm_device * dev); |
387 | extern void radeon_driver_irq_postinstall(struct drm_device * dev); | 387 | extern void radeon_driver_irq_postinstall(struct drm_device * dev); |
388 | extern void radeon_driver_irq_uninstall(struct drm_device * dev); | 388 | extern void radeon_driver_irq_uninstall(struct drm_device * dev); |
389 | extern void radeon_enable_interrupt(struct drm_device *dev); | ||
389 | extern int radeon_vblank_crtc_get(struct drm_device *dev); | 390 | extern int radeon_vblank_crtc_get(struct drm_device *dev); |
390 | extern int radeon_vblank_crtc_set(struct drm_device *dev, int64_t value); | 391 | extern int radeon_vblank_crtc_set(struct drm_device *dev, int64_t value); |
391 | 392 | ||
diff --git a/drivers/char/drm/radeon_irq.c b/drivers/char/drm/radeon_irq.c index 009af3814b6f..ee40d197deb7 100644 --- a/drivers/char/drm/radeon_irq.c +++ b/drivers/char/drm/radeon_irq.c | |||
@@ -234,7 +234,7 @@ int radeon_irq_wait(struct drm_device *dev, void *data, struct drm_file *file_pr | |||
234 | return radeon_wait_irq(dev, irqwait->irq_seq); | 234 | return radeon_wait_irq(dev, irqwait->irq_seq); |
235 | } | 235 | } |
236 | 236 | ||
237 | static void radeon_enable_interrupt(struct drm_device *dev) | 237 | void radeon_enable_interrupt(struct drm_device *dev) |
238 | { | 238 | { |
239 | drm_radeon_private_t *dev_priv = (drm_radeon_private_t *) dev->dev_private; | 239 | drm_radeon_private_t *dev_priv = (drm_radeon_private_t *) dev->dev_private; |
240 | 240 | ||