WSL2-Linux-Kernel/sound/soc
Srinivas Kandagatla 6168532a08 ASoC: codecs: wcd934x: do not switch off SIDO Buck when codec is in use
[ Upstream commit db6dd1bee6 ]

SIDO(Single-Inductor Dual-Ouput) Buck powers up both analog and digital
circuits along with internal memory, powering off this is the last thing
that codec should do when going to very low power.

Current code was powering off this Buck if there are no users of sysclk,
which is not correct. Powering off this buck will result in no register access.
This code path was never tested until recently after adding pm support
in SoundWire controller. Fix this by removing the buck poweroff when the
codec is active and also the code that is not used.

Without this patch all the read/write transactions will never complete and
results in SLIMBus Errors like:

qcom,slim-ngd qcom,slim-ngd.1: Tx:MT:0x0, MC:0x60, LA:0xcf failed:-110
wcd934x-codec wcd934x-codec.1.auto: ASoC: error at soc_component_read_no_lock
	on wcd934x-codec.1.auto for register: [0x00000d05] -110
qcom,slim-ngd-ctrl 171c0000.slim: Error Interrupt received 0x82000000

Reported-by: Amit Pundir <amit.pundir@linaro.org>
Fixes: a61f3b4f47 ("ASoC: wcd934x: add support to wcd9340/wcd9341 codec")
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Tested-by: Amit Pundir <amit.pundir@linaro.org>
Link: https://lore.kernel.org/r/20220407094313.2880-1-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-04-27 14:38:52 +02:00
..
adi
amd ASoC: amd: vg: fix for pm resume callback sequence 2022-04-08 14:24:02 +02:00
atmel ASoC: atmel: Remove system clock tree configuration for at91sam9g20ek 2022-04-27 14:38:51 +02:00
au1x
bcm ASoC: Updates for v5.15 2021-08-30 14:57:03 +02:00
cirrus
codecs ASoC: codecs: wcd934x: do not switch off SIDO Buck when codec is in use 2022-04-27 14:38:52 +02:00
dwc ASoC: dwc-i2s: Handle errors for clk_enable 2022-04-08 14:23:19 +02:00
fsl ASoC: imx-es8328: Fix error return code in imx_es8328_probe() 2022-04-08 14:23:22 +02:00
generic ASoC: simple-card-utils: Set sysclk on all components 2022-04-08 14:23:13 +02:00
hisilicon
img
intel ASoC: Intel: sof_sdw: fix quirks for 2022 HP Spectre x360 13" 2022-04-08 14:24:02 +02:00
jz4740
kirkwood ASoC: kirkwood: Fix reference to PCM buffer address 2021-07-30 17:20:51 +01:00
mediatek ASoC: mediatek: mt8192-mt6359: Fix error handling in mt8192_mt6359_dev_probe 2022-04-08 14:23:21 +02:00
meson ASoC: meson: aiu: Move AIU_I2S_MISC hold setting to aiu-fifo-i2s 2021-12-29 12:28:52 +01:00
mxs ASoC: mxs: Fix error handling in mxs_sgtl5000_probe 2022-04-08 14:23:21 +02:00
pxa ALSA: pxa2xx: Use managed PCM buffer allocation 2021-08-04 08:08:21 +02:00
qcom ASoC: qcom: Actually clear DMA interrupt register for HDMI 2022-02-23 12:03:15 +01:00
rockchip ASoC: rockchip: i2s: Fix missing clk_disable_unprepare() in rockchip_i2s_probe 2022-04-08 14:23:21 +02:00
samsung ASoC: samsung: idma: Check of ioremap return value 2022-01-27 11:04:17 +01:00
sh ASoC: sh: rz-ssi: Make the data structures available before registering the handlers 2022-04-08 14:23:59 +02:00
sof ASoC: SOF: Intel: Fix build error without SND_SOC_SOF_PCI_DEV 2022-04-08 14:24:15 +02:00
spear
sprd ASoC: sprd: Use managed buffer allocation 2021-08-04 08:10:27 +02:00
sti ASoC: sti: Fix deadlock via snd_pcm_stop_xrun() call 2022-03-28 09:58:43 +02:00
stm ASoC: stm32: i2s: fix 32 bits channel length without mclk 2021-12-01 09:04:47 +01:00
sunxi
tegra ASoC: tegra: Restore headphones jack name on Nyan Big 2021-12-29 12:28:52 +01:00
ti ASoC: ti: davinci-i2s: Add check for clk_enable() 2022-04-08 14:23:19 +02:00
uniphier ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA 2022-01-27 11:04:06 +01:00
ux500
xilinx ASoC: xilinx: xlnx_formatter_pcm: Handle sysclk setting 2022-04-08 14:23:13 +02:00
xtensa
Kconfig ASoC: topology: Select SND_DYNAMIC_MINORS 2021-07-27 13:13:04 +01:00
Makefile
soc-ac97.c ASoC: soc-ac97: cleanup cppcheck warning 2021-08-16 13:29:36 +01:00
soc-acpi.c
soc-card.c
soc-component.c ASoC: soc-component: cleanup cppcheck warning at snd_soc_pcm_component_pm_runtime_get() 2021-08-16 13:29:35 +01:00
soc-compress.c ASoC: soc-compress: Change the check for codec_dai 2022-04-08 14:24:13 +02:00
soc-core.c ASoC: soc-core: skip zero num_dai component in searching dai name 2022-04-08 14:24:01 +02:00
soc-dai.c ASoC: soc-dai: cleanup cppcheck warning at snd_soc_pcm_dai_new() 2021-08-16 13:29:32 +01:00
soc-dapm.c ASoC: DAPM: Cover regression by kctl change notification fix 2021-11-25 09:49:07 +01:00
soc-devres.c
soc-generic-dmaengine-pcm.c ASoC: dmaengine: do not use a NULL prepare_slave_config() callback 2022-04-08 14:23:21 +02:00
soc-jack.c ASoC: soc-jack: cleanup cppcheck warning for CONFIG_GPIOLIB 2021-08-16 13:29:34 +01:00
soc-link.c
soc-ops.c ASoC: ops: Shift tested values in snd_soc_put_volsw() by +min 2022-03-08 19:12:43 +01:00
soc-pcm.c ASoC: Revert PCM trigger changes 2021-08-30 12:15:15 +01:00
soc-topology-test.c
soc-topology.c ASoC: topology: Correct error handling in soc_tplg_dapm_widget_create() 2022-04-27 14:38:51 +02:00
soc-utils.c