projects
/
GitHub
/
LineageOS
/
android_kernel_samsung_universal7580.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
2031f77
)
drm/radeon/kms: wait for gpu idle before changing power mode
author
Alex Deucher
<alexdeucher@gmail.com>
Wed, 17 Mar 2010 18:29:15 +0000
(14:29 -0400)
committer
Dave Airlie
<airlied@redhat.com>
Tue, 18 May 2010 08:20:50 +0000
(18:20 +1000)
set proper wait condition as noted by Rafał Miłecki.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/radeon_pm.c
patch
|
blob
|
blame
|
history
diff --git
a/drivers/gpu/drm/radeon/radeon_pm.c
b/drivers/gpu/drm/radeon/radeon_pm.c
index 6dfeb9cf16ba32f6dc3ab33f0996ad00a1273d60..4ece89aa26f842b7f5ed28ff2a0522c16ffbc45b 100644
(file)
--- a/
drivers/gpu/drm/radeon/radeon_pm.c
+++ b/
drivers/gpu/drm/radeon/radeon_pm.c
@@
-378,6
+378,16
@@
static void radeon_pm_set_clocks(struct radeon_device *rdev)
radeon_get_power_state(rdev, rdev->pm.planned_action);
mutex_lock(&rdev->cp.mutex);
+ /* 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);
+
if (rdev->pm.active_crtcs & (1 << 0)) {
rdev->pm.req_vblank |= (1 << 0);
drm_vblank_get(rdev->ddev, 0);