HD2 canceller on analog codec is performing
better and enabling HD2 block on rx macro side
as well impacting THD+N spec. As per HW
recommendation, disable HD2 on digital bolero
rx macro by default. Mixer control option is
provided if required to enable it in future for
any requirements.
CRs-Fixed: 2343436
Change-Id: Ic1696ff9a6dea22a3c2a6071708267e2a024a4c7
Signed-off-by: Laxminath Kasam <lkasam@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>
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>
TX channel2 is not disabled after power down. It leads to
noise at the beginning of next recording on CH2.
Disable it after power down.
Change-Id: If12a84df52b9c8cd55de2bdcb91f950b054898b8
Signed-off-by: Xiaojun Sang <xsang@codeaurora.org>
Some USB headsets take more than 1 second to respond
for afe port start command so increase the timeout value
to support playback on slow responsive USB headsets.
Change-Id: I76c43bafe3c9e1e2d8a4a23059053db6bfc0188b
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
MDF shared memory uses different SID from other use cases.
Existing memory map function hard codes SID from audio ion.
Use separate map function for MDF to make use of proper SID
for MDF shared memory in 32bit build.
Change-Id: I0e854054ad6f58344644f3386618986eab238549
Signed-off-by: Mangesh Kunchamwar <mangeshk@codeaurora.org>
Add ec reference support for SEC_TDM_TX_0 and
TERT_TDM_RX_2 ports.
Change-Id: I3116b942fbd3c6c7bea14a77fdcd840dcab059aa
Signed-off-by: Derek Chen <chenche@codeaurora.org>
Add machine driver code to support SLIMBUS_9_TX port.
SLIMBUS_9_TX BE port is used for split A2DP sink usecase.
Change-Id: I9628a46c4b2b2fe0f5fb8c9861975fd4630bdcdb
Add different media format support in AFE decoder.
Change-Id: Icdc3884882c34236f5ab02355dfbabdd2a1becd2
Signed-off-by: Florian Pfister <fpfister@codeaurora.org>
Signed-off-by: Surendar Karka <skarka@codeaurora.org>
Wrong return value of in_read() causes integer overflow in omx,
which aborts the process. Correct the return value for erroneous
conditions.
CRs-Fixed: 2336645
Change-Id: Ib01827adc92700876f3b11816857f0086b1b5f94
Signed-off-by: Weiyin Jiang <wjiang@codeaurora.org>
Lock sequence for afe_alloc_cal does not comply with others. To
avoid deadlock, move afe_cmd_lock to the top caller in AFE.
Change-Id: I4ce03034c642c8b5e7e9e5e2ff4c73644980484b
Signed-off-by: Xiaojun Sang <xsang@codeaurora.org>
Some warning interrupts keep flooding as long as data
path is enabled. Disable the interrupt after the first
interrupt to avoid flooding, and reenable for new data
path.
Change-Id: Ie4cd447be908ab40568fa24d6111d8a1f0483ee4
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
Add audio effects related controls in transcode loopback driver to
support audio effects in hardware loopback usecase.
Update transcode loopback driver to support configuration of DSP render
window. Render window is used by DSP to take rendering decision.
i.e whether input frame should be rendered, dropped or repeated.
Change-Id: I09bb725d980b8051eae3a245584e2b66cd2af7ff
Signed-off-by: Trinath Thammishetty <tthamish@codeaurora.org>
Change master interrupt to edge type handling to avoid
recurring interrupts during ssr. Add loop logic to handle
concurrent edge type interrupts.
Change-Id: I3c789a24c035a6a00b1a2f515aa5328546ad80a9
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>