linux_dsm_epyc7002/sound/soc
Marek Szyprowski 4e93c1294f
ASoC: max98090: fix incorrect helper in max98090_dapm_put_enum_double()
Commit 62d5ae4caf ("ASoC: max98090: save and restore SHDN when changing
sensitive registers") extended the code for handling "LTENL Mux", "LTENR
Mux", "LBENL Mux" and "LBENR Mux" controls by adding a custom
max98090_dapm_put_enum_double() function to them. However that function
used incorrect helper to get its component object. Fix this by using the
proper snd_soc_dapm_* helper.

This fixes the following NULL pointer exception observed on
Exynos4412-based Odroid U3 board:
8<--- cut here ---
Unable to handle kernel NULL pointer dereference at virtual address 000000b0
pgd = (ptrval)
[000000b0] *pgd=00000000
Internal error: Oops: 5 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 0 PID: 1104 Comm: alsactl Not tainted 5.5.0-rc5-next-20200107 #166
Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
PC is at __mutex_lock+0x54/0xb18
LR is at ___might_sleep+0x3c/0x2e0
...
Process alsactl (pid: 1104, stack limit = 0x(ptrval))
...
[<c0b49630>] (__mutex_lock) from [<c0b4a110>] (mutex_lock_nested+0x1c/0x24)
[<c0b4a110>] (mutex_lock_nested) from [<c0839b3c>] (max98090_shdn_save+0x1c/0x28)
[<c0839b3c>] (max98090_shdn_save) from [<c083a4f8>] (max98090_dapm_put_enum_double+0x20/0x40)
[<c083a4f8>] (max98090_dapm_put_enum_double) from [<c080d0e8>] (snd_ctl_ioctl+0x190/0xbb8)
[<c080d0e8>] (snd_ctl_ioctl) from [<c02cafec>] (ksys_ioctl+0x470/0xaf8)
[<c02cafec>] (ksys_ioctl) from [<c0101000>] (ret_fast_syscall+0x0/0x28)
...
---[ end trace 0e93f0580f4b9241 ]---

Fixes: 62d5ae4caf ("ASoC: max98090: save and restore SHDN when changing sensitive registers")
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Tzung-Bi Shih <tzungbi@google.com>
Link: https://lore.kernel.org/r/20200108115007.31095-1-m.szyprowski@samsung.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-01-09 13:25:00 +00:00
..
adi treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
amd ASoC: amd: acp3x: Fix return value check in acp3x_dai_probe() 2020-01-09 13:23:43 +00:00
atmel ASoC: atmel: Drop superfluous ioctl PCM ops 2019-12-11 15:55:46 +00:00
au1x ASoC: au1x: Use managed buffer allocation 2019-12-11 16:43:18 +00:00
bcm ASoC: bcm: Drop superfluous ioctl PCM ops 2019-12-11 15:56:04 +00:00
cirrus sound: Fix Kconfig indentation 2019-10-07 03:53:03 +02:00
codecs ASoC: max98090: fix incorrect helper in max98090_dapm_put_enum_double() 2020-01-09 13:25:00 +00:00
dwc ASoC: dwc: Use managed buffer allocation 2019-12-11 16:43:19 +00:00
fsl Merge branch 'for-5.5' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.6 2019-12-25 17:51:43 +00:00
generic ASoC: simple-card: Don't create separate link when platform is present 2019-12-10 13:10:40 +00:00
hisilicon treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 340 2019-06-05 17:37:07 +02:00
img treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 422 2019-06-05 17:37:15 +02:00
intel ASoC: Intel: sof_rt5682: Ignore the speaker amp when there isn't one. 2020-01-06 20:45:58 +00:00
jz4740 ASoC: jz4740: Remove unused match variable 2019-10-09 10:58:01 +01:00
kirkwood ASoC: kirkwood: Drop superfluous ioctl PCM ops 2019-12-11 15:57:19 +00:00
mediatek ASoC: mediatek: mt8183-da7219-max98357: use snd_soc_dai_link_component for codec_conf 2019-12-16 12:02:32 +00:00
meson ASoC: meson: axg-fifo: relax period size constraints 2019-12-18 20:01:34 +00:00
mxs ASoC: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:12:31 +01:00
pxa ASoC: pxa: Drop superfluous ioctl PCM ops 2019-12-11 15:58:04 +00:00
qcom ASoC: qdsp6: q6asm-dai: constify copied structure 2020-01-01 21:38:48 +00:00
rockchip ASoC: Fixes for v5.4 2019-11-07 13:52:17 +01:00
samsung ASoC: samsung: speyside: use snd_soc_dai_link_component for codec_conf 2019-12-16 12:02:48 +00:00
sh ASoC: sh: Drop superfluous ioctl PCM ops 2019-12-11 16:51:07 +00:00
sirf ASoC: sirf: use devm_platform_ioremap_resource() to simplify code 2019-07-31 12:05:39 +01:00
sof ASoC: SOF: loader: add dynamic debug trace 2020-01-07 22:29:20 +00:00
spear ASoC: spear: use devm_platform_ioremap_resource() to simplify code 2019-07-31 12:06:18 +01:00
sprd ASoC: sprd: Drop superfluous ioctl PCM ops 2019-12-11 15:59:40 +00:00
sti ASoC: Remove dev_err() usage after platform_get_irq() 2019-08-02 12:12:31 +01:00
stm Merge branch 'for-5.5' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.6 2019-12-25 17:51:43 +00:00
sunxi ASoC: sunxi: sun4i-codec: remove unneeded semicolon 2019-10-28 13:12:39 +00:00
tegra ASoC: soc-core: find rtd via dai_link pointer at snd_soc_get_pcm_runtime() 2019-12-10 13:15:21 +00:00
ti ASoC: ti: rx51: use snd_soc_dai_link_component for codec_conf 2019-12-16 12:02:52 +00:00
txx9 ASoC: txx9: Use managed buffer allocation 2019-12-11 16:43:24 +00:00
uniphier ASoC: uniphier: Drop superfluous ioctl PCM ops 2019-12-11 16:51:25 +00:00
ux500 ASoC: ux500: Remove redundant variable "status" 2019-11-04 13:22:25 +00:00
xilinx ASoC: xilinx: Use managed buffer allocation 2019-12-11 16:43:25 +00:00
xtensa ASoC: xtensa: Use managed buffer allocation 2019-12-11 16:43:26 +00:00
zte sound: Fix Kconfig indentation 2019-10-07 03:53:03 +02: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: More updates for v5.5 2019-11-25 14:27:41 +01:00
soc-compress.c ASoC: compress: Add pm_runtime support 2019-12-17 12:35:02 +00:00
soc-core.c Merge branch 'for-5.5' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.6 2019-12-25 17:51:43 +00: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: soc-core: add snd_soc_dapm_init() 2019-09-02 13:21:20 +01:00
soc-devres.c
soc-generic-dmaengine-pcm.c ASoC: generic-dmaengine-pcm: Use managed buffer allocation 2019-12-11 16:43:23 +00:00
soc-io.c
soc-jack.c ASoC: Jack: Fix NULL pointer dereference in snd_soc_jack_report 2019-11-12 17:12:56 +00:00
soc-ops.c ASoC: soc-ops: use snd_soc_card_get_kcontrol() at snd_soc_limit_volume() 2019-10-03 14:37:20 +01:00
soc-pcm.c Merge branch 'for-5.5' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.6 2019-12-10 13:27:14 +00:00
soc-topology.c ASoC: soc-topology: fix endianness issues 2020-01-03 00:57:57 +00:00
soc-utils.c ASoC: utils: Drop superfluous ioctl PCM ops 2019-12-11 16:00:48 +00:00