| From 94477bff390aa4612d2332c8abafaae0a13d6923 Mon Sep 17 00:00:00 2001 |
| From: Sinclair Yeh <syeh@vmware.com> |
| Date: Wed, 29 Jun 2016 12:58:49 -0700 |
| Subject: drm/ttm: Make ttm_bo_mem_compat available |
| |
| From: Sinclair Yeh <syeh@vmware.com> |
| |
| commit 94477bff390aa4612d2332c8abafaae0a13d6923 upstream. |
| |
| There are cases where it is desired to see if a proposed placement |
| is compatible with a buffer object before calling ttm_bo_validate(). |
| |
| Signed-off-by: Sinclair Yeh <syeh@vmware.com> |
| Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/gpu/drm/ttm/ttm_bo.c | 7 ++++--- |
| include/drm/ttm/ttm_bo_api.h | 14 ++++++++++++++ |
| 2 files changed, 18 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/gpu/drm/ttm/ttm_bo.c |
| +++ b/drivers/gpu/drm/ttm/ttm_bo.c |
| @@ -1004,9 +1004,9 @@ out_unlock: |
| return ret; |
| } |
| |
| -static bool ttm_bo_mem_compat(struct ttm_placement *placement, |
| - struct ttm_mem_reg *mem, |
| - uint32_t *new_flags) |
| +bool ttm_bo_mem_compat(struct ttm_placement *placement, |
| + struct ttm_mem_reg *mem, |
| + uint32_t *new_flags) |
| { |
| int i; |
| |
| @@ -1038,6 +1038,7 @@ static bool ttm_bo_mem_compat(struct ttm |
| |
| return false; |
| } |
| +EXPORT_SYMBOL(ttm_bo_mem_compat); |
| |
| int ttm_bo_validate(struct ttm_buffer_object *bo, |
| struct ttm_placement *placement, |
| --- a/include/drm/ttm/ttm_bo_api.h |
| +++ b/include/drm/ttm/ttm_bo_api.h |
| @@ -316,6 +316,20 @@ ttm_bo_reference(struct ttm_buffer_objec |
| */ |
| extern int ttm_bo_wait(struct ttm_buffer_object *bo, bool lazy, |
| bool interruptible, bool no_wait); |
| + |
| +/** |
| + * ttm_bo_mem_compat - Check if proposed placement is compatible with a bo |
| + * |
| + * @placement: Return immediately if buffer is busy. |
| + * @mem: The struct ttm_mem_reg indicating the region where the bo resides |
| + * @new_flags: Describes compatible placement found |
| + * |
| + * Returns true if the placement is compatible |
| + */ |
| +extern bool ttm_bo_mem_compat(struct ttm_placement *placement, |
| + struct ttm_mem_reg *mem, |
| + uint32_t *new_flags); |
| + |
| /** |
| * ttm_bo_validate |
| * |