Add support for AAC LATM clips. Define macro for AAC LATM format
and configure media format block with this value for AAC LATM clips.
CRs-Fixed: 1108268
Change-Id: I10cf2db9fc7e4d40d2bf910e162b3c2d95d8a03c
Signed-off-by: Surendar karka <sukark@codeaurora.org>
Add control via ADM set PP Params to control volume of ICC
through a mixer command "Internal ICC Volume".
CRs-fixed: 1025376
Change-Id: I2b7099fe6d3a510859af42f1ac37a6db6e1b453c
Signed-off-by: Derek Chen <chenche@codeaurora.org>
Add support for ADM_CMD_DEVICE_OPEN_V6 when the mixer path
specifies to use the multi-mic-echo-reference, which configures
the EndPoint2 for Echo Reference.
CRs-fixed: 1022080
Change-Id: I474f39a3437fa18003f4342e003d689b95837699
Signed-off-by: Derek Chen <chenche@codeaurora.org>
During gapless playback, next track open write
command is triggered to DSP. At the same time,
for current track, volume change or some PP command
is triggered to DSP. Due to race condition, the track
open write fails since the second command is
triggered asynchronously. Use separate cmd state
for PP command to handle this.
CRs-Fixed: 1080766
Change-Id: Ia80766394e4933800b72be2bf3296cd5de4e3159
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Extend the media format options passed to the voice driver to
include sample rate, bits per sample, and channel mapping in
addition to port ID and the number of channels. Additional media type
information is provide to help avoid additional buffers required in
case of non-fractional sample rate for post processing voice data.
CRs-Fixed: 1065881
Change-Id: Ib69b57dc677b87fecfd689df7f8fc7ec8b4bc59f
Signed-off-by: Siena Richard <sienar@codeaurora.org>
Add a new dailink for slimbus VI sense recording.
SLIMBUS_TX_VI and SLIMBUS_4_TX can coexist.
VI recording and speaker protection cannot work
simultaneoulsy due to shared physical afe port.
CRs-Fixed: 1087025
Change-Id: If074b7042e09d1e69147546461e6fa42d427350e
Signed-off-by: Xiaojun Sang <xsang@codeaurora.org>
Add timestamp support for compress driver.
Modify ASM driver to read the buffer from predefined offset.
CRs-fixed: 1072067
Change-Id: I1c46befc223285495b3c0650e6c3eaae81f58771
Signed-off-by: Satish Babu Patakokila <sbpata@codeaurora.org>
In common clock framework, API for registering clk
provider for a node is changed to of_clk_add_provider.
Add new audio ext clock file to use new API to register
audio clk provider.
Crs-Fixed: 1090500
Change-Id: I1d7ecc6a3d4c48d0de9645043d5e5bfdfa1d1f5f
Signed-off-by: Meng Wang <mwang@codeaurora.org>
Add support in audio stream manager to configure decode
of g711 related clips.
CRs-Fixed: 1094107
Change-Id: Ie90fd68e24e7e793aaac64290e3c1e41682d6d5a
Signed-off-by: Yamit Mehta <ymehta@codeaurora.org>
Signed-off-by: Surendar karka <sukark@codeaurora.org>
Add support in audio stream manager to configure encode
of g711 format
CRs-Fixed: 1094107
Change-Id: I496a975e427f68d7bb5cc2789bfc9bb949658233
Signed-off-by: Surendar karka <sukark@codeaurora.org>
Add support for new DSP INTx MCLK, INTx IBIT CLK
and INTx MI2S ports. New internal codec and msm
based soundwire codec use these clocks and port_ids.
CRs-Fixed: 1083537
Change-Id: I72e0a15c8a283c68a3ed10cfd02a4e3d9526c312
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
In combo usecase there are 2 front-end dai's with
same codec dai, for example, multi-phrase ADSP SVA detection.
Using a single bit as the counter causes the counter to roll
over to 0 during combo usecase.
To resolve this, change counter to unsigned int from single bit.
CRs-Fixed: 1086127
Change-Id: I2dd07bd967b7d4fb4878b6d65bd0f011c6b15bdd
Signed-off-by: Walter Yang <yandongy@codeaurora.org>
It is possible that codec hardware can be reset in case of subsystem
restart scenarios. It is required to reset the codec DSP as well in
such cases to make sure the DSP is in usable state after the codec
hardware is reset. Change adds support to handle codec down and up
events and perform the necessary reset on codec DSP.
Change-Id: I79502c043f5e16947c895aab7cd584d72ad1a7dc
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
The wdsp_intr_handler is not really processing interrupts in interrupt
context, rather assumes that the caller is not in interrupt context and
performs calls that may sleep. Rename the function in order to avoid
confusion. Interrupt handlers can still call this function as long as
they are in threaded interrupt context and are okay to sleep.
Change-Id: Ia2803d6ca021d505ed2e711e676cbd701b11c492
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Add support for ASM_MEDIA_FMT_MULTI_CHANNEL_PCM_V4
command. This command adds support to playback/record 32 bit data
in 32 bit word and also provides a way to inform DSP about the
endianness of the data.
Change-Id: I3b013bedde8ccfa97a02e255e237df0cf2de13b8
Signed-off-by: Ashish Jain <ashishj@codeaurora.org>
Add support for configurable bit width for AFE encoder.
Add new mixer ctl to set for usecases which enables
configuring different input/output bit format
on AFE for usecases such as APTXHD encoder for 24bit input
and 16bit output.
Change-Id: I62326a097cbd71a3ec2b93a0120284d8f71f5d57
Signed-off-by: Naresh Tanniru <ntanniru@codeaurora.org>
It is possible that wcd codec DSP can crash or become unresponsive.
During such case, an error interrupt is generated by the codec. Add
support in manager driver to handle this interrupt and perform
subsystem restart to shutdown and reboot the DSP so that the DSP
can be recovered from the crash.
CRs-fixed: 1071949
Change-Id: I4662b5120bf7f731e399a27d8a613e2f3b648b00
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
The codec driver is notified through interrupt whenever the
DSP in codec is unresponsive/crashed. In such cases, collecting
dumps of the codec memory is useful in debugging the issues.
Change adds support in the wcd dsp manager driver to collect
the memory dumps upon notification of error interrupt.
Change-Id: Ib91cd4fc1476ee1a9ec448cde1a083070443f726
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Currently, when manager driver interrupt handler callback is called,
there is no way for the caller to provide any data information along
with the type of interrupt. Change adds argument to the interrupt
handler so that callers can use this to pass agreed data when an
interrupt occurs.
Change-Id: I1c049227875a802491e21998c13c0bcd8eab7de6
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
AAC encode is failing in ADSP due to mismatch
in channel config datatype.
Update channel config data type for aac encoder.
Change-Id: I844d6e1ac1b2b171cd74a2601ae09280a22589c9
Signed-off-by: Naresh Tanniru <ntanniru@codeaurora.org>
Update the error handling when APR sends packet failed so that audio
driver can perform proper error recovery.
CRs-Fixed: 1050605
Change-Id: I6210e244e6299ec747836f40d03e92c15c6e53ee
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
Add support for tertiary and quaternary audio PCM interface
to msm platform.
Change-Id: I985200bbff55583ac09bf7444ecbc5cf6ab7eb41
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
The overflow check is required to ensure that user space data
in kernel may not go beyond buffer boundary.
CRs-Fixed: 1064411
Change-Id: I54c28a8942cf1a6a47a4e8272f3159b35d753ead
Signed-off-by: Karthik Reddy Katta <a_katta@codeaurora.org>
Add support in cpu dai, routing and native afe driver to enable
audio over display port.
Change-Id: I4cd5b738caab4d40c1c118d3111c3f4af740c84e
Signed-off-by: Shiv Maliyappanahalli <smaliyap@codeaurora.org>
In combo usecase there are 2 front-end dai's with
same codec dai. Using a single bit as the counter
causes the counter to roll over to 0 during combo usecase.
To resolve this change counter to unsigned int from single bit.
CRs-Fixed: 1049348
Change-Id: I196802e6d23a9292ff2915c1b4b61c2b3ead9fa8
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
Add support for AFE encoder configuration.
Add new mixer controls to support AFE input channel
and encoder configuration.
Add support in AFE to set the encoder and input
channel configuration.If encoder configuration is set
ADSP will encode the PCM steam and send over backend.
Change-Id: I56581533ffff3b61f5b5ee128841ab61b62674d7
Signed-off-by: Naresh Tanniru <ntanniru@codeaurora.org>
WCD audio codecs contain SPI slave hardware module to provide access
to codec memory and SPI register space. Change adds driver for this
slave hardware. This driver uses regmap for SPI internal register
accesses and plugs in to standard SPI framework as child device to
master controller driver.
CRs-Fixed: 1049012
Change-Id: I0640ac1ed60a2ec3633636760593211ecd2f9c2d
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
WCD audio codecs have DSP embedded to perform signal processing on
audio data. The codec driver has control over the DSP clock, power etc,
whereas the DSP memory can be accessed through an different bus slave
interface. In such cases, it is required to make sure the hardware
expected sequences are met for the DSP to function properly. The
wcd-dsp manager driver registers as master to component framework
and provides the ability to sequence the operations between the child
drivers. Upon registration of all children, the wcd-dsp manager driver
parses the wcd dsp image, downloads the image and boots up the DSP.
It invokes the component children to perform the tasks in sequence.
CRs-Fixed: 1049012
Change-Id: I059e1b111c607e49a7cc9a7940cf458e701c73d3
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Existing CPE(Codec Processing Engine) driver supports single session.
Add support for two sessions with different sampling rates.
CRs-fixed: 1022917
Change-Id: Ifbcb1bf8c418a4b3c787f68392aa141207dddde5
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
Driver changes to use ASM_MEDIA_FMT_MULTI_CHANNEL_PCM_V3 command.
This command supports playback/record of both 32 bit
(24 bit data in 32 bit word) and 24 bit packed. Update platform
drivers to use this for SNDRV_PCM_FORMAT_S24_LE record and playback.
CRs-Fixed: 1011048
Change-Id: I6f98bf3402a737bc21daff33b13b137850a690ea
Signed-off-by: Manish Dewangan <manish@codeaurora.org>
Implement platform drivers to support shared memory based
pcm playback and capture.
Change-Id: I882c67ae1c3d950b98bd002ac384cc3a7e77874a
CRs-Fixed: 992798
Signed-off-by: Haynes Mathew George <hgeorge@codeaurora.org>
AVCS_MODE_DEREGISTER_ALL_CUSTOM_TOPOLOGIES is defined
as "1" where as in ADSP the value is "2". Redefine
the same to fix the mis-match with ADSP code.
CRs-Fixed: 1005434
Change-Id: I210e43b53c6170425ee35c02b728698b33afb591
Signed-off-by: Karthik Reddy Katta <a_katta@codeaurora.org>
Add new USB rx and tx afe ports and routing to different
fe dais to enable USB audio via ADSP.
Change-Id: I4f82ba27becee1f3b62c410be0d00876961f9b18
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
Add support for SLIMBUS_7 and SLIMBUS_8 Rx and Tx ports for
MSM audio drivers.
Change-Id: I839ac07a3ee1e1e778c4d1e43d0bac89f01bd21a
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
Fix overwrite of updt_params allocated in heap, and stack overread
where param pointer is passed from user space.
CRs-Fixed: 989628
Change-Id: Ida8bdb7da2fcb97023dce3b6eafe4b899a51cb66
Signed-off-by: Weiyin Jiang <wjiang@codeaurora.org>
Use tokens to track all active no wait commands.
In ASM driver, certain commands are waited on to get response
from ADSP. There is a possibility that certain no-wait
commands can be improperly recognized and woken up leading
to time outs.
Change-Id: I2030a354493845b63cf92d35ca4eaadef38cfb79
Signed-off-by: Shiv Maliyappanahalli <smaliyap@codeaurora.org>
This change adds some routing missing plus few other fixes needed
when MI2S interfaces are used.
CRs-fixed: 909961
Change-Id: Ic1e234c955a6162d67fd97ac7647ec810ede204c
Signed-off-by: Roberto Granados Dorado <robertog@codeaurora.org>
HW MAD bypass feature is to facilitate input to CPE by avoiding
MAD in codec. This is done by routing DEC1 data to CPE. Add the
required changes to support this feature.
CRs-fixed: 938514
Change-Id: I7788b1475cd22bdea291bcae47f048131b220ce3
Signed-off-by: Venkata Narendra Kumar Gutta <vgutta@codeaurora.org>
With 3.18 kernel, get_session_time command to
DSP is updated to new command. This
command is not supported on older targets as
they have an older DSP version. To have backwards
compatibility, based on DSP version choose which
command to use.
CRs-Fixed: 978676
Change-Id: I76b0cfcd84df90d7a206690cb8aa1eb773fdc53d
Signed-off-by: Ashish Jain <ashishj@codeaurora.org>