نمودار کامیت

47 کامیت‌ها

مولف SHA1 پیام تاریخ
Ansa Ahmed
9151ca9fdd msm: adsprpc: Latency vote for lowest capacity cores
Currently, QoS core count is probed from dtsi property.
Instead, update it at run-time by counting number of
lowest capacity cores. Probe DT to check if latency
voting for only a single-core is enabled, update count then.

Change-Id: I8eaddc382a4929d28a60db8d351eb8ca9793e82e
Signed-off-by: Ansa Ahmed <quic_ansa@quicinc.com>
2023-06-06 21:20:07 -07:00
Santosh Sakore
9fd8a867bf msm: adsprpc: null check for context map
Add null check for context map before increamenting reference count.

Signed-off-by: Santosh Sakore <quic_ssakore@quicinc.com>
2023-06-06 18:48:01 +05:30
Santosh Sakore
e696574fb5 msm: adsprpc: block smmu unmap of buffer used in pending rpc call
A dynamic SMMU mapping created as part of an RPC call can potentially
be removed by a parallel munmap ioctl call before the RPC call is
complete, leading to SMMU faults.

Maintain a ref-count that indicates that the mapping is being used by
a pending RPC call and allow the mapping to be removed only if this
count is 0.

Change-Id: Ieb4ff6b298ff9c48953bc5b3539fdfe19a14b442
Acked-by: Santosh Sakore <ssakore@qti.qualcomm.com>
Signed-off-by: Santosh Sakore <quic_ssakore@quicinc.com>
2023-05-28 22:57:55 -07:00
Edgar Flores
64813776c7 adsprpc: tvm: wakeup waiting rpc calls when secure PD exits
When secure PD exits in case of SSR or another scenario, notify
all rpc threads waiting on kernel. This should allow rpc threads
to return failure to TVM clients.

Change-Id: Ie0e97d2cb0e378b9b1c1e558f8ed642710690d1f
Signed-off-by: Edgar Flores <quic_edgarf@quicinc.com>
2023-05-25 13:29:06 -07:00
nishant chaubey
20d4dc0060 Potential use of freed ctx in async invoke
After message is sent to DSP, async response thread
could immediately get the response and free context,
which will result in a use-after-free in invoke send.
To fix this, add local copy of ctx to trace and gmsg
logging. To fix async response and SSR race, we rely
on is_job_sent_to_remote_ss of ctx, now check valid
ctx from ctxtable to set is_job_sent_to_remote_ss.

Change-Id: I1ebbed61443beda7b5ffcbe858481a54cca96acb
Signed-off-by: nishant chaubey <quic_chaubey@quicinc.com>
2023-05-23 22:34:35 -07:00
Himateja Reddy
4c5701814d msm: adsprpc: Allocate designated context bank session
Currently SMMU context banks are chosen dynamically based on
available context bank. Few use cases requires context banks to
be fixed to retain SMMU mappings even after process exits and resumes
again. Few other use cases requires to use multiple context banks of
similar remote subsystem process types. Allocate designated context
bank session with process type  matching with remote subsystem
process type.

Change-Id: Ie8ccad2fde4e2e21aaf8c6ede0ab31645cdf350c
Signed-off-by: Himateja Reddy <quic_hmreddy@quicinc.com>
2023-05-15 08:53:34 -07:00
Anirudh Raghavendra
6ab8ea49ff Fix issue in allocating multiple sessions for ADSP
Multiple sessions were being allocated from ADSP using
the shared context bank. Remove second for loop which was
not checking for the sharedcb variable.

Change-Id: Ie5831eb9454b909dfea62cffbdaf66d94b200b3b
Signed-off-by: Anirudh Raghavendra <quic_araghave@quicinc.com>
2023-05-04 12:03:24 -07:00
Vamsi Krishna Gattupalli
21968b8049 msm: adsprpc: enable ramdump collection for CMA persistent buffer
Ramdump collection is missing for peristent mappings. Added change
to enable ramdump collection for CMA persistent buffer

Change-Id: Ic8484c9d9f2814610de78fbafba9cdc65a75d862
Acked-by: DEEPAK SANNAPAREDDY <sdeeredd@qti.qualcomm.com>
Signed-off-by: Vamsi Krishna Gattupalli <quic_vgattupa@quicinc.com>
2023-05-04 11:48:14 +05:30
Himateja Reddy
2c1d233879 msm: adsprpc: FastRPC driver interface to get HLOS PID
Currently there is no interface request to get HLOS PID of
the device attached to FastRPC bus driver. Add new request
FASTRPC_DEV_GET_HLOS_PID, to get HLOS PID of the attached
device.

