1
0
Fork 0
alistair23-linux/sound/soc
Sylwester Nawrocki 957066143e ASoC: wm8994: Avoid attempts to read unreadable registers
[ Upstream commit f082bb59b7 ]

The driver supports WM1811, WM8994, WM8958 devices but according to
documentation and the regmap definitions the WM8958_DSP2_* registers
are only available on WM8958. In current code these registers are
being accessed as if they were available on all the three chips.

When starting playback on WM1811 CODEC multiple errors like:
"wm8994-codec wm8994-codec: ASoC: error at soc_component_read_no_lock on wm8994-codec: -5"
can be seen, which is caused by attempts to read an unavailable
WM8958_DSP2_PROGRAM register. The issue has been uncovered by recent
commit "e2329ee ASoC: soc-component: add soc_component_err()".

This patch adds a check in wm8958_aif_ev() callback so the DSP2 handling
is only done for WM8958.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20200731173834.23832-1-s.nawrocki@samsung.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-09-03 11:26:59 +02:00
..
adi treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
amd Merge branch 'asoc-5.4' into asoc-next 2019-09-15 10:31:44 +01:00
atmel ASoC: atmel: fix atmel_ssc_set_audio link failure 2020-02-28 17:22:26 +01:00
au1x ASoC: au1x: psc-i2s: use devm_platform_ioremap_resource() to simplify code 2019-07-31 12:12:25 +01:00
bcm ASoC: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:12:31 +01:00
cirrus ASoC: ep93xx: use devm_platform_ioremap_resource() to simplify code 2019-09-04 13:48:22 +01:00
codecs ASoC: wm8994: Avoid attempts to read unreadable registers 2020-09-03 11:26:59 +02:00
dwc treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
fsl ASoC: fsl_sai: Fix value of FSL_SAI_CR1_RFW_MASK 2020-08-19 08:16:18 +02:00
generic SoC: simple-card-utils: set 0Hz to sysclk when shutdown 2019-09-09 10:51:21 +01:00
hisilicon treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 340 2019-06-05 17:37:07 +02:00
img ASoC: img-parallel-out: Fix a reference count leak 2020-09-03 11:26:42 +02:00
intel ASoC: intel: Fix memleak in sst_media_open 2020-08-26 10:41:03 +02:00
jz4740 ASoC: jz4740-i2s: Fix divider written at incorrect offset in register 2020-04-13 10:48:09 +02:00
kirkwood ASoC: kirkwood: fix device remove ordering 2019-10-23 18:20:55 +01:00
mediatek Merge branch 'asoc-5.4' into asoc-next 2019-09-15 10:31:44 +01:00
meson ASoC: meson: axg-tdm-formatters: fix sclk inversion 2020-08-19 08:16:18 +02:00
mxs ASoC: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:12:31 +01:00
pxa ASoC: mmp-sspa: use devm_platform_ioremap_resource() to simplify code 2019-07-31 12:10:54 +01:00
qcom ASoC: q6routing: add dummy register read/write function 2020-08-26 10:40:59 +02:00
rockchip ASoC: rockchip: Fix a reference count leak. 2020-06-30 15:36:57 -04:00
samsung ASoC: samsung: arndale: Add missing OF node dereferencing 2019-09-23 14:14:35 -07:00
sh SoC: rsnd: add interrupt support for SSI BUSIF buffer 2020-06-24 17:50:26 +02:00
sirf ASoC: sirf: use devm_platform_ioremap_resource() to simplify code 2019-07-31 12:05:39 +01:00
sof ASoC: SOF: nocodec: add missing .owner field 2020-08-19 08:16:08 +02:00
spear ASoC: spear: use devm_platform_ioremap_resource() to simplify code 2019-07-31 12:06:18 +01:00
sprd ASoC: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:12:31 +01:00
sti ASoC: sti: fix possible sleep-in-atomic 2020-02-05 21:22:46 +00:00
stm ASoC: stm32: spdifrx: fix regmap status check 2020-05-02 08:49:01 +02:00
sunxi ASoC: sun8i-codec: Fix setting DAI data format 2020-02-28 17:22:13 +01:00
tegra ASoC: tegra: Fix reference count leaks. 2020-09-03 11:26:42 +02:00
ti ASoC: ti: omap-mcbsp: Fix an error handling path in 'asoc_mcbsp_probe()' 2020-06-24 17:50:26 +02:00
txx9 Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
uniphier Merge branch 'asoc-5.3' into asoc-5.4 2019-08-20 18:28:43 +01:00
ux500 ASoC: ux500: mop500: Fix some refcounted resources issues 2020-06-24 17:50:26 +02:00
xilinx ASoC: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:12:31 +01:00
xtensa ASoC: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:12:31 +01:00
zte ASoC: zx-tdm: remove redundant assignment to ts_width on error return path 2019-08-01 13:56:26 +01:00
Kconfig ASoC: remove w90x900/nuc900 platform drivers 2019-08-12 14:00:29 +01:00
Makefile ASoC: remove w90x900/nuc900 platform drivers 2019-08-12 14:00:29 +01:00
soc-ac97.c
soc-acpi.c ASoC: soc-acpi: fix implicit header use of module.h/export.h 2019-05-08 18:06:28 +09:00
soc-component.c ASoC: soc-component: add snd_soc_pcm_component_pcm_free() 2019-08-05 16:27:16 +01:00
soc-compress.c ASoC: core: Move pcm_mutex up to card level from snd_soc_pcm_runtime 2019-08-15 15:07:43 +01:00
soc-core.c ASoC: core: only convert non DPCM link to DPCM link 2020-06-24 17:50:42 +02:00
soc-dai.c ASoC: soc-dai: move snd_soc_dai_stream_valid() to soc-dai.c 2019-07-23 18:14:26 +01:00
soc-dapm.c ASoC: dapm: fixup dapm kcontrol widget 2020-04-29 16:33:18 +02:00
soc-devres.c
soc-generic-dmaengine-pcm.c ASoC: dmaengine: Replace strncpy() with strscpy_pad() for pcm->name 2019-09-11 15:55:28 +01:00
soc-io.c
soc-jack.c ASoC: Jack: Fix NULL pointer dereference in snd_soc_jack_report 2019-12-17 19:56:14 +01:00
soc-ops.c ASoC: fix regwmask 2020-04-17 10:50:06 +02:00
soc-pcm.c ASoC: dpcm: allow start or stop during pause for backend 2020-04-17 10:50:06 +02:00
soc-topology.c ASoC: topology: fix tlvs in error handling for widget_dmixer 2020-07-29 10:18:45 +02:00
soc-utils.c ASoC: add soc-component.c 2019-08-05 16:16:19 +01:00