Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/drm2/ttm/ttm_page_alloc.c
Show First 20 Lines • Show All 162 Lines • ▼ Show 20 Lines | ttm_vm_page_alloc_dma32(int req, vm_memattr_t memattr) | ||||
for (tries = 0; ; tries++) { | for (tries = 0; ; tries++) { | ||||
p = vm_page_alloc_contig(NULL, 0, req, 1, 0, 0xffffffff, | p = vm_page_alloc_contig(NULL, 0, req, 1, 0, 0xffffffff, | ||||
PAGE_SIZE, 0, memattr); | PAGE_SIZE, 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, 0); | ||||
} | } | ||||
} | } | ||||
static vm_page_t | static vm_page_t | ||||
ttm_vm_page_alloc_any(int req, vm_memattr_t memattr) | ttm_vm_page_alloc_any(int req, vm_memattr_t memattr) | ||||
{ | { | ||||
vm_page_t p; | vm_page_t p; | ||||
while (1) { | while (1) { | ||||
p = vm_page_alloc(NULL, 0, req); | p = vm_page_alloc(NULL, 0, req); | ||||
if (p != NULL) | if (p != NULL) | ||||
break; | break; | ||||
vm_wait(NULL); | vm_wait(NULL, 0); | ||||
} | } | ||||
pmap_page_set_memattr(p, memattr); | pmap_page_set_memattr(p, memattr); | ||||
return (p); | return (p); | ||||
} | } | ||||
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) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 733 Lines • Show Last 20 Lines |