diff options
author | Imagination Technologies Ltd <gpl-support@imgtec.com> | 2011-03-31 14:15:31 +0100 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2011-06-14 11:42:27 -0700 |
commit | 0f0cd50caa9a4ee498babdbc6d0e1f3a9446a5f2 (patch) | |
tree | 2cc1eb040fadc3f331f700d040f5cbc37aac7e52 /drivers/gpu/pvr/sgx | |
parent | f875b902093b890c83ec5e8ab8ddadb4f5ffa814 (diff) | |
download | kernel_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.c | 3 | ||||
-rw-r--r-- | drivers/gpu/pvr/sgx/mmu.c | 5 | ||||
-rw-r--r-- | drivers/gpu/pvr/sgx/mmu.h | 2 | ||||
-rw-r--r-- | drivers/gpu/pvr/sgx/sgxinit.c | 12 |
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; |