diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_object.h')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 24 | 
1 files changed, 16 insertions, 8 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h index ae4a68db87c0..fe39e5ca9692 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h @@ -37,9 +37,12 @@  #define AMDGPU_BO_INVALID_OFFSET	LONG_MAX  #define AMDGPU_BO_MAX_PLACEMENTS	3 +#define to_amdgpu_bo_user(abo) container_of((abo), struct amdgpu_bo_user, bo) +  struct amdgpu_bo_param {  	unsigned long			size;  	int				byte_align; +	u32				bo_ptr_size;  	u32				domain;  	u32				preferred_domain;  	u64				flags; @@ -89,10 +92,6 @@ struct amdgpu_bo {  	struct ttm_buffer_object	tbo;  	struct ttm_bo_kmap_obj		kmap;  	u64				flags; -	u64				tiling_flags; -	u64				metadata_flags; -	void				*metadata; -	u32				metadata_size;  	unsigned			prime_shared_count;  	/* per VM structure for page tables and with virtual addresses */  	struct amdgpu_vm_bo_base	*vm_bo; @@ -100,7 +99,6 @@ struct amdgpu_bo {  	struct amdgpu_bo		*parent;  	struct amdgpu_bo		*shadow; -	struct amdgpu_mn		*mn;  #ifdef CONFIG_MMU_NOTIFIER @@ -112,6 +110,15 @@ struct amdgpu_bo {  	struct kgd_mem                  *kfd_bo;  }; +struct amdgpu_bo_user { +	struct amdgpu_bo		bo; +	u64				tiling_flags; +	u64				metadata_flags; +	void				*metadata; +	u32				metadata_size; + +}; +  static inline struct amdgpu_bo *ttm_to_amdgpu_bo(struct ttm_buffer_object *tbo)  {  	return container_of(tbo, struct amdgpu_bo, tbo); @@ -255,6 +262,9 @@ int amdgpu_bo_create_kernel(struct amdgpu_device *adev,  int amdgpu_bo_create_kernel_at(struct amdgpu_device *adev,  			       uint64_t offset, uint64_t size, uint32_t domain,  			       struct amdgpu_bo **bo_ptr, void **cpu_addr); +int amdgpu_bo_create_user(struct amdgpu_device *adev, +			  struct amdgpu_bo_param *bp, +			  struct amdgpu_bo_user **ubo_ptr);  void amdgpu_bo_free_kernel(struct amdgpu_bo **bo, u64 *gpu_addr,  			   void **cpu_addr);  int amdgpu_bo_kmap(struct amdgpu_bo *bo, void **ptr); @@ -269,8 +279,6 @@ void amdgpu_bo_unpin(struct amdgpu_bo *bo);  int amdgpu_bo_evict_vram(struct amdgpu_device *adev);  int amdgpu_bo_init(struct amdgpu_device *adev);  void amdgpu_bo_fini(struct amdgpu_device *adev); -int amdgpu_bo_fbdev_mmap(struct amdgpu_bo *bo, -				struct vm_area_struct *vma);  int amdgpu_bo_set_tiling_flags(struct amdgpu_bo *bo, u64 tiling_flags);  void amdgpu_bo_get_tiling_flags(struct amdgpu_bo *bo, u64 *tiling_flags);  int amdgpu_bo_set_metadata (struct amdgpu_bo *bo, void *metadata, @@ -329,7 +337,7 @@ void amdgpu_sa_bo_dump_debug_info(struct amdgpu_sa_manager *sa_manager,  					 struct seq_file *m);  u64 amdgpu_bo_print_info(int id, struct amdgpu_bo *bo, struct seq_file *m);  #endif -int amdgpu_debugfs_sa_init(struct amdgpu_device *adev); +void amdgpu_debugfs_sa_init(struct amdgpu_device *adev);  bool amdgpu_bo_support_uswc(u64 bo_flags); | 
