drm/ttm/agp: export bind/unbind/destroy for drivers to use.
authorDave Airlie <airlied@redhat.com>
Mon, 7 Sep 2020 20:46:21 +0000 (06:46 +1000)
committerDave Airlie <airlied@redhat.com>
Tue, 8 Sep 2020 22:30:01 +0000 (08:30 +1000)
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200907204630.1406528-5-airlied@gmail.com
drivers/gpu/drm/ttm/ttm_agp_backend.c
include/drm/ttm/ttm_tt.h

index 934a6949154782f26b3d9f780c4adbb7f708c3d3..fbf98cd1a3e58e95c056fa8093da265e75bc03b0 100644 (file)
@@ -48,8 +48,8 @@ struct ttm_agp_backend {
        struct agp_bridge_data *bridge;
 };
 
-static int ttm_agp_bind(struct ttm_bo_device *bdev,
-                       struct ttm_tt *ttm, struct ttm_resource *bo_mem)
+int ttm_agp_bind(struct ttm_bo_device *bdev,
+                struct ttm_tt *ttm, struct ttm_resource *bo_mem)
 {
        struct ttm_agp_backend *agp_be = container_of(ttm, struct ttm_agp_backend, ttm);
        struct page *dummy_read_page = ttm_bo_glob.dummy_read_page;
@@ -82,9 +82,10 @@ static int ttm_agp_bind(struct ttm_bo_device *bdev,
 
        return ret;
 }
+EXPORT_SYMBOL(ttm_agp_bind);
 
-static void ttm_agp_unbind(struct ttm_bo_device *bdev,
-                          struct ttm_tt *ttm)
+void ttm_agp_unbind(struct ttm_bo_device *bdev,
+                   struct ttm_tt *ttm)
 {
        struct ttm_agp_backend *agp_be = container_of(ttm, struct ttm_agp_backend, ttm);
 
@@ -97,9 +98,10 @@ static void ttm_agp_unbind(struct ttm_bo_device *bdev,
                agp_be->mem = NULL;
        }
 }
+EXPORT_SYMBOL(ttm_agp_unbind);
 
-static void ttm_agp_destroy(struct ttm_bo_device *bdev,
-                           struct ttm_tt *ttm)
+void ttm_agp_destroy(struct ttm_bo_device *bdev,
+                    struct ttm_tt *ttm)
 {
        struct ttm_agp_backend *agp_be = container_of(ttm, struct ttm_agp_backend, ttm);
 
@@ -108,6 +110,7 @@ static void ttm_agp_destroy(struct ttm_bo_device *bdev,
        ttm_tt_fini(ttm);
        kfree(agp_be);
 }
+EXPORT_SYMBOL(ttm_agp_destroy);
 
 static struct ttm_backend_func ttm_agp_func = {
        .bind = ttm_agp_bind,
index 6bda88f8da46a2f425bf41c596a129b6be24fb57..5a34f164086554e452959daef9b204a084d070b8 100644 (file)
@@ -266,6 +266,12 @@ struct ttm_tt *ttm_agp_tt_create(struct ttm_buffer_object *bo,
                                 uint32_t page_flags);
 int ttm_agp_tt_populate(struct ttm_bo_device *bdev, struct ttm_tt *ttm, struct ttm_operation_ctx *ctx);
 void ttm_agp_tt_unpopulate(struct ttm_bo_device *bdev, struct ttm_tt *ttm);
+int ttm_agp_bind(struct ttm_bo_device *bdev,
+                struct ttm_tt *ttm, struct ttm_resource *bo_mem);
+void ttm_agp_unbind(struct ttm_bo_device *bdev,
+                   struct ttm_tt *ttm);
+void ttm_agp_destroy(struct ttm_bo_device *bdev,
+                    struct ttm_tt *ttm);
 #endif
 
 #endif