summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_array.h5
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c7
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c6
3 files changed, 8 insertions, 10 deletions
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_array.h b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_array.h
index f5c27ce2bb78..69d4afd23725 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_array.h
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_array.h
@@ -106,11 +106,12 @@ _DmaAlloctorInit(
gcsALLOCATOR_DESC allocatorArray[] =
{
+ /* GFP allocator. */
+ gcmkDEFINE_ALLOCATOR_DESC("gfp", _GFPAlloctorInit),
+
#if LINUX_CMA_FSL
gcmkDEFINE_ALLOCATOR_DESC("cmafsl", _CMAFSLAlloctorInit),
#endif
- /* GFP allocator. */
- gcmkDEFINE_ALLOCATOR_DESC("gfp", _GFPAlloctorInit),
/* User memory importer. */
gcmkDEFINE_ALLOCATOR_DESC("user", _UserMemoryAlloctorInit),
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c
index f3f770acb72f..f0a3d166f1a5 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c
@@ -144,9 +144,9 @@ _CMAFSLAlloc(
gcmkHEADER_ARG("Mdl=%p NumPages=0x%zx", Mdl, NumPages);
- if (os->allocatorLimitMarker)
+ if (os->allocatorLimitMarker && !(Flags & gcvALLOC_FLAG_CMA_PREEMPT))
{
- if ((Flags & gcvALLOC_FLAG_CMA_LIMIT) && !(Flags & gcvALLOC_FLAG_CMA_PREEMPT))
+ if (Flags & gcvALLOC_FLAG_CMA_LIMIT)
{
priv->cmaLimitRequest = gcvTRUE;
}
@@ -585,9 +585,10 @@ _CMAFSLAlloctorInit(
if (Os->allocatorLimitMarker)
{
allocator->capability |= gcvALLOC_FLAG_CMA_LIMIT;
- allocator->capability |= gcvALLOC_FLAG_CMA_PREEMPT;
}
+ allocator->capability |= gcvALLOC_FLAG_CMA_PREEMPT;
+
*Allocator = allocator;
return gcvSTATUS_OK;
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 7e8eb1dd3838..bfd4f2fd2f82 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
@@ -1283,11 +1283,7 @@ gckOS_AllocateNonPagedMemory(
gcmkASSERT(Flag & gcvALLOC_FLAG_CONTIGUOUS);
- if (Os->allocatorLimitMarker)
- {
- Flag |= gcvALLOC_FLAG_CMA_LIMIT;
- Flag |= gcvALLOC_FLAG_CMA_PREEMPT;
- }
+ Flag |= gcvALLOC_FLAG_CMA_PREEMPT;
/* Walk all allocators. */
list_for_each_entry(allocator, &Os->allocatorList, link)