aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDennis Kasprzyk <onestone@opencompositing.org>2008-06-18 22:36:55 -0400
committerDave Airlie <airlied@redhat.com>2008-06-18 22:36:55 -0400
commit7ecabc53a29bb31689fa1852a926e021179a64a6 (patch)
treea4c7426a429cf0c9c787d4448ae7d5f876337ede /drivers
parent70b13d510fc9d137e362b7db3ac5b14b50d78477 (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')
-rw-r--r--drivers/char/drm/radeon_cp.c1
-rw-r--r--drivers/char/drm/radeon_drv.h1
-rw-r--r--drivers/char/drm/radeon_irq.c2
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);
386extern void radeon_driver_irq_preinstall(struct drm_device * dev); 386extern void radeon_driver_irq_preinstall(struct drm_device * dev);
387extern void radeon_driver_irq_postinstall(struct drm_device * dev); 387extern void radeon_driver_irq_postinstall(struct drm_device * dev);
388extern void radeon_driver_irq_uninstall(struct drm_device * dev); 388extern void radeon_driver_irq_uninstall(struct drm_device * dev);
389extern void radeon_enable_interrupt(struct drm_device *dev);
389extern int radeon_vblank_crtc_get(struct drm_device *dev); 390extern int radeon_vblank_crtc_get(struct drm_device *dev);
390extern int radeon_vblank_crtc_set(struct drm_device *dev, int64_t value); 391extern 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
237static void radeon_enable_interrupt(struct drm_device *dev) 237void 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