Ejemplo n.º 1
0
static PVRSRV_ERROR _RGXAcquireCCB(RGX_CLIENT_CCB	*psClientCCB,
								   IMG_UINT32		ui32CmdSize,
								   IMG_PVOID		*ppvBufferSpace)
{
	IMG_UINT32 ui32FreeSpace;

#if defined(PDUMP)
	/* Wait for sufficient CCB space to become available */
	PDUMPCOMMENTWITHFLAGS(0, "Wait for %u bytes to become available according cCCB Ctl (woff=%x) for %s",
							ui32CmdSize, psClientCCB->ui32HostWriteOffset,
							psClientCCB->szName);
	DevmemPDumpCBP(psClientCCB->psClientCCBCtrlMemDesc,
	               offsetof(RGXFWIF_CCCB_CTL, ui32ReadOffset),
	               psClientCCB->ui32HostWriteOffset,
	               ui32CmdSize,
	               psClientCCB->ui32Size);
#endif

	ui32FreeSpace = GET_CCB_SPACE(psClientCCB->ui32HostWriteOffset,
								  psClientCCB->psClientCCBCtrl->ui32ReadOffset,
								  psClientCCB->ui32Size);

	/* Don't allow all the space to be used */
	if (ui32FreeSpace > ui32CmdSize)
	{
		*ppvBufferSpace = (IMG_PVOID) (psClientCCB->pui8ClientCCB +
									   psClientCCB->ui32HostWriteOffset);
		return PVRSRV_OK;
	}

	return PVRSRV_ERROR_RETRY;
}
Ejemplo n.º 2
0
PVRSRV_ERROR
PVRSRVSyncPrimPDumpCBPKM(SYNC_PRIMITIVE_BLOCK *psSyncBlk, IMG_UINT32 ui32Offset,
						 IMG_UINT32 uiWriteOffset, IMG_UINT32 uiPacketSize,
						 IMG_UINT32 uiBufferSize)
{
	DevmemPDumpCBP(psSyncBlk->psMemDesc,
				   ui32Offset,
				   uiWriteOffset,
				   uiPacketSize,
				   uiBufferSize);
	return PVRSRV_OK;
}