drivers/gpu/drm/openchrome/via_crtc.c | 62 +++++++++++++++++----------------- 1 file changed, 31 insertions(+), 31 deletions(-)
New commits: commit 2a17f5ed61655f5ef33f8afc03ffc27fb1c50dd0 Author: Kevin Brace <kevinbr...@gmx.com> Date: Sun Aug 27 22:10:34 2017 -0700 Error handling improvements to *mode_set_base callbacks Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/drivers/gpu/drm/openchrome/via_crtc.c b/drivers/gpu/drm/openchrome/via_crtc.c index 645e00451d41..08157c9b721a 100644 --- a/drivers/gpu/drm/openchrome/via_crtc.c +++ b/drivers/gpu/drm/openchrome/via_crtc.c @@ -1241,33 +1241,30 @@ via_iga1_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y, struct drm_gem_object *gem_obj = via_fb->gem_obj; int ret = 0; - DRM_DEBUG("Entered via_iga1_crtc_mode_set_base.\n"); + DRM_DEBUG_KMS("Entered %s.\n", __func__); - /* no fb bound */ + /* No FB found. */ if (!new_fb) { - DRM_DEBUG_KMS("No FB bound\n"); - return ret; + ret = -ENOMEM; + DRM_DEBUG_KMS("No FB found.\n"); + goto exit; } - /* No reason to reset the display surface again */ - if (new_fb == old_fb) - return ret; - gem_obj = via_fb->gem_obj; bo = ttm_gem_mapping(gem_obj); ret = via_bo_pin(bo, NULL); if (unlikely(ret)) { - DRM_DEBUG("failed to pin FB\n"); - return ret; + DRM_DEBUG_KMS("Failed to pin FB.\n"); + goto exit; } ret = crtc->helper_private->mode_set_base_atomic(crtc, new_fb, x, y, ENTER_ATOMIC_MODE_SET); if (unlikely(ret)) { - DRM_DEBUG("failed to set new framebuffer\n"); + DRM_DEBUG_KMS("Failed to set a new FB.\n"); via_bo_unpin(bo, NULL); - return ret; + goto exit; } /* Free the old framebuffer if it exist */ @@ -1278,11 +1275,14 @@ via_iga1_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y, bo = ttm_gem_mapping(gem_obj); ret = via_bo_unpin(bo, NULL); - if (unlikely(ret)) - DRM_ERROR("framebuffer still locked\n"); + if (unlikely(ret)) { + DRM_DEBUG_KMS("FB still locked.\n"); + goto exit; + } } - DRM_DEBUG("Exiting via_iga1_crtc_mode_set_base.\n"); +exit: + DRM_DEBUG_KMS("Exiting %s.\n", __func__); return ret; } @@ -1544,7 +1544,7 @@ exit: static int via_iga2_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y, - struct drm_framebuffer *old_fb) + struct drm_framebuffer *old_fb) { struct ttm_buffer_object *bo; struct via_framebuffer *via_fb = @@ -1553,33 +1553,30 @@ via_iga2_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y, struct drm_gem_object *gem_obj = via_fb->gem_obj; int ret = 0; - DRM_DEBUG("Entered via_iga2_crtc_mode_set_base.\n"); + DRM_DEBUG_KMS("Entered %s.\n", __func__); - /* no fb bound */ + /* No FB found. */ if (!new_fb) { - DRM_DEBUG_KMS("No FB bound\n"); - return ret; + ret = -ENOMEM; + DRM_DEBUG_KMS("No FB found.\n"); + goto exit; } - /* No reason to reset the display surface again */ - if (new_fb == old_fb) - return ret; - gem_obj = via_fb->gem_obj; bo = ttm_gem_mapping(gem_obj); ret = via_bo_pin(bo, NULL); if (unlikely(ret)) { - DRM_DEBUG("failed to pin FB\n"); - return ret; + DRM_DEBUG_KMS("Failed to pin FB.\n"); + goto exit; } ret = crtc->helper_private->mode_set_base_atomic(crtc, new_fb, x, y, ENTER_ATOMIC_MODE_SET); if (unlikely(ret)) { - DRM_DEBUG("failed to set new framebuffer\n"); + DRM_DEBUG_KMS("Failed to set a new FB.\n"); via_bo_unpin(bo, NULL); - return ret; + goto exit; } /* Free the old framebuffer if it exist */ @@ -1590,11 +1587,14 @@ via_iga2_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y, bo = ttm_gem_mapping(gem_obj); ret = via_bo_unpin(bo, NULL); - if (unlikely(ret)) - DRM_ERROR("framebuffer still locked\n"); + if (unlikely(ret)) { + DRM_DEBUG_KMS("FB still locked.\n"); + goto exit; + } } - DRM_DEBUG("Exiting via_iga2_crtc_mode_set_base.\n"); +exit: + DRM_DEBUG_KMS("Exiting %s.\n", __func__); return ret; } _______________________________________________ Openchrome-devel mailing list Openchrome-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/openchrome-devel