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"); }
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); }
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; }