[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