Multichannel playback over Wifi fails due to use of invalid
afe calibration at the time of opening proxy port. Since
there is no afe calibration content for proxy devices, afe
driver erringly sends afe cal tables of the previous device.
This happens because afe tables aren't updated from acdb
loader as proxy port opening is directly carried out from
WFD module.
Currently there is no mechanism to ensure compatibility
between afe ports and afe cal tables cached in the memory.
Therefore, disallow sending of afe cal table, topology and
hardware delay calibration for proxy ports to fix the above
issue through mixer controls.
CRs-Fixed: 880657
Change-Id: I4914bb1b2fca91d71c2c34904a0ca632468efd5a
Signed-off-by: Avinash Vaish <avaish@codeaurora.org>
For some use cases like Ultrasound, AFE calibration is not needed
to be sent to DSP. Add a mixer control to set a flag in AFE native
driver for that particular Slimbus port to help avoid sending AFE
calibration data to DSP for those specific use cases. AFE driver
would check for the flag before sending calibration data to DSP.
Change-Id: Idc254224a9b73995f363668e644b2c08f86817e9
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
For louder clips with max volume, observe audio drops.
This is seen due to COMP1_B4_CTL setting is not updated
correctly. As per 8952 power grid, buck voltage is 1.8v
and compander register setting is varied based on this.
Update the setting to 1.8v and also ensure the compander
register bit is reset in power down sequence so that
non-compander usecases like ANC are not affected due
to this setting.
CRs-Fixed: 890042
Change-Id: Ib2bd74877d559c7f473b1c7a8a64054fb1f476bc
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Add kcontrol to allow configuration of the proxy port up to eight
channels. This is to support multichannel playback over proxy
port in 8976.
Change-Id: I5646bcbb7a594d8d42c8ef32c3309c40eddfadd4
Signed-off-by: Satya Krishna Pindiproli <satyak@codeaurora.org>
During soft reboot, some times codec is going to bad state as
all the codec supplies are not going down. Due to which codec is not
responding to slimbus which is effecting soundcard registration.
After disabling the regulator wait for 500msec, to ensure regulators
ramp's down completely.
Change-Id: I21de85f9e7170906a877f9328f088a91d0f69ee8
Signed-off-by: Yeleswarapu Nagaradhesh <nagaradh@codeaurora.org>
Update register sequence for impedance detection to
work on cajon and for backward compatibility with
previous targets.
Change-Id: I86831be2c36532ce4ac8f8344587309d7ebfb1ac
Signed-off-by: Simmi Pateriya <simmip@codeaurora.org>
There are few use cases where apps goes down to suspend
but codec should be in active state. Core driver will not
have knowledge of these usescases and hence move suspend and
resume hooks to codec driver.
Change-Id: If5614dd13f24a80d18f53f194c7be1c5b967a003
Signed-off-by: Yeleswarapu Nagaradhesh <nagaradh@codeaurora.org>
check for temperature register values and log the values if
they are out of range.
Change-Id: I58dd4e9b3348215510f61e790ed81bc9d4972768
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
Temperature from wsa881x thermal zone sensor is not correct
when wsa881x codec is in suspend state. Bring codec out of
reset and update register cache to read proper temperature
value from thermal zone sensor.
Change-Id: I428ba35cbc10fd6c8ac80f6eb26f218466f44ebc
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Playback startup and teardown register sequence is different
for WSA881X version 2.0. Update the right register sequence
based on version.
Change-Id: Ifa858ab1db6560a50779800d59492fc0b0ac9e56
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
Currently wsa881x default register table is defined for version 1.1.
Some of the default register values are different for version 2.0.
This change is to update default register values based on version.
Change-Id: Ibfd3efd685786fc8d8a94ddb74175e5f6f9aa43e
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
Some of the Bongo read only registers are not set as
volatile. Because of this, register values are read
incorrectly when the driver reads these registers. Fix
this issue by updating read only registers as volatile.
Change-Id: I5775b3e776beeef67874025454a0f232336cc777
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
For WSA 2.0 parts, add required support to identify chip
version using CHIP_ID_1 register. Add sequences for
WSA 2.0 for speaker playback and VI sense support
with QCRG 2_0_0_8.
Change-Id: If61d0d60944c6b51ac795a86d095b2b201da42ed
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
MBHC acquires a lock in PRE PA turn off event and releases it in
POST PA off event. The codec driver should send the notification
to mbhc for both these events.
Change-Id: I07278cec1d3b29e27deffea02ff30629f796bdd4
Signed-off-by: Simmi Pateriya <simmip@codeaurora.org>
During suspend in 8952 with wcd9330, observe high current leakage
from codec. As per designers, the register MICB_2_MBHC (0x133)
bit 2 (PWR_SWCH_OVRD_EN) is set from software resulting in
this issue, and this is not needed to be set.
Remove setting the register bit from driver, after this
observed the expected power numbers during suspend.
Change-Id: I72ed7b0c953b5bd2fd52065a49d796bf8294bff7
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
For some use cases like Ultrasound, AFE calibration is not needed
to be sent to DSP. Add a mixer control to set a flag in AFE native
driver for that particular Slimbus port to help avoid sending AFE
calibration data to DSP for those specific use cases. AFE driver
would check for the flag before sending calibration data to DSP.
Change-Id: Idc254224a9b73995f363668e644b2c08f86817e9
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
Uplink mute observed in voice call when Vbat is enabled. This is due
to external echo reference port "SLIMBUS_1_TX" is not started, as it
is not connected to any of the voice front end DAI links. Fix this
issue by updating dapm route map b/w SLIMBUS_1_TX and voice front end
DAI links.
Change-Id: I02ffbb2565deed073909d49b3fb20548bc406daa
Signed-off-by: Venkata Narendra Kumar Gutta <vgutta@codeaurora.org>
If the audio mixing is done within codec, then echo reference
needs to be obtained from the mixed output in the codec.
Add support to get the external echo reference from SLIMBUS_1_TX
afe port.
Change-Id: I046172c02dc2eac5d1b8156abca3e4ca960d78f4
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
Add support to enable vbat monitor feature on tasha codec. Vbat module
monitors the battery voltage and updates the gain on rx path if battery
volatage falls below certain threshold value.
This module can prevent brownout scenarios on the mobile devices when
the loads are heavy on the battery and it can also prolongs battery life.
Change-Id: I66bacf3b861618fc44f50a8e22ca3f2f0fc7763b
Signed-off-by: Venkata Narendra Kumar Gutta <vgutta@codeaurora.org>
Add support for SLIM_1_TX as external echo reference port for voice
session. This port is used as far end AFE port in echo cancellation
when Vbat monitor is enabled.
Change-Id: I0f6b17d227b210a0694440e481ba21794b84b58b
Signed-off-by: Venkata Narendra Kumar Gutta <vgutta@codeaurora.org>
Update slimbus_1 tx dai link to use tasha_tx3 as the codec dai.
Slimbus_1 tx is used as backend dai link in echo cancellation
usecases, for vbat monitor feature on tasha. Also, added
support to configure slimbus_1 tx backend hw params.
Change-Id: I5b711b088a4bb3c1e58eb009977e8958b11ece0a
Signed-off-by: Venkata Narendra Kumar Gutta <vgutta@codeaurora.org>
During fast insertion and removal of headphone, sometimes cable can be
re-reported as lineout. In this case report removal of existing cable
and then insertion of lineout otherwise SW misses removal of a cable.
Change-Id: I5f20cbe5be29cffa2fd7a19676873e4b7f5b3bee
Signed-off-by: Yeleswarapu Nagaradhesh <nagaradh@codeaurora.org>
add tasha_vifeedback dai definition.
fixup msm_vi_feed_tx_ch config for tasha.
add dynamic configuration by codec name check.
Change-Id: Iffdbb35bbe7f6df3e4550792a9f84c9c5073479a
Signed-off-by: Xiaojun Sang <xsang@codeaurora.org>