Пример #1
0
int32_t cmdqRecReset(cmdqRecHandle handle)
{
	if (NULL == handle) {
		return -EFAULT;
	}

	if (NULL != handle->pRunningTask) {
		cmdqRecStopLoop(handle);
	}

	handle->blockSize = 0;
	handle->prefetchCount = 0;
	handle->finalized = false;

	/* reset secure path data */
	handle->secData.isSecure = false;
	handle->secData.enginesNeedDAPC = 0LL;
	handle->secData.enginesNeedPortSecurity = 0LL;
	if (handle->secData.addrMetadatas) {
		kfree(CMDQ_U32_PTR(handle->secData.addrMetadatas));
		handle->secData.addrMetadatas = (cmdqU32Ptr_t)(unsigned long)NULL;
		handle->secData.addrMetadataMaxCount = 0;
		handle->secData.addrMetadataCount = 0;
	}

	/* profile marker */
	cmdq_rec_reset_profile_maker_data(handle);

	return 0;
}
static void _cmdq_stop_trigger_loop(void)
{
	int ret = 0;
	
	// this should be called only once because trigger loop will nevet stop
	ret = cmdqRecStopLoop(pgc->cmdq_handle_trigger);
	
	EXT_DISP_LOG("ext display STOP cmdq trigger loop finished\n");
}
Пример #3
0
void cmdqRecDestroy(cmdqRecHandle handle)
{
	if (NULL == handle) {
		return;
	}

	if (NULL != handle->pRunningTask) {
		cmdqRecStopLoop(handle);
	}

	/* Free command buffer */
	kfree(handle->pBuffer);
	handle->pBuffer = NULL;

	/* Free command handle */
	kfree(handle);
}
Пример #4
0
int32_t cmdqRecReset(cmdqRecHandle handle)
{
	if (NULL == handle) {
		return -EFAULT;
	}

	if (NULL != handle->pRunningTask) {
		cmdqRecStopLoop(handle);
	}

	handle->blockSize = 0;
	handle->prefetchCount = 0;
	handle->finalized = false;

	if (cmdq_core_should_enable_prefetch(handle->scenario)) {
		/* enable prefetch */
		cmdqRecMark(handle);
	}

	return 0;
}