diff --git a/mcfw/src_bios6/links_c6xdsp/alg_link/scd/scdLink_alg.c b/mcfw/src_bios6/links_c6xdsp/alg_link/scd/scdLink_alg.c index ef144ff..9d847bd 100755 --- a/mcfw/src_bios6/links_c6xdsp/alg_link/scd/scdLink_alg.c +++ b/mcfw/src_bios6/links_c6xdsp/alg_link/scd/scdLink_alg.c @@ -343,7 +343,8 @@ Int32 AlgLink_ScdAlgChCreate(AlgLink_ScdObj * pObj) pFrame->addr[0][0] = Utils_memAlloc( pChObj->scdProcessObj.processFrameSize, - SharedRegion_getCacheLineSize(SYSTEM_IPC_SR_CACHED) + SharedRegion_getCacheLineSize(SYSTEM_IPC_SR_CACHED), + TRUE ); pChObj->scdProcessObj.perFrameCfg[frameId].bufId = (frameId + 1); pFrame->perFrameCfg = (AlgLink_perFrameConfig*)&pChObj->scdProcessObj.perFrameCfg[frameId]; @@ -424,7 +425,7 @@ Int32 AlgLink_ScdVACreate(AlgLink_ScdObj * pObj) pChObj->algMemSize = VpsUtils_align(pChObj->algMemSize, SharedRegion_getCacheLineSize(SYSTEM_IPC_SR_CACHED)); - pChObj->algMemPtr = Utils_memAlloc(pChObj->algMemSize, SharedRegion_getCacheLineSize(SYSTEM_IPC_SR_CACHED)); + pChObj->algMemPtr = Utils_memAlloc(pChObj->algMemSize, SharedRegion_getCacheLineSize(SYSTEM_IPC_SR_CACHED), TRUE); UTILS_assert(pChObj->algMemPtr != NULL); cacheMarbit = ti_sysbios_family_c64p_Cache_getMar(pChObj->algMemPtr); diff --git a/mcfw/src_bios6/links_common/alg_link/scd/scdLink_alg.c b/mcfw/src_bios6/links_common/alg_link/scd/scdLink_alg.c index 2ac139e..bf7d79c 100755 --- a/mcfw/src_bios6/links_common/alg_link/scd/scdLink_alg.c +++ b/mcfw/src_bios6/links_common/alg_link/scd/scdLink_alg.c @@ -206,7 +206,8 @@ Int32 AlgLink_scdAlgChCreate(AlgLink_ScdObj * pObj) pChObj->memBlockAddr[blockId] = Utils_memAlloc( pObj->algPerChMemAllocPrm.memBlockSize[blockId], - pObj->algPerChMemAllocPrm.memBlockAlign[blockId] + pObj->algPerChMemAllocPrm.memBlockAlign[blockId], + TRUE ); UTILS_assert(pChObj->memBlockAddr[blockId]!=NULL); @@ -252,7 +253,8 @@ Int32 AlgLink_scdAlgChCreate(AlgLink_ScdObj * pObj) pFrame->addr[0][0] = Utils_memAlloc( pChObj->processFrameSize, - VPS_BUFFER_ALIGNMENT + VPS_BUFFER_ALIGNMENT, + TRUE ); UTILS_assert(pFrame->addr[0][0]!=NULL); @@ -290,7 +292,8 @@ Int32 AlgLink_scdAlgAllocMem(AlgLink_ScdObj * pObj) pObj->algMemAllocPrm.memBlockAddr[blockId] = Utils_memAlloc( pObj->algMemAllocPrm.memBlockSize[blockId], - pObj->algMemAllocPrm.memBlockAlign[blockId] + pObj->algMemAllocPrm.memBlockAlign[blockId], + TRUE ); UTILS_assert(pObj->algMemAllocPrm.memBlockAddr[blockId]!=NULL); diff --git a/mcfw/src_bios6/links_common/alg_link/swosd/osdLink_alg.c b/mcfw/src_bios6/links_common/alg_link/swosd/osdLink_alg.c index fcbafeb..544e756 100755 --- a/mcfw/src_bios6/links_common/alg_link/swosd/osdLink_alg.c +++ b/mcfw/src_bios6/links_common/alg_link/swosd/osdLink_alg.c @@ -141,7 +141,8 @@ Int32 AlgLink_osdAlgAllocMem(AlgLink_OsdObj * pObj) pObj->algMemAllocPrm.memBlockAddr[blockId] = Utils_memAlloc( pObj->algMemAllocPrm.memBlockSize[blockId], - pObj->algMemAllocPrm.memBlockAlign[blockId] + pObj->algMemAllocPrm.memBlockAlign[blockId], + TRUE ); UTILS_assert(pObj->algMemAllocPrm.memBlockAddr[blockId]!=NULL); diff --git a/mcfw/src_bios6/links_common/nullSrc/nullSrcLink_tsk.c b/mcfw/src_bios6/links_common/nullSrc/nullSrcLink_tsk.c index ee77288..dba79cd 100755 --- a/mcfw/src_bios6/links_common/nullSrc/nullSrcLink_tsk.c +++ b/mcfw/src_bios6/links_common/nullSrc/nullSrcLink_tsk.c @@ -189,6 +189,7 @@ Int32 NullSrcLink_drvCreate(NullSrcLink_Obj * pObj, Clock_Params clockParams; System_LinkChInfo *pChInfo; FVID2_Frame *pFrame; + UInt32 size, cOffset = 0; #ifdef SYSTEM_DEBUG_SWMS Vps_printf(" %d: NULL_SRC: Create in progress !!!\n", Utils_getCurTimeInMsec()); @@ -219,7 +220,7 @@ Int32 NullSrcLink_drvCreate(NullSrcLink_Obj * pObj, pObj->outFormat.channelNum = 0; pObj->outFormat.width = pChInfo->width; - pObj->outFormat.height = pChInfo->height; + pObj->outFormat.height = VpsUtils_align(pChInfo->height,2); pObj->outFormat.pitch[0] = pChInfo->pitch[0]; pObj->outFormat.pitch[1] = pChInfo->pitch[1]; pObj->outFormat.pitch[2] = pChInfo->pitch[2]; @@ -231,8 +232,15 @@ Int32 NullSrcLink_drvCreate(NullSrcLink_Obj * pObj, pObj->outFormat.bpp = FVID2_BPP_BITS16; pObj->outFormat.reserved = NULL; - status = Utils_memFrameAlloc(&pObj->outFormat, pObj->outFrames, 1); + memset(&pObj->outFrames[0] , 0, sizeof(pObj->outFrames[0])); + status = Utils_memFrameGetSize(&pObj->outFormat, &size, &cOffset); UTILS_assert(status == FVID2_SOK); + + pObj->outFrames[0].addr[0][0] = Utils_memAlloc(size , VPS_BUFFER_ALIGNMENT, TRUE); + UTILS_assert(pObj->outFrames[0].addr[0][0] != NULL); + + pObj->outFrames[0].addr[0][1] = (UInt8 *) pObj->outFrames[0].addr[0][0] + cOffset; + pObj->outFrames[0].channelNum = pObj->outFormat.channelNum ; NullSrcLink_fillDataPattern(&pObj->outFormat, pObj->outFrames, 1); diff --git a/mcfw/src_bios6/links_m3video/codec_utils/src/iresman_tiledmemory.c b/mcfw/src_bios6/links_m3video/codec_utils/src/iresman_tiledmemory.c index 82cc23b..0a48f8d 100755 --- a/mcfw/src_bios6/links_m3video/codec_utils/src/iresman_tiledmemory.c +++ b/mcfw/src_bios6/links_m3video/codec_utils/src/iresman_tiledmemory.c @@ -131,7 +131,7 @@ static Void *retryMemAlloc(MemAllocBlock * tilerDescPtr, requestMemRec.attrs = IALG_PERSIST; requestMemRec.base = - Utils_memAlloc(requestMemRec.size, requestMemRec.alignment); + Utils_memAlloc(requestMemRec.size, requestMemRec.alignment, TRUE); #ifdef IRESMAN_TILEDMEMORY_MALLOC_DEBUG Vps_printf(" IRES: MEM ALLOC, NON-TILED, addr = 0x%08x, size = %d bytes", diff --git a/mcfw/src_bios6/links_m3vpss/capture/captureLink_drv.c b/mcfw/src_bios6/links_m3vpss/capture/captureLink_drv.c index 4a2eb1c..39a26f7 100755 --- a/mcfw/src_bios6/links_m3vpss/capture/captureLink_drv.c +++ b/mcfw/src_bios6/links_m3vpss/capture/captureLink_drv.c @@ -972,7 +972,7 @@ Int32 CaptureLink_drvCreate(CaptureLink_Obj * pObj, if (CAPTURE_LINK_TMP_BUF_SIZE) { - pObj->tmpBufAddr = Utils_memAlloc(CAPTURE_LINK_TMP_BUF_SIZE, 32); + pObj->tmpBufAddr = Utils_memAlloc(CAPTURE_LINK_TMP_BUF_SIZE, 32, FALSE); } #if 0 status = FVID2_control(pObj->fvidHandleVipAll, diff --git a/mcfw/src_bios6/links_m3vpss/dei/deiLink_drv.c b/mcfw/src_bios6/links_m3vpss/dei/deiLink_drv.c index ce44dc9..ba0a655 100755 --- a/mcfw/src_bios6/links_m3vpss/dei/deiLink_drv.c +++ b/mcfw/src_bios6/links_m3vpss/dei/deiLink_drv.c @@ -649,7 +649,8 @@ Int32 DeiLink_drvAllocCtxMem(DeiLink_Obj * pObj) deiCtxInfo.fldBufSize); #endif /* SYSTEM_DEBUG_MEMALLOC */ deiCtxBuf.fldBuf[bCnt] = Utils_memAlloc(deiCtxInfo.fldBufSize, - VPS_BUFFER_ALIGNMENT); + VPS_BUFFER_ALIGNMENT, + FALSE); UTILS_assert(NULL != deiCtxBuf.fldBuf[bCnt]); } for (bCnt = 0u; bCnt < deiCtxInfo.numMv; bCnt++) @@ -661,7 +662,8 @@ Int32 DeiLink_drvAllocCtxMem(DeiLink_Obj * pObj) deiCtxInfo.mvBufSize); #endif /* SYSTEM_DEBUG_MEMALLOC */ deiCtxBuf.mvBuf[bCnt] = Utils_memAlloc(deiCtxInfo.mvBufSize, - VPS_BUFFER_ALIGNMENT); + VPS_BUFFER_ALIGNMENT, + FALSE); UTILS_assert(NULL != deiCtxBuf.mvBuf[bCnt]); } for (bCnt = 0u; bCnt < deiCtxInfo.numMvstm; bCnt++) @@ -673,7 +675,8 @@ Int32 DeiLink_drvAllocCtxMem(DeiLink_Obj * pObj) deiCtxInfo.mvstmBufSize); #endif /* SYSTEM_DEBUG_MEMALLOC */ deiCtxBuf.mvstmBuf[bCnt] = Utils_memAlloc(deiCtxInfo.mvstmBufSize, - VPS_BUFFER_ALIGNMENT); + VPS_BUFFER_ALIGNMENT, + FALSE); UTILS_assert(NULL != deiCtxBuf.mvstmBuf[bCnt]); } diff --git a/mcfw/src_bios6/links_m3vpss/grpx/grpxLink_drv.c b/mcfw/src_bios6/links_m3vpss/grpx/grpxLink_drv.c index 4be62db..f32e557 100755 --- a/mcfw/src_bios6/links_m3vpss/grpx/grpxLink_drv.c +++ b/mcfw/src_bios6/links_m3vpss/grpx/grpxLink_drv.c @@ -167,7 +167,7 @@ Int32 GrpxLink_drvAllocAndQueFrame(GrpxLink_Obj * pObj) if(pObj->bufferMemAddr==NULL) { - pObj->bufferMemAddr = (UInt32)Utils_memAlloc(pObj->bufferMemSize, GRPX_LINK_BUFFER_ALIGNMENT); + pObj->bufferMemAddr = (UInt32)Utils_memAlloc(pObj->bufferMemSize, GRPX_LINK_BUFFER_ALIGNMENT, FALSE); UTILS_assert(pObj->bufferMemAddr!=NULL); pObj->freeBufferMem = TRUE; diff --git a/mcfw/src_bios6/links_m3vpss/swMs/swMsLink_drv.c b/mcfw/src_bios6/links_m3vpss/swMs/swMsLink_drv.c index 10715d2..8386f4b 100755 --- a/mcfw/src_bios6/links_m3vpss/swMs/swMsLink_drv.c +++ b/mcfw/src_bios6/links_m3vpss/swMs/swMsLink_drv.c @@ -2164,19 +2164,22 @@ Int32 SwMsLink_drvAllocCtxMem(SwMsLink_DrvObj * pObj) for (bCnt = 0u; bCnt < deiCtxInfo.numFld; bCnt++) { deiCtxBuf.fldBuf[bCnt] = Utils_memAlloc(deiCtxInfo.fldBufSize, - VPS_BUFFER_ALIGNMENT); + VPS_BUFFER_ALIGNMENT, + FALSE); UTILS_assert(NULL != deiCtxBuf.fldBuf[bCnt]); } for (bCnt = 0u; bCnt < deiCtxInfo.numMv; bCnt++) { deiCtxBuf.mvBuf[bCnt] = Utils_memAlloc(deiCtxInfo.mvBufSize, - VPS_BUFFER_ALIGNMENT); + VPS_BUFFER_ALIGNMENT, + FALSE); UTILS_assert(NULL != deiCtxBuf.mvBuf[bCnt]); } for (bCnt = 0u; bCnt < deiCtxInfo.numMvstm; bCnt++) { deiCtxBuf.mvstmBuf[bCnt] = Utils_memAlloc(deiCtxInfo.mvstmBufSize, - VPS_BUFFER_ALIGNMENT); + VPS_BUFFER_ALIGNMENT, + FALSE); UTILS_assert(NULL != deiCtxBuf.mvstmBuf[bCnt]); } diff --git a/mcfw/src_bios6/links_m3vpss/system/system_m3vpss.c b/mcfw/src_bios6/links_m3vpss/system/system_m3vpss.c index 3fae597..ab3335b 100755 --- a/mcfw/src_bios6/links_m3vpss/system/system_m3vpss.c +++ b/mcfw/src_bios6/links_m3vpss/system/system_m3vpss.c @@ -370,7 +370,7 @@ Int32 System_allocBlankFrame() memSize = SYSTEM_BLANK_FRAME_WIDTH*SYSTEM_BLANK_FRAME_HEIGHT*SYSTEM_BLANK_FRAME_BYTES_PER_PIXEL; - gSystem_objVpss.nonTiledBlankFrameAddr = Utils_memAlloc(memSize, VPS_BUFFER_ALIGNMENT*2); + gSystem_objVpss.nonTiledBlankFrameAddr = Utils_memAlloc(memSize, VPS_BUFFER_ALIGNMENT*2, TRUE); UTILS_assert(gSystem_objVpss.nonTiledBlankFrameAddr!=NULL); diff --git a/mcfw/src_bios6/utils/src/utils_mem.c b/mcfw/src_bios6/utils/src/utils_mem.c index 5b60851..599bb13 100755 --- a/mcfw/src_bios6/utils/src/utils_mem.c +++ b/mcfw/src_bios6/utils/src/utils_mem.c @@ -419,7 +419,7 @@ Int32 Utils_memFrameAlloc(FVID2_Format * pFormat, /* allocate the memory for 'numFrames' */ /* for all 'numFrames' memory is contigously allocated */ - pBaseAddr = Utils_memAlloc(size * numFrames, VPS_BUFFER_ALIGNMENT); + pBaseAddr = Utils_memAlloc(size * numFrames, VPS_BUFFER_ALIGNMENT, FALSE); if (pBaseAddr == NULL) { @@ -505,7 +505,7 @@ Int32 Utils_memFrameFree(FVID2_Format * pFormat, return 0; } -Ptr Utils_memAlloc(UInt32 size, UInt32 align) +Ptr Utils_memAlloc(UInt32 size, UInt32 align, Bool cpuAccess) { Ptr addr; Error_Block ebObj; @@ -548,7 +548,8 @@ Ptr Utils_memAlloc(UInt32 size, UInt32 align) #endif } - if(addr==NULL) + if((addr==NULL) && + ( (cpuAccess == FALSE) || (SYSTEM_EXTRA_HEAP_ALLOCATOR_PROC_ID == System_getSelfProcId())) ) { addr = Utils_memExtraRemoteAlloc(size, align); if (addr != NULL) diff --git a/mcfw/src_bios6/utils/utils_mem.h b/mcfw/src_bios6/utils/utils_mem.h index 418eb73..1872fa4 100755 --- a/mcfw/src_bios6/utils/utils_mem.h +++ b/mcfw/src_bios6/utils/utils_mem.h @@ -103,7 +103,7 @@ Int32 Utils_memFrameFree(FVID2_Format * pFormat, \return NULL or error, else memory pointer */ -Ptr Utils_memAlloc(UInt32 size, UInt32 align); +Ptr Utils_memAlloc(UInt32 size, UInt32 align, Bool cpuAccess); /** \brief Free previously allocate Frame buffer memory pointer