summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Liu <r66033@freescale.com>2016-03-10 17:53:59 +0800
committerXianzhong <xianzhong.li@nxp.com>2016-03-25 13:56:13 +0800
commit160bf920d0acd7d8f88989ac1dfac568f7a48b60 (patch)
tree73034f50425fc42c7e1d852ddeebb4162a0d58c6
parent0e3d9b1f202e41705f3f9d9a862abb89fe08fe61 (diff)
MA-7715 fix GPU kernel panic reported by android CTS
The patch removes the dependence between cache flush operation and node. Node is not used anymore when flush cache. Cache flush can work with only logical address passed into underlying functions does not need physical address. Signed-off-by: Richard Liu <r66033@freescale.com> (cherry picked from commit ad65770512d2baeb45f5d0622d985f9856b7cc1e)
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c30
1 files changed, 0 insertions, 30 deletions
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
index 7d673d372d6e..6258f1f01ea4 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
@@ -1611,7 +1611,6 @@ gckKERNEL_Dispatch(
#endif
gckVIRTUAL_COMMAND_BUFFER_PTR buffer;
- gckVIDMEM_NODE nodeObject;
gctBOOL powerMutexAcquired = gcvFALSE;
gcmkHEADER_ARG("Kernel=0x%x FromUser=%d Interface=0x%x",
@@ -2417,35 +2416,6 @@ gckKERNEL_Dispatch(
case gcvHAL_CACHE:
logical = gcmUINT64_TO_PTR(Interface->u.Cache.logical);
-
- if (Interface->u.Cache.node)
- {
- gcmkONERROR(gckVIDMEM_HANDLE_Lookup(
- Kernel,
- processID,
- Interface->u.Cache.node,
- &nodeObject));
-
- /* Verify the nodeObject. */
- if ((nodeObject == gcvNULL)
- || (nodeObject->node == gcvNULL)
- || (nodeObject->node->VidMem.memory == gcvNULL)
- )
- {
- /* Invalid object. */
- gcmkONERROR(gcvSTATUS_INVALID_OBJECT);
- }
-
- if (nodeObject->node->VidMem.memory->object.type == gcvOBJ_VIDMEM
- || nodeObject->node->Virtual.contiguous
- )
- {
- /* If memory is contiguous, get physical address. */
- gcmkONERROR(gckOS_UserLogicalToPhysical(
- Kernel->os, logical, &paddr));
- }
- }
-
bytes = (gctSIZE_T) Interface->u.Cache.bytes;
switch(Interface->u.Cache.operation)
{