> -----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