[openchrome-devel] drm-openchrome: Branch 'drm-next-5.11' - 15 commits - drivers/gpu/drm

Kevin Brace kevinbrace at kemper.freedesktop.org
Wed Mar 31 18:25:35 UTC 2021


 drivers/gpu/drm/openchrome/openchrome_crtc.c   |    6 +-
 drivers/gpu/drm/openchrome/openchrome_cursor.c |    2 
 drivers/gpu/drm/openchrome/openchrome_drv.h    |    8 +-
 drivers/gpu/drm/openchrome/openchrome_object.c |   73 ++++++++++---------------
 drivers/gpu/drm/openchrome/openchrome_ttm.c    |   55 +++++++++++++++---
 5 files changed, 83 insertions(+), 61 deletions(-)

New commits:
commit 23f0f21fd31202eaa0547e6975b24e2c703952e0
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Mar 31 11:23:54 2021 -0700

    drm/openchrome: Version bumped to 3.4.6
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_drv.h b/drivers/gpu/drm/openchrome/openchrome_drv.h
index 425f694b856d..2aef42d5227c 100644
--- a/drivers/gpu/drm/openchrome/openchrome_drv.h
+++ b/drivers/gpu/drm/openchrome/openchrome_drv.h
@@ -61,10 +61,10 @@
 
 #define DRIVER_MAJOR		3
 #define DRIVER_MINOR		4
-#define DRIVER_PATCHLEVEL	5
+#define DRIVER_PATCHLEVEL	6
 #define DRIVER_NAME		"openchrome"
 #define DRIVER_DESC		"OpenChrome DRM for VIA Technologies Chrome IGP"
-#define DRIVER_DATE		"20201127"
+#define DRIVER_DATE		"20210331"
 #define DRIVER_AUTHOR		"OpenChrome Project"
 
 
