Cleaned up the HW Mutex functions to export APIs
(acquire and release) for cross-core testing.
Change-Id: I2ddda8b5fc67c80a8a372a2c4124b887f8130e14
Signed-off-by: Chelliah Vinu R <quic_chelliah@quicinc.com>
Added a condition while dispatching callbacks so that
in case of merged handles callback is dispatched only when
all handles are signaled.
Change-Id: Ida6cf2c8bab6f7d66d625f2b14e49418dd794d44
Signed-off-by: Kuldeep Singh <quic_kulsin@quicinc.com>
Updating comments for structures and functions to reflect
the latest changes supported by framework.
Change-Id: Ie990df2790f5c19f1addd569f2f4a8c6a74d468e
Signed-off-by: Amir Suhail <quic_asuhail@quicinc.com>
Adding timeout parameter for async wait so the callback
will be invoked on timer expiry if not signalled.
Change-Id: Ia31f59021f00befed5317fdac262d823c659c6bf
Signed-off-by: Ram Nagesh <quic_ramnages@quicinc.com>
Signed-off-by: Urvesh Rathod <quic_urathod@quicinc.com>
1. Offset based TOC setup, which should be parsed
by the FWs to build required structures.
2. Dynamic Partitioning support - where the enabled
hosts' info is parsed from DT and only required
partitions are allocated in the global memory.
3. Magic Number based TOC header data integrity.
4. Clean ups
- Channel status moved to partition header
- Use only standard kernel return codes
Backward Compatibility Scenario:
Older APPSS code will have toc.size in place of
magic number, hence the value will be 4096, which
should be detected by the FW to use older structures.
Change-Id: I776eca4bdd997e983d35ef1e1f068cf73cdb72f7
Signed-off-by: Chelliah Vinu R <quic_chelliah@quicinc.com>
This change ensures clients can send anything greater
than 64 as custom status from APSS to other cores.
Change-Id: Ib7f507e666fe0b60c5fc09f90652a09e15634376
Signed-off-by: Urvesh Rathod <quic_urathod@quicinc.com>
This change enables support to perform async wait on pure local,
pure global, combination of local and global synx fence and nested
merge fence.
Change-Id: I51a1d1998dca997db52bfa5c393bda3e7c2af985
Signed-off-by: Urvesh Rathod <quic_urathod@quicinc.com>
This change provides fix for below issues :
1. If local handle is imported as global, synx takes extra reference
on global handles which were not released because on signal
callback data had local handle instead of global causing handle
leak.
2. If all the child handles of merge fence are local and
merged fence is global, upon merge its signaled incorrectly
as num_child == 0 even if no one signaled merged fence.
3. During merge synx takes one reference each child dma fences.
When merged fence is released, dma fence reference of child handles
were not released causing handle/dma fence leak. This change
signals underlying child fences if the merged handle is ACTIVE
during release and release reference on dma fence.
4. If local handle is imported as global, map_count was not getting
incremented because of which object was destroyed more than once.
This change increases the map_count variable when local handle is
imported as global or vice-versa.
5. In synx_signal API, synx_signal_offload_job followed by signaling
dma fence. synx_signal_offload_job internally calls
synx_signal_handler which signals dma fence and because of which
sometimes synx_signal was returning failure. This fix ensures that
synx_signal_handler does not overtake synx signal API.
Change-Id: Ia8d2eb969514347cac30f8ae33ce2028119dfd47
Signed-off-by: Urvesh Rathod <quic_urathod@quicinc.com>
This change ensures that any undispatched callbacks are released
while destroying object if handle is not signaled.
Change-Id: I18ee66b9a6ceb390df4d5f5c4f4cd77c5f9f2090
Signed-off-by: Urvesh Rathod <quic_urathod@quicinc.com>
synx_client_destroy prints a log holding a spinlock which causes
watchdog bite due to excessive log. This change prints the log after
releasing the lock.
Change-Id: I42021fd8d07cc595a31a0396f138ac18bcb5bd0f
Signed-off-by: Pravin Kumar Ravi <quic_pravinku@quicinc.com>
Hyp assign is removed from ipclite. S2 mapping
for CDSP & LPASS will be assigned from DSP PIL
driver going forward.
Cleaned up ipclite probe exit on failure.
Change-Id: I342da2bb89024c252eebd4411194093ac77401d5
Signed-off-by: Chelliah Vinu R <quic_chelliah@quicinc.com>
If wait-signal happens on APSS core, callbacks were not getting
dispatched because of recent changes (CR3442156). This fix ensures
callbacks are dispatched properly when handles are signaled.
Change-Id: I0b11634327afa3575c12819a639e104b27e82707
Signed-off-by: Urvesh Rathod <quic_urathod@quicinc.com>
Includes async_wait(timeout) and other fixes
Change-Id: I46871f7fd343287cbd7f9e6ec48efc8ef5ce049a
Signed-off-by: Pravin Kumar Ravi <quic_pravinku@quicinc.com>
This change enables clients to signal synx merged handles
from same and other cores. This change also ensures
that underlying child dma fences are signaled when composite
synx handle is signaled from other core.
Change-Id: Ib81bc2291c85b93fe11eddf5d0ce450bbe486c83
Signed-off-by: Urvesh Rathod <quic_urathod@quicinc.com>
Add copy_to_dist_dir to Bazel build to output kernel build outputs
to dist dir.
Change-Id: I7e142d1e8e8f9f81ed25b938ee7799969870be8d
Signed-off-by: John Moon <quic_johmoo@quicinc.com>
The DT-bindings which has macros for IPCLite signal
usage, has been moved from kernel SI to vendor SI as
all IPCLite related changes can be done in synx-kernel
vendor SI without any kernel change going forward.
Change-Id: I5047684d043df25dd607bd5943791850adc1bac0
Signed-off-by: Chelliah Vinu R <quic_chelliah@quicinc.com>
In use cases where some buffers are passed without a synx handle,
the client needs to define an additional parameter to indicate
whether the h_synx field is valid. This adds to the command size.
Assigning h_synx=SYNX_INVALID_HANDLE can avoid this.
Change-Id: Ibf9dcf9641236ab2ad4c106904f3f17c879486bf
Signed-off-by: Pravin Kumar Ravi <quic_pravinku@quicinc.com>
hyp_assign_phys is replaced by the upstream API qcom_scm_assign_mem,
as hyp_assign_phys is planned to be deprecated
Change-Id: I4371675b881735b92cc12d3f87c7d171acda5a97
Signed-off-by: Chelliah Vinu R <quic_chelliah@quicinc.com>
Add support for synx modules to be built with Bazel DDK framework for pineapple.
Change-Id: I375ea8a722f2afdfd5a9354854675030ebd38d96
Signed-off-by: Ram Nagesh <quic_ramnages@quicinc.com>
Includes param change for async_wait(timeout) and other fixes
Change-Id: If8ff795538bbfaf53ee1758561fbd2841e5a71c7
Signed-off-by: Pravin Kumar Ravi <quic_pravinku@quicinc.com>
This change adds necessary functionality to support ICP core.
Change-Id: I55793f6508ae5d7180b0f50d477e366842199148
Signed-off-by: Pravin Kumar Ravi <quic_pravinku@quicinc.com>
Enables ICP to communicate with other cores through
corresponding channels
Change-Id: Id7e6e9e14ee257bcce014c29147877375d8d48bb
Signed-off-by: Chelliah Vinu R <quic_chelliah@quicinc.com>
Added latest SSR updates in IPCLite from kernel_platform
to vendor space
Change-Id: I9e551a0d69f45d89cae2165e25468945fcc68f7f
Signed-off-by: Chelliah Vinu R <quic_chelliah@quicinc.com>
added mk and Kbuild script to support building synx driver as external module for Vendor SI
Change-Id: Ib66325d115ca46e6b61de1e168e85d09419f73e2
Signed-off-by: NITIN LAXMIDAS NAIK <quic_nitinlax@quicinc.com>