@@ -59,6 +59,7 @@
#include <dspbridge/dev.h>
#include <dspbridge/strmdefs.h>
+#include <dspbridge/proc.h>
/*
* ======== STRM_AllocateBuffer ========
@@ -307,7 +308,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 ========
@@ -1626,7 +1626,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;
}
@@ -626,7 +626,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;
@@ -637,13 +639,10 @@ DSP_STATUS STRM_Open(struct NODE_OBJECT *hNode, u32 uDir, u32 uIndex,
DSP_STATUS status = DSP_SOK;
struct CMM_OBJECT *hCmmMgr = NULL; /* Shared memory manager hndl */
- #ifndef RES_CLEANUP_DISABLE
- DSP_STATUS res_status = DSP_SOK;
- u32 hProcess;
- HANDLE pCtxt = NULL;
- HANDLE hDrvObject;
- HANDLE hSTRMRes;
- #endif
+#ifndef RES_CLEANUP_DISABLE
+ HANDLE hSTRMRes;
+#endif
+
DBC_Require(cRefs > 0);
DBC_Require(phStrm != NULL);
DBC_Require(pAttr != NULL);
@@ -779,18 +778,7 @@ func_cont:
(void)DeleteStrm(pStrm);
#ifndef RES_CLEANUP_DISABLE
- /* Return TGID instead of process handle */
- hProcess = current->tgid;
-
- res_status = CFG_GetObject((u32 *)&hDrvObject, REG_DRV_OBJECT);
- if (DSP_SUCCEEDED(res_status)) {
- DRV_GetProcContext(hProcess,
- (struct DRV_OBJECT *)hDrvObject, &pCtxt,
- hNode, 0);
- if (pCtxt != NULL)
- DRV_ProcInsertSTRMResElement(*phStrm, &hSTRMRes, pCtxt);
-
- }
+ DRV_ProcInsertSTRMResElement(*phStrm, &hSTRMRes, pr_ctxt);
#endif
/* ensure we return a documented error code */
Signed-off-by: Ameya Palande <ameya.palande@nokia.com> --- arch/arm/plat-omap/include/dspbridge/strm.h | 4 ++- drivers/dsp/bridge/pmgr/wcd.c | 3 +- drivers/dsp/bridge/rmgr/strm.c | 28 +++++++------------------- 3 files changed, 13 insertions(+), 22 deletions(-)