Reduce the latency of device switch during voice call by caching
IIR Band registers at bootup and restore them in
tavil_dig_core_remove_power_collapse instead of updating
through mixer controls from userspace.
Change-Id: I87b41801d5f174f5fb11917a359635e91c04d05d
Signed-off-by: Aditya Bavanari <abavanar@codeaurora.org>
On shutdown of the HDMI Q6 driver clear the channel
allocation structure. If the channel allocation is
not properly cleared the next session to use the
driver may inncorrectly use the channel allocation
from the previous configuration.
Change-Id: Id033958031dc509c6b3060d892bccf5b1c60524b
Signed-off-by: Ben Romberger <bromberg@codeaurora.org>
Add Writeable registers list for Digital codec and soundwire codec
regmap config to avoid invalid register access during reg_cache_sync.
Ensure digital codec clock is enabled before regcache sync to avoid
AHB access errors.Modify mutex use to avoid clock disabling during
regmap register access.
Change-Id: I8ab84f80298e01d145395f1347352afe5cfbcc9e
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
In transcode loopback session open, ALSA to ASM format conversion is
incorrect. Update the format based on ASM defined formats.
CRs-Fixed: 2049714
Change-Id: Ie5ddb6a58a30b0d6b78bfc68cbbbcd3d92f28fb1
Signed-off-by: Siddartha Shaik <sshaik@codeaurora.org>
Set voc path type according to stream type during routing
preparation for voice session to fix uninitialized voc
path type causing voc device port configuration failure.
CRs-fixed: 2045461
Change-Id: I4983ba55b1854879680b6d13c33904a522092eb0
Signed-off-by: Derek Chen <chenche@codeaurora.org>
update configuration to set
bit clock as EBIT in slave mode.
Change-Id: Iec62be7b566f20d4ec2bcd300beb3e4f362b6542
Signed-off-by: Varun Balaraj <varunb@codeaurora.org>
It is uncommon behavior to expect the caller of a get mixer control
to specify information. Return the last configuration information set
for the mixer control instead of expecting the caller to specify a
backend ID to get configuration information for.
CRs-Fixed: 2031732
Signed-off-by: Siena Richard <sienar@codeaurora.org>
Change-Id: Id1a5fd3e2cf9b7282df916c3973249137efde8c5
Transcode loopback api can be used by client to configure
compress loopback.
CRs-fixed: 2049714
Change-Id: I7286fbdfa89375d517f3dad7d04e1d2a360d6f7e
Signed-off-by: Siddartha Shaik <sshaik@codeaurora.org>
Add dai link MultiMedia20 for custom card to support SEC_MI2S_TX
ASM Loopback to TDM port.
CRs-Fixed: 2045651
Change-Id: Iff03923cdf843a1873cf464cd6a66feab2c306fb
Signed-off-by: Cong Tang <congt@codeaurora.org>
Add dai link MultiMedia20 in reference machine driver and
kcontrols for sample rate of SEC_MI2S_TX port.
CRs-Fixed: 2045651
Change-Id: I7c6bc45b2d71403ed19ee0993a85c82649acda7d
Signed-off-by: Cong Tang <congt@codeaurora.org>
Add new frontend MultiMedia20 and update routing to support ASM
Loopback from SEC_MI2S_TX port to TDM port.
CRs-Fixed: 2045651
Change-Id: Ief9ebfda4469d0761ff96bf673b9d593a9576f44
Signed-off-by: Cong Tang <congt@codeaurora.org>
Add support for IEC61937 which is an audio packaging
standard used for compressed HDMI pass-through. Any
audio format can be sent through HDMI pass-through
formatted as IEC61937.
Change-Id: I09821add306e2aeae6530cecbac189471a55e589
Signed-off-by: Ben Romberger <bromberg@codeaurora.org>
In sdm660 due to change of notifier logic, there is a chance of
receiving only service down notifications during bootup. In this case
the initial boot flag is not cleared, as it is only cleared on
service up notification currenly.because of this, the next service down
event during SSR/PDR will be ignored. To fix this, clear initial boot flag
for both first service up/down notification, so that Reset notifications
are not ignored.
Change-Id: Iae3ccc6a81fac5d9e5c640f0fee8bb2aee2271cd
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
APR deregister is to be called for two ports from both
q6asm_callback(during RESET) and q6asm_audio_client_free.
In race condition between the two, APR deregister is called
only for one port. The mismatch in apr register-deregister
count causes apr not to reset service after ssr, causing
APR communication failure.
Change-Id: Ibd0528215bf2fb986eda03ae0d683b2af31358fe
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
Update HDMI drift mixer controls name to be aligned with
drift mixer controls for other devices(speaker, BT).
CRs-Fixed: 2036899
Change-Id: If7aa29ea9511b65de71ff12143a1c34d977de2b8
Signed-off-by: Manish Dewangan <manish@codeaurora.org>
The range checking between "WCD_CPE_IMAGE_FNAME_MAX" and
"copy_count" is off-by-one due to the size of array
"core->dyn_fname" is "WCD_CPE_IMAGE_FNAME_MAX". Subtract
one from the range checking to fix this issue.
Change-Id: I87fd55206f79ad7b13c3878f6642bf5579303b17
Signed-off-by: Xiaoyu Ye <benyxy@codeaurora.org>
msm-compr-q6-v2.c and msm-compr-q6-v2.h are no longer used.
CRs-Fixed: 2022953
Change-Id: I856d90a212a3e123a2c8b80092aff003f7c608c7
Signed-off-by: Xiaojun Sang <xsang@codeaurora.org>
Add support for 144k sample rate in the compress driver.
144k is supported for TrueHD pass-through.
Change-Id: I2a0e772e658e64f43ed1864814f91e7a36f67af6
Signed-off-by: Ben Romberger <bromberg@codeaurora.org>
commit ab949d519601880fd46e8bc1445d6a453bf2dc09 upstream.
Imre Deak reported a deadlock of HD-audio driver at unbinding while
it's still in probing. Since we probe the codecs asynchronously in a
work, the codec driver probe may still be kicked off while the
controller itself is being unbound. And, azx_remove() tries to
process all pending tasks via cancel_work_sync() for fixing the other
races (see commit [0b8c82190c12: ALSA: hda - Cancel probe work instead
of flush at remove]), now we may meet a bizarre deadlock:
Unbind snd_hda_intel via sysfs:
device_release_driver() ->
device_lock(snd_hda_intel) ->
azx_remove() ->
cancel_work_sync(azx_probe_work)
azx_probe_work():
codec driver probe() ->
__driver_attach() ->
device_lock(snd_hda_intel)
This deadlock is caused by the fact that both device_release_driver()
and driver_probe_device() take both the device and its parent locks at
the same time. The codec device sets the controller device as its
parent, and this lock is taken before the probe() callback is called,
while the controller remove() callback gets called also with the same
lock.
In this patch, as an ugly workaround, we unlock the controller device
temporarily during cancel_work_sync() call. The race against another
bind call should be still suppressed by the parent's device lock.
Reported-by: Imre Deak <imre.deak@intel.com>
Fixes: 0b8c82190c12 ("ALSA: hda - Cancel probe work instead of flush at remove")
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Kconfig doesn't have the CONFIG_ part of the option, so don't use
it here. This fixes a kconfig warning about missing a dependency
for "CONFIG_SPI" which doesn't exist because it's supposed to be
"SPI".
Change-Id: Ie449ff250dd87b0a445d34ee079082c6e91f147c
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
For a BADD 3.0 device, the Data Endpoint wMaxPacketSize
of an Alt Setting must be one of the values mentioned in
the specifications. Similarly, the unit IDs of the source
units of any entity is prescribed by the specs. Add
support for checking the error(default) branches in the
relevant switch cases and accordingly handle them.
Change-Id: Ib88eee21df012089d41c4e78a161ddc6767e1bd4
Signed-off-by: Ajay Agarwal <ajaya@codeaurora.org>
Pass through mode is currently per backend and this restricts
pass through mode to be same for all streams connected to it.
More than one stream having different pass through modes can
connect to a single backend.
To handle such cases, extend pass through mode per stream within
a backend.
Change-Id: I43b7553633fe482daef4a9937e66f950c5e6b6c2
Signed-off-by: Chaithanya Krishna Bacharaju <chaithan@codeaurora.org>
Signed-off-by: Revathi Uddaraju <revathiu@codeaurora.org>
Add TrueHD format selection to ASM compressed
open and remove it from non-compressed open.
Change-Id: I94b61958e71d3a0d3aec2aa0206cf35698399d34
Signed-off-by: Ben Romberger <bromberg@codeaurora.org>
Add support to handle new ADSP ASM stream event APIs for
different applications.
Change-Id: Id1e7b9b2841449ceb70099722d834b51c198f04e
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
commit b268c34e5ee92a4cc3099b0caaf26e6bfbdf0f18 upstream.
The awacs sound driver produces a false-positive warning in ppc64_defconfig:
sound/ppc/awacs.c: In function 'snd_pmac_awacs_init':
include/sound/control.h:219:9: warning: 'master_vol' may be used uninitialized in this function [-Wmaybe-uninitialized]
I haven't come up with a good way to rewrite the code to avoid the
warning, so here is a bad one: I initialize the variable before
the conditionall initialization so gcc no longer has to worry about
it.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>