msm: adsprpc: Add force no flush and invalidate flag

Adding force no flush and invalidate flag for rpcmem_alloc
and respective attributes for remote_register_buf_attr.
Skip flush and invalidate if corresponding flag is set.

Change-Id: I5b872d1f22b082716a1fe715375c66a212fedbac
Acked-by: Deepika Singh <dsi@qti.qualcomm.com>
Signed-off-by: Tharun Kumar Merugu <mtharu@codeaurora.org>
This commit is contained in:
Tharun Kumar Merugu 2019-11-27 15:56:07 +05:30 • committed by Gerrit - the friendly Code Review server
commit 668385da4e
2 changed files with 16 additions and 0 deletions

View file

@ -1872,6 +1872,8 @@ static int get_args(uint32_t kernel, struct smq_invoke_ctx *ctx)
continue;
if (map && (map->attr & FASTRPC_ATTR_COHERENT))
continue;
if (map && (map->attr & FASTRPC_ATTR_FORCE_NOFLUSH))
continue;
if (rpra && rpra[i].buf.len &&
ctx->overps[oix]->mstart) {
@ -1974,6 +1976,8 @@ static void inv_args_pre(struct smq_invoke_ctx *ctx)
continue;
if (map && (map->attr & FASTRPC_ATTR_COHERENT))
continue;
if (map && (map->attr & FASTRPC_ATTR_FORCE_NOINVALIDATE))
continue;
if (buf_page_start(ptr_to_uint64((void *)rpra)) ==
buf_page_start(rpra[i].buf.pv))
@ -2021,6 +2025,8 @@ static void inv_args(struct smq_invoke_ctx *ctx)
continue;
if (map && (map->attr & FASTRPC_ATTR_COHERENT))
continue;
if (map && (map->attr & FASTRPC_ATTR_FORCE_NOINVALIDATE))
continue;
if (buf_page_start(ptr_to_uint64((void *)rpra)) ==
buf_page_start(rpra[i].buf.pv)) {

View file

@ -46,6 +46,16 @@
/* Fastrpc attribute for no mapping of fd */
#define FASTRPC_ATTR_NOMAP (16)
/*
* Fastrpc attribute to skip flush by fastrpc
*/
#define FASTRPC_ATTR_FORCE_NOFLUSH (32)
/*
* Fastrpc attribute to skip invalidate by fastrpc
*/
#define FASTRPC_ATTR_FORCE_NOINVALIDATE (64)
/* Driver should operate in parallel with the co-processor */
#define FASTRPC_MODE_PARALLEL 0