Signed-off-by: Himateja Reddy <quic_hmreddy@quicinc.com>
2023-05-03 11:44:06 -07:00
Vamsi Krishna Gattupalli
d0ad5cc2d5 msm: adsprpc: fix remote argument array size
The remote argument array size is more than the utilized.
Add fix to have proper array size to accommodate the
arguments for remote invocation.

Change-Id: Id0b290eebae850765f24e22918166d7e9d8827c4
Signed-off-by: Vamsi Krishna Gattupalli <quic_vgattupa@quicinc.com>
2023-05-01 00:20:18 -07:00
Santosh Sakore
ccb5fba99d msm:adsprpc:add error log in fastrpc init create dynamic process
When DSP process successfully spawned on the ADSP ,
the APPS side init memory is getting unmapped due to an error in driver,
by the time error printing in user space logs the SMMU fault is happening in ADSP.
So add the error log in fastrpc_init_create_dynamic_process.

Acked-by: Ramesh Nallagopu <rnallago@qti.qualcomm.com>
Change-Id: I6df8000e9e34fa0916947528a52793b164ab3acb
Signed-off-by: Santosh Sakore <quic_ssakore@quicinc.com>
2023-04-26 18:03:53 +05:30
Vamsi Krishna Gattupalli
264671ac79 msm: adsprpc: Share initial debug config to DSP
This change enables sharing of a new page to DSP.
New page will contain inital debug parameters which we
need to pass to the DSP during the process initiation.

Change-Id: I8ae12cb364811a97eca3f15e70106b36bcec3f54
Signed-off-by: Vamsi Krishna Gattupalli <quic_vgattupa@quicinc.com>
2023-04-19 14:08:04 -07:00
Santosh Sakore
a2f9f978b1 msm: adsprpc: Handle UAF in fastrpc_buf_free
Thread T1 add buffer to fl->cached_bufs and release fl->hlock and holding
buffer reference. Now thread T2 will aquire fl->hlock and free buffer in
fastrpc_cached_buf_list_free(). T1 will dereference the freed buffer.
Moving reference buffer uses for T1 inside fl->hlock to avoid UAF.

Change-Id: I5f08d5497099133f87d55f5879cfe50c2ba23ae6
Signed-off-by: Santosh Sakore <quic_ssakore@quicinc.com>
2023-04-11 09:03:05 -07:00
Vamsi Krishna Gattupalli
27d9053c28 msm: adsprpc: To avoid null pointer dereference
To log error for fastrpc_mmap_remove_ssr and
compat_fastrpc_get_dsp_info for avoiding null pointer
dereferences leading to kw issues.

Change-Id: I515485d891331e0740722a0de1291353db645b66
Acked-by: Ansa Ahmed <ansa@qti.qualcomm.com>
Signed-off-by: Vamsi Krishna Gattupalli <quic_vgattupa@quicinc.com>
2023-04-10 20:13:10 -07:00
Himateja Reddy
5f713c22a4 msm: adsprpc: Fix race in async context response
Currently async job is first added to pending context list and later
job is send to remote sub system. After the job is added to pending
context list, if any SSR happens, all the async pending job contexts are
responded and freed in async response thread. Original thread that added
job to pending context list might not have sent the job, as there is SSR and can
free the context again in same thread. Queue response in SSR only when
the job is sent to remote sub system.

Signed-off-by: Himateja Reddy <quic_hmreddy@quicinc.com>
Change-Id: I1f880316f327a8345433d5d22b619ef0a50d7240
2023-04-10 09:25:34 -07:00
Edgar Flores
1c15545211 msm: adsprpc: stub out buffer ownership for TVM
In TVM buffers might be lend from PVM and ownership might
be shared between TVM and PVM. This might lead to some issues
in TVM.

Change-Id: I9c2ea67c1c4664512881a301cf57ab5e204f6a65
Signed-off-by: Edgar Flores <quic_edgarf@quicinc.com>
2023-04-07 10:27:26 -07:00
Santosh Sakore
c0787f2846 Synchronize exit process and bus driver invoke
In current code fastrpc_file_free and bus driver invoke call are in
parallel, we would see corruption as both try to access fastrpc_mmap
list. To resolve this issue added signaling mechanism between
fastrpc_file_free and bus driver invoke call. If bus driver invoke
call is running in parallel with fastrpc_file_free, it would wait
until the invoke call is completed. Also added locks in bus driver API
to protect fastrpc_mmap's.
To improve code readablity created separate API for bus driver map
and unmap.