commit 143b85c040455fe775bbedcd96140ddf2ff4f0ec
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Mar 31 11:20:51 2021 -0700

    drm/ttm: wire up the new pool as default one v2
    
    Based on commit ee5d2a8 (drm/ttm: wire up the new pool as default one v2).
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_object.c b/drivers/gpu/drm/openchrome/openchrome_object.c
index 7130bfe115b2..6c2404caaa0a 100644
--- a/drivers/gpu/drm/openchrome/openchrome_object.c
+++ b/drivers/gpu/drm/openchrome/openchrome_object.c
@@ -270,8 +270,10 @@ int openchrome_mm_init(struct openchrome_drm_private *dev_private)
 	 */
 	ret = ttm_bo_device_init(&dev_private->bdev,
 				&openchrome_bo_driver,
+				dev->dev,
 				dev->anon_inode->i_mapping,
 				dev->vma_offset_manager,
+				false,
 				dev_private->need_dma32);
 	if (ret) {
 		DRM_ERROR("Failed initializing buffer object driver.\n");
commit 7bf5efbecec1271225976a16e86e9cf45eed59bf
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Mar 31 11:20:37 2021 -0700

    drm/ttm: replace last move_notify with delete_mem_notify
    
    Based on commit 6a6e598 (drm/ttm: replace last move_notify with
    delete_mem_notify).
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_ttm.c b/drivers/gpu/drm/openchrome/openchrome_ttm.c
index b4b5b23c34e7..fd2ebda4ce65 100644
--- a/drivers/gpu/drm/openchrome/openchrome_ttm.c
+++ b/drivers/gpu/drm/openchrome/openchrome_ttm.c
@@ -42,10 +42,16 @@
 
 #include "openchrome_drv.h"
 
+
 static void openchrome_bo_move_notify(struct ttm_buffer_object *bo,
 					bool evict,
-					struct ttm_resource *new_mem);
+					struct ttm_resource *new_mem)
+{
+	DRM_DEBUG_KMS("Entered %s.\n", __func__);
 
+	DRM_DEBUG_KMS("Exiting %s.\n", __func__);
+	return;
+}
 
 static struct ttm_tt *openchrome_ttm_tt_create(
 					struct ttm_buffer_object *bo,
@@ -136,12 +142,12 @@ static int openchrome_bo_verify_access(struct ttm_buffer_object *bo,
 	return 0;
 }
 
-static void openchrome_bo_move_notify(struct ttm_buffer_object *bo,
-					bool evict,
-					struct ttm_resource *new_mem)
+static void openchrome_bo_delete_mem_notify(struct ttm_buffer_object *bo)
 {
 	DRM_DEBUG_KMS("Entered %s.\n", __func__);
 
+	openchrome_bo_move_notify(bo, false, NULL);
+
 	DRM_DEBUG_KMS("Exiting %s.\n", __func__);
 	return;
 }
@@ -179,6 +185,6 @@ struct ttm_bo_driver openchrome_bo_driver = {
 	.evict_flags = openchrome_bo_evict_flags,
 	.move = openchrome_bo_move,
 	.verify_access = openchrome_bo_verify_access,
-	.move_notify = openchrome_bo_move_notify,
+	.delete_mem_notify = openchrome_bo_delete_mem_notify,
 	.io_mem_reserve = openchrome_bo_io_mem_reserve,
 };
commit 2e39bc5c853b81610319326e88461b2e3e76953e
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Mar 31 11:20:23 2021 -0700

    drm/ttm: drop move notify around move.
    
    Based on commit 6d82000 (drm/ttm: drop move notify around move.).
    Add openchrome_bo_move_notify() where it did not used to exist.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_ttm.c b/drivers/gpu/drm/openchrome/openchrome_ttm.c
index 06326da99be1..b4b5b23c34e7 100644
--- a/drivers/gpu/drm/openchrome/openchrome_ttm.c
+++ b/drivers/gpu/drm/openchrome/openchrome_ttm.c
@@ -42,6 +42,10 @@
 
 #include "openchrome_drv.h"
 
+static void openchrome_bo_move_notify(struct ttm_buffer_object *bo,
+					bool evict,
+					struct ttm_resource *new_mem);
+
 
 static struct ttm_tt *openchrome_ttm_tt_create(
 					struct ttm_buffer_object *bo,
@@ -111,7 +115,13 @@ static int openchrome_bo_move(struct ttm_buffer_object *bo,
 
 	DRM_DEBUG_KMS("Entered %s.\n", __func__);
 
+	openchrome_bo_move_notify(bo, evict, new_mem);
 	ret = ttm_bo_move_memcpy(bo, ctx, new_mem);
+	if (ret) {
+		swap(*new_mem, bo->mem);
+		openchrome_bo_move_notify(bo, false, new_mem);
+		swap(*new_mem, bo->mem);
+	}
 
 	DRM_DEBUG_KMS("Exiting %s.\n", __func__);
 	return ret;
@@ -126,6 +136,16 @@ static int openchrome_bo_verify_access(struct ttm_buffer_object *bo,
 	return 0;
 }
 
+static void openchrome_bo_move_notify(struct ttm_buffer_object *bo,
+					bool evict,
+					struct ttm_resource *new_mem)
+{
+	DRM_DEBUG_KMS("Entered %s.\n", __func__);
+
+	DRM_DEBUG_KMS("Exiting %s.\n", __func__);
+	return;
+}
+
 static int openchrome_bo_io_mem_reserve(struct ttm_bo_device *bdev,
 					struct ttm_resource *mem)
 {
@@ -159,5 +179,6 @@ struct ttm_bo_driver openchrome_bo_driver = {
 	.evict_flags = openchrome_bo_evict_flags,
 	.move = openchrome_bo_move,
 	.verify_access = openchrome_bo_verify_access,
+	.move_notify = openchrome_bo_move_notify,
 	.io_mem_reserve = openchrome_bo_io_mem_reserve,
 };
commit db5078ad4d74387fad79a804d3f689a7d288322c
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Mar 31 11:19:52 2021 -0700

    drm/atomic: Pass the full state to CRTC atomic enable/disable
    
    Based on commit 351f950 (drm/atomic: Pass the full state to CRTC atomic
    enable/disable).
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_crtc.c b/drivers/gpu/drm/openchrome/openchrome_crtc.c
index 1dfabf3b3aad..e309039f8210 100644
--- a/drivers/gpu/drm/openchrome/openchrome_crtc.c
+++ b/drivers/gpu/drm/openchrome/openchrome_crtc.c
@@ -1785,7 +1785,7 @@ exit:
 }
 
 static void openchrome_crtc_helper_atomic_enable(struct drm_crtc *crtc,
-					struct drm_crtc_state *old_crtc_state)
+					struct drm_atomic_state *state)
 {
 	struct openchrome_drm_private *dev_private =
 						crtc->dev->dev_private;
@@ -1804,7 +1804,7 @@ static void openchrome_crtc_helper_atomic_enable(struct drm_crtc *crtc,
 }
 
 static void openchrome_crtc_helper_atomic_disable(struct drm_crtc *crtc,
-					struct drm_crtc_state *old_crtc_state)
+					struct drm_atomic_state *state)
 {
 	struct openchrome_drm_private *dev_private =
 						crtc->dev->dev_private;
commit 4ec028be1fc05099026255304a5a68178fa3c6c5
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Mar 31 11:19:40 2021 -0700

    drm/openchrome: implement a ttm move callback.
    
    Based on commit 2b8283f (drm/vram_helper: implement a ttm move callback.).
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_ttm.c b/drivers/gpu/drm/openchrome/openchrome_ttm.c
index 095fde063fb4..06326da99be1 100644
--- a/drivers/gpu/drm/openchrome/openchrome_ttm.c
+++ b/drivers/gpu/drm/openchrome/openchrome_ttm.c
@@ -101,6 +101,22 @@ exit:
 	DRM_DEBUG_KMS("Exiting %s.\n", __func__);
 }
 
+static int openchrome_bo_move(struct ttm_buffer_object *bo,
+				bool evict,
+				struct ttm_operation_ctx *ctx,
+				struct ttm_resource *new_mem,
+				struct ttm_place *hop)
+{
+	int ret;
+
+	DRM_DEBUG_KMS("Entered %s.\n", __func__);
+
+	ret = ttm_bo_move_memcpy(bo, ctx, new_mem);
+
+	DRM_DEBUG_KMS("Exiting %s.\n", __func__);
+	return ret;
+}
+
 static int openchrome_bo_verify_access(struct ttm_buffer_object *bo,
 					struct file *filp)
 {
@@ -141,6 +157,7 @@ struct ttm_bo_driver openchrome_bo_driver = {
 	.ttm_tt_destroy = openchrome_ttm_tt_destroy,
 	.eviction_valuable = ttm_bo_eviction_valuable,
 	.evict_flags = openchrome_bo_evict_flags,
+	.move = openchrome_bo_move,
 	.verify_access = openchrome_bo_verify_access,
 	.io_mem_reserve = openchrome_bo_io_mem_reserve,
 };
commit ee9fe4598d89847edf844235b597ef59644cf046
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Mar 31 11:19:20 2021 -0700

    drm/ttm: nuke caching placement flags
    
    Based on commit ce65b87 (drm/ttm: nuke caching placement flags).
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_object.c b/drivers/gpu/drm/openchrome/openchrome_object.c
index 857ceba30bf9..7130bfe115b2 100644
--- a/drivers/gpu/drm/openchrome/openchrome_object.c
+++ b/drivers/gpu/drm/openchrome/openchrome_object.c
@@ -71,7 +71,7 @@ void openchrome_ttm_domain_to_placement(struct openchrome_bo *bo,
 		bo->placements[i].fpfn = 0;
 		bo->placements[i].lpfn = 0;
 		bo->placements[i].mem_type = TTM_PL_SYSTEM;
-		bo->placements[i].flags = TTM_PL_FLAG_CACHED;
+		bo->placements[i].flags = 0;
 		i++;
 	}
 
@@ -79,7 +79,7 @@ void openchrome_ttm_domain_to_placement(struct openchrome_bo *bo,
 		bo->placements[i].fpfn = 0;
 		bo->placements[i].lpfn = 0;
 		bo->placements[i].mem_type = TTM_PL_TT;
-		bo->placements[i].flags = TTM_PL_FLAG_CACHED;
+		bo->placements[i].flags = 0;
 		i++;
 	}
 
@@ -87,8 +87,7 @@ void openchrome_ttm_domain_to_placement(struct openchrome_bo *bo,
 		bo->placements[i].fpfn = 0;
 		bo->placements[i].lpfn = 0;
 		bo->placements[i].mem_type = TTM_PL_VRAM;
-		bo->placements[i].flags = TTM_PL_FLAG_WC |
-						TTM_PL_FLAG_UNCACHED;
+		bo->placements[i].flags = 0;
 		i++;
 	}
 
commit 2f1ecd8b4532a4e3cca6c293f70331cdd0885dbc
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Mar 31 11:18:53 2021 -0700

    drm/ttm: set the tt caching state at creation time
    
    Based on commit 1b4ea4c (drm/ttm: set the tt caching state at creation
    time).
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_ttm.c b/drivers/gpu/drm/openchrome/openchrome_ttm.c
index d06f0f9bec4f..095fde063fb4 100644
--- a/drivers/gpu/drm/openchrome/openchrome_ttm.c
+++ b/drivers/gpu/drm/openchrome/openchrome_ttm.c
@@ -54,7 +54,7 @@ static struct ttm_tt *openchrome_ttm_tt_create(
 	if (!tt)
 		return NULL;
 
-	ret = ttm_tt_init(tt, bo, page_flags);
+	ret = ttm_tt_init(tt, bo, page_flags, ttm_cached);
 	if (ret < 0)
 		goto err_ttm_tt_init;
 
commit 5e4389aad32f568120a9627f0cc9d7b405a4286b
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Mar 31 11:18:22 2021 -0700

    drm/openchrome: Introduce GEM object functions
    
    The commit is similar to commit ed853f6 (drm/nouveau: Introduce GEM
    object functions).
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_object.c b/drivers/gpu/drm/openchrome/openchrome_object.c
index 63c7b0de29da..857ceba30bf9 100644
--- a/drivers/gpu/drm/openchrome/openchrome_object.c
+++ b/drivers/gpu/drm/openchrome/openchrome_object.c
@@ -41,6 +41,22 @@
 #include "openchrome_drv.h"
 
 
+static void openchrome_gem_free(struct drm_gem_object *obj)
+{
+	struct openchrome_bo *bo = container_of(obj,
+					struct openchrome_bo, gem);
+
+	DRM_DEBUG_KMS("Entered %s.\n", __func__);
+
+	ttm_bo_put(&bo->ttm_bo);
+
+	DRM_DEBUG_KMS("Exiting %s.\n", __func__);
+}
+
+static const struct drm_gem_object_funcs openchrome_gem_object_funcs = {
+	.free = openchrome_gem_free,
+};
+
 void openchrome_ttm_domain_to_placement(struct openchrome_bo *bo,
 					uint32_t ttm_domain)
 {
@@ -166,6 +182,8 @@ int openchrome_bo_create(struct drm_device *dev,
 		goto error;
 	}
 
+	bo->gem.funcs = &openchrome_gem_object_funcs;
+
 	openchrome_ttm_domain_to_placement(bo, ttm_domain);
 	acc_size = ttm_bo_dma_acc_size(&dev_private->bdev, size,
 					sizeof(struct openchrome_bo));
commit 49276ae047e806ca1d34b168045765459c89280d
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Mar 31 11:17:43 2021 -0700

    drm/openchrome: switch over to the new pin interface
    
    Based on commit 0b8793f (drm/radeon: switch over to the new pin
    interface).
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_crtc.c b/drivers/gpu/drm/openchrome/openchrome_crtc.c
index 0ad8e1ef281c..1dfabf3b3aad 100644
--- a/drivers/gpu/drm/openchrome/openchrome_crtc.c
+++ b/drivers/gpu/drm/openchrome/openchrome_crtc.c
@@ -2003,7 +2003,7 @@ static void openchrome_primary_cleanup_fb(struct drm_plane *plane,
 		goto exit;
 	}
 
-	ret = openchrome_bo_unpin(bo);
+	openchrome_bo_unpin(bo);
 	ttm_bo_unreserve(&bo->ttm_bo);
 exit:
 	DRM_DEBUG_KMS("Exiting %s.\n", __func__);
diff --git a/drivers/gpu/drm/openchrome/openchrome_cursor.c b/drivers/gpu/drm/openchrome/openchrome_cursor.c
index f44b16aa85f8..8a453b6aecaf 100644
--- a/drivers/gpu/drm/openchrome/openchrome_cursor.c
+++ b/drivers/gpu/drm/openchrome/openchrome_cursor.c
@@ -312,7 +312,7 @@ static void openchrome_cursor_cleanup_fb(struct drm_plane *plane,
 		goto exit;
 	}
 
-	ret = openchrome_bo_unpin(bo);
+	openchrome_bo_unpin(bo);
 	ttm_bo_unreserve(&bo->ttm_bo);
 
 exit:
diff --git a/drivers/gpu/drm/openchrome/openchrome_drv.h b/drivers/gpu/drm/openchrome/openchrome_drv.h
index 01ab292eda22..425f694b856d 100644
--- a/drivers/gpu/drm/openchrome/openchrome_drv.h
+++ b/drivers/gpu/drm/openchrome/openchrome_drv.h
@@ -196,7 +196,6 @@ struct openchrome_bo {
 	struct ttm_placement		placement;
 	struct ttm_place		placements[OPENCHROME_TTM_PL_NUM];
 	struct drm_gem_object		gem;
-	int	pin_count;
 };
 
 struct openchrome_framebuffer {
@@ -395,7 +394,7 @@ void openchrome_ttm_domain_to_placement(struct openchrome_bo *bo,
 					uint32_t ttm_domain);
 void openchrome_ttm_bo_destroy(struct ttm_buffer_object *tbo);
 int openchrome_bo_pin(struct openchrome_bo *bo, uint32_t ttm_domain);
-int openchrome_bo_unpin(struct openchrome_bo *bo);
+void openchrome_bo_unpin(struct openchrome_bo *bo);
 int openchrome_bo_create(struct drm_device *dev,
 				struct ttm_bo_device *bdev,
 				uint64_t size,
diff --git a/drivers/gpu/drm/openchrome/openchrome_object.c b/drivers/gpu/drm/openchrome/openchrome_object.c
index 3c8be1ca3587..63c7b0de29da 100644
--- a/drivers/gpu/drm/openchrome/openchrome_object.c
+++ b/drivers/gpu/drm/openchrome/openchrome_object.c
@@ -99,59 +99,35 @@ int openchrome_bo_pin(struct openchrome_bo *bo,
 			uint32_t ttm_domain)
 {
 	struct ttm_operation_ctx ctx = {false, false};
-	uint32_t i;
 	int ret = 0;
 
 	DRM_DEBUG_KMS("Entered %s.\n", __func__);
 
-	if (bo->pin_count) {
-		bo->pin_count++;
-		goto exit;
+	if (bo->ttm_bo.pin_count) {
+		goto pin;
 	}
 
 	openchrome_ttm_domain_to_placement(bo, ttm_domain);
-	for (i = 0; i < bo->placement.num_placement; i++) {
-		bo->placements[i].flags |= TTM_PL_FLAG_NO_EVICT;
-	}
-
 	ret = ttm_bo_validate(&bo->ttm_bo, &bo->placement, &ctx);
 	if (ret) {
 		goto exit;
 	}
 
-	bo->pin_count++;
+pin:
+	ttm_bo_pin(&bo->ttm_bo);
 exit:
 
 	DRM_DEBUG_KMS("Exiting %s.\n", __func__);
 	return ret;
 }
 
-int openchrome_bo_unpin(struct openchrome_bo *bo)
+void openchrome_bo_unpin(struct openchrome_bo *bo)
 {
-	struct ttm_operation_ctx ctx = {false, false};
-	uint32_t i;
-	int ret = 0;
-
 	DRM_DEBUG_KMS("Entered %s.\n", __func__);
 
-	if (!bo->pin_count) {
-		DRM_ERROR("Bad unpin.\n");
-		goto exit;
-	}
-
-	bo->pin_count--;
-	if (bo->pin_count) {
-		goto exit;
-	}
-
-	for (i = 0; i < bo->placement.num_placement; i++) {
-		bo->placements[i].flags &= ~TTM_PL_FLAG_NO_EVICT;
-	}
+	ttm_bo_unpin(&bo->ttm_bo);
 
-	ret = ttm_bo_validate(&bo->ttm_bo, &bo->placement, &ctx);
-exit:
 	DRM_DEBUG_KMS("Exiting %s.\n", __func__);
-	return ret;
 }
 
 int openchrome_bo_create(struct drm_device *dev,
@@ -253,7 +229,7 @@ void openchrome_bo_destroy(struct openchrome_bo *bo, bool kmap)
 			goto exit;
 		}
 
-		ret = openchrome_bo_unpin(bo);
+		openchrome_bo_unpin(bo);
 		ttm_bo_unreserve(&bo->ttm_bo);
 		if (ret) {
 			goto exit;
commit ab1fc8f2411aad03546cbd299dab2feda18a0fe2
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Mar 31 11:17:25 2021 -0700

    drm/openchrome: Prevent double calling of ttm_bo_put()
    
    openchrome_bo_create() sets up openchrome_ttm_bo_destroy() for
    releasing resources allocated by openchrome_bo_create().  When
    ttm_bo_put() is called for releasing BO allocated by
    openchrome_bo_create(), the current implementation of
    openchrome_ttm_bo_destroy() is calling ttm_bo_put() again.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_object.c b/drivers/gpu/drm/openchrome/openchrome_object.c
index bf084acf2bb1..3c8be1ca3587 100644
--- a/drivers/gpu/drm/openchrome/openchrome_object.c
+++ b/drivers/gpu/drm/openchrome/openchrome_object.c
@@ -90,7 +90,6 @@ void openchrome_ttm_bo_destroy(struct ttm_buffer_object *tbo)
 	DRM_DEBUG_KMS("Entered %s.\n", __func__);
 
 	drm_gem_object_release(&bo->gem);
-	ttm_bo_put(&bo->ttm_bo);
 	kfree(bo);
 
 	DRM_DEBUG_KMS("Exiting %s.\n", __func__);
commit f3cf0d22260b00d59e95fc743a60422110393bc4
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Mar 31 11:17:10 2021 -0700

    drm/openchrome: Stop the use of openchrome_bo_io_mem_free()
    
    openchrome_bo_io_mem_free() implements io_mem_free() callback of
    ttm_bo_driver struct.  The registered member function does absolutely
    nothing, so it should not be there at all.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_ttm.c b/drivers/gpu/drm/openchrome/openchrome_ttm.c
index 0ddb24828357..d06f0f9bec4f 100644
--- a/drivers/gpu/drm/openchrome/openchrome_ttm.c
+++ b/drivers/gpu/drm/openchrome/openchrome_ttm.c
@@ -136,14 +136,6 @@ static int openchrome_bo_io_mem_reserve(struct ttm_bo_device *bdev,
 	return ret;
 }
 
-static void openchrome_bo_io_mem_free(struct ttm_bo_device *bdev,
-					struct ttm_resource *mem)
-{
-	DRM_DEBUG_KMS("Entered %s.\n", __func__);
-
-	DRM_DEBUG_KMS("Exiting %s.\n", __func__);
-}
-
 struct ttm_bo_driver openchrome_bo_driver = {
 	.ttm_tt_create = openchrome_ttm_tt_create,
 	.ttm_tt_destroy = openchrome_ttm_tt_destroy,
@@ -151,5 +143,4 @@ struct ttm_bo_driver openchrome_bo_driver = {
 	.evict_flags = openchrome_bo_evict_flags,
 	.verify_access = openchrome_bo_verify_access,
 	.io_mem_reserve = openchrome_bo_io_mem_reserve,
-	.io_mem_free = openchrome_bo_io_mem_free,
 };
commit 38a81a2d5eee0b4de3ac71b8242a73306738eee9
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Mar 31 11:16:54 2021 -0700

    drm/openchrome: switch to gem vma offset manager
    
    Based on commit 8b53e1c (drm/radeon: switch to gem vma offset manager).
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_object.c b/drivers/gpu/drm/openchrome/openchrome_object.c
index e397ae10070c..bf084acf2bb1 100644
--- a/drivers/gpu/drm/openchrome/openchrome_object.c
+++ b/drivers/gpu/drm/openchrome/openchrome_object.c
@@ -279,7 +279,7 @@ int openchrome_mm_init(struct openchrome_drm_private *dev_private)
 	ret = ttm_bo_device_init(&dev_private->bdev,
 				&openchrome_bo_driver,
 				dev->anon_inode->i_mapping,
-				NULL,
+				dev->vma_offset_manager,
 				dev_private->need_dma32);
 	if (ret) {
 		DRM_ERROR("Failed initializing buffer object driver.\n");
commit 1ecc0894676b525f197f3d930b644c2b893d2465
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Mar 31 11:16:31 2021 -0700

    drm/ttm: turn ttm_bo_device.vma_manager into a pointer
    
    Based on commit 9d6f448 (drm/ttm: turn ttm_bo_device.vma_manager into
    a pointer).
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_object.c b/drivers/gpu/drm/openchrome/openchrome_object.c
index a6750396cf05..e397ae10070c 100644
--- a/drivers/gpu/drm/openchrome/openchrome_object.c
+++ b/drivers/gpu/drm/openchrome/openchrome_object.c
@@ -279,6 +279,7 @@ int openchrome_mm_init(struct openchrome_drm_private *dev_private)
 	ret = ttm_bo_device_init(&dev_private->bdev,
 				&openchrome_bo_driver,
 				dev->anon_inode->i_mapping,
+				NULL,
 				dev_private->need_dma32);
 	if (ret) {
 		DRM_ERROR("Failed initializing buffer object driver.\n");
commit 3d98a30977d1de975ad1d812cb2d817a3f7a9d23
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Mar 31 11:16:06 2021 -0700

    Revert "drm/openchrome: switch to own vma manager"
    
    This reverts commit 536f622d1ae3947c2d092fcf38a48aa33922cab2.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_drv.h b/drivers/gpu/drm/openchrome/openchrome_drv.h
index ef10750d9999..01ab292eda22 100644
--- a/drivers/gpu/drm/openchrome/openchrome_drv.h
+++ b/drivers/gpu/drm/openchrome/openchrome_drv.h
@@ -216,7 +216,6 @@ struct openchrome_drm_private {
 	struct drm_device *dev;
 
 	struct ttm_bo_device		bdev;
-	struct drm_vma_offset_manager	vma_manager;
 
 	/* Set this flag for ttm_bo_device_init. */
 	bool need_dma32;
diff --git a/drivers/gpu/drm/openchrome/openchrome_object.c b/drivers/gpu/drm/openchrome/openchrome_object.c
index ec78df8a3c44..a6750396cf05 100644
--- a/drivers/gpu/drm/openchrome/openchrome_object.c
+++ b/drivers/gpu/drm/openchrome/openchrome_object.c
@@ -273,17 +273,12 @@ int openchrome_mm_init(struct openchrome_drm_private *dev_private)
 
 	DRM_DEBUG_KMS("Entered %s.\n", __func__);
 
-	drm_vma_offset_manager_init(&dev_private->vma_manager,
-					DRM_FILE_PAGE_OFFSET_START,
-					DRM_FILE_PAGE_OFFSET_SIZE);
-
 	/*
 	 * Initialize bdev ttm_bo_device struct.
 	 */
 	ret = ttm_bo_device_init(&dev_private->bdev,
 				&openchrome_bo_driver,
 				dev->anon_inode->i_mapping,
-				&dev_private->vma_manager,
 				dev_private->need_dma32);
 	if (ret) {
 		DRM_ERROR("Failed initializing buffer object driver.\n");
@@ -313,7 +308,6 @@ void openchrome_mm_fini(struct openchrome_drm_private *dev_private)
 	ttm_range_man_fini(&dev_private->bdev, TTM_PL_VRAM);
 
 	ttm_bo_device_release(&dev_private->bdev);
-	drm_vma_offset_manager_destroy(&dev_private->vma_manager);
 
 	DRM_DEBUG_KMS("Exiting %s.\n", __func__);
 }


More information about the openchrome-devel mailing list