[PATCH v2] amdgpu: move ttm stuff to amdgpu_ttm.h

Christian König deathsimple at vodafone.de
Thu Aug 18 09:23:25 UTC 2016


Am 18.08.2016 um 11:18 schrieb Flora Cui:
> Change-Id: I425a7a8a2126ace85f1ea8a9b91333911692c794
> Signed-off-by: Flora Cui <Flora.Cui at amd.com>
> Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>

Patch is Reviewed-by: Christian König <christian.koenig at amd.com>.

A nice cleanup,
Christian.

> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu.h     | 45 +------------------
>   drivers/gpu/drm/amd/amdgpu/amdgpu_gds.h |  8 ----
>   drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h | 78 +++++++++++++++++++++++++++++++++
>   3 files changed, 80 insertions(+), 51 deletions(-)
>   create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> index a55eb6f..00b810f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> @@ -51,6 +51,7 @@
>   #include "amdgpu_ih.h"
>   #include "amdgpu_irq.h"
>   #include "amdgpu_ucode.h"
> +#include "amdgpu_ttm.h"
>   #include "amdgpu_gds.h"
>   #include "amdgpu_acp.h"
>   #include "amdgpu_dm.h"
> @@ -398,51 +399,9 @@ int amdgpu_fence_wait_empty(struct amdgpu_ring *ring);
>   unsigned amdgpu_fence_count_emitted(struct amdgpu_ring *ring);
>   
>   /*
> - * TTM.
> + * BO.
>    */
>   
> -#define AMDGPU_TTM_LRU_SIZE	20
> -
> -struct amdgpu_mman_lru {
> -	struct list_head		*lru[TTM_NUM_MEM_TYPES];
> -	struct list_head		*swap_lru;
> -};
> -
> -struct amdgpu_mman {
> -	struct ttm_bo_global_ref        bo_global_ref;
> -	struct drm_global_reference	mem_global_ref;
> -	struct ttm_bo_device		bdev;
> -	bool				mem_global_referenced;
> -	bool				initialized;
> -
> -#if defined(CONFIG_DEBUG_FS)
> -	struct dentry			*vram;
> -	struct dentry			*gtt;
> -#endif
> -
> -	/* buffer handling */
> -	const struct amdgpu_buffer_funcs	*buffer_funcs;
> -	struct amdgpu_ring			*buffer_funcs_ring;
> -	/* Scheduler entity for buffer moves */
> -	struct amd_sched_entity			entity;
> -
> -	/* custom LRU management */
> -	struct amdgpu_mman_lru			log2_size[AMDGPU_TTM_LRU_SIZE];
> -};
> -
> -int amdgpu_copy_buffer(struct amdgpu_ring *ring,
> -		       uint64_t src_offset,
> -		       uint64_t dst_offset,
> -		       uint32_t byte_count,
> -		       struct reservation_object *resv,
> -		       struct fence **fence);
> -int amdgpu_fill_buffer(struct amdgpu_bo *bo,
> -			uint32_t src_data,
> -			struct reservation_object *resv,
> -			struct fence **fence);
> -
> -int amdgpu_mmap(struct file *filp, struct vm_area_struct *vma);
> -
>   struct amdgpu_bo_list_entry {
>   	struct amdgpu_bo		*robj;
>   	struct ttm_validate_buffer	tv;
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gds.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_gds.h
> index 503d540..e73728d 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gds.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gds.h
> @@ -31,14 +31,6 @@
>   #define AMDGPU_GWS_SHIFT	PAGE_SHIFT
>   #define AMDGPU_OA_SHIFT		PAGE_SHIFT
>   
> -#define AMDGPU_PL_GDS		TTM_PL_PRIV0
> -#define AMDGPU_PL_GWS		TTM_PL_PRIV1
> -#define AMDGPU_PL_OA		TTM_PL_PRIV2
> -
> -#define AMDGPU_PL_FLAG_GDS		TTM_PL_FLAG_PRIV0
> -#define AMDGPU_PL_FLAG_GWS		TTM_PL_FLAG_PRIV1
> -#define AMDGPU_PL_FLAG_OA		TTM_PL_FLAG_PRIV2
> -
>   struct amdgpu_ring;
>   struct amdgpu_bo;
>   
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
> new file mode 100644
> index 0000000..8927e0e
> --- /dev/null
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
> @@ -0,0 +1,78 @@
> +/*
> + * Copyright 2016 Advanced Micro Devices, Inc.
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the "Software"),
> + * to deal in the Software without restriction, including without limitation
> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice shall be included in
> + * all copies or substantial portions of the Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
> + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
> + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> + * OTHER DEALINGS IN THE SOFTWARE.
> + *
> + */
> +
> +#ifndef __AMDGPU_TTM_H__
> +#define __AMDGPU_TTM_H__
> +
> +#include "gpu_scheduler.h"
> +
> +#define AMDGPU_PL_GDS		TTM_PL_PRIV0
> +#define AMDGPU_PL_GWS		TTM_PL_PRIV1
> +#define AMDGPU_PL_OA		TTM_PL_PRIV2
> +
> +#define AMDGPU_PL_FLAG_GDS		TTM_PL_FLAG_PRIV0
> +#define AMDGPU_PL_FLAG_GWS		TTM_PL_FLAG_PRIV1
> +#define AMDGPU_PL_FLAG_OA		TTM_PL_FLAG_PRIV2
> +
> +#define AMDGPU_TTM_LRU_SIZE	20
> +
> +struct amdgpu_mman_lru {
> +	struct list_head		*lru[TTM_NUM_MEM_TYPES];
> +	struct list_head		*swap_lru;
> +};
> +
> +struct amdgpu_mman {
> +	struct ttm_bo_global_ref        bo_global_ref;
> +	struct drm_global_reference	mem_global_ref;
> +	struct ttm_bo_device		bdev;
> +	bool				mem_global_referenced;
> +	bool				initialized;
> +
> +#if defined(CONFIG_DEBUG_FS)
> +	struct dentry			*vram;
> +	struct dentry			*gtt;
> +#endif
> +
> +	/* buffer handling */
> +	const struct amdgpu_buffer_funcs	*buffer_funcs;
> +	struct amdgpu_ring			*buffer_funcs_ring;
> +	/* Scheduler entity for buffer moves */
> +	struct amd_sched_entity			entity;
> +
> +	/* custom LRU management */
> +	struct amdgpu_mman_lru			log2_size[AMDGPU_TTM_LRU_SIZE];
> +};
> +
> +int amdgpu_copy_buffer(struct amdgpu_ring *ring,
> +		       uint64_t src_offset,
> +		       uint64_t dst_offset,
> +		       uint32_t byte_count,
> +		       struct reservation_object *resv,
> +		       struct fence **fence);
> +int amdgpu_fill_buffer(struct amdgpu_bo *bo,
> +			uint32_t src_data,
> +			struct reservation_object *resv,
> +			struct fence **fence);
> +
> +int amdgpu_mmap(struct file *filp, struct vm_area_struct *vma);
> +#endif




More information about the amd-gfx mailing list