Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/drm2/ttm/ttm_page_alloc.c
Show First 20 Lines • Show All 157 Lines • ▼ Show 20 Lines | |||||
static vm_page_t | static vm_page_t | ||||
ttm_vm_page_alloc_dma32(int req, vm_memattr_t memattr) | ttm_vm_page_alloc_dma32(int req, vm_memattr_t memattr) | ||||
{ | { | ||||
vm_page_t p; | vm_page_t p; | ||||
int tries; | int tries; | ||||
for (tries = 0; ; tries++) { | for (tries = 0; ; tries++) { | ||||
p = vm_page_alloc_contig(NULL, 0, req, 1, 0, 0xffffffff, | p = vm_page_alloc_noobj_contig(req, 1, 0, 0xffffffff, PAGE_SIZE, | ||||
PAGE_SIZE, 0, memattr); | 0, memattr); | ||||
if (p != NULL || tries > 2) | if (p != NULL || tries > 2) | ||||
return (p); | return (p); | ||||
if (!vm_page_reclaim_contig(req, 1, 0, 0xffffffff, | if (!vm_page_reclaim_contig(req, 1, 0, 0xffffffff, | ||||
PAGE_SIZE, 0)) | PAGE_SIZE, 0)) | ||||
vm_wait(NULL); | vm_wait(NULL); | ||||
} | } | ||||
} | } | ||||
Show All 10 Lines | |||||
static vm_page_t | static vm_page_t | ||||
ttm_vm_page_alloc(int flags, enum ttm_caching_state cstate) | ttm_vm_page_alloc(int flags, enum ttm_caching_state cstate) | ||||
{ | { | ||||
vm_page_t p; | vm_page_t p; | ||||
vm_memattr_t memattr; | vm_memattr_t memattr; | ||||
int req; | int req; | ||||
memattr = ttm_caching_state_to_vm(cstate); | memattr = ttm_caching_state_to_vm(cstate); | ||||
req = VM_ALLOC_NORMAL | VM_ALLOC_WIRED | VM_ALLOC_NOOBJ; | req = VM_ALLOC_WIRED; | ||||
if ((flags & TTM_PAGE_FLAG_ZERO_ALLOC) != 0) | if ((flags & TTM_PAGE_FLAG_ZERO_ALLOC) != 0) | ||||
req |= VM_ALLOC_ZERO; | req |= VM_ALLOC_ZERO; | ||||
if ((flags & TTM_PAGE_FLAG_DMA32) != 0) | if ((flags & TTM_PAGE_FLAG_DMA32) != 0) | ||||
p = ttm_vm_page_alloc_dma32(req, memattr); | p = ttm_vm_page_alloc_dma32(req, memattr); | ||||
else | else | ||||
p = ttm_vm_page_alloc_any(req, memattr); | p = ttm_vm_page_alloc_any(req, memattr); | ||||
▲ Show 20 Lines • Show All 719 Lines • Show Last 20 Lines |