Commit b82485fd authored by Andres Rodriguez's avatar Andres Rodriguez Committed by Alex Deucher

drm/amdgpu: add helper to convert a ttm bo to amdgpu_bo

Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarAndres Rodriguez <andresx7@gmail.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 9fc8fc70
...@@ -40,9 +40,7 @@ ...@@ -40,9 +40,7 @@
static void amdgpu_ttm_bo_destroy(struct ttm_buffer_object *tbo) static void amdgpu_ttm_bo_destroy(struct ttm_buffer_object *tbo)
{ {
struct amdgpu_device *adev = amdgpu_ttm_adev(tbo->bdev); struct amdgpu_device *adev = amdgpu_ttm_adev(tbo->bdev);
struct amdgpu_bo *bo; struct amdgpu_bo *bo = ttm_to_amdgpu_bo(tbo);
bo = container_of(tbo, struct amdgpu_bo, tbo);
amdgpu_bo_kunmap(bo); amdgpu_bo_kunmap(bo);
...@@ -884,7 +882,7 @@ void amdgpu_bo_move_notify(struct ttm_buffer_object *bo, ...@@ -884,7 +882,7 @@ void amdgpu_bo_move_notify(struct ttm_buffer_object *bo,
if (!amdgpu_ttm_bo_is_amdgpu_bo(bo)) if (!amdgpu_ttm_bo_is_amdgpu_bo(bo))
return; return;
abo = container_of(bo, struct amdgpu_bo, tbo); abo = ttm_to_amdgpu_bo(bo);
amdgpu_vm_bo_invalidate(adev, abo, evict); amdgpu_vm_bo_invalidate(adev, abo, evict);
amdgpu_bo_kunmap(abo); amdgpu_bo_kunmap(abo);
...@@ -911,7 +909,7 @@ int amdgpu_bo_fault_reserve_notify(struct ttm_buffer_object *bo) ...@@ -911,7 +909,7 @@ int amdgpu_bo_fault_reserve_notify(struct ttm_buffer_object *bo)
if (!amdgpu_ttm_bo_is_amdgpu_bo(bo)) if (!amdgpu_ttm_bo_is_amdgpu_bo(bo))
return 0; return 0;
abo = container_of(bo, struct amdgpu_bo, tbo); abo = ttm_to_amdgpu_bo(bo);
/* Remember that this BO was accessed by the CPU */ /* Remember that this BO was accessed by the CPU */
abo->flags |= AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED; abo->flags |= AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED;
......
...@@ -94,6 +94,11 @@ struct amdgpu_bo { ...@@ -94,6 +94,11 @@ struct amdgpu_bo {
}; };
}; };
static inline struct amdgpu_bo *ttm_to_amdgpu_bo(struct ttm_buffer_object *tbo)
{
return container_of(tbo, struct amdgpu_bo, tbo);
}
/** /**
* amdgpu_mem_type_to_domain - return domain corresponding to mem_type * amdgpu_mem_type_to_domain - return domain corresponding to mem_type
* @mem_type: ttm memory type * @mem_type: ttm memory type
......
...@@ -44,6 +44,7 @@ ...@@ -44,6 +44,7 @@
#include <linux/debugfs.h> #include <linux/debugfs.h>
#include <linux/iommu.h> #include <linux/iommu.h>
#include "amdgpu.h" #include "amdgpu.h"
#include "amdgpu_object.h"
#include "amdgpu_trace.h" #include "amdgpu_trace.h"
#include "bif/bif_4_1_d.h" #include "bif/bif_4_1_d.h"
...@@ -209,7 +210,7 @@ static void amdgpu_evict_flags(struct ttm_buffer_object *bo, ...@@ -209,7 +210,7 @@ static void amdgpu_evict_flags(struct ttm_buffer_object *bo,
placement->num_busy_placement = 1; placement->num_busy_placement = 1;
return; return;
} }
abo = container_of(bo, struct amdgpu_bo, tbo); abo = ttm_to_amdgpu_bo(bo);
switch (bo->mem.mem_type) { switch (bo->mem.mem_type) {
case TTM_PL_VRAM: case TTM_PL_VRAM:
if (adev->mman.buffer_funcs && if (adev->mman.buffer_funcs &&
...@@ -257,7 +258,7 @@ static void amdgpu_evict_flags(struct ttm_buffer_object *bo, ...@@ -257,7 +258,7 @@ static void amdgpu_evict_flags(struct ttm_buffer_object *bo,
static int amdgpu_verify_access(struct ttm_buffer_object *bo, struct file *filp) static int amdgpu_verify_access(struct ttm_buffer_object *bo, struct file *filp)
{ {
struct amdgpu_bo *abo = container_of(bo, struct amdgpu_bo, tbo); struct amdgpu_bo *abo = ttm_to_amdgpu_bo(bo);
if (amdgpu_ttm_tt_get_usermm(bo->ttm)) if (amdgpu_ttm_tt_get_usermm(bo->ttm))
return -EPERM; return -EPERM;
...@@ -484,7 +485,7 @@ static int amdgpu_bo_move(struct ttm_buffer_object *bo, ...@@ -484,7 +485,7 @@ static int amdgpu_bo_move(struct ttm_buffer_object *bo,
int r; int r;
/* Can't move a pinned BO */ /* Can't move a pinned BO */
abo = container_of(bo, struct amdgpu_bo, tbo); abo = ttm_to_amdgpu_bo(bo);
if (WARN_ON_ONCE(abo->pin_count > 0)) if (WARN_ON_ONCE(abo->pin_count > 0))
return -EINVAL; return -EINVAL;
...@@ -1142,7 +1143,7 @@ static int amdgpu_ttm_access_memory(struct ttm_buffer_object *bo, ...@@ -1142,7 +1143,7 @@ static int amdgpu_ttm_access_memory(struct ttm_buffer_object *bo,
unsigned long offset, unsigned long offset,
void *buf, int len, int write) void *buf, int len, int write)
{ {
struct amdgpu_bo *abo = container_of(bo, struct amdgpu_bo, tbo); struct amdgpu_bo *abo = ttm_to_amdgpu_bo(bo);
struct amdgpu_device *adev = amdgpu_ttm_adev(abo->tbo.bdev); struct amdgpu_device *adev = amdgpu_ttm_adev(abo->tbo.bdev);
struct drm_mm_node *nodes = abo->tbo.mem.mm_node; struct drm_mm_node *nodes = abo->tbo.mem.mm_node;
uint32_t value = 0; uint32_t value = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment