mirror of
https://github.com/revyos/thead-kernel.git
synced 2026-09-17 21:02:13 +02:00
feat: update gpu to Linux_SDK_V1.2.1
This version update involves a lot of content, so the previous version has been deleted and the new version has been re-merged into the kernel. The configuration file for the GPU driver originates from a previous version. Signed-off-by: Mingzheng Xing <xingmingzheng@iscas.ac.cn>
This commit is contained in:
@@ -65,7 +65,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#include "rgxhwperf.h"
|
||||
|
||||
#if defined(SUPPORT_VALIDATION) && defined(SUPPORT_SOC_TIMER)
|
||||
#include "validation_soc.h"
|
||||
#include "rgxsoctimer.h"
|
||||
#endif
|
||||
|
||||
#if defined(PVRSRV_NEED_PVR_DPF)
|
||||
@@ -173,7 +173,7 @@ struct _SYNC_CHECKPOINT_CONTEXT_CTL_
|
||||
POS_SPINLOCK hDeferredCleanupListLock;
|
||||
|
||||
#if (SYNC_CHECKPOINT_POOL_SIZE > 0)
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointPool[SYNC_CHECKPOINT_POOL_SIZE];
|
||||
SYNC_CHECKPOINT *psSyncCheckpointPool[SYNC_CHECKPOINT_POOL_SIZE];
|
||||
IMG_BOOL bSyncCheckpointPoolFull;
|
||||
IMG_BOOL bSyncCheckpointPoolValid;
|
||||
IMG_UINT32 ui32SyncCheckpointPoolCount;
|
||||
@@ -207,8 +207,8 @@ struct SYNC_CHECKPOINT_RECORD
|
||||
static PFN_SYNC_CHECKPOINT_STRUCT *g_psSyncCheckpointPfnStruct = NULL;
|
||||
|
||||
#if (SYNC_CHECKPOINT_POOL_SIZE > 0)
|
||||
static _SYNC_CHECKPOINT *_GetCheckpointFromPool(_SYNC_CHECKPOINT_CONTEXT *psContext);
|
||||
static IMG_BOOL _PutCheckpointInPool(_SYNC_CHECKPOINT *psSyncCheckpoint);
|
||||
static SYNC_CHECKPOINT *_GetCheckpointFromPool(_SYNC_CHECKPOINT_CONTEXT *psContext);
|
||||
static IMG_BOOL _PutCheckpointInPool(SYNC_CHECKPOINT *psSyncCheckpoint);
|
||||
static IMG_UINT32 _CleanCheckpointPool(_SYNC_CHECKPOINT_CONTEXT *psContext);
|
||||
#endif
|
||||
|
||||
@@ -224,7 +224,7 @@ static IMG_UINT32 gui32NumSyncCheckpointContexts = 0;
|
||||
|
||||
#if defined(SUPPORT_RGX)
|
||||
static inline void RGXSRVHWPerfSyncCheckpointUFOIsSignalled(PVRSRV_RGXDEV_INFO *psDevInfo,
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt, IMG_UINT32 ui32FenceSyncFlags)
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt, IMG_UINT32 ui32FenceSyncFlags)
|
||||
{
|
||||
if (RGXHWPerfHostIsEventEnabled(psDevInfo, RGX_HWPERF_HOST_UFO)
|
||||
&& !(ui32FenceSyncFlags & PVRSRV_FENCE_FLAG_SUPPRESS_HWP_PKT))
|
||||
@@ -255,7 +255,7 @@ static inline void RGXSRVHWPerfSyncCheckpointUFOIsSignalled(PVRSRV_RGXDEV_INFO *
|
||||
}
|
||||
|
||||
static inline void RGXSRVHWPerfSyncCheckpointUFOUpdate(PVRSRV_RGXDEV_INFO *psDevInfo,
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt, IMG_UINT32 ui32FenceSyncFlags)
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt, IMG_UINT32 ui32FenceSyncFlags)
|
||||
{
|
||||
if (RGXHWPerfHostIsEventEnabled(psDevInfo, RGX_HWPERF_HOST_UFO)
|
||||
&& !(ui32FenceSyncFlags & PVRSRV_FENCE_FLAG_SUPPRESS_HWP_PKT))
|
||||
@@ -297,8 +297,8 @@ static void _SyncCheckpointRecordListDeinit(PVRSRV_DEVICE_NODE *psDevNode);
|
||||
#if defined(PDUMP)
|
||||
static void
|
||||
MISRHandler_PdumpDeferredSyncSignalPoster(void *pvData);
|
||||
static PVRSRV_ERROR _SyncCheckpointAllocPDump(PVRSRV_DEVICE_NODE *psDevNode, _SYNC_CHECKPOINT *psSyncCheckpoint);
|
||||
static PVRSRV_ERROR _SyncCheckpointUpdatePDump(PPVRSRV_DEVICE_NODE psDevNode, _SYNC_CHECKPOINT *psSyncCheckpoint, IMG_UINT32 ui32Status, IMG_UINT32 ui32FenceSyncFlags);
|
||||
static PVRSRV_ERROR _SyncCheckpointAllocPDump(PVRSRV_DEVICE_NODE *psDevNode, SYNC_CHECKPOINT *psSyncCheckpoint);
|
||||
static PVRSRV_ERROR _SyncCheckpointUpdatePDump(PPVRSRV_DEVICE_NODE psDevNode, SYNC_CHECKPOINT *psSyncCheckpoint, IMG_UINT32 ui32Status, IMG_UINT32 ui32FenceSyncFlags);
|
||||
static PVRSRV_ERROR _SyncCheckpointPDumpTransition(void *pvData, PDUMP_TRANSITION_EVENT eEvent);
|
||||
#endif
|
||||
|
||||
@@ -528,7 +528,7 @@ _SyncCheckpointBlockUnimport(RA_PERARENA_HANDLE hArena,
|
||||
SyncCheckpointContextUnref((PSYNC_CHECKPOINT_CONTEXT)psContext);
|
||||
}
|
||||
|
||||
static INLINE IMG_UINT32 _SyncCheckpointGetOffset(_SYNC_CHECKPOINT *psSyncInt)
|
||||
static INLINE IMG_UINT32 _SyncCheckpointGetOffset(SYNC_CHECKPOINT *psSyncInt)
|
||||
{
|
||||
IMG_UINT64 ui64Temp;
|
||||
|
||||
@@ -564,18 +564,6 @@ SyncCheckpointRegisterFunctions(PFN_SYNC_CHECKPOINT_STRUCT *psSyncCheckpointPfns
|
||||
return PVRSRV_OK;
|
||||
}
|
||||
|
||||
#if defined(SUPPORT_NATIVE_FENCE_SYNC)
|
||||
struct _PVRSRV_DEVICE_NODE_ *SyncCheckpointGetAssociatedDevice(PSYNC_CHECKPOINT_CONTEXT psSyncCheckpointContext)
|
||||
{
|
||||
return ((_SYNC_CHECKPOINT_CONTEXT*)psSyncCheckpointContext)->psDevNode;
|
||||
}
|
||||
#else
|
||||
PPVRSRV_DEVICE_NODE SyncCheckpointGetAssociatedDevice(PSYNC_CHECKPOINT_CONTEXT psSyncCheckpointContext)
|
||||
{
|
||||
return ((_SYNC_CHECKPOINT_CONTEXT*)psSyncCheckpointContext)->psDevNode;
|
||||
}
|
||||
#endif
|
||||
|
||||
PVRSRV_ERROR
|
||||
SyncCheckpointResolveFence(PSYNC_CHECKPOINT_CONTEXT psSyncCheckpointContext,
|
||||
PVRSRV_FENCE hFence, IMG_UINT32 *pui32NumSyncCheckpoints,
|
||||
@@ -586,7 +574,7 @@ SyncCheckpointResolveFence(PSYNC_CHECKPOINT_CONTEXT psSyncCheckpointContext,
|
||||
PVRSRV_ERROR eError = PVRSRV_OK;
|
||||
IMG_UINT32 i;
|
||||
#if defined(PDUMP)
|
||||
_SYNC_CHECKPOINT *psSyncCheckpoint = NULL;
|
||||
SYNC_CHECKPOINT *psSyncCheckpoint = NULL;
|
||||
#endif
|
||||
|
||||
if (unlikely(!g_psSyncCheckpointPfnStruct || !g_psSyncCheckpointPfnStruct->pfnFenceResolve))
|
||||
@@ -620,7 +608,7 @@ SyncCheckpointResolveFence(PSYNC_CHECKPOINT_CONTEXT psSyncCheckpointContext,
|
||||
{
|
||||
for (i = 0; i < *pui32NumSyncCheckpoints; i++)
|
||||
{
|
||||
psSyncCheckpoint = (_SYNC_CHECKPOINT *)(*papsSyncCheckpoints)[i];
|
||||
psSyncCheckpoint = (SYNC_CHECKPOINT *)(*papsSyncCheckpoints)[i];
|
||||
psSyncCheckpoint->ui32PDumpFlags = ui32PDumpFlags;
|
||||
}
|
||||
}
|
||||
@@ -698,6 +686,7 @@ SyncCheckpointCreateFence(PVRSRV_DEVICE_NODE *psDevNode,
|
||||
else
|
||||
{
|
||||
eError = g_psSyncCheckpointPfnStruct->pfnFenceCreate(
|
||||
psDevNode,
|
||||
pszFenceName,
|
||||
hTimeline,
|
||||
psSyncCheckpointContext,
|
||||
@@ -736,7 +725,7 @@ SyncCheckpointCreateFence(PVRSRV_DEVICE_NODE *psDevNode,
|
||||
#if defined(PDUMP)
|
||||
if (eError == PVRSRV_OK)
|
||||
{
|
||||
_SYNC_CHECKPOINT *psSyncCheckpoint = (_SYNC_CHECKPOINT*)(*psNewSyncCheckpoint);
|
||||
SYNC_CHECKPOINT *psSyncCheckpoint = (SYNC_CHECKPOINT*)(*psNewSyncCheckpoint);
|
||||
if (psSyncCheckpoint)
|
||||
{
|
||||
psSyncCheckpoint->ui32PDumpFlags = ui32PDumpFlags;
|
||||
@@ -1006,7 +995,7 @@ fail_alloc:
|
||||
|
||||
/* Poisons and frees the checkpoint
|
||||
* Decrements context refcount. */
|
||||
static void _FreeSyncCheckpoint(_SYNC_CHECKPOINT *psSyncCheckpoint)
|
||||
static void _FreeSyncCheckpoint(SYNC_CHECKPOINT *psSyncCheckpoint)
|
||||
{
|
||||
_SYNC_CHECKPOINT_CONTEXT *psContext = psSyncCheckpoint->psSyncCheckpointBlock->psContext;
|
||||
|
||||
@@ -1085,7 +1074,7 @@ PVRSRV_ERROR SyncCheckpointContextDestroy(PSYNC_CHECKPOINT_CONTEXT psSyncCheckpo
|
||||
|
||||
dllist_foreach_node(&psDevNode->sSyncCheckpointSyncsList, psNode, psNext)
|
||||
{
|
||||
_SYNC_CHECKPOINT *psSyncCheckpoint = IMG_CONTAINER_OF(psNode, _SYNC_CHECKPOINT, sListNode);
|
||||
SYNC_CHECKPOINT *psSyncCheckpoint = IMG_CONTAINER_OF(psNode, SYNC_CHECKPOINT, sListNode);
|
||||
bool bDeferredFree = dllist_node_is_in_list(&psSyncCheckpoint->sDeferredFreeListNode);
|
||||
|
||||
/* Line below avoids build error in release builds (where PVR_DPF is not defined) */
|
||||
@@ -1143,7 +1132,7 @@ SyncCheckpointAlloc(PSYNC_CHECKPOINT_CONTEXT psSyncContext,
|
||||
const IMG_CHAR *pszCheckpointName,
|
||||
PSYNC_CHECKPOINT *ppsSyncCheckpoint)
|
||||
{
|
||||
_SYNC_CHECKPOINT *psNewSyncCheckpoint = NULL;
|
||||
SYNC_CHECKPOINT *psNewSyncCheckpoint = NULL;
|
||||
_SYNC_CHECKPOINT_CONTEXT *psSyncContextInt = (_SYNC_CHECKPOINT_CONTEXT*)psSyncContext;
|
||||
PVRSRV_DEVICE_NODE *psDevNode;
|
||||
PVRSRV_ERROR eError;
|
||||
@@ -1316,7 +1305,7 @@ fail_alloc:
|
||||
return eError;
|
||||
}
|
||||
|
||||
static void SyncCheckpointUnref(_SYNC_CHECKPOINT *psSyncCheckpointInt)
|
||||
static void SyncCheckpointUnref(SYNC_CHECKPOINT *psSyncCheckpointInt)
|
||||
{
|
||||
_SYNC_CHECKPOINT_CONTEXT *psContext;
|
||||
PVRSRV_DEVICE_NODE *psDevNode;
|
||||
@@ -1435,7 +1424,7 @@ static void SyncCheckpointUnref(_SYNC_CHECKPOINT *psSyncCheckpointInt)
|
||||
|
||||
void SyncCheckpointFree(PSYNC_CHECKPOINT psSyncCheckpoint)
|
||||
{
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt = (_SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt = (SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
|
||||
PVR_LOG_RETURN_VOID_IF_FALSE((psSyncCheckpoint != NULL), "psSyncCheckpoint invalid");
|
||||
|
||||
@@ -1454,7 +1443,7 @@ void SyncCheckpointFree(PSYNC_CHECKPOINT psSyncCheckpoint)
|
||||
void
|
||||
SyncCheckpointSignal(PSYNC_CHECKPOINT psSyncCheckpoint, IMG_UINT32 ui32FenceSyncFlags)
|
||||
{
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt = (_SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt = (SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
|
||||
PVR_LOG_IF_FALSE((psSyncCheckpoint != NULL), "psSyncCheckpoint invalid");
|
||||
|
||||
@@ -1492,7 +1481,7 @@ SyncCheckpointSignal(PSYNC_CHECKPOINT psSyncCheckpoint, IMG_UINT32 ui32FenceSync
|
||||
void
|
||||
SyncCheckpointSignalNoHW(PSYNC_CHECKPOINT psSyncCheckpoint)
|
||||
{
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt = (_SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt = (SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
|
||||
PVR_LOG_IF_FALSE((psSyncCheckpoint != NULL), "psSyncCheckpoint invalid");
|
||||
|
||||
@@ -1528,7 +1517,7 @@ SyncCheckpointSignalNoHW(PSYNC_CHECKPOINT psSyncCheckpoint)
|
||||
void
|
||||
SyncCheckpointError(PSYNC_CHECKPOINT psSyncCheckpoint, IMG_UINT32 ui32FenceSyncFlags)
|
||||
{
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt = (_SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt = (SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
|
||||
PVR_LOG_IF_FALSE((psSyncCheckpoint != NULL), "psSyncCheckpoint invalid");
|
||||
|
||||
@@ -1566,7 +1555,7 @@ SyncCheckpointError(PSYNC_CHECKPOINT psSyncCheckpoint, IMG_UINT32 ui32FenceSyncF
|
||||
IMG_BOOL SyncCheckpointIsSignalled(PSYNC_CHECKPOINT psSyncCheckpoint, IMG_UINT32 ui32FenceSyncFlags)
|
||||
{
|
||||
IMG_BOOL bRet = IMG_FALSE;
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt = (_SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt = (SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
|
||||
PVR_LOG_IF_FALSE((psSyncCheckpoint != NULL), "psSyncCheckpoint invalid");
|
||||
|
||||
@@ -1595,7 +1584,7 @@ IMG_BOOL
|
||||
SyncCheckpointIsErrored(PSYNC_CHECKPOINT psSyncCheckpoint, IMG_UINT32 ui32FenceSyncFlags)
|
||||
{
|
||||
IMG_BOOL bRet = IMG_FALSE;
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt = (_SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt = (SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
|
||||
PVR_LOG_IF_FALSE((psSyncCheckpoint != NULL), "psSyncCheckpoint invalid");
|
||||
|
||||
@@ -1622,7 +1611,7 @@ SyncCheckpointIsErrored(PSYNC_CHECKPOINT psSyncCheckpoint, IMG_UINT32 ui32FenceS
|
||||
const IMG_CHAR *
|
||||
SyncCheckpointGetStateString(PSYNC_CHECKPOINT psSyncCheckpoint)
|
||||
{
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt = (_SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt = (SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
|
||||
PVR_LOG_RETURN_IF_FALSE((psSyncCheckpoint != NULL), "psSyncCheckpoint invalid", "Null");
|
||||
|
||||
@@ -1645,7 +1634,7 @@ PVRSRV_ERROR
|
||||
SyncCheckpointTakeRef(PSYNC_CHECKPOINT psSyncCheckpoint)
|
||||
{
|
||||
PVRSRV_ERROR eRet = PVRSRV_OK;
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt = (_SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt = (SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
|
||||
PVR_LOG_RETURN_IF_INVALID_PARAM(psSyncCheckpoint, "psSyncCheckpoint");
|
||||
|
||||
@@ -1666,7 +1655,7 @@ PVRSRV_ERROR
|
||||
SyncCheckpointDropRef(PSYNC_CHECKPOINT psSyncCheckpoint)
|
||||
{
|
||||
PVRSRV_ERROR eRet = PVRSRV_OK;
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt = (_SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt = (SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
|
||||
PVR_LOG_RETURN_IF_INVALID_PARAM(psSyncCheckpoint, "psSyncCheckpoint");
|
||||
|
||||
@@ -1686,7 +1675,7 @@ SyncCheckpointDropRef(PSYNC_CHECKPOINT psSyncCheckpoint)
|
||||
void
|
||||
SyncCheckpointCCBEnqueued(PSYNC_CHECKPOINT psSyncCheckpoint)
|
||||
{
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt = (_SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt = (SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
|
||||
PVR_LOG_RETURN_VOID_IF_FALSE(psSyncCheckpoint != NULL, "psSyncCheckpoint");
|
||||
|
||||
@@ -1709,7 +1698,7 @@ SyncCheckpointCCBEnqueued(PSYNC_CHECKPOINT psSyncCheckpoint)
|
||||
PRGXFWIF_UFO_ADDR*
|
||||
SyncCheckpointGetRGXFWIFUFOAddr(PSYNC_CHECKPOINT psSyncCheckpoint)
|
||||
{
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt = (_SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt = (SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
|
||||
PVR_LOG_GOTO_IF_FALSE((psSyncCheckpoint != NULL), "psSyncCheckpoint invalid", invalid_chkpt);
|
||||
|
||||
@@ -1736,7 +1725,7 @@ invalid_chkpt:
|
||||
IMG_UINT32
|
||||
SyncCheckpointGetFirmwareAddr(PSYNC_CHECKPOINT psSyncCheckpoint)
|
||||
{
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt = (_SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt = (SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
IMG_UINT32 ui32Ret = 0;
|
||||
|
||||
PVR_LOG_GOTO_IF_FALSE((psSyncCheckpoint != NULL), "psSyncCheckpoint invalid", invalid_chkpt);
|
||||
@@ -1764,7 +1753,7 @@ invalid_chkpt:
|
||||
IMG_UINT32
|
||||
SyncCheckpointGetId(PSYNC_CHECKPOINT psSyncCheckpoint)
|
||||
{
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt = (_SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt = (SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
IMG_UINT32 ui32Ret = 0;
|
||||
|
||||
PVR_LOG_GOTO_IF_FALSE((psSyncCheckpoint != NULL), "psSyncCheckpoint invalid", invalid_chkpt);
|
||||
@@ -1798,7 +1787,7 @@ invalid_chkpt:
|
||||
PVRSRV_TIMELINE
|
||||
SyncCheckpointGetTimeline(PSYNC_CHECKPOINT psSyncCheckpoint)
|
||||
{
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt = (_SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt = (SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
PVRSRV_TIMELINE i32Ret = PVRSRV_NO_TIMELINE;
|
||||
|
||||
PVR_LOG_GOTO_IF_FALSE((psSyncCheckpoint != NULL), "psSyncCheckpoint invalid", invalid_chkpt);
|
||||
@@ -1817,7 +1806,7 @@ invalid_chkpt:
|
||||
IMG_UINT32
|
||||
SyncCheckpointGetEnqueuedCount(PSYNC_CHECKPOINT psSyncCheckpoint)
|
||||
{
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt = (_SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt = (SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
PVR_LOG_RETURN_IF_FALSE(psSyncCheckpoint != NULL, "psSyncCheckpoint invalid", 0);
|
||||
|
||||
return OSAtomicRead(&psSyncCheckpointInt->hEnqueuedCCBCount);
|
||||
@@ -1826,7 +1815,7 @@ SyncCheckpointGetEnqueuedCount(PSYNC_CHECKPOINT psSyncCheckpoint)
|
||||
IMG_UINT32
|
||||
SyncCheckpointGetReferenceCount(PSYNC_CHECKPOINT psSyncCheckpoint)
|
||||
{
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt = (_SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt = (SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
PVR_LOG_RETURN_IF_FALSE(psSyncCheckpoint != NULL, "psSyncCheckpoint invalid", 0);
|
||||
|
||||
return OSAtomicRead(&psSyncCheckpointInt->hRefCount);
|
||||
@@ -1835,7 +1824,7 @@ SyncCheckpointGetReferenceCount(PSYNC_CHECKPOINT psSyncCheckpoint)
|
||||
IMG_PID
|
||||
SyncCheckpointGetCreator(PSYNC_CHECKPOINT psSyncCheckpoint)
|
||||
{
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt = (_SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt = (SYNC_CHECKPOINT*)psSyncCheckpoint;
|
||||
PVR_LOG_RETURN_IF_FALSE(psSyncCheckpoint != NULL, "psSyncCheckpoint invalid", 0);
|
||||
|
||||
return psSyncCheckpointInt->uiProcess;
|
||||
@@ -1844,7 +1833,7 @@ SyncCheckpointGetCreator(PSYNC_CHECKPOINT psSyncCheckpoint)
|
||||
IMG_UINT32 SyncCheckpointStateFromUFO(PPVRSRV_DEVICE_NODE psDevNode,
|
||||
IMG_UINT32 ui32FwAddr)
|
||||
{
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt;
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt;
|
||||
PDLLIST_NODE psNode, psNext;
|
||||
IMG_UINT32 ui32State = 0;
|
||||
OS_SPINLOCK_FLAGS uiFlags;
|
||||
@@ -1852,7 +1841,7 @@ IMG_UINT32 SyncCheckpointStateFromUFO(PPVRSRV_DEVICE_NODE psDevNode,
|
||||
OSSpinLockAcquire(psDevNode->hSyncCheckpointListLock, uiFlags);
|
||||
dllist_foreach_node(&psDevNode->sSyncCheckpointSyncsList, psNode, psNext)
|
||||
{
|
||||
psSyncCheckpointInt = IMG_CONTAINER_OF(psNode, _SYNC_CHECKPOINT, sListNode);
|
||||
psSyncCheckpointInt = IMG_CONTAINER_OF(psNode, SYNC_CHECKPOINT, sListNode);
|
||||
if (ui32FwAddr == SyncCheckpointGetFirmwareAddr((PSYNC_CHECKPOINT)psSyncCheckpointInt))
|
||||
{
|
||||
ui32State = psSyncCheckpointInt->psSyncCheckpointFwObj->ui32State;
|
||||
@@ -1866,7 +1855,7 @@ IMG_UINT32 SyncCheckpointStateFromUFO(PPVRSRV_DEVICE_NODE psDevNode,
|
||||
void SyncCheckpointErrorFromUFO(PPVRSRV_DEVICE_NODE psDevNode,
|
||||
IMG_UINT32 ui32FwAddr)
|
||||
{
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt;
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt;
|
||||
PDLLIST_NODE psNode, psNext;
|
||||
OS_SPINLOCK_FLAGS uiFlags;
|
||||
|
||||
@@ -1880,7 +1869,7 @@ void SyncCheckpointErrorFromUFO(PPVRSRV_DEVICE_NODE psDevNode,
|
||||
OSSpinLockAcquire(psDevNode->hSyncCheckpointListLock, uiFlags);
|
||||
dllist_foreach_node(&psDevNode->sSyncCheckpointSyncsList, psNode, psNext)
|
||||
{
|
||||
psSyncCheckpointInt = IMG_CONTAINER_OF(psNode, _SYNC_CHECKPOINT, sListNode);
|
||||
psSyncCheckpointInt = IMG_CONTAINER_OF(psNode, SYNC_CHECKPOINT, sListNode);
|
||||
if (ui32FwAddr == SyncCheckpointGetFirmwareAddr((PSYNC_CHECKPOINT)psSyncCheckpointInt))
|
||||
{
|
||||
#if (ENABLE_SYNC_CHECKPOINT_UFO_DEBUG == 1)
|
||||
@@ -1907,14 +1896,14 @@ void SyncCheckpointRollbackFromUFO(PPVRSRV_DEVICE_NODE psDevNode, IMG_UINT32 ui3
|
||||
#endif
|
||||
#if !defined(NO_HARDWARE)
|
||||
{
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt = NULL;
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt = NULL;
|
||||
PDLLIST_NODE psNode = NULL, psNext = NULL;
|
||||
OS_SPINLOCK_FLAGS uiFlags;
|
||||
|
||||
OSSpinLockAcquire(psDevNode->hSyncCheckpointListLock, uiFlags);
|
||||
dllist_foreach_node(&psDevNode->sSyncCheckpointSyncsList, psNode, psNext)
|
||||
{
|
||||
psSyncCheckpointInt = IMG_CONTAINER_OF(psNode, _SYNC_CHECKPOINT, sListNode);
|
||||
psSyncCheckpointInt = IMG_CONTAINER_OF(psNode, SYNC_CHECKPOINT, sListNode);
|
||||
if (ui32FwAddr == SyncCheckpointGetFirmwareAddr((PSYNC_CHECKPOINT)psSyncCheckpointInt))
|
||||
{
|
||||
#if ((ENABLE_SYNC_CHECKPOINT_UFO_DEBUG == 1)) || (ENABLE_SYNC_CHECKPOINT_ENQ_AND_SIGNAL_DEBUG == 1)
|
||||
@@ -1938,7 +1927,7 @@ static void _SyncCheckpointState(PDLLIST_NODE psNode,
|
||||
DUMPDEBUG_PRINTF_FUNC *pfnDumpDebugPrintf,
|
||||
void *pvDumpDebugFile)
|
||||
{
|
||||
_SYNC_CHECKPOINT *psSyncCheckpoint = IMG_CONTAINER_OF(psNode, _SYNC_CHECKPOINT, sListNode);
|
||||
SYNC_CHECKPOINT *psSyncCheckpoint = IMG_CONTAINER_OF(psNode, SYNC_CHECKPOINT, sListNode);
|
||||
|
||||
if (psSyncCheckpoint->psSyncCheckpointFwObj->ui32State == PVRSRV_SYNC_CHECKPOINT_ACTIVE)
|
||||
{
|
||||
@@ -2299,7 +2288,7 @@ static void _SyncCheckpointRecordPrint(struct SYNC_CHECKPOINT_RECORD *psSyncChec
|
||||
DUMPDEBUG_PRINTF_FUNC *pfnDumpDebugPrintf,
|
||||
void *pvDumpDebugFile)
|
||||
{
|
||||
_SYNC_CHECKPOINT *psSyncCheckpoint = (_SYNC_CHECKPOINT *)psSyncCheckpointRec->pSyncCheckpt;
|
||||
SYNC_CHECKPOINT *psSyncCheckpoint = (SYNC_CHECKPOINT *)psSyncCheckpointRec->pSyncCheckpt;
|
||||
SYNC_CHECKPOINT_BLOCK *psSyncCheckpointBlock = psSyncCheckpointRec->psSyncCheckpointBlock;
|
||||
IMG_UINT64 ui64DeltaS;
|
||||
IMG_UINT32 ui32DeltaF;
|
||||
@@ -2460,7 +2449,7 @@ static void _SyncCheckpointRecordListDeinit(PVRSRV_DEVICE_NODE *psDevNode)
|
||||
#if defined(PDUMP)
|
||||
|
||||
static PVRSRV_ERROR
|
||||
_SyncCheckpointAllocPDump(PVRSRV_DEVICE_NODE *psDevNode, _SYNC_CHECKPOINT *psSyncCheckpoint)
|
||||
_SyncCheckpointAllocPDump(PVRSRV_DEVICE_NODE *psDevNode, SYNC_CHECKPOINT *psSyncCheckpoint)
|
||||
{
|
||||
PDUMPCOMMENTWITHFLAGS(psDevNode, PDUMP_FLAGS_CONTINUOUS,
|
||||
"Allocated Sync Checkpoint %s (ID:%d, TL:%d, FirmwareVAddr = 0x%08x)",
|
||||
@@ -2477,7 +2466,7 @@ _SyncCheckpointAllocPDump(PVRSRV_DEVICE_NODE *psDevNode, _SYNC_CHECKPOINT *psSyn
|
||||
}
|
||||
|
||||
static PVRSRV_ERROR
|
||||
_SyncCheckpointUpdatePDump(PPVRSRV_DEVICE_NODE psDevNode, _SYNC_CHECKPOINT *psSyncCheckpoint, IMG_UINT32 ui32Status, IMG_UINT32 ui32FenceSyncFlags)
|
||||
_SyncCheckpointUpdatePDump(PPVRSRV_DEVICE_NODE psDevNode, SYNC_CHECKPOINT *psSyncCheckpoint, IMG_UINT32 ui32Status, IMG_UINT32 ui32FenceSyncFlags)
|
||||
{
|
||||
IMG_BOOL bSleepAllowed = (ui32FenceSyncFlags & PVRSRV_FENCE_FLAG_CTX_ATOMIC) ? IMG_FALSE : IMG_TRUE;
|
||||
PVRSRV_RGXDEV_INFO *psDevInfo;
|
||||
@@ -2591,7 +2580,7 @@ PVRSRV_ERROR PVRSRVSyncCheckpointSignalledPDumpPolKM(PVRSRV_FENCE hFence)
|
||||
{
|
||||
PVRSRV_ERROR eError;
|
||||
PSYNC_CHECKPOINT *apsCheckpoints = NULL;
|
||||
_SYNC_CHECKPOINT *psSyncCheckpoint = NULL;
|
||||
SYNC_CHECKPOINT *psSyncCheckpoint = NULL;
|
||||
IMG_UINT32 i, uiNumCheckpoints = 0;
|
||||
#if defined(SUPPORT_VALIDATION) && defined(SUPPORT_SOC_TIMER) && defined(NO_HARDWARE) && defined(PDUMP)
|
||||
PVRSRV_RGXDEV_INFO *psDevInfo;
|
||||
@@ -2611,13 +2600,13 @@ PVRSRV_ERROR PVRSRVSyncCheckpointSignalledPDumpPolKM(PVRSRV_FENCE hFence)
|
||||
if (uiNumCheckpoints)
|
||||
{
|
||||
/* Flushing deferred fence signals to pdump */
|
||||
psSyncCheckpoint = (_SYNC_CHECKPOINT *)apsCheckpoints[0];
|
||||
psSyncCheckpoint = (SYNC_CHECKPOINT *)apsCheckpoints[0];
|
||||
MISRHandler_PdumpDeferredSyncSignalPoster(psSyncCheckpoint->psSyncCheckpointBlock->psDevNode);
|
||||
}
|
||||
|
||||
for (i=0; i < uiNumCheckpoints; i++)
|
||||
{
|
||||
psSyncCheckpoint = (_SYNC_CHECKPOINT *)apsCheckpoints[i];
|
||||
psSyncCheckpoint = (SYNC_CHECKPOINT *)apsCheckpoints[i];
|
||||
if (psSyncCheckpoint->psSyncCheckpointFwObj->ui32State == PVRSRV_SYNC_CHECKPOINT_SIGNALLED)
|
||||
{
|
||||
PDUMPCOMMENTWITHFLAGS(psSyncCheckpoint->psSyncCheckpointBlock->psDevNode,
|
||||
@@ -2640,11 +2629,11 @@ PVRSRV_ERROR PVRSRVSyncCheckpointSignalledPDumpPolKM(PVRSRV_FENCE hFence)
|
||||
/* Sampling of USC timers can only be done after synchronisation for a 3D kick is over */
|
||||
if (uiNumCheckpoints)
|
||||
{
|
||||
psSyncCheckpoint = (_SYNC_CHECKPOINT *)apsCheckpoints[0];
|
||||
psSyncCheckpoint = (SYNC_CHECKPOINT *)apsCheckpoints[0];
|
||||
psDevInfo = psSyncCheckpoint->psSyncCheckpointBlock->psDevNode->pvDevice;
|
||||
if (psDevInfo->psRGXFWIfFwSysData->ui32ConfigFlags & RGXFWIF_INICFG_VALIDATE_SOCUSC_TIMER)
|
||||
{
|
||||
PVRSRVValidateSOCUSCTimer(psDevInfo, PDUMP_CONT, 0, 0, NULL);
|
||||
RGXValidateSOCUSCTimer(psDevInfo, PDUMP_CONT, 0, 0, NULL);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -2719,8 +2708,8 @@ static void _CheckDeferredCleanupList(_SYNC_CHECKPOINT_CONTEXT *psContext)
|
||||
|
||||
dllist_foreach_node(&psCtxCtl->sDeferredCleanupListHead, psNode, psNext)
|
||||
{
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt =
|
||||
IMG_CONTAINER_OF(psNode, _SYNC_CHECKPOINT, sDeferredFreeListNode);
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt =
|
||||
IMG_CONTAINER_OF(psNode, SYNC_CHECKPOINT, sDeferredFreeListNode);
|
||||
|
||||
if (psSyncCheckpointInt->psSyncCheckpointFwObj->ui32FwRefCount ==
|
||||
(IMG_UINT32)(OSAtomicRead(&psSyncCheckpointInt->hEnqueuedCCBCount)))
|
||||
@@ -2756,8 +2745,8 @@ static void _CheckDeferredCleanupList(_SYNC_CHECKPOINT_CONTEXT *psContext)
|
||||
OSSpinLockRelease(psCtxCtl->hDeferredCleanupListLock, uiFlags);
|
||||
|
||||
dllist_foreach_node(&sCleanupList, psNode, psNext) {
|
||||
_SYNC_CHECKPOINT *psSyncCheckpointInt =
|
||||
IMG_CONTAINER_OF(psNode, _SYNC_CHECKPOINT, sDeferredFreeListNode);
|
||||
SYNC_CHECKPOINT *psSyncCheckpointInt =
|
||||
IMG_CONTAINER_OF(psNode, SYNC_CHECKPOINT, sDeferredFreeListNode);
|
||||
|
||||
/* Remove the sync checkpoint from the global list */
|
||||
OSSpinLockAcquire(psDevNode->hSyncCheckpointListLock, uiFlags);
|
||||
@@ -2801,10 +2790,10 @@ static void _CheckDeferredCleanupList(_SYNC_CHECKPOINT_CONTEXT *psContext)
|
||||
}
|
||||
|
||||
#if (SYNC_CHECKPOINT_POOL_SIZE > 0)
|
||||
static _SYNC_CHECKPOINT *_GetCheckpointFromPool(_SYNC_CHECKPOINT_CONTEXT *psContext)
|
||||
static SYNC_CHECKPOINT *_GetCheckpointFromPool(_SYNC_CHECKPOINT_CONTEXT *psContext)
|
||||
{
|
||||
_SYNC_CHECKPOINT_CONTEXT_CTL *const psCtxCtl = psContext->psContextCtl;
|
||||
_SYNC_CHECKPOINT *psSyncCheckpoint = NULL;
|
||||
SYNC_CHECKPOINT *psSyncCheckpoint = NULL;
|
||||
OS_SPINLOCK_FLAGS uiFlags;
|
||||
|
||||
/* Acquire sync checkpoint pool lock */
|
||||
@@ -2841,7 +2830,7 @@ static _SYNC_CHECKPOINT *_GetCheckpointFromPool(_SYNC_CHECKPOINT_CONTEXT *psCont
|
||||
return psSyncCheckpoint;
|
||||
}
|
||||
|
||||
static IMG_BOOL _PutCheckpointInPool(_SYNC_CHECKPOINT *psSyncCheckpoint)
|
||||
static IMG_BOOL _PutCheckpointInPool(SYNC_CHECKPOINT *psSyncCheckpoint)
|
||||
{
|
||||
_SYNC_CHECKPOINT_CONTEXT *psContext = psSyncCheckpoint->psSyncCheckpointBlock->psContext;
|
||||
_SYNC_CHECKPOINT_CONTEXT_CTL *const psCtxCtl = psContext->psContextCtl;
|
||||
@@ -2885,7 +2874,7 @@ static IMG_BOOL _PutCheckpointInPool(_SYNC_CHECKPOINT *psSyncCheckpoint)
|
||||
static IMG_UINT32 _CleanCheckpointPool(_SYNC_CHECKPOINT_CONTEXT *psContext)
|
||||
{
|
||||
_SYNC_CHECKPOINT_CONTEXT_CTL *const psCtxCtl = psContext->psContextCtl;
|
||||
_SYNC_CHECKPOINT *psCheckpoint = NULL;
|
||||
SYNC_CHECKPOINT *psCheckpoint = NULL;
|
||||
DECLARE_DLLIST(sCleanupList);
|
||||
DLLIST_NODE *psThis, *psNext;
|
||||
OS_SPINLOCK_FLAGS uiFlags;
|
||||
@@ -2942,7 +2931,7 @@ static IMG_UINT32 _CleanCheckpointPool(_SYNC_CHECKPOINT_CONTEXT *psContext)
|
||||
|
||||
dllist_foreach_node(&sCleanupList, psThis, psNext)
|
||||
{
|
||||
psCheckpoint = IMG_CONTAINER_OF(psThis, _SYNC_CHECKPOINT, sListNode);
|
||||
psCheckpoint = IMG_CONTAINER_OF(psThis, SYNC_CHECKPOINT, sListNode);
|
||||
|
||||
#if (ENABLE_SYNC_CHECKPOINT_POOL_DEBUG == 1)
|
||||
if (psCheckpoint->ui32ValidationCheck != SYNC_CHECKPOINT_PATTERN_IN_POOL)
|
||||
|
||||
Reference in New Issue
Block a user