[PATCH 3/8] drm/amdgpu: move some defines around

Deucher, Alexander Alexander.Deucher at amd.com
Thu Jul 27 17:37:22 UTC 2017


> -----Original Message-----
> From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf
> Of Christian König
> Sent: Thursday, July 27, 2017 11:44 AM
> To: amd-gfx at lists.freedesktop.org
> Subject: [PATCH 3/8] drm/amdgpu: move some defines around
> 
> From: Christian König <christian.koenig at amd.com>
> 
> Move amdgpu_bo and related structures into amdgpu_object.h.
> 
> Move amdgpu_bo_list structures to the amdgpu_bo_list functions.
> 
> Signed-off-by: Christian König <christian.koenig at amd.com>

Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu.h        | 77 ++++-------------------------
> -
>  drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 58
> ++++++++++++++++++++++
>  2 files changed, 67 insertions(+), 68 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> index c539bdd..3c59d7b 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> @@ -375,77 +375,10 @@ struct amdgpu_clock {
>  };
> 
>  /*
> - * BO.
> + * GEM.
>   */
> -struct amdgpu_bo_list_entry {
> -	struct amdgpu_bo		*robj;
> -	struct ttm_validate_buffer	tv;
> -	struct amdgpu_bo_va		*bo_va;
> -	uint32_t			priority;
> -	struct page			**user_pages;
> -	int				user_invalidated;
> -};
> -
> -struct amdgpu_bo_va_mapping {
> -	struct list_head		list;
> -	struct rb_node			rb;
> -	uint64_t			start;
> -	uint64_t			last;
> -	uint64_t			__subtree_last;
> -	uint64_t			offset;
> -	uint64_t			flags;
> -};
> -
> -/* bo virtual addresses in a specific vm */
> -struct amdgpu_bo_va {
> -	/* protected by bo being reserved */
> -	struct list_head		bo_list;
> -	struct dma_fence	        *last_pt_update;
> -	unsigned			ref_count;
> -
> -	/* protected by vm mutex and spinlock */
> -	struct list_head		vm_status;
> -
> -	/* mappings for this bo_va */
> -	struct list_head		invalids;
> -	struct list_head		valids;
> -
> -	/* constant after initialization */
> -	struct amdgpu_vm		*vm;
> -	struct amdgpu_bo		*bo;
> -};
> 
>  #define AMDGPU_GEM_DOMAIN_MAX		0x3
> -
> -struct amdgpu_bo {
> -	/* Protected by tbo.reserved */
> -	u32				prefered_domains;
> -	u32				allowed_domains;
> -	struct ttm_place
> 	placements[AMDGPU_GEM_DOMAIN_MAX + 1];
> -	struct ttm_placement		placement;
> -	struct ttm_buffer_object	tbo;
> -	struct ttm_bo_kmap_obj		kmap;
> -	u64				flags;
> -	unsigned			pin_count;
> -	u64				tiling_flags;
> -	u64				metadata_flags;
> -	void				*metadata;
> -	u32				metadata_size;
> -	unsigned			prime_shared_count;
> -	/* list of all virtual address to which this bo
> -	 * is associated to
> -	 */
> -	struct list_head		va;
> -	/* Constant after initialization */
> -	struct drm_gem_object		gem_base;
> -	struct amdgpu_bo		*parent;
> -	struct amdgpu_bo		*shadow;
> -
> -	struct ttm_bo_kmap_obj		dma_buf_vmap;
> -	struct amdgpu_mn		*mn;
> -	struct list_head		mn_list;
> -	struct list_head		shadow_list;
> -};
>  #define gem_to_amdgpu_bo(gobj) container_of((gobj), struct amdgpu_bo,
> gem_base)
> 
>  void amdgpu_gem_object_free(struct drm_gem_object *obj);
> @@ -826,6 +759,14 @@ struct amdgpu_fpriv {
>  /*
>   * residency list
>   */
> +struct amdgpu_bo_list_entry {
> +	struct amdgpu_bo		*robj;
> +	struct ttm_validate_buffer	tv;
> +	struct amdgpu_bo_va		*bo_va;
> +	uint32_t			priority;
> +	struct page			**user_pages;
> +	int				user_invalidated;
> +};
> 
>  struct amdgpu_bo_list {
>  	struct mutex lock;
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
> index f53d53d..a401fe3 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
> @@ -33,6 +33,64 @@
> 
>  #define AMDGPU_BO_INVALID_OFFSET	LONG_MAX
> 
> +struct amdgpu_bo_va_mapping {
> +	struct list_head		list;
> +	struct rb_node			rb;
> +	uint64_t			start;
> +	uint64_t			last;
> +	uint64_t			__subtree_last;
> +	uint64_t			offset;
> +	uint64_t			flags;
> +};
> +
> +/* bo virtual addresses in a specific vm */
> +struct amdgpu_bo_va {
> +	/* protected by bo being reserved */
> +	struct list_head		bo_list;
> +	struct dma_fence	        *last_pt_update;
> +	unsigned			ref_count;
> +
> +	/* protected by vm mutex and spinlock */
> +	struct list_head		vm_status;
> +
> +	/* mappings for this bo_va */
> +	struct list_head		invalids;
> +	struct list_head		valids;
> +
> +	/* constant after initialization */
> +	struct amdgpu_vm		*vm;
> +	struct amdgpu_bo		*bo;
> +};
> +
> +
> +struct amdgpu_bo {
> +	/* Protected by tbo.reserved */
> +	u32				prefered_domains;
> +	u32				allowed_domains;
> +	struct ttm_place
> 	placements[AMDGPU_GEM_DOMAIN_MAX + 1];
> +	struct ttm_placement		placement;
> +	struct ttm_buffer_object	tbo;
> +	struct ttm_bo_kmap_obj		kmap;
> +	u64				flags;
> +	unsigned			pin_count;
> +	u64				tiling_flags;
> +	u64				metadata_flags;
> +	void				*metadata;
> +	u32				metadata_size;
> +	unsigned			prime_shared_count;
> +	/* list of all virtual address to which this bo is associated to */
> +	struct list_head		va;
> +	/* Constant after initialization */
> +	struct drm_gem_object		gem_base;
> +	struct amdgpu_bo		*parent;
> +	struct amdgpu_bo		*shadow;
> +
> +	struct ttm_bo_kmap_obj		dma_buf_vmap;
> +	struct amdgpu_mn		*mn;
> +	struct list_head		mn_list;
> +	struct list_head		shadow_list;
> +};
> +
>  /**
>   * amdgpu_mem_type_to_domain - return domain corresponding to
> mem_type
>   * @mem_type:	ttm memory type
> --
> 2.7.4
> 
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list