mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2025-12-30 22:30:16 +01:00
ttm: s/flags/placement/
Signed-off-by: Thomas Hellstrom <thomas-at-shipmail-dot-org>
This commit is contained in:
parent
f421b2b10f
commit
a87bc3c061
8 changed files with 59 additions and 61 deletions
|
|
@ -112,7 +112,7 @@ int via_init_mem_type(struct ttm_bo_device *bdev, uint32_t type,
|
|||
|
||||
uint32_t via_evict_flags(struct ttm_buffer_object * bo)
|
||||
{
|
||||
uint32_t cur_placement = bo->mem.flags & ~TTM_PL_MASK_MEMTYPE;
|
||||
uint32_t cur_placement = bo->mem.placement & ~TTM_PL_MASK_MEMTYPE;
|
||||
|
||||
switch (bo->mem.mem_type) {
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ via_placement_fence_type(struct ttm_buffer_object *bo,
|
|||
/*
|
||||
* FIXME
|
||||
*/
|
||||
if (bo->mem.proposed_flags & TTM_PL_FLAG_SYSTEM)
|
||||
if (bo->mem.proposed_placement & TTM_PL_FLAG_SYSTEM)
|
||||
n_fence_type |= VIA_FENCE_TYPE_SYSMEM;
|
||||
#endif
|
||||
break;
|
||||
|
|
@ -110,8 +110,8 @@ via_placement_fence_type(struct ttm_buffer_object *bo,
|
|||
return ret;
|
||||
}
|
||||
|
||||
bo->proposed_flags |= set_flags & TTM_PL_MASK_MEMTYPE;
|
||||
bo->proposed_flags &= ~(clr_flags & TTM_PL_MASK_MEMTYPE);
|
||||
bo->proposed_placement |= set_flags & TTM_PL_MASK_MEMTYPE;
|
||||
bo->proposed_placement &= ~(clr_flags & TTM_PL_MASK_MEMTYPE);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -439,7 +439,7 @@ static int via_check_presumed(struct drm_via_validate_req *req,
|
|||
|
||||
if (bo->offset == req->presumed_gpu_offset &&
|
||||
!((req->presumed_flags & VIA_PRESUMED_AGP) &&
|
||||
!(bo->mem.flags & (TTM_PL_FLAG_PRIV0 | TTM_PL_FLAG_TT)))) {
|
||||
!(bo->mem.placement & (TTM_PL_FLAG_PRIV0 | TTM_PL_FLAG_TT)))) {
|
||||
*presumed_ok = 1;
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -559,7 +559,7 @@ static int via_validate_buffer_list(struct drm_file *file_priv,
|
|||
if (unlikely(ret != 0))
|
||||
goto out_err;
|
||||
|
||||
ret = ttm_buffer_object_validate(bo, bo->proposed_flags,
|
||||
ret = ttm_buffer_object_validate(bo, bo->proposed_placement,
|
||||
true, false);
|
||||
|
||||
if (unlikely(ret != 0))
|
||||
|
|
@ -569,7 +569,7 @@ static int via_validate_buffer_list(struct drm_file *file_priv,
|
|||
entry->new_sync_obj_arg = (void *)(unsigned long)cur_fence_type;
|
||||
|
||||
item->offset = bo->offset;
|
||||
item->flags = bo->mem.flags;
|
||||
item->flags = bo->mem.placement;
|
||||
mutex_unlock(&bo->mutex);
|
||||
|
||||
ret = via_check_presumed(&item->req, bo, item->user_val_arg,
|
||||
|
|
@ -614,7 +614,7 @@ static int via_handle_copyback(struct drm_device *dev,
|
|||
|
||||
mutex_lock(&bo->mutex);
|
||||
arg.d.rep.gpu_offset = bo->offset;
|
||||
arg.d.rep.placement = bo->mem.flags;
|
||||
arg.d.rep.placement = bo->mem.placement;
|
||||
arg.d.rep.fence_type_mask =
|
||||
(uint32_t) (unsigned long)
|
||||
entry->new_sync_obj_arg;
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ static int ttm_agp_bind(struct ttm_backend *backend, struct ttm_mem_reg *bo_mem)
|
|||
struct ttm_agp_backend *agp_be =
|
||||
container_of(backend, struct ttm_agp_backend, backend);
|
||||
struct agp_memory *mem = agp_be->mem;
|
||||
int cached = (bo_mem->flags & TTM_PL_FLAG_CACHED);
|
||||
int cached = (bo_mem->placement & TTM_PL_FLAG_CACHED);
|
||||
int ret;
|
||||
|
||||
mem->is_flushed = 1;
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ static void ttm_bo_add_to_lru(struct ttm_buffer_object *bo)
|
|||
|
||||
BUG_ON(!atomic_read(&bo->reserved));
|
||||
|
||||
if (!(bo->mem.flags & TTM_PL_FLAG_NO_EVICT)) {
|
||||
if (!(bo->mem.placement & TTM_PL_FLAG_NO_EVICT)) {
|
||||
|
||||
BUG_ON(!list_empty(&bo->lru));
|
||||
|
||||
|
|
@ -264,7 +264,7 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo,
|
|||
int ret = 0;
|
||||
|
||||
if (old_is_pci || new_is_pci ||
|
||||
((mem->flags & bo->mem.flags & TTM_PL_MASK_CACHING) == 0))
|
||||
((mem->placement & bo->mem.placement & TTM_PL_MASK_CACHING) == 0))
|
||||
ttm_bo_unmap_virtual(bo);
|
||||
|
||||
/*
|
||||
|
|
@ -276,7 +276,7 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo,
|
|||
if (ret)
|
||||
goto out_err;
|
||||
|
||||
ret = ttm_tt_set_placement_caching(bo->ttm, mem->flags);
|
||||
ret = ttm_tt_set_placement_caching(bo->ttm, mem->placement);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
|
@ -289,11 +289,11 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo,
|
|||
if (bo->mem.mem_type == TTM_PL_SYSTEM) {
|
||||
|
||||
struct ttm_mem_reg *old_mem = &bo->mem;
|
||||
uint32_t save_flags = old_mem->flags;
|
||||
uint32_t save_flags = old_mem->placement;
|
||||
|
||||
*old_mem = *mem;
|
||||
mem->mm_node = NULL;
|
||||
ttm_flag_masked(&save_flags, mem->flags,
|
||||
ttm_flag_masked(&save_flags, mem->placement,
|
||||
TTM_PL_MASK_MEMTYPE);
|
||||
goto moved;
|
||||
}
|
||||
|
|
@ -314,7 +314,7 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo,
|
|||
|
||||
moved:
|
||||
if (bo->evicted) {
|
||||
ret = bdev->driver->invalidate_caches(bdev, bo->mem.flags);
|
||||
ret = bdev->driver->invalidate_caches(bdev, bo->mem.placement);
|
||||
if (ret)
|
||||
printk(KERN_ERR "Can not flush read caches\n");
|
||||
bo->evicted = false;
|
||||
|
|
@ -768,7 +768,7 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo,
|
|||
if ((type_ok && (mem_type == TTM_PL_SYSTEM)) || node) {
|
||||
mem->mm_node = node;
|
||||
mem->mem_type = mem_type;
|
||||
mem->flags = cur_flags;
|
||||
mem->placement = cur_flags;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -795,7 +795,7 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo,
|
|||
interruptible, no_wait);
|
||||
|
||||
if (ret == 0 && mem->mm_node) {
|
||||
mem->flags = cur_flags;
|
||||
mem->placement = cur_flags;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -898,9 +898,9 @@ int ttm_bo_move_buffer(struct ttm_buffer_object *bo,
|
|||
static int ttm_bo_mem_compat(uint32_t proposed_placement,
|
||||
struct ttm_mem_reg *mem)
|
||||
{
|
||||
if ((proposed_placement & mem->flags & TTM_PL_MASK_MEM) == 0)
|
||||
if ((proposed_placement & mem->placement & TTM_PL_MASK_MEM) == 0)
|
||||
return 0;
|
||||
if ((proposed_placement & mem->flags & TTM_PL_MASK_CACHING) == 0)
|
||||
if ((proposed_placement & mem->placement & TTM_PL_MASK_CACHING) == 0)
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
|
|
@ -913,24 +913,24 @@ int ttm_buffer_object_validate(struct ttm_buffer_object *bo,
|
|||
int ret;
|
||||
|
||||
BUG_ON(!atomic_read(&bo->reserved));
|
||||
bo->proposed_flags = proposed_placement;
|
||||
bo->proposed_placement = proposed_placement;
|
||||
|
||||
TTM_DEBUG("Proposed placement 0x%08lx, Old flags 0x%08lx\n",
|
||||
(unsigned long)proposed_placement,
|
||||
(unsigned long)bo->mem.flags);
|
||||
(unsigned long)bo->mem.placement);
|
||||
|
||||
/*
|
||||
* Check whether we need to move buffer.
|
||||
*/
|
||||
|
||||
if (!ttm_bo_mem_compat(bo->proposed_flags, &bo->mem)) {
|
||||
ret = ttm_bo_move_buffer(bo, bo->proposed_flags,
|
||||
if (!ttm_bo_mem_compat(bo->proposed_placement, &bo->mem)) {
|
||||
ret = ttm_bo_move_buffer(bo, bo->proposed_placement,
|
||||
interruptible, no_wait);
|
||||
if (ret) {
|
||||
if (ret != -ERESTART)
|
||||
printk(KERN_ERR "Failed moving buffer. "
|
||||
"Proposed placement 0x%08x\n",
|
||||
bo->proposed_flags);
|
||||
bo->proposed_placement);
|
||||
if (ret == -ENOMEM)
|
||||
printk(KERN_ERR "Out of aperture space or "
|
||||
"DRM memory quota.\n");
|
||||
|
|
@ -953,7 +953,7 @@ int ttm_buffer_object_validate(struct ttm_buffer_object *bo,
|
|||
* the active flags
|
||||
*/
|
||||
|
||||
ttm_flag_masked(&bo->mem.flags, bo->proposed_flags,
|
||||
ttm_flag_masked(&bo->mem.placement, bo->proposed_placement,
|
||||
~TTM_PL_MASK_MEMTYPE);
|
||||
|
||||
return 0;
|
||||
|
|
@ -978,8 +978,8 @@ ttm_bo_check_placement(struct ttm_buffer_object *bo,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
if ((clr_flags & bo->mem.flags & TTM_PL_MASK_MEMTYPE) &&
|
||||
(bo->mem.flags & TTM_PL_FLAG_NO_EVICT)) {
|
||||
if ((clr_flags & bo->mem.placement & TTM_PL_MASK_MEMTYPE) &&
|
||||
(bo->mem.placement & TTM_PL_FLAG_NO_EVICT)) {
|
||||
printk(KERN_ERR "Incompatible memory specification"
|
||||
" for NO_EVICT buffer.\n");
|
||||
return -EINVAL;
|
||||
|
|
@ -1030,7 +1030,7 @@ int ttm_buffer_object_init(struct ttm_bo_device *bdev,
|
|||
bo->mem.page_alignment = page_alignment;
|
||||
bo->buffer_start = buffer_start & PAGE_MASK;
|
||||
bo->priv_flags = 0;
|
||||
bo->mem.flags = (TTM_PL_FLAG_SYSTEM | TTM_PL_FLAG_CACHED);
|
||||
bo->mem.placement = (TTM_PL_FLAG_SYSTEM | TTM_PL_FLAG_CACHED);
|
||||
bo->seq_valid = false;
|
||||
bo->persistant_swap_storage = persistant_swap_storage;
|
||||
bo->acc_size = acc_size;
|
||||
|
|
@ -1404,7 +1404,7 @@ bool ttm_mem_reg_is_pci(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem)
|
|||
if (man->flags & TTM_MEMTYPE_FLAG_CMA)
|
||||
return false;
|
||||
|
||||
if (mem->flags & TTM_PL_FLAG_CACHED)
|
||||
if (mem->placement & TTM_PL_FLAG_CACHED)
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
|
@ -1667,12 +1667,12 @@ static int ttm_bo_swapout(struct ttm_mem_shrink *shrink)
|
|||
if (unlikely(ret != 0))
|
||||
goto out;
|
||||
|
||||
if ((bo->mem.flags & swap_placement) != swap_placement) {
|
||||
if ((bo->mem.placement & swap_placement) != swap_placement) {
|
||||
struct ttm_mem_reg evict_mem;
|
||||
|
||||
evict_mem = bo->mem;
|
||||
evict_mem.mm_node = NULL;
|
||||
evict_mem.flags = TTM_PL_FLAG_SYSTEM | TTM_PL_FLAG_CACHED;
|
||||
evict_mem.placement = TTM_PL_FLAG_SYSTEM | TTM_PL_FLAG_CACHED;
|
||||
evict_mem.mem_type = TTM_PL_SYSTEM;
|
||||
|
||||
ret = ttm_bo_handle_move_mem(bo, &evict_mem, true, false, false);
|
||||
|
|
|
|||
|
|
@ -53,8 +53,7 @@ struct drm_mm_node;
|
|||
* @size: Requested size of memory region.
|
||||
* @num_pages: Actual size of memory region in pages.
|
||||
* @page_alignment: Page alignment.
|
||||
* @flags: Placement flags.
|
||||
* @proposed_flags: Proposed placement flags.
|
||||
* @placement: Placement flags.
|
||||
*
|
||||
* Structure indicating the placement and space resources used by a
|
||||
* buffer object.
|
||||
|
|
@ -66,7 +65,7 @@ struct ttm_mem_reg {
|
|||
unsigned long num_pages;
|
||||
uint32_t page_alignment;
|
||||
uint32_t mem_type;
|
||||
uint32_t flags;
|
||||
uint32_t placement;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -113,7 +112,7 @@ struct ttm_tt;
|
|||
* @event_queue: Queue for processes waiting on buffer object status change.
|
||||
* @mutex: Lock protecting all members with the exception of constant members
|
||||
* and list heads. We should really use a spinlock here.
|
||||
* @proposed_flags: Proposed placement for the buffer. Changed only by the
|
||||
* @proposed_placement: Proposed placement for the buffer. Changed only by the
|
||||
* creator prior to validation as opposed to bo->mem.proposed_flags which is
|
||||
* changed by the implementation prior to a buffer move if it wants to outsmart
|
||||
* the buffer creator / user. This latter happens, for example, at eviction.
|
||||
|
|
@ -179,7 +178,7 @@ struct ttm_buffer_object {
|
|||
* Members protected by the bo::reserved lock.
|
||||
*/
|
||||
|
||||
uint32_t proposed_flags;
|
||||
uint32_t proposed_placement;
|
||||
unsigned long offset;
|
||||
struct ttm_mem_reg mem;
|
||||
struct file *persistant_swap_storage;
|
||||
|
|
|
|||
|
|
@ -55,19 +55,19 @@ int ttm_bo_move_ttm(struct ttm_buffer_object *bo,
|
|||
{
|
||||
struct ttm_tt *ttm = bo->ttm;
|
||||
struct ttm_mem_reg *old_mem = &bo->mem;
|
||||
uint32_t save_flags = old_mem->flags;
|
||||
uint32_t save_flags = old_mem->placement;
|
||||
int ret;
|
||||
|
||||
if (old_mem->mem_type != TTM_PL_SYSTEM) {
|
||||
ttm_tt_unbind(ttm);
|
||||
ttm_bo_free_old_node(bo);
|
||||
ttm_flag_masked(&old_mem->flags, TTM_PL_FLAG_SYSTEM,
|
||||
ttm_flag_masked(&old_mem->placement, TTM_PL_FLAG_SYSTEM,
|
||||
TTM_PL_MASK_MEM);
|
||||
old_mem->mem_type = TTM_PL_SYSTEM;
|
||||
save_flags = old_mem->flags;
|
||||
save_flags = old_mem->placement;
|
||||
}
|
||||
|
||||
ret = ttm_tt_set_placement_caching(ttm, new_mem->flags);
|
||||
ret = ttm_tt_set_placement_caching(ttm, new_mem->placement);
|
||||
if (unlikely(ret != 0))
|
||||
return ret;
|
||||
|
||||
|
|
@ -79,7 +79,7 @@ int ttm_bo_move_ttm(struct ttm_buffer_object *bo,
|
|||
|
||||
*old_mem = *new_mem;
|
||||
new_mem->mm_node = NULL;
|
||||
ttm_flag_masked(&save_flags, new_mem->flags, TTM_PL_MASK_MEMTYPE);
|
||||
ttm_flag_masked(&save_flags, new_mem->placement, TTM_PL_MASK_MEMTYPE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -102,7 +102,7 @@ int ttm_mem_reg_ioremap(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem,
|
|||
addr = (void *)(((u8 *) man->io_addr) + bus_offset);
|
||||
else {
|
||||
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,26))
|
||||
if (mem->flags & TTM_PL_FLAG_WC)
|
||||
if (mem->placement & TTM_PL_FLAG_WC)
|
||||
addr = ioremap_wc(bus_base + bus_offset, bus_size);
|
||||
else
|
||||
addr = ioremap_nocache(bus_base + bus_offset, bus_size);
|
||||
|
|
@ -189,7 +189,7 @@ int ttm_bo_move_memcpy(struct ttm_buffer_object *bo,
|
|||
void *old_iomap;
|
||||
void *new_iomap;
|
||||
int ret;
|
||||
uint32_t save_flags = old_mem->flags;
|
||||
uint32_t save_flags = old_mem->placement;
|
||||
unsigned long i;
|
||||
unsigned long page;
|
||||
unsigned long add = 0;
|
||||
|
|
@ -234,7 +234,7 @@ int ttm_bo_move_memcpy(struct ttm_buffer_object *bo,
|
|||
|
||||
*old_mem = *new_mem;
|
||||
new_mem->mm_node = NULL;
|
||||
ttm_flag_masked(&save_flags, new_mem->flags, TTM_PL_MASK_MEMTYPE);
|
||||
ttm_flag_masked(&save_flags, new_mem->placement, TTM_PL_MASK_MEMTYPE);
|
||||
|
||||
if ((man->flags & TTM_MEMTYPE_FLAG_FIXED) && (ttm != NULL)) {
|
||||
ttm_tt_unbind(ttm);
|
||||
|
|
@ -351,7 +351,7 @@ static int ttm_bo_ioremap(struct ttm_buffer_object *bo,
|
|||
map->virtual = (void *)(((u8 *) man->io_addr) + bus_offset);} else {
|
||||
map->bo_kmap_type = ttm_bo_map_iomap;
|
||||
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,26))
|
||||
if (mem->flags & TTM_PL_FLAG_WC)
|
||||
if (mem->placement & TTM_PL_FLAG_WC)
|
||||
map->virtual = ioremap_wc(bus_base + bus_offset, bus_size);
|
||||
else
|
||||
map->virtual = ioremap_nocache(bus_base + bus_offset, bus_size);
|
||||
|
|
@ -372,7 +372,7 @@ static int ttm_bo_kmap_ttm(struct ttm_buffer_object *bo,
|
|||
struct page * d;
|
||||
int i;
|
||||
BUG_ON(!ttm);
|
||||
if (num_pages == 1 && (mem->flags & TTM_PL_FLAG_CACHED)) {
|
||||
if (num_pages == 1 && (mem->placement & TTM_PL_FLAG_CACHED)) {
|
||||
/*
|
||||
* We're mapping a single page, and the desired
|
||||
* page protection is consistent with the bo.
|
||||
|
|
@ -393,9 +393,9 @@ static int ttm_bo_kmap_ttm(struct ttm_buffer_object *bo,
|
|||
* We need to use vmap to get the desired page protection
|
||||
* or to make the buffer object look contigous.
|
||||
*/
|
||||
prot = (mem->flags & TTM_PL_FLAG_CACHED) ?
|
||||
prot = (mem->placement & TTM_PL_FLAG_CACHED) ?
|
||||
PAGE_KERNEL :
|
||||
ttm_io_prot(mem->flags, PAGE_KERNEL);
|
||||
ttm_io_prot(mem->placement, PAGE_KERNEL);
|
||||
map->bo_kmap_type = ttm_bo_map_vmap;
|
||||
map->virtual = vmap(ttm->pages + start_page, num_pages, 0, prot);
|
||||
}
|
||||
|
|
@ -479,8 +479,7 @@ int ttm_bo_pfn_prot(struct ttm_buffer_object *bo,
|
|||
*pfn =
|
||||
page_to_pfn(ttm_tt_get_page(bo->ttm, dst_offset >> PAGE_SHIFT));
|
||||
*prot =
|
||||
(mem->flags & TTM_PL_FLAG_CACHED) ? PAGE_KERNEL : ttm_io_prot(mem->
|
||||
flags,
|
||||
(mem->placement & TTM_PL_FLAG_CACHED) ? PAGE_KERNEL : ttm_io_prot(mem->placement,
|
||||
PAGE_KERNEL);
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -496,7 +495,7 @@ int ttm_bo_move_accel_cleanup(struct ttm_buffer_object *bo,
|
|||
struct ttm_mem_type_manager * man = &bdev->man[new_mem->mem_type];
|
||||
struct ttm_mem_reg * old_mem = &bo->mem;
|
||||
int ret;
|
||||
uint32_t save_flags = old_mem->flags;
|
||||
uint32_t save_flags = old_mem->placement;
|
||||
struct ttm_buffer_object *ghost_obj;
|
||||
if (bo->sync_obj)
|
||||
driver->sync_obj_unref(&bo->sync_obj);
|
||||
|
|
@ -541,6 +540,6 @@ int ttm_bo_move_accel_cleanup(struct ttm_buffer_object *bo,
|
|||
|
||||
*old_mem = *new_mem;
|
||||
new_mem->mm_node = NULL;
|
||||
ttm_flag_masked(&save_flags, new_mem->flags, TTM_PL_MASK_MEMTYPE);
|
||||
ttm_flag_masked(&save_flags, new_mem->placement, TTM_PL_MASK_MEMTYPE);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -158,13 +158,13 @@ static int ttm_bo_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
|
|||
*/
|
||||
|
||||
if (is_iomem) {
|
||||
vma->vm_page_prot = ttm_io_prot(bo->mem.flags,
|
||||
vma->vm_page_prot = ttm_io_prot(bo->mem.placement,
|
||||
vma->vm_page_prot);
|
||||
} else {
|
||||
ttm = bo->ttm;
|
||||
vma->vm_page_prot = (bo->mem.flags & TTM_PL_FLAG_CACHED) ?
|
||||
vma->vm_page_prot = (bo->mem.placement & TTM_PL_FLAG_CACHED) ?
|
||||
vm_get_page_prot(vma->vm_flags) :
|
||||
ttm_io_prot(bo->mem.flags, vma->vm_page_prot);
|
||||
ttm_io_prot(bo->mem.placement, vma->vm_page_prot);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -307,13 +307,13 @@ static unsigned long ttm_bo_vm_nopfn(struct vm_area_struct *vma,
|
|||
*/
|
||||
|
||||
if (is_iomem) {
|
||||
vma->vm_page_prot = ttm_io_prot(bo->mem.flags,
|
||||
vma->vm_page_prot = ttm_io_prot(bo->mem.placement,
|
||||
vma->vm_page_prot);
|
||||
} else {
|
||||
ttm = bo->ttm;
|
||||
vma->vm_page_prot = (bo->mem.flags & TTM_PL_FLAG_CACHED) ?
|
||||
vma->vm_page_prot = (bo->mem.placement & TTM_PL_FLAG_CACHED) ?
|
||||
vm_get_page_prot(vma->vm_flags) :
|
||||
ttm_io_prot(bo->mem.flags, vma->vm_page_prot);
|
||||
ttm_io_prot(bo->mem.placement, vma->vm_page_prot);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@ static void ttm_pl_fill_rep(struct ttm_buffer_object *bo,
|
|||
rep->gpu_offset = bo->offset;
|
||||
rep->bo_size = bo->num_pages << PAGE_SHIFT;
|
||||
rep->map_handle = bo->addr_space_offset;
|
||||
rep->placement = bo->mem.flags;
|
||||
rep->placement = bo->mem.placement;
|
||||
rep->handle = user_bo->base.hash.key;
|
||||
rep->sync_object_arg = (uint32_t) (unsigned long)bo->sync_obj_arg;
|
||||
}
|
||||
|
|
@ -403,9 +403,9 @@ int ttm_pl_setstatus_ioctl(struct ttm_object_file *tfile,
|
|||
if (unlikely(ret != 0))
|
||||
goto out_err2;
|
||||
|
||||
bo->proposed_flags = (bo->proposed_flags | req->set_placement)
|
||||
bo->proposed_placement = (bo->proposed_placement | req->set_placement)
|
||||
& ~req->clr_placement;
|
||||
ret = ttm_buffer_object_validate(bo, bo->proposed_flags, true, false);
|
||||
ret = ttm_buffer_object_validate(bo, bo->proposed_placement, true, false);
|
||||
if (unlikely(ret != 0))
|
||||
goto out_err2;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue