Signed-off-by: Ameya Palande <[email protected]>
---
arch/arm/plat-omap/include/dspbridge/strm.h | 3 +-
drivers/dsp/bridge/pmgr/wcd.c | 2 +-
drivers/dsp/bridge/rmgr/drv.c | 2 +-
drivers/dsp/bridge/rmgr/strm.c | 33 ++++++--------------------
4 files changed, 12 insertions(+), 28 deletions(-)
diff --git a/arch/arm/plat-omap/include/dspbridge/strm.h
b/arch/arm/plat-omap/include/dspbridge/strm.h
index 9929210..71ea2a6 100644
--- a/arch/arm/plat-omap/include/dspbridge/strm.h
+++ b/arch/arm/plat-omap/include/dspbridge/strm.h
@@ -175,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 ========
diff --git a/drivers/dsp/bridge/pmgr/wcd.c b/drivers/dsp/bridge/pmgr/wcd.c
index 4fdcb18..8ba6895 100644
--- a/drivers/dsp/bridge/pmgr/wcd.c
+++ b/drivers/dsp/bridge/pmgr/wcd.c
@@ -1528,7 +1528,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);
diff --git a/drivers/dsp/bridge/rmgr/drv.c b/drivers/dsp/bridge/rmgr/drv.c
index bf7d0b2..e880ea8 100644
--- a/drivers/dsp/bridge/rmgr/drv.c
+++ b/drivers/dsp/bridge/rmgr/drv.c
@@ -798,7 +798,7 @@ 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, pCtxt);
diff --git a/drivers/dsp/bridge/rmgr/strm.c b/drivers/dsp/bridge/rmgr/strm.c
index d68251f..0ef43ea 100644
--- a/drivers/dsp/bridge/rmgr/strm.c
+++ b/drivers/dsp/bridge/rmgr/strm.c
@@ -194,7 +194,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))
@@ -363,18 +363,14 @@ 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;
- #ifndef RES_CLEANUP_DISABLE
- DSP_STATUS res_status = DSP_SOK;
- u32 hProcess;
- HANDLE pCtxt = NULL;
- HANDLE hDrvObject;
- HANDLE hSTRMRes = NULL;
- #endif
+#ifndef RES_CLEANUP_DISABLE
+ HANDLE hSTRMRes = NULL;
+#endif
DBC_Require(cRefs > 0);
DBC_Require(apBuffer != NULL);
@@ -398,22 +394,9 @@ DSP_STATUS STRM_FreeBuffer(struct STRM_OBJECT *hStrm, u8
**apBuffer,
}
}
#ifndef RES_CLEANUP_DISABLE
- /* Update the node and stream resource status */
- /* 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,
- NULL, 0);
- if (pCtxt != NULL) {
- if (DRV_GetSTRMResElement(hStrm, hSTRMRes, pCtxt) !=
- DSP_ENOTFOUND) {
- DRV_ProcUpdateSTRMRes(uNumBufs-i, hSTRMRes,
- pCtxt);
- }
- }
+ if (DRV_GetSTRMResElement(hStrm, hSTRMRes, pr_ctxt) !=
+ DSP_ENOTFOUND) {
+ DRV_ProcUpdateSTRMRes(uNumBufs-i, hSTRMRes, pr_ctxt);
}
#endif
return status;
--
1.6.2.4
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html