When early down happens ADSP is down and APPS is trying to render audio
to ADSP continuously in impression that DSP is Up until APPS get down
notification. In some scenarios the time taken b/w early down to down
taking more time than expected. This longer times may cause block in
printk and other system hogging. So add support to listen early down
to do avoid such issues.
Change-Id: I798265d682e2d93ae889a514eb3a2022afa73196
Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Add KBUILD_OPTIONS and Kbuild conf.
Read hw params from dts and set it during dailink startup.
Change-Id: Ifba87ce6c20bba515566450ddbfaf63a29758e33
Signed-off-by: shengruz <quic_shengruz@quicinc.com>
notifier_mutex is global mutex and there might be a thread which will
acquire notifier_mutex which causes other thread to be in wait
causing deadlock. Using static initialized mutex rectifies issue.
Change-Id: Id8ba30f22419e1a8a7a7356f984db2559197a075
Signed-off-by: Ravulapati Vishnu Vardhan Rao <quic_visr@quicinc.com>
Add ioctl support for 32 bit userspace on 64bit platform.
Change-Id: I208c452993d10d1901eb926dcd4e4a0a1747eaea
Signed-off-by: Srinivas Marka <quic_smarka@quicinc.com>
Load proper dtb image when fuse is not supported.
Change-Id: If87fcc715954b1526fa6718a3453357cbb8957e3
Signed-off-by: Faiz Nabi Kuchay <quic_fkuchay@quicinc.com>
Added timing for spf_ready_check api, rightnow
we are waiting for 10sec when apm is not ready
instead updated timing as below
during adsp loading 10sec
during add child devices 5sec
during prm send pkt 0sec
Check for q6 state at the start of gpr_send_pkt.
Change-Id: I94a93842cc0dc7fc9acd7232f413b3c3a9038536
Signed-off-by: Ganapathiraju Sarath Varma <quic_ganavarm@quicinc.com>
As per current code there isn't a way to load custom adsp-mdt image.
Use kernel api to load custom adsp-mdt.
Change-Id: I42f1186741dff0b9bd953e536eb33907d3c6cb90
Signed-off-by: Faiz Nabi Kuchay <quic_fkuchay@quicinc.com>
add dt flag for enable and disable sleep api.
Change-Id: I97e9aa8c319d478b2fa979c38f5cc4559e1fb435
Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Add support for CPU LPR API for pineapple target.
Change-Id: Ic934591b254fcf7af41c4e49396c81ba75530529
Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Signed-off-by: Phani Kumar Uppalapati <quic_phaniu@quicinc.com>
dma_vmap is not freed in else case of is_iova, so kfree dma_vmap
when is_iova is false. And also if dma_buf_vmap kernel map is
failed, need to end cpu access dma buf.
Change-Id: I111fb7a2a367a8418f46a7b5fc1459d135d7115e
Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
add lock in ion free to protect dma buff and avoid
use after free.
Change-Id: I6376408ce1a5b98b7aeacc32e44ec4db08ff9df5
Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Use rproc_set_firmware API to load ADSP firmware using
image name when adsp_fw_name is set based on
fuse variant.
Signed-off-by: Aditya Bavanari <quic_abavanar@quicinc.com>
Change-Id: I529fe3f9f5f3a861c6b345a79f3ef90f517405a4
While graph_open is processing by the SPF, apps receives
userspace(agm/pal) crash which will triggers spf_close_all
cmd from msm common drivers and immediately calls
msm_audio_ion_crash_handler() which will un-maps the memory. But
here SPF is still in processing the graph_open, recieved spf_close_all
cmd is queued in SPF. Due to un-mapping is done immediately in HLOS
will resulting in SMMU fault.
To avoid such scenarios, increased the spf_close_all cmd timeout,
because the AGM timeout for the graph_open is 4sec, so increase the timeout
for spf_close_all cmd response until graph open completes or timed out.
Change-Id: I67430cad5a55bd250ea110587c0ead2d97115efc
Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
When two clients call prm_gpr_send_pkr concurrently, g_prm.status will be
set to 0 for both clients. When client_A returns some error, g_prm.status
will be some error value and not cleared for Client_B. When audio_prm_callback
returns correct value for Client_B, g_prm.status is some error value which causes
prm_gpr_send_pkt fails for Client_B by mistake.
Move g_prm.status and g_prm.state into mutex_lock to resolve this issue.
Change-Id: Ie028533e6590bfd59b2fa08a496bbffc8793e5f6
Signed-off-by: Meng Wang <quic_mengw@quicinc.com>
Replace struct dam_buf_map with struct iosys_map and
Delete nonexistent header files and API calls.
Change-Id: I04f87dc9739b487b5a4fb7d7bb615198c27b9925
Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Audio notify probe is defer and PDR state change is not happening before
the clients calls to audio_notifier_register(). Due to this the
service_data[service][domain].state remains as UNINIT_SERVICE (where service is
PDR domain is ADSP) and due to this audio_notifier_reg_client() return success
without registering to PDR service, which is incorrect. To avoid this, will
defer the client probes when the audio notify probe is incomplete.
Change-Id: Ib96bdb24dd92ea8b81a0201a7b48e917c7b1403c
Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Correct the condition check of apm ready status during
prm_send_pkt, loop should exit if apm is ready or retry
count exceeds max count.
Change-Id: I0c32731cb3696ef388a0d17d873a8b1485b54805
Signed-off-by: Ritu Sharma <quic_ritushar@quicinc.com>
Add change to properly handle the pointers by setting them to
NULL after free and adding some null checks before dereferencing.
Change-Id: Ic2f3ef5631d0f4e4191bf772eb0b3f0b825044a6
select param id vote against sleep when enter to securezone with the help of
mixer ctl from pal.
Change-Id: Icb0d6aba4b13edc0658e676eb89c996d440e9971
Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Adds traces before ssr shutdown and after powerup.
Change-Id: I77309be3e7598381117f6bdbf991f540a736b4f9
Signed-off-by: Matthew Rice <quic_mrice@quicinc.com>
Update digital_cdc_rsc_mgr_hw_vote_enable/disable API with device
info for easy debug. Also, add swrm clock enable checks during SSR.
When SSR happens, swrm->hw_core_clk_en and swrm->aud_core_clk_en will
be reset without resetting audio_vote and core_vote clk. This would
cause clk mismatch in audio driver and adsp and device fails suspending
when there's no audio usecase. Make this change to reset audio_vote
and core_vote clk when receiving SWR_DEVICE_SSR_DOWN.
Change-Id: I9875aac9f6faf8b6481457a70f31b005073369e0
Signed-off-by: Meng Wang <quic_mengw@quicinc.com>
replace all dev(pr)_err/info logs
that could potentially flood kernel logs with
ratelimit functions dev_err_ratelimited and
dev_info_ratelimited
Change-Id: I32dc6002dead1a07622978c4de63d541c01982fd
Signed-off-by: Shazmaan Ali <quic_shazmaan@quicinc.com>
Local variable is used for dma_vmap and same value is used for caching
which becomes invalid after going out of scope. Store in heap instead.
Change-Id: I2e291137dd461d0cdb49209a6c1d804f1e806457
If the userspace which has allocated & hyp assigned the CMA
memory crashes, the crash handler is just freeing the memory
without calling hyp assign to get access back. This leads
to crash when freeing the memory as HLOS driver does not have
access to memory.
Fix this by calling hyp_assign to get access back to
HLOS driver.
Change-Id: Ic04736cf241eb7e310b8ce0af260e147f4d1edc6
Signed-off-by: Vikram Panduranga <vpandura@codeaurora.org>
Signed-off-by: Akhil Karuturi <akarutur@codeaurora.org>