From f43bb009c85fa56819d66a38763c3a98f5def902 Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Mon, 15 Mar 2010 17:09:05 -0400 Subject: [PATCH] --- yaml --- r: 196507 b: refs/heads/master c: 8a56df632e524a1c444c56bb7ce9fe8d94e639e0 h: refs/heads/master i: 196505: 3ff831396f30303e9486607a575d36f7854fd537 196503: f4421376496ff54c2bcfac97125f99808e3912ac v: v3 --- [refs] | 2 +- trunk/drivers/gpu/drm/radeon/radeon_pm.c | 26 +++++++++++------------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/[refs] b/[refs] index b9d5c35802dd..9032db199110 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 02b17cc05372ab58e9638008d0206f1c1ee0cf5c +refs/heads/master: 8a56df632e524a1c444c56bb7ce9fe8d94e639e0 diff --git a/trunk/drivers/gpu/drm/radeon/radeon_pm.c b/trunk/drivers/gpu/drm/radeon/radeon_pm.c index 4ece89aa26f8..ff3abd8c8966 100644 --- a/trunk/drivers/gpu/drm/radeon/radeon_pm.c +++ b/trunk/drivers/gpu/drm/radeon/radeon_pm.c @@ -375,6 +375,8 @@ static void radeon_pm_set_clocks_locked(struct radeon_device *rdev) static void radeon_pm_set_clocks(struct radeon_device *rdev) { + int i; + radeon_get_power_state(rdev, rdev->pm.planned_action); mutex_lock(&rdev->cp.mutex); @@ -388,22 +390,18 @@ static void radeon_pm_set_clocks(struct radeon_device *rdev) rdev->irq.gui_idle = false; radeon_irq_set(rdev); - if (rdev->pm.active_crtcs & (1 << 0)) { - rdev->pm.req_vblank |= (1 << 0); - drm_vblank_get(rdev->ddev, 0); - } - if (rdev->pm.active_crtcs & (1 << 1)) { - rdev->pm.req_vblank |= (1 << 1); - drm_vblank_get(rdev->ddev, 1); + for (i = 0; i < rdev->num_crtc; i++) { + if (rdev->pm.active_crtcs & (1 << i)) { + rdev->pm.req_vblank |= (1 << i); + drm_vblank_get(rdev->ddev, i); + } } radeon_pm_set_clocks_locked(rdev); - if (rdev->pm.req_vblank & (1 << 0)) { - rdev->pm.req_vblank &= ~(1 << 0); - drm_vblank_put(rdev->ddev, 0); - } - if (rdev->pm.req_vblank & (1 << 1)) { - rdev->pm.req_vblank &= ~(1 << 1); - drm_vblank_put(rdev->ddev, 1); + for (i = 0; i < rdev->num_crtc; i++) { + if (rdev->pm.req_vblank & (1 << i)) { + rdev->pm.req_vblank &= ~(1 << i); + drm_vblank_put(rdev->ddev, i); + } } mutex_unlock(&rdev->cp.mutex);