If soundwire gpio is not used, then no need to return
error if not able to get gpio data.
Change-Id: I97705b49d3b01f99b7a4e91190a15ffb211d32f2
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
RX_CDC_DMA_RX0/1/2/3 ports drives RX0/RX1, RX2/RX3, RX4 and RX5
channels on bolero rx-macro. Update channel mask
as per these mapping and return to channel map
accordingly.
Change-Id: I2e66e601b5137ebc513527827332bbb7cde0acb3
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Left and right channel content can get swapped
in new cdc_dma interface.
DMA interfaces underrun results in Channels being swapped.
This issue is a side effect current SW setup for RX path:
1. HLOS Setup WCD Analog Path, Bolero CODEC.
CODEC would drive Fs to LPASS DMAs requesting for PCM samples.
2. DSP setup RX Buffers in Memory :
3. DSP Configures RD DMAs and DMA RXTX CODEC interface
(Enable CODEC DMA interface buffer and
Enable DMA LPASS_RXTX_LPAIF_RDDMA_CTL0.ENABLE
and LPASS_RXTX_LPAIF_RDDMA_CODEC_INTF0.ENABLE
If CODEC Fs, aligns with DMA interface being enabled
there is an underrun as DMA interface pingpong buffer is empty.
This results in channels being swapped.
Proposed work around while keeping current SW setup order.
Provide a workaround to Keep Fs disabled until DMAs and
CODEC DMA interface are enabled and HW could prefetch all buffers.
SW would keep existing setup order:
1. HLOS Setup WCD Analog Path, Bolero CODEC.
CODEC would drive Fs to LPASS DMAs requesting for PCM samples.
2. DSP setup RX Buffers in Memory :
3. DSP Configures DMAs and DMA CODEC interface
(Enable CODEC DMA interface buffer and
Enable DMA LPASS_RXTX_LPAIF_RDDMA_CTL0.ENABLE
and LPASS_RXTX_LPAIF_RDDMA_CODEC_INTF0.ENABLE)
4. Enable Fs Set #LPASS_RX_CDC_RX0_RX_PATH_CTL. CLK_EN to ONE
Change-Id: I7916667f5d857464cc7d77b51da307ab234cc7bb
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
On hph playback usecase with compander enabled, load
hph filter coefficients to better center gain errors.
Change-Id: I3ce50d6e7b9a10255df8084adb0566d8bf9b47c7
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
Check for valid port before mux configuration.
Change-Id: Iaa32925f0c23305a2a3cedd0e476372aac380e0c
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Avoid SSR state, and do only clock-stop-resume to reset master when
switching between 44.1 and 48k to avoid redundant re-enumeration.
Change-Id: Iaa955c4ceb75f30c68106468676ddb2551537de4
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
Runtime suspend gets called multiple times during SSR
scenarios leading to clock count mismatch. Add logic
to prevent this in all macros and pinctrl lpi driver.
Change-Id: I380631c1db8cd7d94a8909affd8c96c87f24817c
Signed-off-by: Aditya Bavanari <abavanar@codeaurora.org>
During adsp SSR, bolero runtime suspend is not called and
hw vote clks are not reset. Force bolero runtime suspend
during adsp SSR to avoid kernel panic.
Change-Id: Iff5983ef07f77ecc7f3f344948c013906b4bad60
Signed-off-by: Meng Wang <mengw@codeaurora.org>
Add compander soft reset event that can be requested
from a slave codec to reset at power down to reduce
click and pop noise.
Change-Id: I2f6ff182e258e02979166b0e76b6a1d439b1cf87
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
Defer codec macro probes if soundwire pins are not
ready to be accessed yet during boot up.
Change-Id: I20173e49043a076d73cdbb811863afbff87d4a3b
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
Add changes to support disabling of soundwire devices
so that soundwire pins can be freed for other purposes
if needed.
Change-Id: Iae14d43c2c3d5380347be4c3b443c209b2612a97
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
After SSR/PDR, the lpass clocks will be in off state. Force restart
clocks after SSR/PDR, if enabled before SSR/PDR, to reenable the clocks.
Change-Id: I3d850d92bdc6324aa7a64a83a9066f388a85c7f7
Signed-off-by: Meng Wang <mengw@codeaurora.org>
Exposure of driver bind/unbind to userspace via sysfs may
lead to unexpected behavior.
Hide bind and unbind by driver attribute.
Change-Id: I20d6ee653bcc16af15d6368664aaf240c6645cd0
Signed-off-by: Xiaojun Sang <xsang@codeaurora.org>
Reset the compander power mode register to default
value upon teardown sequence, so that at next startup
use case it has proper power value.
Change-Id: I851e8a62a910d7018ac74e93abee47a615b3e50c
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
Observing noise on aux path playback.
Update sequences on digital side and
swr port params as per latest HW sequence
recommendation.
Change-Id: Ic07ec35b091985ef0146957ceca830bd1162e7ec
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Vote for LPASS HW core in soundwire clock request before
soundwire register access to avoid LPASS going to sleep.
Change-Id: I1e54ece19130cf6bd63fbf75a8a0716856c3b73e
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Add Bolero clock resource manager driver to handle/manage
bolero clocks for all the concurrency usecases like record
+ voice activation.
Change-Id: I970a05d96fc9060b44bfe670d465f0b9d72cc53b
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
Enable soundwire gpio before enabling soundwire clock
so that bus clash does not happen when interrupts are
received.
Change-Id: I40983b8837373f1ea7ac8fa6add7c56225ff0592
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
Headset Idle detect feature powers off PAs when
there is no signal. Add widget to enable
this feature for headset path.
Change-Id: I4c88057b347e40317578b5eb014053c17d196b85
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
If mclk enable is failed during mclk widget power up event, it would
still send a power down event for the widget during disable, which could
disable the mclk voted by other client like soundwire. Do not disable
mclk during power down if enable is failed during power up.
Change-Id: If782b34f9ef414501590ed8cf681bbe58f1dda76
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
Invoke swr device down callback to set soundwire master
to reset state before setting ssr down flag. This is to
ensure master is reset to proper state after ssr/pdr.
Change-Id: Ifb5548f603ac03b772006314f4723c0ac0176928
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
Reset swr only during init or ssr-pdr scenarios.
Do not reset swr during clock stop, which would
result in bad state of master and cause error
interrupts.
Change-Id: I88e071921409a5b5797aeedb8e7cb57cb5d5bb9a
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
Correct name of widgets for tx macro from
TX SWR_MIC to TX SWR_DMIC. Also assign codec pointer
to rx_priv before calling rx_macro_init_bcl_pmic_reg.
Change-Id: I268d79413c53bcd2d8e7a391859b71b7a7e3f64e
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
Add mixer control and routing to enable echo reference
for rx_macro.
Change-Id: Ic1095eaa8024f2cb61722609daae94bc645b263b
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
Add support to get the platform specific soundwire port configuration
for soundwire master ports.
Change-Id: Ie1d32a77d534f6c3f397936b85c025b14d01f321
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Update hph_pwr enum value for LOHIFI as per
class-H power options to maintain consistent naming.
Change-Id: Ib7deb8d84bd1163a933d06ae92a51cb29b76e3c8
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Mono playback over RX1 is not happening due to
incorrect channel mask sent to AFE. Update
channel mask for RX to enable playback.
Change-Id: I06eeb565149c635ddbcce39f4260f67b80474335
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
Some alsa API are removed in kernel-4.19 which would cause
codec driver compile failure. Update codec driver to fix it.
Change-Id: Ie358ec1863082166958059c179300b453d2a03ad
Signed-off-by: Meng Wang <mengw@codeaurora.org>
Switch audio drivers to SPDX identifier on msm-4.19.
Change-Id: Ic3f0230a516db251b8d81e8a7e73dbc04d66fe1b
Signed-off-by: Meng Wang <mengw@codeaurora.org>
On headphone(HPH) path, CnP spec is not met.
Handle sequences for bolero and tanggu codecs
as per HW sequences. Disable vdd_buck during
system suspend when no usecase is active.
CRs-Fixed: 2343436
Change-Id: I62f89d829715f07885a97531fdcb2cc3ca0822ef
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
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>