diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2019-07-15 02:40:02 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2019-07-15 02:40:02 -0700 |
commit | 14b23cb158b14503944a8595ed09abdca0d2cfe6 (patch) | |
tree | 19a124c1fce7bbe631c254ae0975c8905855151e | |
parent | 66bebdca60f0e662f15ffd67724b27e871beeaed (diff) | |
parent | 8d567af92483ca0be4e4f6c0a2fb4613c2b61da4 (diff) |
Merge "msm: ADSPRPC: Assign memory to MDSP during process start"LA.UM.7.6.2.c1-00600-89xx.0
-rw-r--r-- | drivers/char/adsprpc.c | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/drivers/char/adsprpc.c b/drivers/char/adsprpc.c index 6ba5010fc7b0..a7fe093a63dc 100644 --- a/drivers/char/adsprpc.c +++ b/drivers/char/adsprpc.c @@ -2826,6 +2826,7 @@ static int fastrpc_session_alloc_locked(struct fastrpc_channel_ctx *chan, { struct fastrpc_apps *me = &gfa; int idx = 0, err = 0; + int cid = 0; if (chan->sesscount) { for (idx = 0; idx < chan->sesscount; ++idx) { @@ -2842,11 +2843,24 @@ static int fastrpc_session_alloc_locked(struct fastrpc_channel_ctx *chan, goto bail; chan->session[idx].smmu.faults = 0; } else { - VERIFY(err, me->mdev != NULL); - if (err) - goto bail; - chan->session[0].dev = me->mdev; - chan->session[0].smmu.dev = me->mdev; + cid = chan - &gcinfo[0]; + if (cid == MDSP_DOMAIN_ID) { + VERIFY(err, me->mdev != NULL); + if (err) { + pr_info("ADSPRPC: mdsprpc-mem not initialized\n"); + goto bail; + } + chan->session[0].dev = me->mdev; + chan->session[0].smmu.dev = me->mdev; + } else { + VERIFY(err, me->dev != NULL); + if (err) { + pr_info("ADSPRPC: adsprpc-mem not initialized\n"); + goto bail; + } + chan->session[0].dev = me->dev; + chan->session[0].smmu.dev = me->dev; + } } *session = &chan->session[idx]; @@ -3572,7 +3586,7 @@ static int fastrpc_get_info(struct fastrpc_file *fl, uint32_t *info) srcVM, 1, destVM, destVMperm, 3)); if (err) goto bail; - (fl->apps->channel[cid].memshareenabled)++; + fl->apps->channel[cid].memshareenabled = 2; } VERIFY(err, !fastrpc_session_alloc_locked( &fl->apps->channel[cid], 0, fl->sharedcb, &fl->sctx)); |