Change-Id: I5fd6f331febdecb319b168b36590a73e4532038a
Signed-off-by: Anirudh Raghavendra <quic_araghave@quicinc.com>
2023-04-05 15:08:22 +05:30
Vamsi Krishna Gattupalli
e92ce41f5a msm: adsprpc: adding proper null check.
after allocation of a buffer, verify if null is returned.
if null check is success then bailout.

Change-Id: Idbc94c6cf109d34340b55b25f8df74afd5975d36
Signed-off-by: Vamsi Krishna Gattupalli <quic_vgattupa@quicinc.com>
Acked-by: ANANDU E <anane@qti.qualcomm.com>
2023-04-04 22:19:22 -07:00
Vamsi Krishna Gattupalli
c5866e97d6 msm: adsprpc: Print map and buf flags in debugfs
Current map and buf flags are not being printed in the debugfs data
of process. Print map and buf flags.

Change-Id: I621e7ca08de45f189d5b49046b3c37cfef968d54
Acked-by: DEEPAK SANNAPAREDDY <sdeeredd@qti.qualcomm.com>
Signed-off-by: Vamsi Krishna Gattupalli <quic_vgattupa@quicinc.com>
2023-03-23 22:05:05 +05:30
nishant chaubey
4d19368b34 msm: adsprpc: no debug info if ioctl wait for pdup
If pd is down, new device ioctls wait for pdup before
copying ioctl params and saving ctx information.
Shift logic to check pdup from device_ioctl to after
context creation and before invoke send to allow
current ioctl information to be store in pending ctx.

Change-Id: Ia9747394020fd35b02f4074a82edecace72f87db
Signed-off-by: nishant chaubey <quic_chaubey@quicinc.com>
2023-03-16 20:34:00 -07:00
Edgar Flores
ed0b528087 adsprpc: Enable fastrpc trusted driver
Fixes to fastrpc trusted driver to run on TVM.
Added a workqueue for receiving kernel packets.
Changed array allocation of kernel sockets to save space.
Original design was allocating static 2-d array glist_session_ctrl
for all possible subsystems and domains.
New implementation is allocating staic 2-d reference array.
Each entry in the array will only be allocated if remote domain
is supported.

Change-Id: I303375822714aa6f8eadf525b09326aa05714fd7
Signed-off-by: Edgar Flores <quic_edgarf@quicinc.com>
2023-03-16 14:14:25 -07:00
Anirudh Raghavendra
b6137ddc63 Stub out CMA alloc when running TVM
CMA alloc will not work on TVM. Stubbing out fastrpc_alloc_cma_memory
in fastrpc_init to prevent errors during loading.

Change-Id: I5774f1f0333da86582b9aca8b9cdeae725eaf64f
Signed-off-by: Anirudh Raghavendra <quic_araghave@quicinc.com>
2023-03-13 19:17:51 -07:00
Himateja Reddy
ee50316af5 msm: adsprpc: Use upstream API qcom_scm_assign_mem
Currently hyp_assign_phys is being used to assign mmeory to remote
subsystems. hyp_assign_phys is not upstream friendly. Use qcom_scm_assign_mem
in place of hyp_assign_phys to deprecate downstream API.

Signed-off-by: Himateja Reddy <quic_hmreddy@quicinc.com>
Change-Id: Ic4aed6570598a96e6401777836bd390ede877ff2
2023-03-08 13:18:49 -08:00
Vamsi Krishna Gattupalli
7d90dc2702 msm: ADSPRPC: Add subsystem states for restart, up and down
Current subsystem state flag cannot define all state of the subsystem.
Different handling might be needed for different subsystem states.
Add multiple subsystem state support.

Change-Id: Id091dfded583c8cd7e95c0d306de6dd34b03485d
Acked-by: Santosh Sakore <ssakore@qti.qualcomm.com>
Signed-off-by: Vamsi Krishna Gattupalli <quic_vgattupa@quicinc.com>
2023-02-27 21:54:04 -08:00
nishant chaubey
f093a3613d msm: ADSPRPC: Handle potential leak information
Memset the entire header buffer to fix potential
leak information for Cached buffers.

Signed-off-by: nishant chaubey <quic_chaubey@quicinc.com>
2023-02-26 20:42:21 -08:00
nishant chaubey
c31f7a037d msm: adsprpc: add variable to store interrupted ts
Currently no debug information of when ctx interrupted,
restored. This make ioctl hang/high invoke time issues
hard to debug. Add variables to store interrupted, restore
timestamp in pending ctx and gmsg_log.

Change-Id: I32226e96c54acb5878f2b8d37110bae7f65d49f3
Signed-off-by: nishant chaubey <quic_chaubey@quicinc.com>
2023-02-25 04:26:28 -08:00
nishant chaubey
4024c08023 msm: adsprpc: cleanup ADSP rh memory during hibernation
During hibernation suspend, we pass null fl, allow
ADSP remoteheap memory cleanup in this case.

