[Openchrome-devel] drm-openchrome: Branch 'drm-next-3.19' - 5 commits - drivers/gpu/drm

Kevin Brace kevinbrace at kemper.freedesktop.org
Thu Aug 31 21:11:49 UTC 2017


 drivers/gpu/drm/openchrome/ttm_gem.c  |   12 ++---
 drivers/gpu/drm/openchrome/via_crtc.c |   72 +++++++++++++++++-----------------
 drivers/gpu/drm/openchrome/via_fb.c   |    2 
 drivers/gpu/drm/openchrome/via_fp.c   |    3 -
 4 files changed, 42 insertions(+), 47 deletions(-)

New commits:
commit 27184de6aa6127544193ad1577cf772ce82f6c4c
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Thu Aug 31 14:10:51 2017 -0700

    Error handling improvements to *mode_set_base callbacks
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/via_crtc.c b/drivers/gpu/drm/openchrome/via_crtc.c
index 96eb17da3b2f..f167df911f9e 100644
--- a/drivers/gpu/drm/openchrome/via_crtc.c
+++ b/drivers/gpu/drm/openchrome/via_crtc.c
@@ -1226,9 +1226,9 @@ exit:
     return ret;
 }
 
-static int
-via_iga1_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y,
-                        struct drm_framebuffer *old_fb)
+static int via_iga1_crtc_mode_set_base(struct drm_crtc *crtc,
+                                        int x, int y,
+                                        struct drm_framebuffer *old_fb)
 {
     struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private;
     struct ttm_buffer_object *bo;
@@ -1238,33 +1238,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_funcs->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 */
@@ -1275,11 +1272,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;
 }
 
@@ -1545,9 +1545,9 @@ exit:
     return ret;
 }
 
-static int
-via_iga2_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y,
-                        struct drm_framebuffer *old_fb)
+static int via_iga2_crtc_mode_set_base(struct drm_crtc *crtc,
+                                        int x, int y,
+                                        struct drm_framebuffer *old_fb)
 {
     struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private;
     struct ttm_buffer_object *bo;
@@ -1557,33 +1557,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_funcs->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 */
@@ -1594,11 +1591,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;
 }
 
commit 75ae4ecffaddac0f783a1add46370ef601c5996f
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Thu Aug 31 13:13:34 2017 -0700

    Remove unused variables from via_lcd_set_property()
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/via_fp.c b/drivers/gpu/drm/openchrome/via_fp.c
index 1b009fbb607f..79686a085634 100644
--- a/drivers/gpu/drm/openchrome/via_fp.c
+++ b/drivers/gpu/drm/openchrome/via_fp.c
@@ -801,10 +801,7 @@ static int
 via_lcd_set_property(struct drm_connector *connector,
 			struct drm_property *property, uint64_t value)
 {
-	struct via_connector *con = container_of(connector, struct via_connector, base);
-	struct via_device *dev_priv = connector->dev->dev_private;
 	struct drm_device *dev = connector->dev;
-	struct drm_property *prop;
 	uint64_t orig;
 	int ret;
 
commit 9b8d7ffe48c9c748ff773f4994c1056c88b4cfa8
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Aug 30 20:37:12 2017 -0700

    Alter kzalloc input parameter inside via_user_framebuffer_create
    
    Might be meaningless, but I prefer it this way.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/via_fb.c b/drivers/gpu/drm/openchrome/via_fb.c
index 3b3cec909853..81dff36cde21 100644
--- a/drivers/gpu/drm/openchrome/via_fb.c
+++ b/drivers/gpu/drm/openchrome/via_fb.c
@@ -967,7 +967,7 @@ via_user_framebuffer_create(struct drm_device *dev,
 		return ERR_PTR(-ENOENT);
 	}
 
-	via_fb = kzalloc(sizeof(*via_fb), GFP_KERNEL);
+	via_fb = kzalloc(sizeof(struct via_framebuffer), GFP_KERNEL);
 	if (!via_fb) {
 		return ERR_PTR(-ENOMEM);
 	}
commit 9962fbf646d67e1ec9bed5099f451cbfe13ca671
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Aug 30 20:32:13 2017 -0700

    Alter kzalloc input parameter inside ttm_gem_create
    
    Might be meaningless, but I prefer it this way.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/ttm_gem.c b/drivers/gpu/drm/openchrome/ttm_gem.c
index c0320f160b7d..d4179dd16f57 100644
--- a/drivers/gpu/drm/openchrome/ttm_gem.c
+++ b/drivers/gpu/drm/openchrome/ttm_gem.c
@@ -92,7 +92,7 @@ ttm_gem_create(struct drm_device *dev,
 	struct ttm_gem_object *obj;
 	int ret;
 
-	obj = kzalloc(sizeof(*obj), GFP_KERNEL);
+	obj = kzalloc(sizeof(struct ttm_gem_object), GFP_KERNEL);
 	if (!obj) {
 		return ERR_PTR(-ENOMEM);
 	}
commit 5fa7a21c781bc7b678276d51173031f3934cc062
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Aug 30 20:30:22 2017 -0700

    Allocate GEMified TTM object before TTM heap allocation
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/ttm_gem.c b/drivers/gpu/drm/openchrome/ttm_gem.c
index 971fadc1435e..c0320f160b7d 100644
--- a/drivers/gpu/drm/openchrome/ttm_gem.c
+++ b/drivers/gpu/drm/openchrome/ttm_gem.c
@@ -92,9 +92,13 @@ ttm_gem_create(struct drm_device *dev,
 	struct ttm_gem_object *obj;
 	int ret;
 
+	obj = kzalloc(sizeof(*obj), GFP_KERNEL);
+	if (!obj) {
+		return ERR_PTR(-ENOMEM);
+	}
+
 	size = round_up(size, byte_alignment);
 	size = ALIGN(size, page_alignment);
-
 	ret = via_bo_create(bdev, &bo, size, type, domains,
 				byte_alignment, page_alignment,
 				interruptible, NULL, NULL);
@@ -103,12 +107,6 @@ ttm_gem_create(struct drm_device *dev,
 		return ERR_PTR(ret);
 	}
 
-	obj = kzalloc(sizeof(*obj), GFP_KERNEL);
-	if (!obj) {
-		ttm_bo_unref(&bo);
-		return ERR_PTR(-ENOMEM);
-	}
-
 	ret = drm_gem_object_init(dev, &obj->gem, size);
 	if (unlikely(ret)) {
 		ttm_bo_unref(&bo);


More information about the Openchrome-devel mailing list