diff options
author | Richard Liu <r66033@freescale.com> | 2013-09-17 21:57:13 +0800 |
---|---|---|
committer | Richard Liu <r66033@freescale.com> | 2013-09-18 11:31:45 +0800 |
commit | fa858cf55ac490f4ebd4ee5e2b532b3676231f5e (patch) | |
tree | 681a110e8212fc35b0796b567cc0a9064a296ee3 | |
parent | 0f7948bd1eec54a4779eab4e58768018cb0635c9 (diff) |
ENGR00278701 use alloc_pages instead of alloc_pages_exact
alloc_pages_exact is added by Vivante in gpu git commit
e3debfdf4c3f29519ee66d60ac9b5e4db4c41026.
alloc_pages_exact is more easy make memory fragment,
video playback and camera recording case need large
physical continue memory, using alloc_pages_exact will
easy make memory fragment and no large physical continue
memory, it will impact video playback and camera case.
Signed-off-by: Richard Liu <r66033@freescale.com>
-rw-r--r-- | drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c | 30 | ||||
-rw-r--r-- | drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.h | 3 |
2 files changed, 2 insertions, 31 deletions
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c index 6a31eba85a9f..58a2d5e344e8 100644 --- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c +++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c @@ -3856,9 +3856,6 @@ gckOS_AllocatePagedMemoryEx( gctSIZE_T bytes; gctBOOL locked = gcvFALSE; gceSTATUS status; -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) - gctPOINTER addr = gcvNULL; -#endif gcmkHEADER_ARG("Os=0x%X Contiguous=%d Bytes=%lu", Os, Contiguous, Bytes); @@ -3884,27 +3881,13 @@ gckOS_AllocatePagedMemoryEx( { /* Get contiguous pages, and suppress warning (stack dump) from kernel when we run out of memory. */ -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) - addr = - alloc_pages_exact(numPages * PAGE_SIZE, GFP_KERNEL | gcdNOWARN | __GFP_NORETRY); - - mdl->u.contiguousPages = addr - ? virt_to_page(addr) - : gcvNULL; - - mdl->exact = gcvTRUE; -#else mdl->u.contiguousPages = alloc_pages(GFP_KERNEL | gcdNOWARN | __GFP_NORETRY, GetOrder(numPages)); -#endif + if (mdl->u.contiguousPages == gcvNULL) { mdl->u.contiguousPages = alloc_pages(GFP_KERNEL | __GFP_HIGHMEM | gcdNOWARN, GetOrder(numPages)); - -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) - mdl->exact = gcvFALSE; -#endif } } else @@ -4049,16 +4032,7 @@ gckOS_FreePagedMemory( if (mdl->contiguous) { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) - if (mdl->exact == gcvTRUE) - { - free_pages_exact(page_address(mdl->u.contiguousPages), mdl->numPages * PAGE_SIZE); - } - else -#endif - { - __free_pages(mdl->u.contiguousPages, GetOrder(mdl->numPages)); - } + __free_pages(mdl->u.contiguousPages, GetOrder(mdl->numPages)); } else { diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.h b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.h index 501cf30e9273..9307e832e167 100644 --- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.h +++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.h @@ -55,9 +55,6 @@ typedef struct _LINUX_MDL gctINT numPages; gctINT pagedMem; gctBOOL contiguous; -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) - gctBOOL exact; -#endif dma_addr_t dmaHandle; PLINUX_MDL_MAP maps; struct _LINUX_MDL * prev; |