Change-Id: I42b80ded3955f9d5200cb77114a476a69f5353d5
Signed-off-by: nishant chaubey <quic_chaubey@quicinc.com>
2023-02-17 17:13:42 +05:30
nishant chaubey
4fef948448 msm: adsprpc: add ioctl control for thread exit
Add ioctl control support to exit notif and async
threads.

Change-Id: Ifc7212fd84bdba46724252e00e1d479865cefc64
Signed-off-by: nishant chaubey <quic_chaubey@quicinc.com>
2023-02-13 11:08:46 +05:30
Vamsi Krishna Gattupalli
0821b24a81 msm:ADSPRPC: adding spin_unlock when bailing.
spin_lock should be released before bailing.

Change-Id: I3ac6043221272fa1dda2f36f4add810df41a17f3
Acked-by: ANANDU E <anane@qti.qualcomm.com>
Signed-off-by: Vamsi Krishna Gattupalli <quic_vgattupa@quicinc.com>
2023-02-08 00:01:47 -08:00
Himateja Reddy
6554e75e39 msm: ADSPRPC: Prevent mapping refcount for persistent mapping from going bad
Mapping refcount goes to negative value when internal invoke fails. This
prevents in hyp assigning the memory back to dsp.

Change-Id: I3b0f4a80e8fd1cde43e5b6fe94030258eb01ead1
Acked-by: Abhinav Parihar <parihar@qti.qualcomm.com>
Signed-off-by: Vamsi Krishna Gattupalli <quic_vgattupa@quicinc.com>
Signed-off-by: Himateja Reddy <quic_hmreddy@quicinc.com>
2023-02-06 10:57:50 -08:00
Vamsi Krishna Gattupalli
bfd12fbf25 msm: adsprpc: To avoid null pointer dereference
To log error for fastrpc_mmap_remove_ssr and
compat_fastrpc_get_dsp_info for avoiding null pointer
dereferences leading to kw issues.

Change-Id: I0f759ce5d9c3100a5cff3e61ad1499f6eb1b55dd
Signed-off-by: Ansa Ahmed <ansaahme@qti.qualcomm.com>
2023-01-31 23:44:36 -08:00
Anirudh Raghavendra
9f5f25be96 Add support for LE compilation
Add .am files for LE build compilation. These files will replace
Makefile and Kbuild files only on LE builds.

Change-Id: Ib8dfa89523adf802acce57be0d2064f790bac6d2
Signed-off-by: Anirudh Raghavendra <quic_araghave@quicinc.com>
2023-01-26 23:23:19 -08:00
Himateja Reddy
6b8c6087fe msm: adsprpc: Add IOMMU_CACHE flag for iommy_map_sg
Currently memory shared to QRTR is not mapped with IOMMU_CACHE
flag. When using iommu_map_sg, IOMMU_CACHE flag makes the memory
coherent. Add IOMMU_CACHE flag to iommu_mag_sg to make memory
shared to QRTR coherent on APPS. Also remove DMA_ATTR_NO_KERNEL_MAPPING
attribute while allocating memory as it doesn't have significance when
the memory is coherent.

Signed-off-by: Himateja Reddy <quic_hmreddy@quicinc.com>
2023-01-24 08:59:06 -08:00
Vamsi Krishna Gattupalli
e1f8f88b4b msm: ADSPRPC: Use PD type enums instead of magic numbers
Currently PD type is getting updated with some magic numbers. Add
enum with different PD type information and use these types instead
of magic numbers for better code readability.

Change-Id: I20eb03726cabfcc88589be215c3c967b608a9cdb
Acked-by: Ekansh Gupta <ekangupt@qti.qualcomm.com>
Signed-off-by: Vamsi Krishna Gattupalli <quic_vgattupa@quicinc.com>
2023-01-23 10:42:43 +05:30
jianzhou
45d0db4477 dsp: remove private iommu/dma header
iommu/dma header was made to be private, need to remove it.

Change-Id: I16472ecb8af26699e1fe5a5316c44c4df9069dab
Signed-off-by: Maria Yu <quic_aiquny@quicinc.com>
2022-12-14 21:57:21 -08:00
Vamsi Krishna Gattupalli
b98c08f019 msm:ADSPRPC: configure signed userpd initial memory length
Currently the init memeory size allocated for user PD is fixed.
This may not be sufficent for some usecases. This change will
allow configuring initial memory size allocated for signed user PD.

