mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-19 05:04:20 +00:00
drm/amdgpu: add helper to convert a ttm bo to amdgpu_bo
Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Andres Rodriguez <andresx7@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
9fc8fc709b
commit
b82485fd38
3 changed files with 13 additions and 9 deletions
|
@ -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,
|
||||||
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)
|
||||||
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 {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
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 @@
|
||||||
#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,
|
||||||
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 @@ gtt:
|
||||||
|
|
||||||
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,
|
||||||
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,
|
||||||
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;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue