forked from rpms/kernel
		
	
		
			
				
	
	
		
			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
 | |
| 
 |