From: Alex Deucher Date: Thu, 29 Apr 2010 20:14:02 +0000 (-0400) Subject: drm/radeon/kms: re-enable gui idle interrupts on r6xx+ X-Git-Tag: v2.6.35-rc1~451^2~23 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=4f3218cbc34f4ffd88f4b3ea0d2f6999aea7b3e6;p=~emulex%2Finfiniband.git drm/radeon/kms: re-enable gui idle interrupts on r6xx+ Signed-off-by: Alex Deucher Signed-off-by: Dave Airlie --- diff --git a/drivers/gpu/drm/radeon/radeon_pm.c b/drivers/gpu/drm/radeon/radeon_pm.c index 2eb675e7844..bded834afa5 100644 --- a/drivers/gpu/drm/radeon/radeon_pm.c +++ b/drivers/gpu/drm/radeon/radeon_pm.c @@ -64,17 +64,19 @@ static void radeon_pm_set_clocks(struct radeon_device *rdev, int static_switch) mutex_lock(&rdev->ddev->struct_mutex); mutex_lock(&rdev->vram_mutex); mutex_lock(&rdev->cp.mutex); -#if 0 - /* wait for GPU idle */ - rdev->pm.gui_idle = false; - rdev->irq.gui_idle = true; - radeon_irq_set(rdev); - wait_event_interruptible_timeout( - rdev->irq.idle_queue, rdev->pm.gui_idle, - msecs_to_jiffies(RADEON_WAIT_IDLE_TIMEOUT)); - rdev->irq.gui_idle = false; - radeon_irq_set(rdev); -#endif + + /* gui idle int has issues on older chips it seems */ + if (rdev->family >= CHIP_R600) { + /* wait for GPU idle */ + rdev->pm.gui_idle = false; + rdev->irq.gui_idle = true; + radeon_irq_set(rdev); + wait_event_interruptible_timeout( + rdev->irq.idle_queue, rdev->pm.gui_idle, + msecs_to_jiffies(RADEON_WAIT_IDLE_TIMEOUT)); + rdev->irq.gui_idle = false; + radeon_irq_set(rdev); + } radeon_unmap_vram_bos(rdev); if (!static_switch) {