[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