drm/radeon: Restore sw interrupt on resume

Fixes performance drop after suspend/resume on some systems.

Signed-off-by: Dave Airlie <airlied@redhat.com>

authored by Dennis Kasprzyk and committed by Dave Airlie 7ecabc53 70b13d51

+3 -1
+1
drivers/char/drm/radeon_cp.c
··· 1292 radeon_cp_init_ring_buffer(dev, dev_priv); 1293 1294 radeon_do_engine_reset(dev); 1295 1296 DRM_DEBUG("radeon_do_resume_cp() complete\n"); 1297
··· 1292 radeon_cp_init_ring_buffer(dev, dev_priv); 1293 1294 radeon_do_engine_reset(dev); 1295 + radeon_enable_interrupt(dev); 1296 1297 DRM_DEBUG("radeon_do_resume_cp() complete\n"); 1298
+1
drivers/char/drm/radeon_drv.h
··· 386 extern void radeon_driver_irq_preinstall(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); 389 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
··· 386 extern void radeon_driver_irq_preinstall(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); 389 + extern void radeon_enable_interrupt(struct drm_device *dev); 390 extern int radeon_vblank_crtc_get(struct drm_device *dev); 391 extern int radeon_vblank_crtc_set(struct drm_device *dev, int64_t value); 392
+1 -1
drivers/char/drm/radeon_irq.c
··· 234 return radeon_wait_irq(dev, irqwait->irq_seq); 235 } 236 237 - static void radeon_enable_interrupt(struct drm_device *dev) 238 { 239 drm_radeon_private_t *dev_priv = (drm_radeon_private_t *) dev->dev_private; 240
··· 234 return radeon_wait_irq(dev, irqwait->irq_seq); 235 } 236 237 + void radeon_enable_interrupt(struct drm_device *dev) 238 { 239 drm_radeon_private_t *dev_priv = (drm_radeon_private_t *) dev->dev_private; 240