msm: adsprpc: Support multiple sessions per process
Currently a process is limited to create only 2 sessions, by toggling the 30th bit of tgid of the process, to create different process IDs on DSP remote sybsystem. This approach is not scalable to create unique process IDs to DSP, by using bits within the tgid of the process. Add support to allow a process to create multiple sessions by choosing and sending unique dsp process IDs on DSP remote sub system, instead of tgid of HLOS process. Change-Id: I33f52c68453301bdbb83dfb9a10df16143098a49 Signed-off-by: Himateja Reddy <quic_hmreddy@quicinc.com>
这个提交包含在:

提交者
Gerrit - the friendly Code Review server

父节点
00d699d6cb
当前提交
6e70c954d5
@@ -88,6 +88,9 @@
|
||||
#define NUM_CHANNELS 4 /* adsp, mdsp, slpi, cdsp*/
|
||||
#define NUM_SESSIONS 14 /* max 11 compute, 3 cpz */
|
||||
|
||||
/* Default maximum sessions allowed per process */
|
||||
#define DEFAULT_MAX_SESS_PER_PROC 4
|
||||
|
||||
#define VALID_FASTRPC_CID(cid) \
|
||||
(cid >= ADSP_DOMAIN_ID && cid < NUM_CHANNELS)
|
||||
|
||||
@@ -753,6 +756,8 @@ struct fastrpc_apps {
|
||||
unsigned int lowest_capacity_core_count;
|
||||
/* Flag to check if PM QoS vote needs to be done for only one core */
|
||||
bool single_core_latency_vote;
|
||||
/* Maximum sessions allowed to be created per process */
|
||||
uint32_t max_sess_per_proc;
|
||||
};
|
||||
|
||||
struct fastrpc_mmap {
|
||||
@@ -846,6 +851,8 @@ struct fastrpc_file {
|
||||
int sessionid;
|
||||
int tgid_open; /* Process ID during device open */
|
||||
int tgid; /* Process ID that uses device for RPC calls */
|
||||
/* Unique HLOS process ID created by fastrpc for each client */
|
||||
int tgid_frpc;
|
||||
int cid;
|
||||
int tvm_remote_domain;
|
||||
uint64_t ssrcount;
|
||||
@@ -914,6 +921,8 @@ struct fastrpc_file {
|
||||
* config paramters.
|
||||
*/
|
||||
struct fastrpc_proc_sharedbuf_info sharedbuf_info;
|
||||
/* Flag to indicate 4 session support available */
|
||||
bool multi_session_support;
|
||||
};
|
||||
|
||||
int fastrpc_internal_invoke(struct fastrpc_file *fl, uint32_t mode,
|
||||
|
在新工单中引用
屏蔽一个用户