This reverts commit 099e839e730b89630404bfc9a375049ac01b8f93 ("ASoC:
wcd-mbhc: Fix plug removal detection from extension cable")'.
Headset insertion is giving spurious electrical insertion removal
interrupts. Hence headset is not detected properly. This is seen on
RCM devices for normal US headset on 8937/msmgold/msmtitanium. On MTP
some specific headsets are exhibiting this behavior.
Change-Id: Ida016cc29950dabcaaf6bfc1b751e77e3cccd20c
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
In preparation to add more debugging hooks to LPASS driver, convert
adsp error code and string conversion functions to C source file.
CRs-fixed: 968775
Change-Id: Ic074a318ede4188a8fd603efddce71ed820ee560
Signed-off-by: Patrick Lai <plai@codeaurora.org>
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
Add support for SENARY_MI2S_TX port to enable FBSP.
This port is configured to send VI feedback data from
WSA to ADSP during FBSP.
Change-Id: I4fb1beb7bfedbe513ba43a69e67fbcc815d34595
Signed-off-by: Venkata Narendra Kumar Gutta <vgutta@codeaurora.org>
Remove improper deletion of list head and protect list
deletion with spinlock. Spinlock protects the list
from access in ADSP callback at the same time the
list is being deallocated.
Change-Id: I1b102cd99e7c80e1dfd4e2054b9ba7e0ca26d6a7
Signed-off-by: Ben Romberger <bromberg@codeaurora.org>
Change the HW delay debug print so it does not
seem like an error. Adds comments in the code
describing the HW delay feature.
Change-Id: I0955623a7bdb0f4180c908ba079cf6f900e496a5
Signed-off-by: Ben Romberger <bromberg@codeaurora.org>
Currently class-H controller is not enabled when lineout is enabled
first and then headphone is enabled. Because of this mute is observed
on headphone during lineout and headphone concurrent scenarios.
Fix mute on headphone by enabling class H block during concurrency.
Change-Id: Ibed962eaacf87c3eb55c569d2ae9c6363a63cace
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
CRs-Fixed: 957405
Add NULL check for the pointer to make sure memory is
allocated. Add array boundary check for the index
before using the same array.
Change-Id: Ifd35ca0c0a1cbeee18d7797ea6b43ea31be0eeba
Signed-off-by: Viraja Kommaraju <virajak@codeaurora.org>
Add port mixer routing support from aux_pcm_tx to quat_mi2s_rx.
Change-Id: I6c72ab41123de4f4ab3a37bd23c37c58d689e509
Signed-off-by: Derek Chen <chenche@codeaurora.org>
As AFE clock version macros can be used
in other drivers, move them to header file.
Change-Id: Iae5717c181e81bf7a6161742e8d062d09bedfb78
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Pop is observed during starting of the playback in CLS-AB mode.
Fix the pop issue by updating register sequence properly.
Change-Id: Iff17245e8a2b14354cc99150a57394ce81ec29b8
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
Voice driver doesn't create any sessions related to voice call
on modem and hence there is no clean up on APSS is required
when modem SSR is triggered. Cleanup the code in voice driver
which is executed during modem SSR.
CRs-Fixed: 955696
Change-Id: I7536162e49b0eb56f63e7c8e59e0c050123c05fe
Signed-off-by: Venkata Narendra Kumar Gutta <vgutta@codeaurora.org>
Increase slimbus clock gear for setting of Tx HPF(High pass filter)
cut off frequency properly. Change will ensure Tx HPF cut off
frequency will applied in the codec.
Change-Id: I7d7c3243c63cd3b9242a15344ecdae89ec9ee977
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Reset spline resampler after audio playback is completed
to clear the FIFO and avoid any noise being generated.
Change-Id: I30ed6a337c3bb08f6197f7ee575b323f0b0acfac
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
Update mbhc impedance detection parameters namely, LDO control
and Nshift, to get better accuracy for headphone left and right
impedance values.
Change-Id: I8b3271ee9af91b9e921957998e0fb074ffdebe86
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
Certain headsets have threshold on microphone for detection.
Currently mbhc driver takes about 3 to 4 seconds to detect those
headsets. Reduce delay in detection for threshold headsets by
increasing micbias to 2.7v.
Change-Id: I744bafb78560f39806d656c98582d8162fa10dfd
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
Fix plug removal detection by enabling electrical removal
irq when headset/headphone accessory is removed from the
other end of extension cable.
Change-Id: I585a81e6c01b4ddd249f76614fb933beea3755fc
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
In compressed driver streams might get stopped while
ioctl drain is started but not completed, since buffers
are drained in multiple stages when gapless mode is
enabled.
Check stream state before issuing wait commands to
prevent waiting for drain ack on stopped streams.
Change-Id: I606639c103a7aed90dd9a4561fa6dffc3d4c3822
Signed-off-by: Dhananjay Kumar <dhakumar@codeaurora.org>
It is possible that differnt platforms could configure to DMIC clock
drive strength differently. Allow this configuration by setting the DMIC
clock drive strength through pdata.
CRs-fixed: 938006
Change-Id: I6f9f8a947e0efca31d0c50dec9a5973079bb48c4
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Give more headroom for headphone PA ramp up and down during
impedance detection to avoid any click and pop or ramp error.
Change-Id: I3e3980e48ce19955b4230876887adfde5b44e8ea
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
For each successful wsa read and write, we are printing the
values. Moving the print to debug.
Change-Id: I1b5c6b345b1d967d43f26bd9b1d4731d02ad021c
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
When clients are trying to send message while the worker thread is
processing existing messages, there is possibility that the message
queue can get corrupted. This can result into kernel crash. Fix to make
sure the message queue does not get corrupted.
CRs-fixed: 951194
Change-Id: I1eb5232d9d079ecc9d28b95737333c1198a8b20c
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Audio drivers to configure ADSP MFC in cases where fractional
resampling is needed.
Change-Id: Ifc85ff788347ddd893f8858064f71a07fa1ddd9c
Signed-off-by: Sidipotu Ashok <sashok@codeaurora.org>
As anc_mic_found is not initialized, it is taking
input as true and report as ANC Headphone results
in wrong accessory detection. Initialize the flag
to false that fixes the issue.
Change-Id: I1c9912e2ab396a8a0a31065b826d6f92a0603215
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
After subsystem restart is completed, driver will try to restore the
internal clock state to state before subsystem restart. In some cases,
it is possible that the internal clock state is not restored properly.
This causes the internal clock to be off when it is expected to be
turned on. Fix this issue by making sure the clock states are restored
correctly post subsystem restart.
CRs-fixed: 948899
Change-Id: I0084287b2d3b62c7498bae423952e64dd0d6e0f4
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Enable count of WSA startup/shutdown is not handled.
Add counter to handle the startup and shutdown properly.
Change-Id: I8c46fdd900c51d3e8d766b824f17996919779ba9
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Currently lsm client data is deallocated when q6lsm_open() fails
which can cause memory corruption if lsm client data is accessed
after freed. Fix this issue by deallocating the client data only
in msm_lsm_close().
Change-Id: If048c26a0ffd8a346a28622183cbf2ba1e7e5ff3
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
During subsystem restart, it is possible that while the underlying bus
is down, the irq driver has already performed its cleanup. In such case,
when CPE driver requests to cleanup its own irq, the irq driver attempts
to hold an lock that is already freed. Fix this issue by performing the
CPE driver irq cleanup after bus is up rather than when bus is down.
CRs-fixed: 948899
Change-Id: I2772e89bbdc855baa9fcf7a34a9c16f2f5c05c32
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
- currently gain is added for only number of channels and clip
channel count is send to dsp.
- but it is possible that channel mask that driver has is different
than what dsp discovers after decoding the codec config data
- volume will not be applied to channels that differ between driver
and dsp and device volume will not apply on these channels
- change is to control multi-channel volume using master gain
Change-Id: Icd8ca4e935d9095dd9ef8b65eff34629326fb563
Signed-off-by: vivek mehta <mvivek@codeaurora.org>
Move list init for no wait que before apr registration.
If apr registration fails asm free client will free
the no wait que.
Change-Id: I4707dbf4771a1ec313898adb2284c06ef1fb5b3a
Signed-off-by: Ben Romberger <bromberg@codeaurora.org>
Currently worker thread in cpe service is created twice.
The second thread handler overwrites the first one. The first
thread is not freed when the service is cleaned up. The fix
prevents creation of the redundant thread.
CRs-Fixed: 949165
Change-Id: Idd76b76d4f7f25d2592ca7c336dbee77b6efc7eb
Signed-off-by: Walter Yang <yandongy@codeaurora.org>
Change RX disconnect port sequence so as to avoid
slimbus underflow and audio mute issues during
playback.
Change-Id: I0260e61b78e3bcfe422896dc60b15af84be424a4
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
Update default value for VBat Bias current for Front-end.
The increase in current value is needed to increase
robustness of VBat ADC output when the feature is used
at low temparature.
Change-Id: Ic924fa59ce867f9b32c17564f8f55406c6c467ea
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
Enable MBHC (Multi Button Headset Control) 5-pole
plug detection so as to detect the presence of
second microphone whenever any accessory is inserted
in to the headset jack.
Change-Id: I53dda0d18006109c19a1cd8ce0bc4df45a13f0bf
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
Fix unbalanced mbhc electrial irq enable/disable to
avoid detection failures when headset or headphone
is inserted into an extension cable at the other
end.
Change-Id: I2eb9096f1cb45957a3d511af86cb630348581e0b
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
For audio usecases bus bandwidth voting is required only for
slimbus. Add the check to gracefully handle I2C cases.
Change-Id: I4dcbd0e6a84f8ca9f5429ed0ec0b4795e591981d
Signed-off-by: Deven Patel <cdevenp@codeaurora.org>
If headphones is removed during 3-sec polling interval,
it is possible that hs_comp_result is zero while mechanical
switch level will be low. Currently driver reports microphone
insertion followed immediately by removal in this scenario.
These fake events cause audio to continue to play on speaker
even headphones is removed during playback.
Change-Id: Ibf559e207b3370cb2cec5149f8e794cb55ca27ac
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
During sound model de-registration, the message to be sent to CPE is
dynamically allocated but not freed. This causes memory leak in the
driver. Fix by adding kfree() to free the memory once the message
transfer is completed.
CRs-fixed: 933901
Change-Id: I02f25fc3457d530de436eb33da1709517b597e7b
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Add support for slot and channel configuration in CPU dai driver
for TDM devices. Remove the probing of slot and channel info from
device tree.
Change-Id: I9d65779b7ef70fac741569f0584b15db29093e0c
Signed-off-by: Honghao Liu <honghaol@codeaurora.org>
Some of the functions that are supposed to be static are not declared to
be static. Cleanup the driver to make sure all functions specific to
this file are marked as static.
Change-Id: Ie2e0a7a1df5d49e8b6ed2af90b1a727e5c08746d
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
When CPE services notifies the client that response to any message is
received, it is possible that the client may send another message even
before the CPE services cleared the current message response as these
both are run in different thread contexts, this will cause the command
queue to be corrupted. Fix this issue by clearing internal state of CPE
services command queue before notifying clients the clients the result
of message transfer completion.
CRs-fixed: 946375
Change-Id: I4b31201747edd7fdee57294ff559ccb21e582608
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Currently, it is possible there could be race condition when there are
multiple messages to be sent to CPE. Add changes to fix the possible
race conditions.
CRs-fixed: 946375
Change-Id: I6a290c00b08fa3afc64acf40cd339a0203f73d96
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Notify channel count to soundwire master so that
it can use broadcast command to configure the slave
devices whenever channel count is greater than 1.
Change-Id: I0cb80ebe84e6010f9ea54d73eacf0e8f2782b724
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
The channel setup errors are not handled in some cases, add fix to
handle the errors gracefully for look ahead buffering.
CRs-fixed: 943741
Change-Id: Ifbaf8a05e0e1f4c7e099a1664e914d430345ee37
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
In audio ion driver, append msm_audio_ to API
populate_upper_32bits to maintain consistency
across other API names in this driver.
Change-Id: I72aace56bf8e80c6dd83f768876253d2c7f334bb
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Increase slimbus clock gear during device path bringup for faster
execution of register read and writes. This will improve the
latency during device path bringup.
Change-Id: I3118eecde7dd8e90fff05a6e0c6efa4052013a44
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
This reverts commit dac17fb61688 ("ASoC: wcd9335: Increase slimbus clock
gear to reduce cold start latency").
This change is not needed as pre and post dapm events are getting
called even for front end dai links which results in latency
during device path bringup.
Change-Id: I3f35317bc11aec100fbcc1f9304bc23a97c7c39a
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>