Microphone Activity Detection (MAD) hardware in the codec is used to
perform detection of audio/beacon/ultrasound audio activity on the
microphone. Add routing controls and configuration to enable the
capture support for MAD in WCD9335 codec.
Change-Id: I48359c6069bbebfc7f58efc24654544309912b69
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Signed-off-by: Raja Mallik <rmallik@codeaurora.org>
During bind/unbind of ngd_msm_ctrl power_gate_digital_core
is called. Simultaneously tavil_remove is also called
making tavil pointer as NULL. Check for tavil as not NULL
at the start of function to avoid NULL pointer dereference.
CRs-Fixed: 2267796
Change-Id: I6fc476cc8b706b556836f30838983de0f34d4fc1
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
Private data pointer may not be initialized before
access it in adsp_stream_cmd_put. NULL check for prtd
avoids the issue.
CRs-Fixed: 2250112
Change-Id: I0a033d7e867b183c329941b57b49232729191f1b
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
Vote for LPASS island NPA resource before accessing any
LPASS register from LPI TLMM driver.
Change-Id: I9987b2ac60b055a7d33b3adce2b36a2fbbe2dea1
Signed-off-by: Mangesh Kunchamwar <mangeshk@codeaurora.org>
Update SBC sample frequency and number of channels
from IPC library to set AFE port accordingly.
Change-Id: Ibca385b0fc0ba4c3122053559b1116bd4c31336d
Signed-off-by: Florian Pfister <fpfister@codeaurora.org>
Updates for voting for LPASS island NPA resource while
access any LPASS registers.
Change-Id: Ibcebd2d6ef368f309594689335bc07a36eafeaf0
Signed-off-by: Mangesh Kunchamwar <mangeshk@codeaurora.org>
Add new clock node for LPASS NPA resource for clients
to enable or disable the resource.
Change-Id: I8aa587771618d301ace72d6df1045078cdf39c9c
Signed-off-by: Mangesh Kunchamwar <mangeshk@codeaurora.org>
Add interface functions to vote for LPASS island NPA resource
from clients.
Change-Id: I532dd697f986aca48c3125b1bab3435b890d4039
Signed-off-by: Mangesh Kunchamwar <mangeshk@codeaurora.org>
SM6150 V1.0 target uses ipc wake up mechanism. Based on
version info of sm6150 chipset, register for
wake up interrupt either by ipc_wakeup or hardware
interrupt line machanism.
Change-Id: I7f12d919418b284f310c8b7bb5cd24e47f2099ec
Signed-off-by: Aditya Bavanari <abavanar@codeaurora.org>
Add reg_wake_irq macro callback and issue an event
from Tx macro to Tx sound wire master instance
in order to register for wake irq and to handle
the ipc wake up interrupt.
Change-Id: Iefddc1f85173ce267c0b00c9d06be3a4a2fe29fe
Signed-off-by: Aditya Bavanari <abavanar@codeaurora.org>
Add changes to register hardware wake up interrupt
from soundwire data line or ipc wake up interrupt
from LPASS.
Change-Id: Ibe4277db79aa62f34e9b325ae656b3f3fa7a2bcb
Signed-off-by: Aditya Bavanari <abavanar@codeaurora.org>
The read/write api exposed by soundwire master is intended
to be used only for accessing soundwire slave registers.
Remove master access from the api, to avoid invalid access
due to slaves sending devnum as zero incorrectly.
Change-Id: Ia00179f87908f95f03ef027630d178016affdb18
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
Need to specify hstart and hstop bit fields
even if those are not used in frameshape for
given port. Soundwire master register config
needs to set as 0x0, 0xF for hstart and hstop
for those ports.
CRs-Fixed: 2333434
Change-Id: I78e103a3d4c9085ea14884691d5df3f35fa7a754
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Add new class-H driver with sequences to support
both class-H and class-AB modes on wcd937x variants.
Change-Id: Ie109f3d951af1e8a0079dd39ab2fe1e9883bd6c2
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
For export functions from wcd937x use separate
header as internal header is only supposed to be
used within wcd937x driver logic.
Change-Id: Ice373ff95f7166a2f968458b25223c582edc7fba
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
New audio session may be opened just before SSR
has occured. Ignore device up notification due to
new session during SSR as soundwire hardware is
not ready.
Change-Id: I06a558d0fa9e31ed6bbdfab80402ba7b337e7ad8
signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
Reinit clk off signal before waiting to avoid false
positives because of the signal complete that happened
prior to the waiting.
Change-Id: I678fdc8589039d9f59e6590a4899309dad479181
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
Two power modes are supported on bolero digital.
Add support to set required power mode using
mixer control and enable runtime during powerup
sequence.
Change-Id: I4c5a7560984d60745ac98848f1eec1d1f8485323
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Update sampling interval for class-H as per HW spec
and hstart/hstop bit fields in swr master register
since master fields are not same as slave fields
for this setting as defined in HW register document.
Change-Id: Iefb5bb83bb8984ee964f405f53ab6f8f0ba47f75
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
During PCM closing, the AIF power down will be delayed due to flag
ignore_pmdown_time is not set. Set this flag for ultrasound RX DAI
to avoid delay in PCM close which causes slimbus overflow.
Change-Id: I5eeaceaacc5be0c200b50d1a7d0f211fa0d41f2b
Signed-off-by: Xiaoyu Ye <benyxy@codeaurora.org>
SMMU is not enabled on CDSP and shared memory to CDSP doesn't need
SID. Default SID from audio ION was being added in 32bit builds.
Avoid adding default SID for MDF shared memory for CDSP.
Change-Id: I5e35396fc90071f96e1042c5e08eafe4226c240b
Signed-off-by: Mangesh Kunchamwar <mangeshk@codeaurora.org>
ADSP, userspace and LSM client driver, all these three layer are maintaining
independent buffers and rewrite them irrespective of the buffer being read
successfully by their client or not.
Before switching to real-time capture, history buffers cached can be returned
with minimal delay and may lead to overrun in a module if buffering in the
module is not sufficient to store all those data generated almost instantaneously.
LSM driver having buffer size smaller than history buffer duration is hitting
this issue and resulting in buffer overrun for even a small delay from userspace
in start of capture processing thread.
Prevent this issue by synchronising read and write in LSM driver to make
sure the driver waits for read from userspace before writing the same buffer again.
Change-Id: I2710b484a7ef03e8314c7ba05bf729893aecb890
Signed-off-by: Dhananjay Kumar <dhakumar@codeaurora.org>