From: Ameya Palande <ameya.palande@xxxxxxxxx> As part of resource cleanup changes, this patch continues with the next level of modifications required to use filp->private to store PROCESS_CONTEXT structure. Signed-off-by: Ameya Palande <ameya.palande@xxxxxxxxx> [ orl: split into logical patch set, patch description ] Signed-off-by: Omar Ramirez Luna <omar.ramirez@xxxxxx> Acked-by: Fernando Guzman Lugo <x0095840@xxxxxx> --- arch/arm/plat-omap/include/dspbridge/node.h | 7 +++++-- arch/arm/plat-omap/include/dspbridge/proc.h | 13 +++++++++---- arch/arm/plat-omap/include/dspbridge/strm.h | 13 +++++++++---- drivers/dsp/bridge/pmgr/wcd.c | 25 +++++++++++-------------- drivers/dsp/bridge/rmgr/drv.c | 15 +++++++++------ drivers/dsp/bridge/rmgr/drv_interface.c | 4 ++-- drivers/dsp/bridge/rmgr/node.c | 23 ++++++++++++++--------- drivers/dsp/bridge/rmgr/proc.c | 14 +++++++++----- drivers/dsp/bridge/rmgr/strm.c | 14 +++++++++----- 9 files changed, 77 insertions(+), 51 deletions(-) diff --git a/arch/arm/plat-omap/include/dspbridge/node.h b/arch/arm/plat-omap/include/dspbridge/node.h index d253962..e8952f5 100644 --- a/arch/arm/plat-omap/include/dspbridge/node.h +++ b/arch/arm/plat-omap/include/dspbridge/node.h @@ -68,6 +68,7 @@ #include <dspbridge/nodedefs.h> #include <dspbridge/dispdefs.h> #include <dspbridge/nldrdefs.h> +#include <dspbridge/drv.h> /* * ======== NODE_Allocate ======== @@ -104,7 +105,8 @@ *pArgs, OPTIONAL IN CONST struct DSP_NODEATTRIN *pAttrIn, - OUT struct NODE_OBJECT **phNode); + OUT struct NODE_OBJECT **phNode, + struct PROCESS_CONTEXT *pr_ctxt); /* * ======== NODE_AllocMsgBuf ======== @@ -307,7 +309,8 @@ * Ensures: * DSP_SOK: hNode is invalid. */ - extern DSP_STATUS NODE_Delete(struct NODE_OBJECT *hNode); + extern DSP_STATUS NODE_Delete(struct NODE_OBJECT *hNode, + struct PROCESS_CONTEXT *pr_ctxt); /* * ======== NODE_DeleteMgr ======== diff --git a/arch/arm/plat-omap/include/dspbridge/proc.h b/arch/arm/plat-omap/include/dspbridge/proc.h index 486652e..f5b0c50 100644 --- a/arch/arm/plat-omap/include/dspbridge/proc.h +++ b/arch/arm/plat-omap/include/dspbridge/proc.h @@ -64,6 +64,7 @@ #include <dspbridge/cfgdefs.h> #include <dspbridge/devdefs.h> +#include <dspbridge/drv.h> /* * ======== PROC_Attach ======== @@ -94,7 +95,8 @@ extern DSP_STATUS PROC_Attach(u32 uProcessor, OPTIONAL CONST struct DSP_PROCESSORATTRIN *pAttrIn, - OUT DSP_HPROCESSOR *phProcessor); + OUT DSP_HPROCESSOR *phProcessor, + struct PROCESS_CONTEXT *pr_ctxt); /* * ======== PROC_AutoStart ========= @@ -161,7 +163,8 @@ * Ensures: * PROC Object is destroyed. */ - extern DSP_STATUS PROC_Detach(DSP_HPROCESSOR hProcessor); + extern DSP_STATUS PROC_Detach(DSP_HPROCESSOR hProcessor, + struct PROCESS_CONTEXT *pr_ctxt); /* * ======== PROC_EnumNodes ======== @@ -578,7 +581,8 @@ void *pMpuAddr, u32 ulSize, void *pReqAddr, - void **ppMapAddr, u32 ulMapAttr); + void **ppMapAddr, u32 ulMapAttr, + struct PROCESS_CONTEXT *pr_ctxt); /* * ======== PROC_ReserveMemory ======== @@ -621,7 +625,8 @@ * Ensures: * Details: */ - extern DSP_STATUS PROC_UnMap(DSP_HPROCESSOR hProcessor, void *pMapAddr); + extern DSP_STATUS PROC_UnMap(DSP_HPROCESSOR hProcessor, void *pMapAddr, + struct PROCESS_CONTEXT *pr_ctxt); /* * ======== PROC_UnReserveMemory ======== diff --git a/arch/arm/plat-omap/include/dspbridge/strm.h b/arch/arm/plat-omap/include/dspbridge/strm.h index 5825615..bedc715 100644 --- a/arch/arm/plat-omap/include/dspbridge/strm.h +++ b/arch/arm/plat-omap/include/dspbridge/strm.h @@ -59,6 +59,7 @@ #include <dspbridge/dev.h> #include <dspbridge/strmdefs.h> +#include <dspbridge/proc.h> /* * ======== STRM_AllocateBuffer ======== @@ -83,7 +84,8 @@ extern DSP_STATUS STRM_AllocateBuffer(struct STRM_OBJECT *hStrm, u32 uSize, OUT u8 **apBuffer, - u32 uNumBufs); + u32 uNumBufs, + struct PROCESS_CONTEXT *pr_ctxt); /* * ======== STRM_Close ======== @@ -101,7 +103,8 @@ * STRM_Init(void) called. * Ensures: */ - extern DSP_STATUS STRM_Close(struct STRM_OBJECT *hStrm); + extern DSP_STATUS STRM_Close(struct STRM_OBJECT *hStrm, + struct PROCESS_CONTEXT *pr_ctxt); /* * ======== STRM_Create ======== @@ -172,7 +175,8 @@ * Ensures: */ extern DSP_STATUS STRM_FreeBuffer(struct STRM_OBJECT *hStrm, - u8 **apBuffer, u32 uNumBufs); + u8 **apBuffer, u32 uNumBufs, + struct PROCESS_CONTEXT *pr_ctxt); /* * ======== STRM_GetEventHandle ======== @@ -307,7 +311,8 @@ */ extern DSP_STATUS STRM_Open(struct NODE_OBJECT *hNode, u32 uDir, u32 uIndex, IN struct STRM_ATTR *pAttr, - OUT struct STRM_OBJECT **phStrm); + OUT struct STRM_OBJECT **phStrm, + struct PROCESS_CONTEXT *pr_ctxt); /* * ======== STRM_PrepareBuffer ======== diff --git a/drivers/dsp/bridge/pmgr/wcd.c b/drivers/dsp/bridge/pmgr/wcd.c index 3fa7336..0d027ec 100644 --- a/drivers/dsp/bridge/pmgr/wcd.c +++ b/drivers/dsp/bridge/pmgr/wcd.c @@ -680,7 +680,7 @@ u32 PROCWRAP_Attach(union Trapped_Args *args, void *pr_ctxt) } status = PROC_Attach(args->ARGS_PROC_ATTACH.uProcessor, pAttrIn, - &processor); + &processor, pr_ctxt); cp_to_usr(args->ARGS_PROC_ATTACH.phProcessor, &processor, status, 1); func_end: return status; @@ -740,7 +740,7 @@ u32 PROCWRAP_Detach(union Trapped_Args *args, void *pr_ctxt) GT_1trace(WCD_debugMask, GT_ENTER, "PROCWRAP_Detach: entered args\n0x%x " "hProceesor \n", args->ARGS_PROC_DETACH.hProcessor); - retVal = PROC_Detach(args->ARGS_PROC_DETACH.hProcessor); + retVal = PROC_Detach(args->ARGS_PROC_DETACH.hProcessor, pr_ctxt); return retVal; } @@ -1019,7 +1019,7 @@ u32 PROCWRAP_Map(union Trapped_Args *args, void *pr_ctxt) args->ARGS_PROC_MAPMEM.pMpuAddr, args->ARGS_PROC_MAPMEM.ulSize, args->ARGS_PROC_MAPMEM.pReqAddr, &pMapAddr, - args->ARGS_PROC_MAPMEM.ulMapAttr); + args->ARGS_PROC_MAPMEM.ulMapAttr, pr_ctxt); if (DSP_SUCCEEDED(status)) { if (put_user(pMapAddr, args->ARGS_PROC_MAPMEM.ppMapAddr)) status = DSP_EINVALIDARG; @@ -1090,7 +1090,7 @@ u32 PROCWRAP_UnMap(union Trapped_Args *args, void *pr_ctxt) GT_0trace(WCD_debugMask, GT_ENTER, "PROCWRAP_UnMap: entered\n"); status = PROC_UnMap(args->ARGS_PROC_UNMAPMEM.hProcessor, - args->ARGS_PROC_UNMAPMEM.pMapAddr); + args->ARGS_PROC_UNMAPMEM.pMapAddr, pr_ctxt); return status; } @@ -1166,7 +1166,7 @@ u32 NODEWRAP_Allocate(union Trapped_Args *args, void *pr_ctxt) if (DSP_SUCCEEDED(status)) { status = NODE_Allocate(args->ARGS_NODE_ALLOCATE.hProcessor, &nodeId, (struct DSP_CBDATA *)pArgs, - pAttrIn, &hNode); + pAttrIn, &hNode, pr_ctxt); } cp_to_usr(args->ARGS_NODE_ALLOCATE.phNode, &hNode, status, 1); func_cont: @@ -1292,7 +1292,7 @@ u32 NODEWRAP_Delete(union Trapped_Args *args, void *pr_ctxt) u32 retVal; GT_0trace(WCD_debugMask, GT_ENTER, "NODEWRAP_Delete: entered\n"); - retVal = NODE_Delete(args->ARGS_NODE_DELETE.hNode); + retVal = NODE_Delete(args->ARGS_NODE_DELETE.hNode, pr_ctxt); return retVal; } @@ -1494,7 +1494,7 @@ u32 STRMWRAP_AllocateBuffer(union Trapped_Args *args, void *pr_ctxt) status = STRM_AllocateBuffer(args->ARGS_STRM_ALLOCATEBUFFER.hStream, args->ARGS_STRM_ALLOCATEBUFFER.uSize, - apBuffer, uNumBufs); + apBuffer, uNumBufs, pr_ctxt); cp_to_usr(args->ARGS_STRM_ALLOCATEBUFFER.apBuffer, apBuffer, status, uNumBufs); if (apBuffer) @@ -1508,11 +1508,7 @@ u32 STRMWRAP_AllocateBuffer(union Trapped_Args *args, void *pr_ctxt) */ u32 STRMWRAP_Close(union Trapped_Args *args, void *pr_ctxt) { - u32 retVal; - - retVal = STRM_Close(args->ARGS_STRM_CLOSE.hStream); - - return retVal; + return STRM_Close(args->ARGS_STRM_CLOSE.hStream, pr_ctxt); } /* @@ -1533,7 +1529,7 @@ u32 STRMWRAP_FreeBuffer(union Trapped_Args *args, void *pr_ctxt) if (DSP_SUCCEEDED(status)) { status = STRM_FreeBuffer(args->ARGS_STRM_FREEBUFFER.hStream, - apBuffer, uNumBufs); + apBuffer, uNumBufs, pr_ctxt); } cp_to_usr(args->ARGS_STRM_FREEBUFFER.apBuffer, apBuffer, status, uNumBufs); @@ -1627,7 +1623,8 @@ u32 STRMWRAP_Open(union Trapped_Args *args, void *pr_ctxt) } status = STRM_Open(args->ARGS_STRM_OPEN.hNode, args->ARGS_STRM_OPEN.uDirection, - args->ARGS_STRM_OPEN.uIndex, &attr, &pStrm); + args->ARGS_STRM_OPEN.uIndex, &attr, &pStrm, + pr_ctxt); cp_to_usr(args->ARGS_STRM_OPEN.phStream, &pStrm, status, 1); return status; } diff --git a/drivers/dsp/bridge/rmgr/drv.c b/drivers/dsp/bridge/rmgr/drv.c index 74388d5..a00598b 100644 --- a/drivers/dsp/bridge/rmgr/drv.c +++ b/drivers/dsp/bridge/rmgr/drv.c @@ -449,13 +449,15 @@ static DSP_STATUS DRV_ProcFreeNodeRes(HANDLE hPCtxt) GT_1trace(curTrace, GT_5CLASS, "Calling Node_Delete for Node:" " 0x%x\n", pNodeRes->hNode); - status = NODE_Delete(pNodeRes->hNode); + status = NODE_Delete(pNodeRes->hNode, + pCtxt); GT_1trace(curTrace, GT_5CLASS, "the status after the NodeDelete %x\n", status); } else if ((nState == NODE_ALLOCATED) || (nState == NODE_CREATED)) - status = NODE_Delete(pNodeRes->hNode); + status = NODE_Delete(pNodeRes->hNode, + pCtxt); } } } @@ -567,7 +569,7 @@ DSP_STATUS DRV_ProcFreeDMMRes(HANDLE hPCtxt) pDMMList = pDMMList->next; if (pDMMRes->dmmAllocated) { status = PROC_UnMap(pDMMRes->hProcessor, - (void *)pDMMRes->ulDSPResAddr); + (void *)pDMMRes->ulDSPResAddr, pCtxt); status = PROC_UnReserveMemory(pDMMRes->hProcessor, (void *)pDMMRes->ulDSPResAddr); pDMMRes->dmmAllocated = 0; @@ -782,17 +784,18 @@ static DSP_STATUS DRV_ProcFreeSTRMRes(HANDLE hPCtxt) apBuffer = MEM_Alloc((pSTRMRes->uNumBufs * sizeof(u8 *)), MEM_NONPAGED); status = STRM_FreeBuffer(pSTRMRes->hStream, apBuffer, - pSTRMRes->uNumBufs); + pSTRMRes->uNumBufs, pCtxt); MEM_Free(apBuffer); } - status = STRM_Close(pSTRMRes->hStream); + status = STRM_Close(pSTRMRes->hStream, pCtxt); if (DSP_FAILED(status)) { if (status == DSP_EPENDING) { status = STRM_Reclaim(pSTRMRes->hStream, &pBufPtr, &ulBytes, (u32 *)&ulBufSize, &dwArg); if (DSP_SUCCEEDED(status)) - status = STRM_Close(pSTRMRes->hStream); + status = STRM_Close(pSTRMRes->hStream, + pCtxt); } } diff --git a/drivers/dsp/bridge/rmgr/drv_interface.c b/drivers/dsp/bridge/rmgr/drv_interface.c index a34d156..a8ddf7c 100644 --- a/drivers/dsp/bridge/rmgr/drv_interface.c +++ b/drivers/dsp/bridge/rmgr/drv_interface.c @@ -445,7 +445,7 @@ static int __devexit omap34xx_bridge_remove(struct platform_device *pdev) GT_1trace(driverTrace, GT_5CLASS, "***Cleanup of " "process***%d\n", pCtxtclosed->pid); DRV_RemoveAllResources(pCtxtclosed); - PROC_Detach(pCtxtclosed->hProcessor); + PROC_Detach(pCtxtclosed->hProcessor, pCtxtclosed); pTmp = pCtxtclosed->next; DRV_RemoveProcContext((struct DRV_OBJECT *)hDrvObject, pCtxtclosed, (void *)pCtxtclosed->pid); @@ -593,7 +593,7 @@ static int bridge_release(struct inode *ip, struct file *filp) flush_signals(current); DRV_RemoveAllResources(pr_ctxt); if (pr_ctxt->hProcessor) - PROC_Detach(pr_ctxt->hProcessor); + PROC_Detach(pr_ctxt->hProcessor, pr_ctxt); DRV_RemoveProcContext((struct DRV_OBJECT *)hDrvObject, pr_ctxt, (void *)pr_ctxt->pid); } else { diff --git a/drivers/dsp/bridge/rmgr/node.c b/drivers/dsp/bridge/rmgr/node.c index 550a83d..d36dccc 100644 --- a/drivers/dsp/bridge/rmgr/node.c +++ b/drivers/dsp/bridge/rmgr/node.c @@ -320,7 +320,8 @@ static struct DSP_BUFFERATTR NODE_DFLTBUFATTRS = { 0, /* uAlignment */ }; -static void DeleteNode(struct NODE_OBJECT *hNode); +static void DeleteNode(struct NODE_OBJECT *hNode, + struct PROCESS_CONTEXT *pr_ctxt); static void DeleteNodeMgr(struct NODE_MGR *hNodeMgr); static void FillStreamConnect(struct NODE_OBJECT *hNode1, struct NODE_OBJECT *hNode2, u32 uStream1, @@ -387,7 +388,8 @@ DSP_STATUS NODE_Allocate(struct PROC_OBJECT *hProcessor, IN CONST struct DSP_UUID *pNodeId, OPTIONAL IN CONST struct DSP_CBDATA *pArgs, OPTIONAL IN CONST struct DSP_NODEATTRIN *pAttrIn, - OUT struct NODE_OBJECT **phNode) + OUT struct NODE_OBJECT **phNode, + struct PROCESS_CONTEXT *pr_ctxt) { struct NODE_MGR *hNodeMgr; struct DEV_OBJECT *hDevObject; @@ -561,7 +563,7 @@ func_cont: status = PROC_Map(hProcessor, (void *)pAttrIn->pGPPVirtAddr, pNode->createArgs.asa.taskArgs.uHeapSize, (void *)pNode->createArgs.asa.taskArgs.uDSPHeapResAddr, - (void **)&pMappedAddr, mapAttrs); + (void **)&pMappedAddr, mapAttrs, pr_ctxt); if (DSP_FAILED(status)) { GT_1trace(NODE_debugMask, GT_5CLASS, "NODE_Allocate: Failed to map memory" @@ -774,7 +776,7 @@ func_cont2: } else { /* Cleanup */ if (pNode) - DeleteNode(pNode); + DeleteNode(pNode, pr_ctxt); } @@ -1621,7 +1623,8 @@ DSP_STATUS NODE_CreateMgr(OUT struct NODE_MGR **phNodeMgr, * Loads the node's delete function if necessary. Free GPP side resources * after node's delete function returns. */ -DSP_STATUS NODE_Delete(struct NODE_OBJECT *hNode) +DSP_STATUS NODE_Delete(struct NODE_OBJECT *hNode, + struct PROCESS_CONTEXT *pr_ctxt) { struct NODE_OBJECT *pNode = (struct NODE_OBJECT *)hNode; struct NODE_MGR *hNodeMgr; @@ -1783,7 +1786,7 @@ func_cont1: #endif func_cont: GT_0trace(NODE_debugMask, GT_ENTER, "\nNODE_Delete13:\n "); - DeleteNode(hNode); + DeleteNode(hNode, pr_ctxt); #ifndef RES_CLEANUP_DISABLE GT_0trace(NODE_debugMask, GT_5CLASS, "\nNODE_Delete2:\n "); if (pCtxt != NULL) @@ -2795,7 +2798,8 @@ func_end: * Purpose: * Free GPP resources allocated in NODE_Allocate() or NODE_Connect(). */ -static void DeleteNode(struct NODE_OBJECT *hNode) +static void DeleteNode(struct NODE_OBJECT *hNode, + struct PROCESS_CONTEXT *pr_ctxt) { struct NODE_MGR *hNodeMgr; struct CMM_XLATOROBJECT *hXlator; @@ -2875,7 +2879,8 @@ static void DeleteNode(struct NODE_OBJECT *hNode) } if (taskArgs.uDSPHeapResAddr) { status = PROC_UnMap(hNode->hProcessor, - (void *)taskArgs.uDSPHeapAddr); + (void *)taskArgs.uDSPHeapAddr, + pr_ctxt); if (DSP_SUCCEEDED(status)) { GT_0trace(NODE_debugMask, GT_5CLASS, "DSPProcessor_UnMap succeeded.\n"); @@ -2976,7 +2981,7 @@ static void DeleteNodeMgr(struct NODE_MGR *hNodeMgr) while ((hNode = (struct NODE_OBJECT *)LST_GetHead(hNodeMgr-> nodeList))) - DeleteNode(hNode); + DeleteNode(hNode, NULL); DBC_Assert(LST_IsEmpty(hNodeMgr->nodeList)); LST_Delete(hNodeMgr->nodeList); diff --git a/drivers/dsp/bridge/rmgr/proc.c b/drivers/dsp/bridge/rmgr/proc.c index f4f756c..270d022 100644 --- a/drivers/dsp/bridge/rmgr/proc.c +++ b/drivers/dsp/bridge/rmgr/proc.c @@ -220,7 +220,8 @@ DSP_STATUS PROC_CleanupAllResources(void) "***Cleanup of " "process***%d\n", pCtxtclosed->pid); if (pCtxtclosed->hProcessor) - PROC_Detach(pCtxtclosed->hProcessor); + PROC_Detach(pCtxtclosed->hProcessor, + pCtxtclosed); } pCtxtclosed = pCtxtclosed->next; } @@ -237,7 +238,7 @@ func_end: */ DSP_STATUS PROC_Attach(u32 uProcessor, OPTIONAL CONST struct DSP_PROCESSORATTRIN *pAttrIn, - OUT DSP_HPROCESSOR *phProcessor) + OUT DSP_HPROCESSOR *phProcessor, struct PROCESS_CONTEXT *pr_ctxt) { DSP_STATUS status = DSP_SOK; struct DEV_OBJECT *hDevObject; @@ -635,7 +636,8 @@ DSP_STATUS PROC_Ctrl(DSP_HPROCESSOR hProcessor, u32 dwCmd, * Destroys the Processor Object. Removes the notification from the Dev * List. */ -DSP_STATUS PROC_Detach(DSP_HPROCESSOR hProcessor) +DSP_STATUS PROC_Detach(DSP_HPROCESSOR hProcessor, + struct PROCESS_CONTEXT *pr_ctxt) { DSP_STATUS status = DSP_SOK; struct PROC_OBJECT *pProcObject = (struct PROC_OBJECT *)hProcessor; @@ -1416,7 +1418,8 @@ func_end: * Maps a MPU buffer to DSP address space. */ DSP_STATUS PROC_Map(DSP_HPROCESSOR hProcessor, void *pMpuAddr, u32 ulSize, - void *pReqAddr, void **ppMapAddr, u32 ulMapAttr) + void *pReqAddr, void **ppMapAddr, u32 ulMapAttr, + struct PROCESS_CONTEXT *pr_ctxt) { u32 vaAlign; u32 paAlign; @@ -1809,7 +1812,8 @@ func_end: * Purpose: * Removes a MPU buffer mapping from the DSP address space. */ -DSP_STATUS PROC_UnMap(DSP_HPROCESSOR hProcessor, void *pMapAddr) +DSP_STATUS PROC_UnMap(DSP_HPROCESSOR hProcessor, void *pMapAddr, + struct PROCESS_CONTEXT *pr_ctxt) { DSP_STATUS status = DSP_SOK; struct PROC_OBJECT *pProcObject = (struct PROC_OBJECT *)hProcessor; diff --git a/drivers/dsp/bridge/rmgr/strm.c b/drivers/dsp/bridge/rmgr/strm.c index a9a1500..d0bbf6a 100644 --- a/drivers/dsp/bridge/rmgr/strm.c +++ b/drivers/dsp/bridge/rmgr/strm.c @@ -153,7 +153,8 @@ static void DeleteStrmMgr(struct STRM_MGR *hStrmMgr); * Allocates buffers for a stream. */ DSP_STATUS STRM_AllocateBuffer(struct STRM_OBJECT *hStrm, u32 uSize, - OUT u8 **apBuffer, u32 uNumBufs) + OUT u8 **apBuffer, u32 uNumBufs, + struct PROCESS_CONTEXT *pr_ctxt) { DSP_STATUS status = DSP_SOK; u32 uAllocated = 0; @@ -196,7 +197,7 @@ DSP_STATUS STRM_AllocateBuffer(struct STRM_OBJECT *hStrm, u32 uSize, } } if (DSP_FAILED(status)) - STRM_FreeBuffer(hStrm, apBuffer, uAllocated); + STRM_FreeBuffer(hStrm, apBuffer, uAllocated, pr_ctxt); #ifndef RES_CLEANUP_DISABLE if (DSP_FAILED(status)) @@ -227,7 +228,8 @@ func_end: * Purpose: * Close a stream opened with STRM_Open(). */ -DSP_STATUS STRM_Close(struct STRM_OBJECT *hStrm) +DSP_STATUS STRM_Close(struct STRM_OBJECT *hStrm, + struct PROCESS_CONTEXT *pr_ctxt) { struct WMD_DRV_INTERFACE *pIntfFxns; struct CHNL_INFO chnlInfo; @@ -393,7 +395,7 @@ void STRM_Exit(void) * Frees the buffers allocated for a stream. */ DSP_STATUS STRM_FreeBuffer(struct STRM_OBJECT *hStrm, u8 **apBuffer, - u32 uNumBufs) + u32 uNumBufs, struct PROCESS_CONTEXT *pr_ctxt) { DSP_STATUS status = DSP_SOK; u32 i = 0; @@ -625,7 +627,9 @@ DSP_STATUS STRM_Issue(struct STRM_OBJECT *hStrm, IN u8 *pBuf, u32 ulBytes, * XDAIS socket node on the DSP. */ DSP_STATUS STRM_Open(struct NODE_OBJECT *hNode, u32 uDir, u32 uIndex, - IN struct STRM_ATTR *pAttr, OUT struct STRM_OBJECT **phStrm) + IN struct STRM_ATTR *pAttr, + OUT struct STRM_OBJECT **phStrm, + struct PROCESS_CONTEXT *pr_ctxt) { struct STRM_MGR *hStrmMgr; struct WMD_DRV_INTERFACE *pIntfFxns; -- 1.6.2.4 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html