We do not set the dma_mask so by default it only
accepts 32bit dma address. setting the dma_mask to
DMA_BIT_MASK(64) makes it accept 64 bit dma address
as well
Change-Id: I3c5dc78e69432f261bee26bf9e0d8d097bc16d09
Signed-off-by: Huicheng Liu <huicliu@codeaurora.org>
Add spin lock to synchronize the audio_aio_open and SSR event
to avoid accessing uninitialized wait events during SSR.
Change-Id: I3ba0100a653903f9a4d8809d0d831d2ab04f9622
Signed-off-by: Harshal Ahire <hahire@codeaurora.org>
When ext clk stop wakeup and slave_pending_irq come together
then interrupt at swrslave is cleared due to calling
enable_slave_irq. Do not clear interrupts for enable_slave_irq
when its called from clk stop wakeup.
Change-Id: Ia710030ab80306d6750bea7264f0d4c07053d701
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
Add support to use debugfs to crash device when q6lsm_apr_send_pkt
timed out due to no response from ADSP. By crashing the device,
crash dump can be collected to aid debugging on ADSP.
Change-Id: I2c53f62a9f99ee6f27fe68894dfbd3dc3aa52ed1
Signed-off-by: Xiaoyu Ye <benyxy@codeaurora.org>
Check and enable audio core vote only when reference count of
mi2s is 1 and disable only when reference count is 0.
Change-Id: If6a8c18feec30fa83363804d5160fd6996aa0319
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
Signed-off-by: Vignesh Kulothungan <vigneshk@codeaurora.org>
As yupik idp has wcd937x support, add port map for same.
Change-Id: I9b907fc2e5aa4a9ad810f01f4be5cc5b2d1659b5
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
Add function to get wcd937x codec variant. Also add wcd937x
support in msm dailinks for yupik.
Change-Id: Id794a12da0f5aa771727d9f03ef949ae1d32b9da
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
During SSR use cases, when AFE APR handle is NULL
and AFE close is invoked, mutex unlock is done without
locking. Fix it and bail out without unlocking the
mutex in this scenario.
Change-Id: Ia2988b56425d8c2d5c726d5860c13e655e7e4ed1
Signed-off-by: Aditya Bavanari <abavanar@codeaurora.org>
Mark IIR filter coefficient registers as volatile to
get actual coefficient when running tinymix.
Change-Id: I0be0a8caef4df5f987abf3981b91d5ec924b883b
Signed-off-by: Meng Wang <mengw@codeaurora.org>
In mmap mode, when playback is triggered, send as much as periods
to DSP.
In previous implementation, only 1 period be sent to DSP at trigger
time, it's consumed in DSP and then send back a write-done event,
which will be captured and trigger another write action in the
event_handler.
The problem is, any jitter in the event transmission will result
in a delay on the next write, and a gap in the output is noticeable.
A multiple-periods queue in DSP can filter out such a jitter to
avoid impact to the output.
Change-Id: I6f04971c076409b5ada8e40cea2b4e01de88b5a9
Signed-off-by: Han Lu <hanlu@codeaurora.org>
Signed-off-by: Sitong Chen <sitochen@codeaurora.org>
Add check if irq is disabled before enabling PDM WD and if
its already enabled before disabled.
Change-Id: Ia36653568b21f9b41dfcdd1da13300f8850c4ea9
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
unmute_delay for AMIC and DMIC may be different and use same
flag may affect the powerup time. Add different unmute_delay
flag for AMIC and DMIC to resolve the issue.
Change-Id: I7697b1fae92a2b37530106c1c7b79a5d1bd74021
Signed-off-by: Meng Wang <mengw@codeaurora.org>
audio modules take a significantly high amount of time to compile
in incremental builds. The export statement causes unnecessary
exports which leads to problem. Removing it and adding it in device
specific conf file to make it similar to lahaina, kona etc
Change-Id: Id9d452e8f62381129263f554b794c5144de456c0
Add module for wcd937x for yupik in autoconf file
as yupik has wcd937x.
Change-Id: I4f5517557bc50e1f631d85ab7069f7dc30a48ac5
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
Due to SVA5 supports multiple sound models in a
signle SVA session, shared buffer format mixer
control will be called several time to set the
afe data format within one session. This behavior
can exhaust all available afe data format sessions
without freeing them at the end of a SVA session.
Fix this issue by using fe_id to find the matching
SVA session when set afe data format.
Change-Id: I3332b9ff88df2b14eb3e59036164f11ad3342e14
Signed-off-by: Xiaoyu Ye <benyxy@codeaurora.org>
When voice call pause failed, cvp cal deregister is not called
to make hyp unassign memory happen.
Fix it by calling cvp cal deregister even if voice call pause
failed.
Change-Id: I88afa951e0be50ca06509e9e51ce484b75dcc7d4
Signed-off-by: Kunlei Zhang <kunleiz@codeaurora.org>
To prevent potential memory leaks in kernel and ADSP, always try to
deregister sound model in msm_lsm_close so that sound model and
calibration buffer can be freed.
Change-Id: If665fcb00f67fa268a4c543649fee12627fccedd
Signed-off-by: Xiaoyu Ye <benyxy@codeaurora.org>
Add SENARY_MI2S_TX to external echo reference. It can
be used for Audio/VoiP/Voice external EC reference.
Change-Id: If5b61f9761607652a3e52e44344b4969821fce95
Signed-off-by: Kunlei Zhang <kunleiz@codeaurora.org>
As per the current design in afe, if the
afe_get_cal_topology for AFE_TOPOLOGY_CAL
or send_afe_cal_type for AFE_COMMON_TX_CAL
fails, then the voice UI calblock is fetched/sent.
This is resulting in sending voice UI calblock
on a non voice UI port during concurrent usecase scenario.
Fix is to check if the calblock for get/set is for
a voice UI port or not. Added support to send this
port id info from routing driver to afe when usecase
is enabled via mixer_control.
Change-Id: I356aae61e1b9d11324e7b9f9a57953767a64b71e
Signed-off-by: Soumya Managoli <smanag@codeaurora.org>
Added kcontrol to write clock drift to ASRC module in ADSP. There
are two options:
1. read drift from an active AFE port, and write to target ASRC module.
The read-and-write process will loop automatically with configurable
delay. (50 ms by default)
2. write drift value to target ASRC module for one time operation.
Change-Id: I2df7ed646d53612aca96074c0ca3d44a404cebf4
Signed-off-by: Han Lu <hanlu@codeaurora.org>