summaryrefslogtreecommitdiff
path: root/drivers/mxc
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:54:12 +0800
commit023214b916480508e3b70fbbc3c5cd12976aa7be (patch)
tree51a57c3be8d03855e709c17fe1e4e1c90a1e7d99 /drivers/mxc
parent529621aec56e8d128ce33cd6d9fb2b0669b7e736 (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)
Diffstat (limited to 'drivers/mxc')
-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)
{