Change-Id: I2b12cf98c96b1e11daaad7e1bbf1d3777f43c1b6
Acked-by: ANANDU E <anane@qti.qualcomm.com>
Signed-off-by: Vamsi Krishna Gattupalli <quic_vgattupa@quicinc.com>
2022-12-06 21:55:03 -08:00
Himateja Reddy
38ca55b8e5 msm: adsprpc: Share CP secure context banks
Currently CPZ secure context banks are not shared on CDSP. Share
CP secure context banks among applications that use secure memory,
so that many CPZ applications can be spawned and offloaded to DSP.

Change-Id: I77d95bab86ef527e41c9fe79058742615f4adb0e
Signed-off-by: Himateja Reddy <quic_hmreddy@quicinc.com>
2022-11-18 13:51:26 -08:00
Anirudh Raghavendra
4dc57d62a5 Added comment to daemon wait mechanism
Added comment to fastrpc_check_pd_status for daemons to wait before
audio or sensors PD is up.

Change-Id: I2d908cbf4b642386aec97ef1afe38b6af572d9a5
Signed-off-by: Anirudh Raghavendra <quic_araghave@quicinc.com>
2022-11-16 09:41:01 -08:00
Thyagarajan Venkatanarayanan
b53b19bf75 msm: adsprpc: launch trusted process as system unsigned PD
If a trusted process is requesting for unsigned PD, set process
attribute to launch it as a system unsigned PD on remote subsystem to
get additional privileges.

Change-Id: Ie29f02ba16f2c4e68bf4cd1c75731915d40a9241
Signed-off-by: Thyagarajan Venkatanarayanan <quic_venkatan@quicinc.com>
2022-11-14 14:26:36 -08:00
Anirudh Raghavendra
f8b3c01858 Add snapshot from Kailua
Added snapshot of fastrpc code on Kailua to Lanai component.

Change-Id: I50bd699ef1c502116368c383ed9dc28f675d393c
Signed-off-by: Anirudh Raghavendra <quic_araghave@quicinc.com>
2022-11-08 13:48:12 -08:00
Anirudh Raghavendra
3a10a6b261 Resolve compilation errors in adsprpc
Number of parameters in print statement was less than number of
format specifiers. This was causing an error with the new kernel
compiler.

Change-Id: Iad4ed0ad373559ecd64e8d9bfb1da37532f443c9
Signed-off-by: Anirudh Raghavendra <quic_araghave@quicinc.com>
2022-11-02 14:59:50 -07:00
Bruce Levy
12862dfca9 adsprpc: Fix compilation error
Change-Id: I12af79e309f8f0f0d50bad2d88a437f62ecd1d46
2022-11-01 16:16:03 -07:00
Anirudh Raghavendra
8ac83763ce Enable wait for PD only when PDR mechanism is up
When the PDR mechanism is down, the value of ispdup is always 0.
This makes the sensors or audio daemon wait indefinitely in the
kernel.
Disabling wait in kernel when PDR mechanism is not working.

Change-Id: I556dc0aa3908bc97b433cbd6060b88a710923b58
Signed-off-by: Anirudh Raghavendra <quic_araghave@quicinc.com>
2022-09-23 14:56:32 -07:00
Anirudh Raghavendra
c64cff5b57 adsprpc: msm: Add rules for compilation
Adding rules for compiling frpc_adsprpc ko and cdsploader
ko.

Change-Id: Ie0d13018fea971ffa20f0183c17a299ca47f29c7
Signed-off-by: Anirudh Raghavendra <quic_araghave@quicinc.com>
2022-09-23 10:05:54 -07:00
Anirudh Raghavendra
cabe8eabfb Add trace header file to kernel component
Moved trace header file from kernel branch to fastrpc kernel
component

Change-Id: I3c1dafe9daec89f1164e64606748cb47483e1670
Signed-off-by: Anirudh Raghavendra <quic_araghave@quicinc.com>
2022-09-22 15:07:51 -07:00
Anirudh Raghavendra
7e0eff3f2b adsprpc: Modify code to pass compilation
Add missing module import to macro for DMA_BUF and add fallthrough
statements

Change-Id: Ied625ee1000afca9f269989ff2635ea04a8fe196
Signed-off-by: Anirudh Raghavendra <quic_araghave@quicinc.com>
2022-08-16 10:33:07 -07:00
Anirudh Raghavendra
b0ee7bc076 adsprpc: Add initial src files to new target
Add fastrpc driver files to vendor branch

Change-Id: I852eee93cf6c0b2bc0833f9635f73b890de930da
Signed-off-by: Anirudh Raghavendra <quic_araghave@quicinc.com>
2022-08-12 17:41:38 -07:00