aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/pvr/sgx
diff options
context:
space:
mode:
authorImagination Technologies Ltd <gpl-support@imgtec.com>2011-03-31 14:15:31 +0100
committerColin Cross <ccross@android.com>2011-06-14 11:42:27 -0700
commit0f0cd50caa9a4ee498babdbc6d0e1f3a9446a5f2 (patch)
tree2cc1eb040fadc3f331f700d040f5cbc37aac7e52 /drivers/gpu/pvr/sgx
parentf875b902093b890c83ec5e8ab8ddadb4f5ffa814 (diff)
downloadkernel_samsung_tuna-0f0cd50caa9a4ee498babdbc6d0e1f3a9446a5f2.zip
kernel_samsung_tuna-0f0cd50caa9a4ee498babdbc6d0e1f3a9446a5f2.tar.gz
kernel_samsung_tuna-0f0cd50caa9a4ee498babdbc6d0e1f3a9446a5f2.tar.bz2
gpu: pvr: Update to DDK 1.7.17.4474
Change-Id: I930b8de0c00e746d08f214a6b5e064e04828af38 Signed-off-by: Erik Gilling <konkers@android.com>
Diffstat (limited to 'drivers/gpu/pvr/sgx')
-rw-r--r--drivers/gpu/pvr/sgx/bridged_sgx_bridge.c3
-rw-r--r--drivers/gpu/pvr/sgx/mmu.c5
-rw-r--r--drivers/gpu/pvr/sgx/mmu.h2
-rw-r--r--drivers/gpu/pvr/sgx/sgxinit.c12
4 files changed, 20 insertions, 2 deletions
diff --git a/drivers/gpu/pvr/sgx/bridged_sgx_bridge.c b/drivers/gpu/pvr/sgx/bridged_sgx_bridge.c
index 25ceb62..c804fbc 100644
--- a/drivers/gpu/pvr/sgx/bridged_sgx_bridge.c
+++ b/drivers/gpu/pvr/sgx/bridged_sgx_bridge.c
@@ -49,6 +49,7 @@
#include "bridged_pvr_bridge.h"
#include "bridged_sgx_bridge.h"
#include "sgxutils.h"
+#include "buffer_manager.h"
#include "pdump_km.h"
static IMG_INT
@@ -3266,7 +3267,7 @@ SGXPDump3DSignatureRegistersBW(IMG_UINT32 ui32BridgeID,
PVR_ASSERT(psDeviceNode->pfnMMUGetContextID != IMG_NULL)
- ui32MMUContextID = psDeviceNode->pfnMMUGetContextID(hDevMemContextInt);
+ ui32MMUContextID = psDeviceNode->pfnMMUGetContextID((IMG_HANDLE)psDeviceNode->sDevMemoryInfo.pBMKernelContext);
PDumpSignatureBuffer(&psDeviceNode->sDevId,
"out.tasig", "TA", 0,
diff --git a/drivers/gpu/pvr/sgx/mmu.c b/drivers/gpu/pvr/sgx/mmu.c
index 5a087cd..3524145 100644
--- a/drivers/gpu/pvr/sgx/mmu.c
+++ b/drivers/gpu/pvr/sgx/mmu.c
@@ -79,6 +79,8 @@ typedef struct _MMU_PT_INFO_
IMG_VOID *hPTPageOSMemHandle;
IMG_CPU_VIRTADDR PTPageCpuVAddr;
+
+
IMG_UINT32 ui32ValidPTECount;
} MMU_PT_INFO;
@@ -2167,7 +2169,8 @@ MMU_UnmapPagesAndFreePTs (MMU_HEAP *psMMUHeap,
- if (ppsPTInfoList[0] && ppsPTInfoList[0]->ui32ValidPTECount == 0)
+ if (ppsPTInfoList[0] && (ppsPTInfoList[0]->ui32ValidPTECount == 0)
+ )
{
#if defined(FIX_HW_BRN_31620)
if (BRN31620FreePageTable(psMMUHeap, ui32PDIndex) == IMG_TRUE)
diff --git a/drivers/gpu/pvr/sgx/mmu.h b/drivers/gpu/pvr/sgx/mmu.h
index d224f64..59b24c4 100644
--- a/drivers/gpu/pvr/sgx/mmu.h
+++ b/drivers/gpu/pvr/sgx/mmu.h
@@ -145,6 +145,8 @@ IMG_VOID MMU_GetCacheFlushRange(MMU_CONTEXT *pMMUContext, IMG_UINT32 *pui32Range
IMG_VOID MMU_GetPDPhysAddr(MMU_CONTEXT *pMMUContext, IMG_DEV_PHYADDR *psDevPAddr);
#endif
+
+
#if defined(PDUMP)
IMG_UINT32 MMU_GetPDumpContextID(IMG_HANDLE hDevMemContext);
#endif
diff --git a/drivers/gpu/pvr/sgx/sgxinit.c b/drivers/gpu/pvr/sgx/sgxinit.c
index f4d37fb..dc7bfe4 100644
--- a/drivers/gpu/pvr/sgx/sgxinit.c
+++ b/drivers/gpu/pvr/sgx/sgxinit.c
@@ -1426,6 +1426,16 @@ PVRSRV_ERROR SGX_FreeMemTilingRange(PVRSRV_DEVICE_NODE *psDeviceNode,
}
#endif
+static IMG_VOID SGXCacheInvalidate(PVRSRV_DEVICE_NODE *psDeviceNode)
+{
+ PVRSRV_SGXDEV_INFO *psDevInfo = psDeviceNode->pvDevice;
+
+ #if defined(SGX_FEATURE_MP)
+ psDevInfo->ui32CacheControl |= SGXMKIF_CC_INVAL_BIF_SL;
+ #else
+ PVR_UNREFERENCED_PARAMETER(psDevInfo);
+ #endif
+}
PVRSRV_ERROR SGXRegisterDevice (PVRSRV_DEVICE_NODE *psDeviceNode)
{
@@ -1498,6 +1508,8 @@ PVRSRV_ERROR SGXRegisterDevice (PVRSRV_DEVICE_NODE *psDeviceNode)
psDeviceNode->pfnDeviceCommandComplete = &SGXCommandComplete;
+ psDeviceNode->pfnCacheInvalidate = SGXCacheInvalidate;
+
psDevMemoryInfo = &psDeviceNode->sDevMemoryInfo;