aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGustavo Padovan <gustavo.padovan@collabora.co.uk>2016-06-06 10:41:44 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2016-06-06 12:05:08 -0400
commita782bca5e52ef112246387cee071364dc0e5a344 (patch)
tree2fb74844a0f543418925ad28ad7864e23b5feac4
parent078ace6f4afc4e98a9c029366f04a68fcf1f8168 (diff)
drm/radeon: use drm_crtc_vblank_{get,put}()
Replace the legacy drm_vblank_{get,put}() with the new helper functions. Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1465224105-21485-13-git-send-email-gustavo@padovan.org
-rw-r--r--drivers/gpu/drm/radeon/radeon_display.c6
-rw-r--r--drivers/gpu/drm/radeon/radeon_pm.c13
2 files changed, 12 insertions, 7 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
index 6a41b4982647..2fb18f13395c 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -381,7 +381,7 @@ void radeon_crtc_handle_flip(struct radeon_device *rdev, int crtc_id)
381 381
382 spin_unlock_irqrestore(&rdev->ddev->event_lock, flags); 382 spin_unlock_irqrestore(&rdev->ddev->event_lock, flags);
383 383
384 drm_vblank_put(rdev->ddev, radeon_crtc->crtc_id); 384 drm_crtc_vblank_put(&radeon_crtc->base);
385 radeon_irq_kms_pflip_irq_put(rdev, work->crtc_id); 385 radeon_irq_kms_pflip_irq_put(rdev, work->crtc_id);
386 queue_work(radeon_crtc->flip_queue, &work->unpin_work); 386 queue_work(radeon_crtc->flip_queue, &work->unpin_work);
387} 387}
@@ -598,7 +598,7 @@ static int radeon_crtc_page_flip(struct drm_crtc *crtc,
598 } 598 }
599 work->base = base; 599 work->base = base;
600 600
601 r = drm_vblank_get(crtc->dev, radeon_crtc->crtc_id); 601 r = drm_crtc_vblank_get(crtc);
602 if (r) { 602 if (r) {
603 DRM_ERROR("failed to get vblank before flip\n"); 603 DRM_ERROR("failed to get vblank before flip\n");
604 goto pflip_cleanup; 604 goto pflip_cleanup;
@@ -625,7 +625,7 @@ static int radeon_crtc_page_flip(struct drm_crtc *crtc,
625 return 0; 625 return 0;
626 626
627vblank_cleanup: 627vblank_cleanup:
628 drm_vblank_put(crtc->dev, radeon_crtc->crtc_id); 628 drm_crtc_vblank_put(&radeon_crtc->base);
629 629
630pflip_cleanup: 630pflip_cleanup:
631 if (unlikely(radeon_bo_reserve(new_rbo, false) != 0)) { 631 if (unlikely(radeon_bo_reserve(new_rbo, false) != 0)) {
diff --git a/drivers/gpu/drm/radeon/radeon_pm.c b/drivers/gpu/drm/radeon/radeon_pm.c
index 38226d925a5b..4b6542538ff9 100644
--- a/drivers/gpu/drm/radeon/radeon_pm.c
+++ b/drivers/gpu/drm/radeon/radeon_pm.c
@@ -246,6 +246,7 @@ static void radeon_set_power_state(struct radeon_device *rdev)
246 246
247static void radeon_pm_set_clocks(struct radeon_device *rdev) 247static void radeon_pm_set_clocks(struct radeon_device *rdev)
248{ 248{
249 struct drm_crtc *crtc;
249 int i, r; 250 int i, r;
250 251
251 /* no need to take locks, etc. if nothing's going to change */ 252 /* no need to take locks, etc. if nothing's going to change */
@@ -274,26 +275,30 @@ static void radeon_pm_set_clocks(struct radeon_device *rdev)
274 radeon_unmap_vram_bos(rdev); 275 radeon_unmap_vram_bos(rdev);
275 276
276 if (rdev->irq.installed) { 277 if (rdev->irq.installed) {
277 for (i = 0; i < rdev->num_crtc; i++) { 278 i = 0;
279 drm_for_each_crtc(crtc, rdev->ddev) {
278 if (rdev->pm.active_crtcs & (1 << i)) { 280 if (rdev->pm.active_crtcs & (1 << i)) {
279 /* This can fail if a modeset is in progress */ 281 /* This can fail if a modeset is in progress */
280 if (drm_vblank_get(rdev->ddev, i) == 0) 282 if (drm_crtc_vblank_get(crtc) == 0)
281 rdev->pm.req_vblank |= (1 << i); 283 rdev->pm.req_vblank |= (1 << i);
282 else 284 else
283 DRM_DEBUG_DRIVER("crtc %d no vblank, can glitch\n", 285 DRM_DEBUG_DRIVER("crtc %d no vblank, can glitch\n",
284 i); 286 i);
285 } 287 }
288 i++;
286 } 289 }
287 } 290 }
288 291
289 radeon_set_power_state(rdev); 292 radeon_set_power_state(rdev);
290 293
291 if (rdev->irq.installed) { 294 if (rdev->irq.installed) {
292 for (i = 0; i < rdev->num_crtc; i++) { 295 i = 0;
296 drm_for_each_crtc(crtc, rdev->ddev) {
293 if (rdev->pm.req_vblank & (1 << i)) { 297 if (rdev->pm.req_vblank & (1 << i)) {
294 rdev->pm.req_vblank &= ~(1 << i); 298 rdev->pm.req_vblank &= ~(1 << i);
295 drm_vblank_put(rdev->ddev, i); 299 drm_crtc_vblank_put(crtc);
296 } 300 }
301 i++;
297 } 302 }
298 } 303 }
299 304