87 lines
2.6 KiB
Diff
87 lines
2.6 KiB
Diff
From b538d2921b8aaaa1d7abf1bf0ba3ab9330b0b0c8 Mon Sep 17 00:00:00 2001
|
|
From: Dave Airlie <airlied@gmail.com>
|
|
Date: Tue, 22 Jan 2013 13:56:04 +1000
|
|
Subject: [PATCH 1/2] ttm: export functions to allow qxl do its own iomapping
|
|
|
|
qxl wants to use io mapping like i915 gem does, for now
|
|
just export the symbols so the driver can implement atomic
|
|
page maps using io mapping.
|
|
|
|
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
---
|
|
drivers/gpu/drm/ttm/ttm_bo_util.c | 13 +++++++++----
|
|
include/drm/ttm/ttm_bo_driver.h | 4 ++++
|
|
2 files changed, 13 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c
|
|
index 44420fc..aaf6f47 100644
|
|
--- a/drivers/gpu/drm/ttm/ttm_bo_util.c
|
|
+++ b/drivers/gpu/drm/ttm/ttm_bo_util.c
|
|
@@ -86,6 +86,7 @@ int ttm_mem_io_lock(struct ttm_mem_type_manager *man, bool interruptible)
|
|
mutex_lock(&man->io_reserve_mutex);
|
|
return 0;
|
|
}
|
|
+EXPORT_SYMBOL(ttm_mem_io_lock);
|
|
|
|
void ttm_mem_io_unlock(struct ttm_mem_type_manager *man)
|
|
{
|
|
@@ -94,6 +95,7 @@ void ttm_mem_io_unlock(struct ttm_mem_type_manager *man)
|
|
|
|
mutex_unlock(&man->io_reserve_mutex);
|
|
}
|
|
+EXPORT_SYMBOL(ttm_mem_io_unlock);
|
|
|
|
static int ttm_mem_io_evict(struct ttm_mem_type_manager *man)
|
|
{
|
|
@@ -111,8 +113,9 @@ static int ttm_mem_io_evict(struct ttm_mem_type_manager *man)
|
|
return 0;
|
|
}
|
|
|
|
-static int ttm_mem_io_reserve(struct ttm_bo_device *bdev,
|
|
- struct ttm_mem_reg *mem)
|
|
+
|
|
+int ttm_mem_io_reserve(struct ttm_bo_device *bdev,
|
|
+ struct ttm_mem_reg *mem)
|
|
{
|
|
struct ttm_mem_type_manager *man = &bdev->man[mem->mem_type];
|
|
int ret = 0;
|
|
@@ -134,9 +137,10 @@ retry:
|
|
}
|
|
return ret;
|
|
}
|
|
+EXPORT_SYMBOL(ttm_mem_io_reserve);
|
|
|
|
-static void ttm_mem_io_free(struct ttm_bo_device *bdev,
|
|
- struct ttm_mem_reg *mem)
|
|
+void ttm_mem_io_free(struct ttm_bo_device *bdev,
|
|
+ struct ttm_mem_reg *mem)
|
|
{
|
|
struct ttm_mem_type_manager *man = &bdev->man[mem->mem_type];
|
|
|
|
@@ -149,6 +153,7 @@ static void ttm_mem_io_free(struct ttm_bo_device *bdev,
|
|
bdev->driver->io_mem_free(bdev, mem);
|
|
|
|
}
|
|
+EXPORT_SYMBOL(ttm_mem_io_free);
|
|
|
|
int ttm_mem_io_reserve_vm(struct ttm_buffer_object *bo)
|
|
{
|
|
diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
|
|
index 0fbd046..9c8dca7 100644
|
|
--- a/include/drm/ttm/ttm_bo_driver.h
|
|
+++ b/include/drm/ttm/ttm_bo_driver.h
|
|
@@ -902,6 +902,10 @@ extern void ttm_bo_unreserve_locked(struct ttm_buffer_object *bo);
|
|
* ttm_bo_util.c
|
|
*/
|
|
|
|
+int ttm_mem_io_reserve(struct ttm_bo_device *bdev,
|
|
+ struct ttm_mem_reg *mem);
|
|
+void ttm_mem_io_free(struct ttm_bo_device *bdev,
|
|
+ struct ttm_mem_reg *mem);
|
|
/**
|
|
* ttm_bo_move_ttm
|
|
*
|
|
--
|
|
1.8.1.4
|
|
|