summaryrefslogtreecommitdiff
path: root/drivers/gpu/pvr/services4/srvkm/include
diff options
context:
space:
mode:
authorWengang Wu <wgw@motorola.com>2014-05-21 09:29:41 -0500
committerWengang Wu <wgw@motorola.com>2014-05-21 09:29:41 -0500
commit53a835f5057367679eb3db728bbdd427aab8aa8a (patch)
tree03e5bbde7d371e885d1c67210b2b0c9bb0130d40 /drivers/gpu/pvr/services4/srvkm/include
parent7489b569ffb64cdb998544405b6774bd43aab70b (diff)
downloadolio-linux-3.10-53a835f5057367679eb3db728bbdd427aab8aa8a.tar.xz
olio-linux-3.10-53a835f5057367679eb3db728bbdd427aab8aa8a.zip
IKXCLOCK-1501 Upgrade to TI SGX Android OpenGL 1.12@2701748
Initial codes of TI SGX DDK 1.12@2701748 Change-Id: I75a8f6521968346ea1b2ea9fa54817ba186442ce
Diffstat (limited to 'drivers/gpu/pvr/services4/srvkm/include')
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/buffer_manager.h57
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/device.h0
-rwxr-xr-xdrivers/gpu/pvr/services4/srvkm/include/devicemem.h52
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/handle.h26
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/hash.h0
-rwxr-xr-xdrivers/gpu/pvr/services4/srvkm/include/ion_sync.h73
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/lists.h4
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/metrics.h0
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/osfunc.h126
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/osperproc.h0
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/pdump_int.h0
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/pdump_km.h11
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/pdump_osfunc.h60
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/perfkm.h0
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/perproc.h9
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/power.h0
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/queue.h21
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/ra.h3
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/refcount.h43
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/resman.h0
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/services_headers.h0
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/srvkm.h144
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/ttrace.h0
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/ttrace_common.h5
-rwxr-xr-x[-rw-r--r--]drivers/gpu/pvr/services4/srvkm/include/ttrace_tokens.h66
25 files changed, 503 insertions, 197 deletions
diff --git a/drivers/gpu/pvr/services4/srvkm/include/buffer_manager.h b/drivers/gpu/pvr/services4/srvkm/include/buffer_manager.h
index c16efaac005..49d023e4854 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/buffer_manager.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/buffer_manager.h
@@ -91,17 +91,6 @@ struct _BM_MAPPING_
IMG_UINT32 ui32NumVirtChunks;
IMG_UINT32 ui32NumPhysChunks;
IMG_BOOL *pabMapChunk;
-
- /* GPU mapping reference count
- * When goes down to 0 GPU mapping
- * gets removed */
- IMG_UINT32 ui32MappingCount;
-
- /* need to track the original required alignment to make sure
- * that an unmapped buffer which is later remapped to device
- * is remapped with the original alignment restrictions.
- */
- IMG_UINT32 ui32DevVAddrAlignment;
};
/*
@@ -346,8 +335,8 @@ BM_Alloc (IMG_HANDLE hDevMemHeap,
*/
IMG_BOOL
BM_Wrap ( IMG_HANDLE hDevMemHeap,
- IMG_SIZE_T ui32Size,
- IMG_SIZE_T ui32Offset,
+ IMG_SIZE_T uSize,
+ IMG_SIZE_T uOffset,
IMG_BOOL bPhysContig,
IMG_SYS_PHYADDR *psSysAddr,
IMG_VOID *pvCPUVAddr,
@@ -423,32 +412,6 @@ IMG_HANDLE
BM_HandleToOSMemHandle (BM_HANDLE hBuf);
/**
- * @Function BM_RemapToDev
- *
- * @Description
- *
- * Remaps the device Virtual Mapping.
- *
- * @Input hBuf - buffer handle.
- * @Return ref count on success
- */
-IMG_INT32
-BM_RemapToDev(BM_HANDLE hBuf);
-
-/**
- * @Function BM_UnmapFromDev
- *
- * @Description
- *
- * Removes the device Virtual Mapping.
- *
- * @Input hBuf - buffer handle.
- * @Return Ref count on success
- */
-IMG_INT32
-BM_UnmapFromDev(BM_HANDLE hBuf);
-
-/**
* @Function BM_GetPhysPageAddr
*
* @Description
@@ -631,7 +594,6 @@ IMG_BOOL BM_VirtOffsetToPhysical(IMG_HANDLE hBMHandle,
PVRSRV_ERROR BM_XProcWorkaroundSetShareIndex(IMG_UINT32 ui32Index);
PVRSRV_ERROR BM_XProcWorkaroundUnsetShareIndex(IMG_UINT32 ui32Index);
PVRSRV_ERROR BM_XProcWorkaroundFindNewBufferAndSetShareIndex(IMG_UINT32 *pui32Index);
-IMG_INT32 BM_XProcGetShareDataRefCount(IMG_UINT32 ui32Index);
#if defined(PVRSRV_REFCOUNT_DEBUG)
IMG_VOID _BM_XProcIndexAcquireDebug(const IMG_CHAR *pszFile, IMG_INT iLine, IMG_UINT32 ui32Index);
@@ -646,26 +608,13 @@ IMG_VOID _BM_XProcIndexReleaseDebug(const IMG_CHAR *pszFile, IMG_INT iLine, IMG_
IMG_VOID _BM_XProcIndexAcquire(IMG_UINT32 ui32Index);
IMG_VOID _BM_XProcIndexRelease(IMG_UINT32 ui32Index);
+
#define BM_XProcIndexAcquire(x) \
_BM_XProcIndexAcquire( x)
#define BM_XProcIndexRelease(x) \
_BM_XProcIndexRelease( x)
#endif
-static INLINE IMG_CHAR *
-_BMMappingType (IMG_INT eCpuMemoryOrigin)
-{
- switch (eCpuMemoryOrigin)
- {
- case hm_wrapped: return "hm_wrapped";
- case hm_wrapped_scatter: return "hm_wrapped_scatter";
- case hm_wrapped_virtaddr: return "hm_wrapped_virtaddr";
- case hm_wrapped_scatter_virtaddr: return "hm_wrapped_scatter_virtaddr";
- case hm_env: return "hm_env";
- case hm_contiguous: return "hm_contiguous";
- }
- return "junk";
-}
#if defined(__cplusplus)
}
diff --git a/drivers/gpu/pvr/services4/srvkm/include/device.h b/drivers/gpu/pvr/services4/srvkm/include/device.h
index 6ddee5da177..6ddee5da177 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/device.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/device.h
diff --git a/drivers/gpu/pvr/services4/srvkm/include/devicemem.h b/drivers/gpu/pvr/services4/srvkm/include/devicemem.h
new file mode 100755
index 00000000000..00f8fe154a0
--- /dev/null
+++ b/drivers/gpu/pvr/services4/srvkm/include/devicemem.h
@@ -0,0 +1,52 @@
+/*************************************************************************/ /*!
+@Title KM internal device memory functions
+@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+@License Dual MIT/GPLv2
+
+The contents of this file are subject to the MIT license as set out below.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+Alternatively, the contents of this file may be used under the terms of
+the GNU General Public License Version 2 ("GPL") in which case the provisions
+of GPL are applicable instead of those above.
+
+If you wish to allow use of your version of this file only under the terms of
+GPL, and not to allow others to use your version of this file under the terms
+of the MIT license, indicate your decision by deleting the provisions above
+and replace them with the notice and other provisions required by GPL as set
+out in the file called "GPL-COPYING" included in this distribution. If you do
+not delete the provisions above, a recipient may use your version of this file
+under the terms of either the MIT license or GPL.
+
+This License is also included in this distribution in the file called
+"MIT-COPYING".
+
+EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/ /**************************************************************************/
+
+#include "img_defs.h"
+#include "img_types.h"
+#include "servicesext.h"
+
+#ifndef __DEVICEMEM_H__
+#define __DEVICEMEM_H__
+
+PVRSRV_ERROR IMG_CALLCONV PVRSRVInitDeviceMem(IMG_VOID);
+IMG_VOID IMG_CALLCONV PVRSRVDeInitDeviceMem(IMG_VOID);
+
+#endif /* __DEVICEMEM_H__ */
diff --git a/drivers/gpu/pvr/services4/srvkm/include/handle.h b/drivers/gpu/pvr/services4/srvkm/include/handle.h
index 157d2097884..f636073db2b 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/handle.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/handle.h
@@ -230,30 +230,11 @@ typedef enum
struct _PVRSRV_HANDLE_BASE_;
typedef struct _PVRSRV_HANDLE_BASE_ PVRSRV_HANDLE_BASE;
-#if defined (PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE)
+#if defined(PVR_SECURE_HANDLES)
extern PVRSRV_HANDLE_BASE *gpsKernelHandleBase;
#define KERNEL_HANDLE_BASE (gpsKernelHandleBase)
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR PVRSRVAllocHandle(PVRSRV_HANDLE_BASE *psBase, IMG_SID *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, PVRSRV_HANDLE_ALLOC_FLAG eFlag);
-
-PVRSRV_ERROR PVRSRVAllocSubHandle(PVRSRV_HANDLE_BASE *psBase, IMG_SID *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, PVRSRV_HANDLE_ALLOC_FLAG eFlag, IMG_SID hParent);
-
-PVRSRV_ERROR PVRSRVFindHandle(PVRSRV_HANDLE_BASE *psBase, IMG_SID *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType);
-
-PVRSRV_ERROR PVRSRVLookupHandleAnyType(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, PVRSRV_HANDLE_TYPE *peType, IMG_SID hHandle);
-
-PVRSRV_ERROR PVRSRVLookupHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_SID hHandle, PVRSRV_HANDLE_TYPE eType);
-
-PVRSRV_ERROR PVRSRVLookupSubHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_SID hHandle, PVRSRV_HANDLE_TYPE eType, IMG_SID hAncestor);
-
-PVRSRV_ERROR PVRSRVGetParentHandle(PVRSRV_HANDLE_BASE *psBase, IMG_SID *phParent, IMG_SID hHandle, PVRSRV_HANDLE_TYPE eType);
-
-PVRSRV_ERROR PVRSRVLookupAndReleaseHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_SID hHandle, PVRSRV_HANDLE_TYPE eType);
-
-PVRSRV_ERROR PVRSRVReleaseHandle(PVRSRV_HANDLE_BASE *psBase, IMG_SID hHandle, PVRSRV_HANDLE_TYPE eType);
-#else
PVRSRV_ERROR PVRSRVAllocHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, PVRSRV_HANDLE_ALLOC_FLAG eFlag);
PVRSRV_ERROR PVRSRVAllocSubHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE *phHandle, IMG_VOID *pvData, PVRSRV_HANDLE_TYPE eType, PVRSRV_HANDLE_ALLOC_FLAG eFlag, IMG_HANDLE hParent);
@@ -271,7 +252,6 @@ PVRSRV_ERROR PVRSRVGetParentHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *phPare
PVRSRV_ERROR PVRSRVLookupAndReleaseHandle(PVRSRV_HANDLE_BASE *psBase, IMG_PVOID *ppvData, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType);
PVRSRV_ERROR PVRSRVReleaseHandle(PVRSRV_HANDLE_BASE *psBase, IMG_HANDLE hHandle, PVRSRV_HANDLE_TYPE eType);
-#endif /* #if defined (SUPPORT_SID_INTERFACE) */
PVRSRV_ERROR PVRSRVNewHandleBatch(PVRSRV_HANDLE_BASE *psBase, IMG_UINT32 ui32BatchSize);
@@ -295,7 +275,7 @@ PVRSRV_ERROR PVRSRVHandleInit(IMG_VOID);
PVRSRV_ERROR PVRSRVHandleDeInit(IMG_VOID);
-#else /* #if defined (PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE)*/
+#else /* #if defined (PVR_SECURE_HANDLES) */
#define KERNEL_HANDLE_BASE IMG_NULL
@@ -543,7 +523,7 @@ PVRSRV_ERROR PVRSRVHandleDeInit(IMG_VOID)
return PVRSRV_OK;
}
-#endif /* #if defined (PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE)*/
+#endif /* #if defined (PVR_SECURE_HANDLES) */
/*
* Versions of PVRSRVAllocHandle and PVRSRVAllocSubHandle with no return
diff --git a/drivers/gpu/pvr/services4/srvkm/include/hash.h b/drivers/gpu/pvr/services4/srvkm/include/hash.h
index 1ed6fd0238c..1ed6fd0238c 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/hash.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/hash.h
diff --git a/drivers/gpu/pvr/services4/srvkm/include/ion_sync.h b/drivers/gpu/pvr/services4/srvkm/include/ion_sync.h
new file mode 100755
index 00000000000..8600a19ebb7
--- /dev/null
+++ b/drivers/gpu/pvr/services4/srvkm/include/ion_sync.h
@@ -0,0 +1,73 @@
+/*************************************************************************/ /*!
+@Title Services Ion synchronisation integration
+@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved
+@License Dual MIT/GPLv2
+
+The contents of this file are subject to the MIT license as set out below.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+Alternatively, the contents of this file may be used under the terms of
+the GNU General Public License Version 2 ("GPL") in which case the provisions
+of GPL are applicable instead of those above.
+
+If you wish to allow use of your version of this file only under the terms of
+GPL, and not to allow others to use your version of this file under the terms
+of the MIT license, indicate your decision by deleting the provisions above
+and replace them with the notice and other provisions required by GPL as set
+out in the file called "GPL-COPYING" included in this distribution. If you do
+not delete the provisions above, a recipient may use your version of this file
+under the terms of either the MIT license or GPL.
+
+This License is also included in this distribution in the file called
+"MIT-COPYING".
+
+EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
+PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/ /**************************************************************************/
+
+#include "img_defs.h"
+#include "img_types.h"
+#include "servicesint.h"
+
+#ifndef __ION_SYNC_H__
+#define __ION_SYNC_H__
+
+typedef struct _PVRSRV_ION_SYNC_INFO_ {
+ PVRSRV_KERNEL_SYNC_INFO *psSyncInfo;
+ IMG_HANDLE hUnique;
+ IMG_UINT32 ui32RefCount;
+ IMG_UINT64 ui64Stamp;
+} PVRSRV_ION_SYNC_INFO;
+
+PVRSRV_ERROR PVRSRVIonBufferSyncAcquire(IMG_HANDLE hUnique,
+ IMG_HANDLE hDevCookie,
+ IMG_HANDLE hDevMemContext,
+ PVRSRV_ION_SYNC_INFO **ppsIonSyncInfo);
+
+IMG_VOID PVRSRVIonBufferSyncRelease(PVRSRV_ION_SYNC_INFO *psIonSyncInfo);
+
+static INLINE PVRSRV_KERNEL_SYNC_INFO *IonBufferSyncGetKernelSyncInfo(PVRSRV_ION_SYNC_INFO *psIonSyncInfo)
+{
+ return psIonSyncInfo->psSyncInfo;
+}
+
+static INLINE IMG_UINT64 IonBufferSyncGetStamp(PVRSRV_ION_SYNC_INFO *psIonSyncInfo)
+{
+ return psIonSyncInfo->ui64Stamp;
+}
+
+#endif /* __ION_SYNC_H__ */
diff --git a/drivers/gpu/pvr/services4/srvkm/include/lists.h b/drivers/gpu/pvr/services4/srvkm/include/lists.h
index 81205de3bd1..31f54096893 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/lists.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/lists.h
@@ -332,6 +332,10 @@ DECLARE_LIST_ANY_VA_2(PVRSRV_POWER_DEV, PVRSRV_ERROR, PVRSRV_OK);
DECLARE_LIST_INSERT(PVRSRV_POWER_DEV);
DECLARE_LIST_REMOVE(PVRSRV_POWER_DEV);
+DECLARE_LIST_ANY_2(PVRSRV_KERNEL_SYNC_INFO, PVRSRV_ERROR, PVRSRV_OK);
+DECLARE_LIST_INSERT(PVRSRV_KERNEL_SYNC_INFO);
+DECLARE_LIST_REMOVE(PVRSRV_KERNEL_SYNC_INFO);
+
#undef DECLARE_LIST_ANY_2
#undef DECLARE_LIST_ANY_VA
#undef DECLARE_LIST_ANY_VA_2
diff --git a/drivers/gpu/pvr/services4/srvkm/include/metrics.h b/drivers/gpu/pvr/services4/srvkm/include/metrics.h
index 18079cb9624..18079cb9624 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/metrics.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/metrics.h
diff --git a/drivers/gpu/pvr/services4/srvkm/include/osfunc.h b/drivers/gpu/pvr/services4/srvkm/include/osfunc.h
index dcaa58abda8..9bb772c3bbe 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/osfunc.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/osfunc.h
@@ -54,7 +54,6 @@ extern "C" {
#if defined(__linux__) && defined(__KERNEL__)
#include <linux/hardirq.h>
#include <linux/string.h>
-#include <asm/system.h>
#if defined(__arm__)
#include <asm/memory.h>
#endif
@@ -87,7 +86,7 @@ extern "C" {
IMG_UINT32 OSClockus(IMG_VOID);
-IMG_SIZE_T OSGetPageSize(IMG_VOID);
+IMG_UINT32 OSGetPageSize(IMG_VOID);
PVRSRV_ERROR OSInstallDeviceLISR(IMG_VOID *pvSysData,
IMG_UINT32 ui32Irq,
IMG_CHAR *pszISRName,
@@ -98,12 +97,12 @@ PVRSRV_ERROR OSUninstallSystemLISR(IMG_VOID *pvSysData);
PVRSRV_ERROR OSInstallMISR(IMG_VOID *pvSysData);
PVRSRV_ERROR OSUninstallMISR(IMG_VOID *pvSysData);
IMG_CPU_PHYADDR OSMapLinToCPUPhys(IMG_HANDLE, IMG_VOID* pvLinAddr);
-IMG_VOID OSMemCopy(IMG_VOID *pvDst, IMG_VOID *pvSrc, IMG_SIZE_T ui32Size);
-IMG_VOID *OSMapPhysToLin(IMG_CPU_PHYADDR BasePAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_HANDLE *phOSMemHandle);
-IMG_BOOL OSUnMapPhysToLin(IMG_VOID *pvLinAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_HANDLE hOSMemHandle);
+IMG_VOID OSMemCopy(IMG_VOID *pvDst, IMG_VOID *pvSrc, IMG_SIZE_T uiSize);
+IMG_VOID *OSMapPhysToLin(IMG_CPU_PHYADDR BasePAddr, IMG_SIZE_T uBytes, IMG_UINT32 ui32Flags, IMG_HANDLE *phOSMemHandle);
+IMG_BOOL OSUnMapPhysToLin(IMG_VOID *pvLinAddr, IMG_SIZE_T uBytes, IMG_UINT32 ui32Flags, IMG_HANDLE hOSMemHandle);
-PVRSRV_ERROR OSReservePhys(IMG_CPU_PHYADDR BasePAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_HANDLE hBMHandle, IMG_VOID **ppvCpuVAddr, IMG_HANDLE *phOSMemHandle);
-PVRSRV_ERROR OSUnReservePhys(IMG_VOID *pvCpuVAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_HANDLE hOSMemHandle);
+PVRSRV_ERROR OSReservePhys(IMG_CPU_PHYADDR BasePAddr, IMG_SIZE_T uBytes, IMG_UINT32 ui32Flags, IMG_HANDLE hBMHandle, IMG_VOID **ppvCpuVAddr, IMG_HANDLE *phOSMemHandle);
+PVRSRV_ERROR OSUnReservePhys(IMG_VOID *pvCpuVAddr, IMG_SIZE_T uBytes, IMG_UINT32 ui32Flags, IMG_HANDLE hOSMemHandle);
/* Some terminology:
*
@@ -193,11 +192,11 @@ static INLINE IMG_BOOL OSInvalidateCPUCacheRangeKM(IMG_HANDLE hOSMemHandle,
#if defined(__linux__) || defined(__QNXNTO__)
PVRSRV_ERROR OSRegisterDiscontigMem(IMG_SYS_PHYADDR *pBasePAddr,
IMG_VOID *pvCpuVAddr,
- IMG_SIZE_T ui32Bytes,
+ IMG_SIZE_T uBytes,
IMG_UINT32 ui32Flags,
IMG_HANDLE *phOSMemHandle);
PVRSRV_ERROR OSUnRegisterDiscontigMem(IMG_VOID *pvCpuVAddr,
- IMG_SIZE_T ui32Bytes,
+ IMG_SIZE_T uBytes,
IMG_UINT32 ui32Flags,
IMG_HANDLE hOSMemHandle);
#else /* defined(__linux__) */
@@ -206,7 +205,7 @@ PVRSRV_ERROR OSUnRegisterDiscontigMem(IMG_VOID *pvCpuVAddr,
#endif
static INLINE PVRSRV_ERROR OSRegisterDiscontigMem(IMG_SYS_PHYADDR *pBasePAddr,
IMG_VOID *pvCpuVAddr,
- IMG_SIZE_T ui32Bytes,
+ IMG_SIZE_T uBytes,
IMG_UINT32 ui32Flags,
IMG_HANDLE *phOSMemHandle)
{
@@ -223,7 +222,7 @@ static INLINE PVRSRV_ERROR OSRegisterDiscontigMem(IMG_SYS_PHYADDR *pBasePAddr,
#pragma inline(OSUnRegisterDiscontigMem)
#endif
static INLINE PVRSRV_ERROR OSUnRegisterDiscontigMem(IMG_VOID *pvCpuVAddr,
- IMG_SIZE_T ui32Bytes,
+ IMG_SIZE_T uBytes,
IMG_UINT32 ui32Flags,
IMG_HANDLE hOSMemHandle)
{
@@ -241,11 +240,11 @@ static INLINE PVRSRV_ERROR OSUnRegisterDiscontigMem(IMG_VOID *pvCpuVAddr,
#ifdef INLINE_IS_PRAGMA
#pragma inline(OSReserveDiscontigPhys)
#endif
-static INLINE PVRSRV_ERROR OSReserveDiscontigPhys(IMG_SYS_PHYADDR *pBasePAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_VOID **ppvCpuVAddr, IMG_HANDLE *phOSMemHandle)
+static INLINE PVRSRV_ERROR OSReserveDiscontigPhys(IMG_SYS_PHYADDR *pBasePAddr, IMG_SIZE_T uBytes, IMG_UINT32 ui32Flags, IMG_VOID **ppvCpuVAddr, IMG_HANDLE *phOSMemHandle)
{
#if defined(__linux__) || defined(__QNXNTO__)
*ppvCpuVAddr = IMG_NULL;
- return OSRegisterDiscontigMem(pBasePAddr, *ppvCpuVAddr, ui32Bytes, ui32Flags, phOSMemHandle);
+ return OSRegisterDiscontigMem(pBasePAddr, *ppvCpuVAddr, uBytes, ui32Flags, phOSMemHandle);
#else
extern IMG_CPU_PHYADDR SysSysPAddrToCpuPAddr(IMG_SYS_PHYADDR SysPAddr);
@@ -258,14 +257,14 @@ static INLINE PVRSRV_ERROR OSReserveDiscontigPhys(IMG_SYS_PHYADDR *pBasePAddr, I
* 4. We don't need to unmap
*/
- return OSReservePhys(SysSysPAddrToCpuPAddr(pBasePAddr[0]), ui32Bytes, ui32Flags, IMG_NULL, ppvCpuVAddr, phOSMemHandle);
+ return OSReservePhys(SysSysPAddrToCpuPAddr(pBasePAddr[0]), uBytes, ui32Flags, IMG_NULL, ppvCpuVAddr, phOSMemHandle);
#endif
}
-static INLINE PVRSRV_ERROR OSUnReserveDiscontigPhys(IMG_VOID *pvCpuVAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_HANDLE hOSMemHandle)
+static INLINE PVRSRV_ERROR OSUnReserveDiscontigPhys(IMG_VOID *pvCpuVAddr, IMG_SIZE_T uBytes, IMG_UINT32 ui32Flags, IMG_HANDLE hOSMemHandle)
{
#if defined(__linux__) || defined(__QNXNTO__)
- OSUnRegisterDiscontigMem(pvCpuVAddr, ui32Bytes, ui32Flags, hOSMemHandle);
+ OSUnRegisterDiscontigMem(pvCpuVAddr, uBytes, ui32Flags, hOSMemHandle);
#endif
/* We don't need to unmap */
return PVRSRV_OK;
@@ -276,10 +275,10 @@ static INLINE PVRSRV_ERROR OSUnReserveDiscontigPhys(IMG_VOID *pvCpuVAddr, IMG_SI
#ifdef INLINE_IS_PRAGMA
#pragma inline(OSReserveDiscontigPhys)
#endif
-static INLINE PVRSRV_ERROR OSReserveDiscontigPhys(IMG_SYS_PHYADDR *pBasePAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_VOID **ppvCpuVAddr, IMG_HANDLE *phOSMemHandle)
+static INLINE PVRSRV_ERROR OSReserveDiscontigPhys(IMG_SYS_PHYADDR *pBasePAddr, IMG_SIZE_T uBytes, IMG_UINT32 ui32Flags, IMG_VOID **ppvCpuVAddr, IMG_HANDLE *phOSMemHandle)
{
PVR_UNREFERENCED_PARAMETER(pBasePAddr);
- PVR_UNREFERENCED_PARAMETER(ui32Bytes);
+ PVR_UNREFERENCED_PARAMETER(uBytes);
PVR_UNREFERENCED_PARAMETER(ui32Flags);
PVR_UNREFERENCED_PARAMETER(ppvCpuVAddr);
PVR_UNREFERENCED_PARAMETER(phOSMemHandle);
@@ -290,10 +289,10 @@ static INLINE PVRSRV_ERROR OSReserveDiscontigPhys(IMG_SYS_PHYADDR *pBasePAddr, I
#ifdef INLINE_IS_PRAGMA
#pragma inline(OSUnReserveDiscontigPhys)
#endif
-static INLINE PVRSRV_ERROR OSUnReserveDiscontigPhys(IMG_VOID *pvCpuVAddr, IMG_SIZE_T ui32Bytes, IMG_UINT32 ui32Flags, IMG_HANDLE hOSMemHandle)
+static INLINE PVRSRV_ERROR OSUnReserveDiscontigPhys(IMG_VOID *pvCpuVAddr, IMG_SIZE_T uBytes, IMG_UINT32 ui32Flags, IMG_HANDLE hOSMemHandle)
{
PVR_UNREFERENCED_PARAMETER(pvCpuVAddr);
- PVR_UNREFERENCED_PARAMETER(ui32Bytes);
+ PVR_UNREFERENCED_PARAMETER(uBytes);
PVR_UNREFERENCED_PARAMETER(ui32Flags);
PVR_UNREFERENCED_PARAMETER(hOSMemHandle);
@@ -303,11 +302,11 @@ static INLINE PVRSRV_ERROR OSUnReserveDiscontigPhys(IMG_VOID *pvCpuVAddr, IMG_SI
PVRSRV_ERROR OSRegisterMem(IMG_CPU_PHYADDR BasePAddr,
IMG_VOID *pvCpuVAddr,
- IMG_SIZE_T ui32Bytes,
+ IMG_SIZE_T uBytes,
IMG_UINT32 ui32Flags,
IMG_HANDLE *phOSMemHandle);
PVRSRV_ERROR OSUnRegisterMem(IMG_VOID *pvCpuVAddr,
- IMG_SIZE_T ui32Bytes,
+ IMG_SIZE_T uBytes,
IMG_UINT32 ui32Flags,
IMG_HANDLE hOSMemHandle);
@@ -315,8 +314,8 @@ PVRSRV_ERROR OSUnRegisterMem(IMG_VOID *pvCpuVAddr,
#if defined(__linux__) || defined(__QNXNTO__)
PVRSRV_ERROR OSGetSubMemHandle(IMG_HANDLE hOSMemHandle,
- IMG_UINTPTR_T ui32ByteOffset,
- IMG_SIZE_T ui32Bytes,
+ IMG_UINTPTR_T uByteOffset,
+ IMG_SIZE_T uBytes,
IMG_UINT32 ui32Flags,
IMG_HANDLE *phOSMemHandleRet);
PVRSRV_ERROR OSReleaseSubMemHandle(IMG_HANDLE hOSMemHandle, IMG_UINT32 ui32Flags);
@@ -325,13 +324,13 @@ PVRSRV_ERROR OSReleaseSubMemHandle(IMG_HANDLE hOSMemHandle, IMG_UINT32 ui32Flags
#pragma inline(OSGetSubMemHandle)
#endif
static INLINE PVRSRV_ERROR OSGetSubMemHandle(IMG_HANDLE hOSMemHandle,
- IMG_UINTPTR_T ui32ByteOffset,
- IMG_SIZE_T ui32Bytes,
+ IMG_UINTPTR_T uByteOffset,
+ IMG_SIZE_T uBytes,
IMG_UINT32 ui32Flags,
IMG_HANDLE *phOSMemHandleRet)
{
- PVR_UNREFERENCED_PARAMETER(ui32ByteOffset);
- PVR_UNREFERENCED_PARAMETER(ui32Bytes);
+ PVR_UNREFERENCED_PARAMETER(uByteOffset);
+ PVR_UNREFERENCED_PARAMETER(uBytes);
PVR_UNREFERENCED_PARAMETER(ui32Flags);
*phOSMemHandleRet = hOSMemHandle;
@@ -347,18 +346,15 @@ static INLINE PVRSRV_ERROR OSReleaseSubMemHandle(IMG_HANDLE hOSMemHandle, IMG_UI
#endif
IMG_UINT32 OSGetCurrentProcessIDKM(IMG_VOID);
-int OSGetProcCmdline(IMG_UINT32 ui32PID, char * buffer, int buff_size);
-const char* OSGetPathBaseName(char * buffer, int buff_size);
+#if defined (MEM_TRACK_INFO_DEBUG)
+IMG_UINT32 OSGetCurrentTimeInUSecsKM(IMG_VOID);
+#endif
IMG_UINTPTR_T OSGetCurrentThreadID( IMG_VOID );
-IMG_VOID OSMemSet(IMG_VOID *pvDest, IMG_UINT8 ui8Value, IMG_SIZE_T ui32Size);
+IMG_VOID OSMemSet(IMG_VOID *pvDest, IMG_UINT8 ui8Value, IMG_SIZE_T uSize);
-PVRSRV_ERROR OSAllocPages_Impl(IMG_UINT32 ui32Flags, IMG_SIZE_T ui32Size, IMG_UINT32 ui32PageSize,
+PVRSRV_ERROR OSAllocPages_Impl(IMG_UINT32 ui32Flags, IMG_SIZE_T uSize, IMG_UINT32 ui32PageSize,
IMG_PVOID pvPrivData, IMG_UINT32 ui32PrivDataLength, IMG_HANDLE hBMHandle, IMG_PVOID *ppvLinAddr, IMG_HANDLE *phPageAlloc);
-PVRSRV_ERROR OSFreePages(IMG_UINT32 ui32Flags, IMG_SIZE_T ui32Size, IMG_PVOID pvLinAddr, IMG_HANDLE hPageAlloc);
-
-IMG_INT32
-OSGetMemMultiPlaneInfo(IMG_HANDLE hOSMemHandle, IMG_UINT32* pui32AddressOffsets,
- IMG_UINT32* ui32NumAddrOffsets);
+PVRSRV_ERROR OSFreePages(IMG_UINT32 ui32Flags, IMG_SIZE_T uSize, IMG_PVOID pvLinAddr, IMG_HANDLE hPageAlloc);
/*---------------------
@@ -440,14 +436,14 @@ else alias to level 1 wrapper, else the wrapper function will be used*/
/*If level 1 wrapper is enabled declare the functions with extra parameters
else alias to level 0 and declare the functions without the extra debugging parameters*/
#if (defined(__linux__) || defined(__QNXNTO__)) && defined(DEBUG_LINUX_MEMORY_ALLOCATIONS)
- PVRSRV_ERROR OSAllocMem_Impl(IMG_UINT32 ui32Flags, IMG_SIZE_T ui32Size, IMG_PVOID *ppvLinAddr, IMG_HANDLE *phBlockAlloc, IMG_CHAR *pszFilename, IMG_UINT32 ui32Line);
- PVRSRV_ERROR OSFreeMem_Impl(IMG_UINT32 ui32Flags, IMG_SIZE_T ui32Size, IMG_PVOID pvLinAddr, IMG_HANDLE hBlockAlloc, IMG_CHAR *pszFilename, IMG_UINT32 ui32Line);
+ PVRSRV_ERROR OSAllocMem_Impl(IMG_UINT32 ui32Flags, IMG_SIZE_T uSize, IMG_PVOID *ppvLinAddr, IMG_HANDLE *phBlockAlloc, IMG_CHAR *pszFilename, IMG_UINT32 ui32Line);
+ PVRSRV_ERROR OSFreeMem_Impl(IMG_UINT32 ui32Flags, IMG_SIZE_T uSize, IMG_PVOID pvLinAddr, IMG_HANDLE hBlockAlloc, IMG_CHAR *pszFilename, IMG_UINT32 ui32Line);
#define OSAllocMem_Debug_Linux_Memory_Allocations OSAllocMem_Impl
#define OSFreeMem_Debug_Linux_Memory_Allocations OSFreeMem_Impl
#else
- PVRSRV_ERROR OSAllocMem_Impl(IMG_UINT32 ui32Flags, IMG_SIZE_T ui32Size, IMG_PVOID *ppvLinAddr, IMG_HANDLE *phBlockAlloc);
- PVRSRV_ERROR OSFreeMem_Impl(IMG_UINT32 ui32Flags, IMG_SIZE_T ui32Size, IMG_PVOID pvLinAddr, IMG_HANDLE hBlockAlloc);
+ PVRSRV_ERROR OSAllocMem_Impl(IMG_UINT32 ui32Flags, IMG_SIZE_T uSize, IMG_PVOID *ppvLinAddr, IMG_HANDLE *phBlockAlloc);
+ PVRSRV_ERROR OSFreeMem_Impl(IMG_UINT32 ui32Flags, IMG_SIZE_T uSize, IMG_PVOID pvLinAddr, IMG_HANDLE hBlockAlloc);
#define OSAllocMem_Debug_Linux_Memory_Allocations(flags, size, addr, blockAlloc, file, line) \
OSAllocMem_Impl(flags, size, addr, blockAlloc)
@@ -457,16 +453,16 @@ else alias to level 0 and declare the functions without the extra debugging para
#if defined(__linux__) || defined(__QNXNTO__)
-IMG_CPU_PHYADDR OSMemHandleToCpuPAddr(IMG_VOID *hOSMemHandle, IMG_SIZE_T ui32ByteOffset);
+IMG_CPU_PHYADDR OSMemHandleToCpuPAddr(IMG_VOID *hOSMemHandle, IMG_UINTPTR_T uiByteOffset);
#else
#ifdef INLINE_IS_PRAGMA
#pragma inline(OSMemHandleToCpuPAddr)
#endif
-static INLINE IMG_CPU_PHYADDR OSMemHandleToCpuPAddr(IMG_HANDLE hOSMemHandle, IMG_SIZE_T ui32ByteOffset)
+static INLINE IMG_CPU_PHYADDR OSMemHandleToCpuPAddr(IMG_HANDLE hOSMemHandle, IMG_UINTPTR_T uiByteOffset)
{
IMG_CPU_PHYADDR sCpuPAddr;
PVR_UNREFERENCED_PARAMETER(hOSMemHandle);
- PVR_UNREFERENCED_PARAMETER(ui32ByteOffset);
+ PVR_UNREFERENCED_PARAMETER(uiByteOffset);
sCpuPAddr.uiAddr = 0;
return sCpuPAddr;
}
@@ -488,20 +484,9 @@ static INLINE IMG_BOOL OSMemHandleIsPhysContig(IMG_HANDLE hOSMemHandle)
PVRSRV_ERROR OSInitEnvData(IMG_PVOID *ppvEnvSpecificData);
PVRSRV_ERROR OSDeInitEnvData(IMG_PVOID pvEnvSpecificData);
IMG_CHAR* OSStringCopy(IMG_CHAR *pszDest, const IMG_CHAR *pszSrc);
-IMG_INT32 OSSNPrintf(IMG_CHAR *pStr, IMG_SIZE_T ui32Size, const IMG_CHAR *pszFormat, ...) IMG_FORMAT_PRINTF(3, 4);
+IMG_INT32 OSSNPrintf(IMG_CHAR *pStr, IMG_SIZE_T uSize, const IMG_CHAR *pszFormat, ...) IMG_FORMAT_PRINTF(3, 4);
#define OSStringLength(pszString) strlen(pszString)
-#if defined (SUPPORT_SID_INTERFACE)
-PVRSRV_ERROR OSEventObjectCreateKM(const IMG_CHAR *pszName,
- PVRSRV_EVENTOBJECT_KM *psEventObject);
-PVRSRV_ERROR OSEventObjectDestroyKM(PVRSRV_EVENTOBJECT_KM *psEventObject);
-PVRSRV_ERROR OSEventObjectSignalKM(IMG_HANDLE hOSEventKM);
-PVRSRV_ERROR OSEventObjectWaitKM(IMG_HANDLE hOSEventKM);
-PVRSRV_ERROR OSEventObjectOpenKM(PVRSRV_EVENTOBJECT_KM *psEventObject,
- IMG_HANDLE *phOSEvent);
-PVRSRV_ERROR OSEventObjectCloseKM(PVRSRV_EVENTOBJECT_KM *psEventObject,
- IMG_HANDLE hOSEventKM);
-#else
PVRSRV_ERROR OSEventObjectCreateKM(const IMG_CHAR *pszName,
PVRSRV_EVENTOBJECT *psEventObject);
PVRSRV_ERROR OSEventObjectDestroyKM(PVRSRV_EVENTOBJECT *psEventObject);
@@ -511,17 +496,16 @@ PVRSRV_ERROR OSEventObjectOpenKM(PVRSRV_EVENTOBJECT *psEventObject,
IMG_HANDLE *phOSEvent);
PVRSRV_ERROR OSEventObjectCloseKM(PVRSRV_EVENTOBJECT *psEventObject,
IMG_HANDLE hOSEventKM);
-#endif /* #if defined (SUPPORT_SID_INTERFACE) */
-PVRSRV_ERROR OSBaseAllocContigMemory(IMG_SIZE_T ui32Size, IMG_CPU_VIRTADDR *pLinAddr, IMG_CPU_PHYADDR *pPhysAddr);
-PVRSRV_ERROR OSBaseFreeContigMemory(IMG_SIZE_T ui32Size, IMG_CPU_VIRTADDR LinAddr, IMG_CPU_PHYADDR PhysAddr);
+PVRSRV_ERROR OSBaseAllocContigMemory(IMG_SIZE_T uSize, IMG_CPU_VIRTADDR *pLinAddr, IMG_CPU_PHYADDR *pPhysAddr);
+PVRSRV_ERROR OSBaseFreeContigMemory(IMG_SIZE_T uSize, IMG_CPU_VIRTADDR LinAddr, IMG_CPU_PHYADDR PhysAddr);
-IMG_PVOID MapUserFromKernel(IMG_PVOID pvLinAddrKM,IMG_SIZE_T ui32Size,IMG_HANDLE *phMemBlock);
+IMG_PVOID MapUserFromKernel(IMG_PVOID pvLinAddrKM,IMG_SIZE_T uSize,IMG_HANDLE *phMemBlock);
IMG_PVOID OSMapHWRegsIntoUserSpace(IMG_HANDLE hDevCookie, IMG_SYS_PHYADDR sRegAddr, IMG_UINT32 ulSize, IMG_PVOID *ppvProcess);
IMG_VOID OSUnmapHWRegsFromUserSpace(IMG_HANDLE hDevCookie, IMG_PVOID pvUserAddr, IMG_PVOID pvProcess);
-IMG_VOID UnmapUserFromKernel(IMG_PVOID pvLinAddrUM, IMG_SIZE_T ui32Size, IMG_HANDLE hMemBlock);
+IMG_VOID UnmapUserFromKernel(IMG_PVOID pvLinAddrUM, IMG_SIZE_T uSize, IMG_HANDLE hMemBlock);
PVRSRV_ERROR OSMapPhysToUserSpace(IMG_HANDLE hDevCookie,
IMG_SYS_PHYADDR sCPUPhysAddr,
@@ -627,7 +611,7 @@ PVRSRV_ERROR OSRemoveTimer (IMG_HANDLE hTimer);
PVRSRV_ERROR OSEnableTimer (IMG_HANDLE hTimer);
PVRSRV_ERROR OSDisableTimer (IMG_HANDLE hTimer);
-PVRSRV_ERROR OSGetSysMemSize(IMG_SIZE_T *pui32Bytes);
+PVRSRV_ERROR OSGetSysMemSize(IMG_SIZE_T *puBytes);
typedef enum _HOST_PCI_INIT_FLAGS_
{
@@ -674,14 +658,14 @@ typedef enum _img_verify_test
PVR_VERIFY_READ
} IMG_VERIFY_TEST;
-IMG_BOOL OSAccessOK(IMG_VERIFY_TEST eVerification, IMG_VOID *pvUserPtr, IMG_SIZE_T ui32Bytes);
+IMG_BOOL OSAccessOK(IMG_VERIFY_TEST eVerification, IMG_VOID *pvUserPtr, IMG_SIZE_T uBytes);
-PVRSRV_ERROR OSCopyToUser(IMG_PVOID pvProcess, IMG_VOID *pvDest, IMG_VOID *pvSrc, IMG_SIZE_T ui32Bytes);
-PVRSRV_ERROR OSCopyFromUser(IMG_PVOID pvProcess, IMG_VOID *pvDest, IMG_VOID *pvSrc, IMG_SIZE_T ui32Bytes);
+PVRSRV_ERROR OSCopyToUser(IMG_PVOID pvProcess, IMG_VOID *pvDest, IMG_VOID *pvSrc, IMG_SIZE_T uBytes);
+PVRSRV_ERROR OSCopyFromUser(IMG_PVOID pvProcess, IMG_VOID *pvDest, IMG_VOID *pvSrc, IMG_SIZE_T uBytes);
#if defined(__linux__) || defined(__QNXNTO__)
PVRSRV_ERROR OSAcquirePhysPageAddr(IMG_VOID* pvCPUVAddr,
- IMG_SIZE_T ui32Bytes,
+ IMG_SIZE_T uBytes,
IMG_SYS_PHYADDR *psSysPAddr,
IMG_HANDLE *phOSWrapMem);
PVRSRV_ERROR OSReleasePhysPageAddr(IMG_HANDLE hOSWrapMem);
@@ -690,12 +674,12 @@ PVRSRV_ERROR OSReleasePhysPageAddr(IMG_HANDLE hOSWrapMem);
#pragma inline(OSAcquirePhysPageAddr)
#endif
static INLINE PVRSRV_ERROR OSAcquirePhysPageAddr(IMG_VOID* pvCPUVAddr,
- IMG_SIZE_T ui32Bytes,
+ IMG_SIZE_T uBytes,
IMG_SYS_PHYADDR *psSysPAddr,
IMG_HANDLE *phOSWrapMem)
{
PVR_UNREFERENCED_PARAMETER(pvCPUVAddr);
- PVR_UNREFERENCED_PARAMETER(ui32Bytes);
+ PVR_UNREFERENCED_PARAMETER(uBytes);
PVR_UNREFERENCED_PARAMETER(psSysPAddr);
PVR_UNREFERENCED_PARAMETER(phOSWrapMem);
return PVRSRV_OK;
@@ -787,6 +771,12 @@ static INLINE IMG_VOID OSGetCurrentProcessNameKM(IMG_CHAR *pszName, IMG_UINT32 u
#endif
+#if defined(__linux__) && defined(DEBUG)
+#define OSDumpStack dump_stack
+#else
+#define OSDumpStack()
+#endif
+
#if defined (__cplusplus)
}
#endif
diff --git a/drivers/gpu/pvr/services4/srvkm/include/osperproc.h b/drivers/gpu/pvr/services4/srvkm/include/osperproc.h
index 0b962b43830..0b962b43830 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/osperproc.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/osperproc.h
diff --git a/drivers/gpu/pvr/services4/srvkm/include/pdump_int.h b/drivers/gpu/pvr/services4/srvkm/include/pdump_int.h
index a76fed0163b..a76fed0163b 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/pdump_int.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/pdump_int.h
diff --git a/drivers/gpu/pvr/services4/srvkm/include/pdump_km.h b/drivers/gpu/pvr/services4/srvkm/include/pdump_km.h
index e4325ccb360..4d62154fb66 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/pdump_km.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/pdump_km.h
@@ -77,6 +77,10 @@ extern IMG_UINT32 g_ui32EveryLineCounter;
#define MAKEUNIQUETAG(hMemInfo) (0)
#endif
+IMG_BOOL _PDumpIsProcessActive(IMG_VOID);
+
+IMG_BOOL PDumpWillCapture(IMG_UINT32 ui32Flags);
+
#ifdef PDUMP
#define MAKEUNIQUETAG(hMemInfo) (((BM_BUF *)(((PVRSRV_KERNEL_MEM_INFO *)(hMemInfo))->sMemBlk.hBuffer))->pMapping)
@@ -267,8 +271,8 @@ extern IMG_UINT32 g_ui32EveryLineCounter;
IMG_HANDLE hOSMemHandle,
IMG_UINT32 ui32NumBytes,
IMG_UINT32 ui32PageSize,
- IMG_BOOL bShared,
- IMG_HANDLE hUniqueTag);
+ IMG_HANDLE hUniqueTag,
+ IMG_UINT32 ui32Flags);
PVRSRV_ERROR PDumpMallocPageTable(PVRSRV_DEVICE_IDENTIFIER *psDevId,
IMG_HANDLE hOSMemHandle,
IMG_UINT32 ui32Offset,
@@ -282,7 +286,8 @@ extern IMG_UINT32 g_ui32EveryLineCounter;
IMG_UINT32 ui32PageSize,
IMG_HANDLE hUniqueTag,
IMG_BOOL bInterleaved,
- IMG_BOOL bSparse);
+ IMG_BOOL bSparse,
+ IMG_UINT32 ui32Flags);
PVRSRV_ERROR PDumpFreePageTable(PVRSRV_DEVICE_IDENTIFIER *psDevID,
IMG_HANDLE hOSMemHandle,
IMG_CPU_VIRTADDR pvLinAddr,
diff --git a/drivers/gpu/pvr/services4/srvkm/include/pdump_osfunc.h b/drivers/gpu/pvr/services4/srvkm/include/pdump_osfunc.h
index 0f2e103c23b..9fc1fd82297 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/pdump_osfunc.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/pdump_osfunc.h
@@ -58,7 +58,10 @@ extern "C" {
* supported (e.g. Linux).
*/
#define MAX_PDUMP_STRING_LENGTH (256)
-#if defined(__QNXNTO__)
+
+
+#if defined(__QNXNTO__)
+
#define PDUMP_GET_SCRIPT_STRING() \
IMG_CHAR pszScript[MAX_PDUMP_STRING_LENGTH]; \
IMG_UINT32 ui32MaxLen = MAX_PDUMP_STRING_LENGTH-1; \
@@ -79,7 +82,12 @@ extern "C" {
IMG_UINT32 ui32MaxLenFileName = MAX_PDUMP_STRING_LENGTH-1; \
IMG_HANDLE hScript = (IMG_HANDLE)pszScript;
-#else /* WIN32 or QNX */
+#define PDUMP_LOCK(args...)
+#define PDUMP_UNLOCK(args...)
+#define PDUMP_LOCK_MSG(args...)
+#define PDUMP_UNLOCK_MSG(args...)
+
+#else /* __QNXNTO__ */
/*
@@ -117,6 +125,48 @@ extern "C" {
eError = PDumpOSGetFilenameString(&pszFileName, &ui32MaxLenFileName);\
if(eError != PVRSRV_OK) return eError;
+#define PDUMP_LOCK() \
+ PDumpOSLock(__LINE__);
+
+#define PDUMP_UNLOCK() \
+ PDumpOSUnlock(__LINE__);
+
+#define PDUMP_LOCK_MSG() \
+ PDumpOSLockMessageBuffer();
+
+#define PDUMP_UNLOCK_MSG() \
+ PDumpOSUnlockMessageBuffer();
+
+ /*!
+ * @name PDumpOSLock
+ * @brief Lock the PDump streams
+ * @return error none
+ */
+ IMG_VOID PDumpOSLock(IMG_UINT32 ui32Line);
+
+ /*!
+ * @name PDumpOSUnlock
+ * @brief Lock the PDump streams
+ * @return error none
+ */
+ IMG_VOID PDumpOSUnlock(IMG_UINT32 ui32Line);
+
+ /*!
+ * @name PDumpOSLockMessageBuffer
+ * @brief Lock the PDump message buffer
+ * @return error none
+ */
+ IMG_VOID PDumpOSLockMessageBuffer(IMG_VOID);
+
+ /*!
+ * @name PDumpOSUnlockMessageBuffer
+ * @brief Lock the PDump message buffer
+ * @return error none
+ */
+ IMG_VOID PDumpOSUnlockMessageBuffer(IMG_VOID);
+
+#endif /* __QNXNTO__ */
+
/*!
* @name PDumpOSGetScriptString
* @brief Get the "script" buffer
@@ -147,8 +197,6 @@ extern "C" {
*/
PVRSRV_ERROR PDumpOSGetFilenameString(IMG_CHAR **ppszFile, IMG_UINT32 *pui32MaxLen);
-#endif /* WIN32 or QNX */
-
/*
* Define macro for processing variable args list in OS-independent
@@ -305,13 +353,13 @@ IMG_VOID PDumpOSCPUVAddrToDevPAddr(PVRSRV_DEVICE_TYPE eDeviceType,
* @param hOSMemHandle mem allocation handle (used if kernel virtual mem space is limited, e.g. linux)
* @param ui32Offset offset within mem allocation block
* @param pui8LinAddr CPU linear addr
- * @param ui32DataPageMask mask for data page (= data page size -1)
+ * @param uiDataPageMask mask for data page (= data page size -1)
* @return pui32PageOffset CPU page offset (same as device page offset if page sizes equal)
*/
IMG_VOID PDumpOSCPUVAddrToPhysPages(IMG_HANDLE hOSMemHandle,
IMG_UINT32 ui32Offset,
IMG_PUINT8 pui8LinAddr,
- IMG_UINT32 ui32DataPageMask,
+ IMG_UINTPTR_T uiDataPageMask,
IMG_UINT32 *pui32PageOffset);
/*!
diff --git a/drivers/gpu/pvr/services4/srvkm/include/perfkm.h b/drivers/gpu/pvr/services4/srvkm/include/perfkm.h
index 458a29b2fab..458a29b2fab 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/perfkm.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/perfkm.h
diff --git a/drivers/gpu/pvr/services4/srvkm/include/perproc.h b/drivers/gpu/pvr/services4/srvkm/include/perproc.h
index d60361320f1..124f2f23342 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/perproc.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/perproc.h
@@ -56,21 +56,12 @@ typedef struct _PVRSRV_PER_PROCESS_DATA_
IMG_UINT32 ui32PID;
IMG_HANDLE hBlockAlloc;
PRESMAN_CONTEXT hResManContext;
-#if defined (SUPPORT_SID_INTERFACE)
- IMG_SID hPerProcData;
-#else
IMG_HANDLE hPerProcData;
-#endif
PVRSRV_HANDLE_BASE *psHandleBase;
-#if defined (SUPPORT_SID_INTERFACE)
- /* Handles are being allocated in batches */
- IMG_BOOL bHandlesBatched;
-#else
#if defined (PVR_SECURE_HANDLES)
/* Handles are being allocated in batches */
IMG_BOOL bHandlesBatched;
#endif /* PVR_SECURE_HANDLES */
-#endif /* SUPPORT_SID_INTERFACE */
IMG_UINT32 ui32RefCount;
/* True if the process is the initialisation server. */
diff --git a/drivers/gpu/pvr/services4/srvkm/include/power.h b/drivers/gpu/pvr/services4/srvkm/include/power.h
index 0abaf7554e1..0abaf7554e1 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/power.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/power.h
diff --git a/drivers/gpu/pvr/services4/srvkm/include/queue.h b/drivers/gpu/pvr/services4/srvkm/include/queue.h
index 58f80936e8d..6bc82ed5f6e 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/queue.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/queue.h
@@ -43,6 +43,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef QUEUE_H
#define QUEUE_H
+#if defined(SUPPORT_PVRSRV_DEVICE_CLASS)
#if defined(__cplusplus)
extern "C" {
@@ -51,9 +52,9 @@ extern "C" {
/*!
* Macro to Read Offset in given command queue
*/
-#define UPDATE_QUEUE_ROFF(psQueue, ui32Size) \
- (psQueue)->ui32ReadOffset = ((psQueue)->ui32ReadOffset + (ui32Size)) \
- & ((psQueue)->ui32QueueSize - 1);
+#define UPDATE_QUEUE_ROFF(psQueue, uSize) \
+ (psQueue)->uReadOffset = ((psQueue)->uReadOffset + (uSize)) \
+ & ((psQueue)->uQueueSize - 1);
/*!
generic cmd complete structure.
@@ -75,6 +76,11 @@ extern "C" {
IMG_UINT32 ui32AllocSize; /*!< allocated size*/
PFN_QUEUE_COMMAND_COMPLETE pfnCommandComplete; /*!< Command complete callback */
IMG_HANDLE hCallbackData; /*!< Command complete callback data */
+
+#if defined(PVR_ANDROID_NATIVE_WINDOW_HAS_SYNC)
+ IMG_VOID *pvCleanupFence; /*!< Sync fence to 'put' after timeline inc() */
+ IMG_VOID *pvTimeline; /*!< Android sync timeline to inc() */
+#endif
}COMMAND_COMPLETE_DATA, *PCOMMAND_COMPLETE_DATA;
#if !defined(USE_CODE)
@@ -92,7 +98,7 @@ void ProcSeqShowQueue(struct seq_file *sfile,void* el);
IMG_IMPORT
-PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateCommandQueueKM(IMG_SIZE_T ui32QueueSize,
+PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateCommandQueueKM(IMG_SIZE_T uQueueSize,
PVRSRV_QUEUE_INFO **ppsQueueInfo);
IMG_IMPORT
PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyCommandQueueKM(PVRSRV_QUEUE_INFO *psQueueInfo);
@@ -108,11 +114,12 @@ PVRSRV_ERROR IMG_CALLCONV PVRSRVInsertCommandKM(PVRSRV_QUEUE_INFO *psQueue,
PVRSRV_KERNEL_SYNC_INFO *apsSrcSync[],
IMG_SIZE_T ui32DataByteSize,
PFN_QUEUE_COMMAND_COMPLETE pfnCommandComplete,
- IMG_HANDLE hCallbackData);
+ IMG_HANDLE hCallbackData,
+ IMG_HANDLE *phFence);
IMG_IMPORT
PVRSRV_ERROR IMG_CALLCONV PVRSRVGetQueueSpaceKM(PVRSRV_QUEUE_INFO *psQueue,
- IMG_SIZE_T ui32ParamSize,
+ IMG_SIZE_T uParamSize,
IMG_VOID **ppvSpace);
IMG_IMPORT
@@ -138,6 +145,8 @@ PVRSRV_ERROR PVRSRVRemoveCmdProcListKM(IMG_UINT32 ui32DevIndex,
}
#endif
+#endif /* defined(SUPPORT_PVRSRV_DEVICE_CLASS) */
+
#endif /* QUEUE_H */
/******************************************************************************
diff --git a/drivers/gpu/pvr/services4/srvkm/include/ra.h b/drivers/gpu/pvr/services4/srvkm/include/ra.h
index b84a8e54fbe..aaeb345beb0 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/ra.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/ra.h
@@ -87,9 +87,6 @@ struct _RA_STATISTICS_
/** total number of spans deallocated by the callback mechanism */
IMG_SIZE_T uExportCount;
-
- IMG_SIZE_T uFailedAllocCount;
-
};
typedef struct _RA_STATISTICS_ RA_STATISTICS;
diff --git a/drivers/gpu/pvr/services4/srvkm/include/refcount.h b/drivers/gpu/pvr/services4/srvkm/include/refcount.h
index 0e3479df119..a2efd6ceb11 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/refcount.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/refcount.h
@@ -43,6 +43,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define __REFCOUNT_H__
#include "pvr_bridge_km.h"
+#if defined(SUPPORT_ION)
+#include "ion_sync.h"
+#endif /* defined(SUPPORT_ION) */
#if defined(PVRSRV_REFCOUNT_DEBUG)
@@ -111,6 +114,23 @@ void PVRSRVOffsetStructIncMapped2(const IMG_CHAR *pszFile, IMG_INT iLine,
void PVRSRVOffsetStructDecMapped2(const IMG_CHAR *pszFile, IMG_INT iLine,
PKV_OFFSET_STRUCT psOffsetStruct);
+#if defined(SUPPORT_ION)
+#define PVRSRVIonBufferSyncInfoIncRef(x...) \
+ PVRSRVIonBufferSyncInfoIncRef2(__FILE__, __LINE__, x)
+#define PVRSRVIonBufferSyncInfoDecRef(x...) \
+ PVRSRVIonBufferSyncInfoDecRef2(__FILE__, __LINE__, x)
+
+PVRSRV_ERROR PVRSRVIonBufferSyncInfoIncRef2(const IMG_CHAR *pszFile, IMG_INT iLine,
+ IMG_HANDLE hUnique,
+ IMG_HANDLE hDevCookie,
+ IMG_HANDLE hDevMemContext,
+ PVRSRV_ION_SYNC_INFO **ppsIonSyncInfo,
+ PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo);
+void PVRSRVIonBufferSyncInfoDecRef2(const IMG_CHAR *pszFile, IMG_INT iLine,
+ PVRSRV_ION_SYNC_INFO *psIonSyncInfo,
+ PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo);
+#endif /* defined (SUPPORT_ION) */
+
#endif /* defined(__linux__) */
#else /* defined(PVRSRV_REFCOUNT_DEBUG) */
@@ -196,6 +216,29 @@ static INLINE void PVRSRVOffsetStructDecMapped(PKV_OFFSET_STRUCT psOffsetStruct)
psOffsetStruct->ui32Mapped--;
}
+#if defined(SUPPORT_ION)
+static INLINE PVRSRV_ERROR PVRSRVIonBufferSyncInfoIncRef(IMG_HANDLE hUnique,
+ IMG_HANDLE hDevCookie,
+ IMG_HANDLE hDevMemContext,
+ PVRSRV_ION_SYNC_INFO **ppsIonSyncInfo,
+ PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo)
+{
+ PVR_UNREFERENCED_PARAMETER(psKernelMemInfo);
+
+ return PVRSRVIonBufferSyncAcquire(hUnique,
+ hDevCookie,
+ hDevMemContext,
+ ppsIonSyncInfo);
+}
+
+static INLINE void PVRSRVIonBufferSyncInfoDecRef(PVRSRV_ION_SYNC_INFO *psIonSyncInfo,
+ PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo)
+{
+ PVR_UNREFERENCED_PARAMETER(psKernelMemInfo);
+ PVRSRVIonBufferSyncRelease(psIonSyncInfo);
+}
+#endif /* defined (SUPPORT_ION) */
+
#endif /* defined(__linux__) */
#endif /* defined(PVRSRV_REFCOUNT_DEBUG) */
diff --git a/drivers/gpu/pvr/services4/srvkm/include/resman.h b/drivers/gpu/pvr/services4/srvkm/include/resman.h
index 92659d9843f..92659d9843f 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/resman.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/resman.h
diff --git a/drivers/gpu/pvr/services4/srvkm/include/services_headers.h b/drivers/gpu/pvr/services4/srvkm/include/services_headers.h
index d09b8a882c0..d09b8a882c0 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/services_headers.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/services_headers.h
diff --git a/drivers/gpu/pvr/services4/srvkm/include/srvkm.h b/drivers/gpu/pvr/services4/srvkm/include/srvkm.h
index 5d396f89e50..45ac3b1aad8 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/srvkm.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/srvkm.h
@@ -42,6 +42,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef SRVKM_H
#define SRVKM_H
+#include "servicesint.h"
#if defined(__cplusplus)
extern "C" {
@@ -63,12 +64,155 @@ extern "C" {
IMG_IMPORT IMG_VOID PVRSRVScheduleDevicesKM(IMG_VOID);
+#if defined(SUPPORT_PVRSRV_DEVICE_CLASS)
IMG_VOID IMG_CALLCONV PVRSRVSetDCState(IMG_UINT32 ui32State);
+#endif
PVRSRV_ERROR IMG_CALLCONV PVRSRVSaveRestoreLiveSegments(IMG_HANDLE hArena, IMG_PBYTE pbyBuffer, IMG_SIZE_T *puiBufSize, IMG_BOOL bSave);
IMG_VOID PVRSRVScheduleDeviceCallbacks(IMG_VOID);
+ IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVDumpSyncs(IMG_BOOL bActiveOnly);
+
+#define SYNC_OP_CLASS_MASK 0x0000ffffUL
+#define SYNC_OP_CLASS_SHIFT 0
+#define SYNC_OP_CLASS_MODOBJ (1<<0)
+#define SYNC_OP_CLASS_QUEUE (1<<1)
+#define SYNC_OP_CLASS_KICKTA (1<<2)
+#define SYNC_OP_CLASS_TQ_3D (1<<3)
+#define SYNC_OP_CLASS_TQ_2D (1<<4)
+
+#define SYNC_OP_TYPE_MASK 0x00f0000UL
+#define SYNC_OP_TYPE_SHIFT 16
+#define SYNC_OP_TYPE_READOP (1<<0)
+#define SYNC_OP_TYPE_WRITEOP (1<<1)
+#define SYNC_OP_TYPE_READOP2 (1<<2)
+
+#define SYNC_OP_HAS_DATA 0x80000000UL
+#define SYNC_OP_TAKE 0x40000000UL
+#define SYNC_OP_ROLLBACK 0x20000000UL
+
+#ifdef INLINE_IS_PRAGMA
+#pragma inline(SyncTakeWriteOp)
+#endif
+static INLINE
+IMG_UINT32 SyncTakeWriteOp(PVRSRV_KERNEL_SYNC_INFO *psKernelSync, IMG_UINT32 ui32OpType)
+{
+#if defined(SUPPORT_PER_SYNC_DEBUG)
+ IMG_UINT32 ui32Index = psKernelSync->ui32HistoryIndex;
+
+ /* Record a history of all the classes of operation taken on this sync */
+ psKernelSync->ui32OperationMask |= (ui32OpType & SYNC_OP_CLASS_MASK) >> SYNC_OP_CLASS_SHIFT;
+
+ /* Add this operation to the history buffer */
+ psKernelSync->aui32OpInfo[ui32Index] = SYNC_OP_HAS_DATA | ui32OpType | (SYNC_OP_TYPE_WRITEOP << SYNC_OP_TYPE_SHIFT) | SYNC_OP_TAKE;
+ psKernelSync->aui32ReadOpSample[ui32Index] = psKernelSync->psSyncData->ui32ReadOpsPending;
+ psKernelSync->aui32WriteOpSample[ui32Index] = psKernelSync->psSyncData->ui32WriteOpsPending;
+ psKernelSync->aui32ReadOp2Sample[ui32Index] = psKernelSync->psSyncData->ui32ReadOps2Pending;
+ psKernelSync->ui32HistoryIndex++;
+ psKernelSync->ui32HistoryIndex = psKernelSync->ui32HistoryIndex % PER_SYNC_HISTORY;
+#endif
+ PVR_UNREFERENCED_PARAMETER(ui32OpType);
+ return psKernelSync->psSyncData->ui32WriteOpsPending++;
+}
+
+#ifdef INLINE_IS_PRAGMA
+#pragma inline(SyncTakeReadOp)
+#endif
+static INLINE
+IMG_UINT32 SyncTakeReadOp(PVRSRV_KERNEL_SYNC_INFO *psKernelSync, IMG_UINT32 ui32OpType)
+{
+#if defined(SUPPORT_PER_SYNC_DEBUG)
+ IMG_UINT32 ui32Index = psKernelSync->ui32HistoryIndex;
+
+ /* Record a history of all the classes of operation taken on this sync */
+ psKernelSync->ui32OperationMask |= (ui32OpType & SYNC_OP_CLASS_MASK) >> SYNC_OP_CLASS_SHIFT;
+
+ /* Add this operation to the history buffer */
+ psKernelSync->aui32OpInfo[ui32Index] = SYNC_OP_HAS_DATA | ui32OpType | (SYNC_OP_TYPE_READOP << SYNC_OP_TYPE_SHIFT) | SYNC_OP_TAKE;
+ psKernelSync->aui32ReadOpSample[ui32Index] = psKernelSync->psSyncData->ui32ReadOpsPending;
+ psKernelSync->aui32WriteOpSample[ui32Index] = psKernelSync->psSyncData->ui32WriteOpsPending;
+ psKernelSync->aui32ReadOp2Sample[ui32Index] = psKernelSync->psSyncData->ui32ReadOps2Pending;
+ psKernelSync->ui32HistoryIndex++;
+ psKernelSync->ui32HistoryIndex = psKernelSync->ui32HistoryIndex % PER_SYNC_HISTORY;
+#endif
+ PVR_UNREFERENCED_PARAMETER(ui32OpType);
+ return psKernelSync->psSyncData->ui32ReadOpsPending++;
+}
+
+#ifdef INLINE_IS_PRAGMA
+#pragma inline(SyncTakeReadOp2)
+#endif
+static INLINE
+IMG_UINT32 SyncTakeReadOp2(PVRSRV_KERNEL_SYNC_INFO *psKernelSync, IMG_UINT32 ui32OpType)
+{
+#if defined(SUPPORT_PER_SYNC_DEBUG)
+ IMG_UINT32 ui32Index = psKernelSync->ui32HistoryIndex;
+
+ /* Record a history of all the classes of operation taken on this sync */
+ psKernelSync->ui32OperationMask |= (ui32OpType & SYNC_OP_CLASS_MASK) >> SYNC_OP_CLASS_SHIFT;
+
+ /* Add this operation to the history buffer */
+ psKernelSync->aui32OpInfo[ui32Index] = SYNC_OP_HAS_DATA | ui32OpType | (SYNC_OP_TYPE_READOP2 << SYNC_OP_TYPE_SHIFT) | SYNC_OP_TAKE;
+ psKernelSync->aui32ReadOpSample[ui32Index] = psKernelSync->psSyncData->ui32ReadOpsPending;
+ psKernelSync->aui32WriteOpSample[ui32Index] = psKernelSync->psSyncData->ui32WriteOpsPending;
+ psKernelSync->aui32ReadOp2Sample[ui32Index] = psKernelSync->psSyncData->ui32ReadOps2Pending;
+ psKernelSync->ui32HistoryIndex++;
+ psKernelSync->ui32HistoryIndex = psKernelSync->ui32HistoryIndex % PER_SYNC_HISTORY;
+#endif
+ PVR_UNREFERENCED_PARAMETER(ui32OpType);
+ return psKernelSync->psSyncData->ui32ReadOps2Pending++;
+}
+
+#ifdef INLINE_IS_PRAGMA
+#pragma inline(SyncRollBackWriteOp)
+#endif
+static INLINE
+IMG_UINT32 SyncRollBackWriteOp(PVRSRV_KERNEL_SYNC_INFO *psKernelSync, IMG_UINT32 ui32OpType)
+{
+#if defined(SUPPORT_PER_SYNC_DEBUG)
+ IMG_UINT32 ui32Index = psKernelSync->ui32HistoryIndex;
+
+ /* Record a history of all the classes of operation taken on this sync */
+ psKernelSync->ui32OperationMask |= (ui32OpType & SYNC_OP_CLASS_MASK) >> SYNC_OP_CLASS_SHIFT;
+
+ /* Add this operation to the history buffer */
+ psKernelSync->aui32OpInfo[ui32Index] = SYNC_OP_HAS_DATA | ui32OpType | (SYNC_OP_TYPE_WRITEOP << SYNC_OP_TYPE_SHIFT) | SYNC_OP_ROLLBACK;
+ psKernelSync->aui32ReadOpSample[ui32Index] = psKernelSync->psSyncData->ui32ReadOpsPending;
+ psKernelSync->aui32WriteOpSample[ui32Index] = psKernelSync->psSyncData->ui32WriteOpsPending;
+ psKernelSync->aui32ReadOp2Sample[ui32Index] = psKernelSync->psSyncData->ui32ReadOps2Pending;
+ psKernelSync->ui32HistoryIndex++;
+ psKernelSync->ui32HistoryIndex = psKernelSync->ui32HistoryIndex % PER_SYNC_HISTORY;
+#endif
+ PVR_UNREFERENCED_PARAMETER(ui32OpType);
+ return psKernelSync->psSyncData->ui32WriteOpsPending--;
+}
+
+#ifdef INLINE_IS_PRAGMA
+#pragma inline(SyncRollBackReadOp)
+#endif
+static INLINE
+IMG_UINT32 SyncRollBackReadOp(PVRSRV_KERNEL_SYNC_INFO *psKernelSync, IMG_UINT32 ui32OpType)
+{
+#if defined(SUPPORT_PER_SYNC_DEBUG)
+ IMG_UINT32 ui32Index = psKernelSync->ui32HistoryIndex;
+
+ /* Record a history of all the classes of operation taken on this sync */
+ psKernelSync->ui32OperationMask |= (ui32OpType & SYNC_OP_CLASS_MASK) >> SYNC_OP_CLASS_SHIFT;
+
+ /* Add this operation to the history buffer */
+ psKernelSync->aui32OpInfo[ui32Index] = SYNC_OP_HAS_DATA | ui32OpType | (SYNC_OP_TYPE_READOP << SYNC_OP_TYPE_SHIFT) | SYNC_OP_ROLLBACK;
+ psKernelSync->aui32ReadOpSample[ui32Index] = psKernelSync->psSyncData->ui32ReadOpsPending;
+ psKernelSync->aui32WriteOpSample[ui32Index] = psKernelSync->psSyncData->ui32WriteOpsPending;
+ psKernelSync->aui32ReadOp2Sample[ui32Index] = psKernelSync->psSyncData->ui32ReadOps2Pending;
+ psKernelSync->ui32HistoryIndex++;
+ psKernelSync->ui32HistoryIndex = psKernelSync->ui32HistoryIndex % PER_SYNC_HISTORY;
+#endif
+ PVR_UNREFERENCED_PARAMETER(ui32OpType);
+ return psKernelSync->psSyncData->ui32ReadOpsPending--;
+}
+
+
#if defined (__cplusplus)
}
diff --git a/drivers/gpu/pvr/services4/srvkm/include/ttrace.h b/drivers/gpu/pvr/services4/srvkm/include/ttrace.h
index cb70ff8e2a2..cb70ff8e2a2 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/ttrace.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/ttrace.h
diff --git a/drivers/gpu/pvr/services4/srvkm/include/ttrace_common.h b/drivers/gpu/pvr/services4/srvkm/include/ttrace_common.h
index b14f256fc06..e149c20f0c3 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/ttrace_common.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/ttrace_common.h
@@ -121,7 +121,12 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define READ_HEADER(n,m) \
((m & (PVRSRV_TRACE_##n##_MASK << PVRSRV_TRACE_##n##_SHIFT)) >> PVRSRV_TRACE_##n##_SHIFT)
+
+#if defined(TTRACE_LARGE_BUFFER)
+#define TIME_TRACE_BUFFER_SIZE 8192
+#else
#define TIME_TRACE_BUFFER_SIZE 4096
+#endif
/* Type defines for trace items */
#define PVRSRV_TRACE_TYPE_UI8 0
diff --git a/drivers/gpu/pvr/services4/srvkm/include/ttrace_tokens.h b/drivers/gpu/pvr/services4/srvkm/include/ttrace_tokens.h
index 24bc4843ec2..5f898495cdf 100644..100755
--- a/drivers/gpu/pvr/services4/srvkm/include/ttrace_tokens.h
+++ b/drivers/gpu/pvr/services4/srvkm/include/ttrace_tokens.h
@@ -52,26 +52,29 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define PVRSRV_TRACE_GROUP_QUEUE 2
#define PVRSRV_TRACE_GROUP_POWER 3
#define PVRSRV_TRACE_GROUP_MKSYNC 4
+#define PVRSRV_TRACE_GROUP_MODOBJ 5
#define PVRSRV_TRACE_GROUP_PADDING 255
/* Trace classes */
#define PVRSRV_TRACE_CLASS_FUNCTION_ENTER 0
#define PVRSRV_TRACE_CLASS_FUNCTION_EXIT 1
-#define PVRSRV_TRACE_CLASS_SYNC 2
-#define PVRSRV_TRACE_CLASS_CCB 3
+#define PVRSRV_TRACE_CLASS_SYNC 2
+#define PVRSRV_TRACE_CLASS_CCB 3
#define PVRSRV_TRACE_CLASS_CMD_START 4
-#define PVRSRV_TRACE_CLASS_CMD_END 5
+#define PVRSRV_TRACE_CLASS_CMD_END 5
#define PVRSRV_TRACE_CLASS_CMD_COMP_START 6
#define PVRSRV_TRACE_CLASS_CMD_COMP_END 7
#define PVRSRV_TRACE_CLASS_FLAGS 8
-
-#define PVRSRV_TRACE_CLASS_NONE 255
+#define PVRSRV_TRACE_CLASS_DEVVADDR 9
+#define PVRSRV_TRACE_CLASS_FRAMENUM 10
+
+#define PVRSRV_TRACE_CLASS_NONE 255
/* Operation about to happen on the sync object */
#define PVRSRV_SYNCOP_SAMPLE 0
#define PVRSRV_SYNCOP_COMPLETE 1
-#define PVRSRV_SYNCOP_DUMP 2
+#define PVRSRV_SYNCOP_DUMP 2
/*
* Trace tokens
@@ -80,15 +83,19 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/* Kick group tokens */
-#define KICK_TOKEN_DOKICK 0
+#define KICK_TOKEN_DOKICK 0
#define KICK_TOKEN_CCB_OFFSET 1
#define KICK_TOKEN_TA3D_SYNC 2
-#define KICK_TOKEN_TA_SYNC 3
-#define KICK_TOKEN_3D_SYNC 4
-#define KICK_TOKEN_SRC_SYNC 5
-#define KICK_TOKEN_DST_SYNC 6
-#define KICK_TOKEN_FIRST_KICK 7
-#define KICK_TOKEN_LAST_KICK 8
+#define KICK_TOKEN_TA_SYNC 3
+#define KICK_TOKEN_3D_SYNC 4
+#define KICK_TOKEN_SRC_SYNC 5
+#define KICK_TOKEN_DST_SYNC 6
+#define KICK_TOKEN_FIRST_KICK 7
+#define KICK_TOKEN_LAST_KICK 8
+#define KICK_TOKEN_HWRTDATASET 9
+#define KICK_TOKEN_HWRTDATA 10
+#define KICK_TOKEN_FRAMENUM 11
+#define KICK_TOKEN_RENDERCONTEXT 12
/* Transfer Queue group tokens */
#define TRANSFER_TOKEN_SUBMIT 0
@@ -99,21 +106,30 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define TRANSFER_TOKEN_CCB_OFFSET 5
/* Queue group tokens */
-#define QUEUE_TOKEN_GET_SPACE 0
-#define QUEUE_TOKEN_INSERTKM 1
-#define QUEUE_TOKEN_SUBMITKM 2
-#define QUEUE_TOKEN_PROCESS_COMMAND 3
-#define QUEUE_TOKEN_PROCESS_QUEUES 4
+#define QUEUE_TOKEN_GET_SPACE 0
+#define QUEUE_TOKEN_INSERTKM 1
+#define QUEUE_TOKEN_SUBMITKM 2
+#define QUEUE_TOKEN_PROCESS_COMMAND 3
+#define QUEUE_TOKEN_PROCESS_QUEUES 4
#define QUEUE_TOKEN_COMMAND_COMPLETE 5
-#define QUEUE_TOKEN_UPDATE_DST 6
-#define QUEUE_TOKEN_UPDATE_SRC 7
-#define QUEUE_TOKEN_SRC_SYNC 8
-#define QUEUE_TOKEN_DST_SYNC 9
-#define QUEUE_TOKEN_COMMAND_TYPE 10
+#define QUEUE_TOKEN_UPDATE_DST 6
+#define QUEUE_TOKEN_UPDATE_SRC 7
+#define QUEUE_TOKEN_SRC_SYNC 8
+#define QUEUE_TOKEN_DST_SYNC 9
+#define QUEUE_TOKEN_COMMAND_TYPE 10
/* uKernel Sync tokens */
#define MKSYNC_TOKEN_KERNEL_CCB_OFFSET 0
-#define MKSYNC_TOKEN_CORE_CLK 1
-#define MKSYNC_TOKEN_UKERNEL_CLK 2
+#define MKSYNC_TOKEN_CORE_CLK 1
+#define MKSYNC_TOKEN_UKERNEL_CLK 2
+
+/* ModObj tokens */
+#define MODOBJ_TOKEN_MODIFY_PENDING 0
+#define MODOBJ_TOKEN_COMPLETE_PENDING 1
+#define MODOBJ_TOKEN_READ_SYNC 2
+#define MODOBJ_TOKEN_WRITE_SYNC 3
+#define MODOBJ_TOKEN_READ_WRITE_SYNC 4
+#define MODOBJ_TOKEN_SYNC_UPDATE 5
+#define MODOBJ_TOKEN_READ2_SYNC 6
#endif /* __TTRACE_TOKENS_H__ */