diff options
| author | Chunming Zhou <david1.zhou@amd.com> | 2015-04-24 12:37:30 +0300 | 
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2015-06-04 04:03:52 +0300 | 
| commit | 7e5a547f64af66fd906f266f0e8c9bde213d025c (patch) | |
| tree | c39a05c7ed28b6dc90b29696136d65b4d32d10d5 /drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | |
| parent | 5fc3aeeb9e553a20ce62544f7176c6c4aca52d71 (diff) | |
| download | linux-7e5a547f64af66fd906f266f0e8c9bde213d025c.tar.xz | |
drm/amdgpu: implement the allocation range (v3)
Pass a ttm_placement pointer to amdgpu_bo_create_restricted
add min_offset to amdgpu_bo_pin_restricted.  This makes it
easier to allocate memory with address restrictions.  With
this patch we can also enable 2-ended allocation again.
v2: fix rebase conflicts
v3: memset placements before using
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Signed-off-by: Chunming Zhou <david1.zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_object.h')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 9 | 
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h index b1e0a03c1d78..675bdc30e41d 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h @@ -130,13 +130,20 @@ int amdgpu_bo_create(struct amdgpu_device *adev,  			    bool kernel, u32 domain, u64 flags,  			    struct sg_table *sg,  			    struct amdgpu_bo **bo_ptr); +int amdgpu_bo_create_restricted(struct amdgpu_device *adev, +				unsigned long size, int byte_align, +				bool kernel, u32 domain, u64 flags, +				struct sg_table *sg, +				struct ttm_placement *placement, +				struct amdgpu_bo **bo_ptr);  int amdgpu_bo_kmap(struct amdgpu_bo *bo, void **ptr);  void amdgpu_bo_kunmap(struct amdgpu_bo *bo);  struct amdgpu_bo *amdgpu_bo_ref(struct amdgpu_bo *bo);  void amdgpu_bo_unref(struct amdgpu_bo **bo);  int amdgpu_bo_pin(struct amdgpu_bo *bo, u32 domain, u64 *gpu_addr);  int amdgpu_bo_pin_restricted(struct amdgpu_bo *bo, u32 domain, -				    u64 max_offset, u64 *gpu_addr); +			     u64 min_offset, u64 max_offset, +			     u64 *gpu_addr);  int amdgpu_bo_unpin(struct amdgpu_bo *bo);  int amdgpu_bo_evict_vram(struct amdgpu_device *adev);  void amdgpu_bo_force_delete(struct amdgpu_device *adev);  | 
