linux/sound/soc/fsl
Ziyi Guo f514248727
ASoC: fsl_xcvr: fix missing lock in fsl_xcvr_mode_put()
fsl_xcvr_activate_ctl() has
lockdep_assert_held(&card->snd_card->controls_rwsem),
but fsl_xcvr_mode_put() calls it without acquiring this lock.

Other callers of fsl_xcvr_activate_ctl() in fsl_xcvr_startup() and
fsl_xcvr_shutdown() properly acquire the lock with down_read()/up_read().

Add the missing down_read()/up_read() calls around fsl_xcvr_activate_ctl()
in fsl_xcvr_mode_put() to fix the lockdep assertion and prevent potential
race conditions when multiple userspace threads access the control.

Signed-off-by: Ziyi Guo <n7l8m4@u.northwestern.edu>
Link: https://patch.msgid.link/20260202174112.2018402-1-n7l8m4@u.northwestern.edu
Signed-off-by: Mark Brown <broonie@kernel.org>
History 2026-02-04 11:29:58 +00:00
..
efika-audio-fabric.c ASoC: Explicitly include correct DT includes 2023-10-09 13:13:56 +01:00
eukrea-tlv320.c ASoC: fsl: use devm_snd_soc_register_card() 2024-01-22 00:06:02 +00:00
fsl-asoc-card.c ASoC: fsl-asoc-card: Use of_property_present() for non-boolean properties 2025-12-17 12:01:03 +00:00
fsl_asrc.c ASoC: codec: Convert to GPIO descriptors for 2025-07-14 11:34:16 +01:00
fsl_asrc.h ASoC: fsl_asrc: define functions for memory to memory usage 2024-12-13 08:57:07 +00:00
fsl_asrc_common.h ASoC: fsl_asrc_m2m: Add memory to memory function 2024-12-13 08:57:09 +00:00
fsl_asrc_dma.c ASoC: fsl_asrc_dma: fix duplicate debugfs directory error 2025-12-17 12:00:54 +00:00
fsl_asrc_m2m.c ASoC: fsl_asrc_m2m: return error value in asrc_m2m_device_run() 2025-01-20 13:50:31 +00:00
fsl_aud2htx.c ASoC: fsl: Convert to RUNTIME_PM_OPS() and co 2025-03-17 10:14:39 +00:00
fsl_aud2htx.h ASoC: fsl_aud2htx: add IEC958_SUBFRAME_LE format in supported list 2025-10-21 15:10:55 +01:00
fsl_audmix.c ASoC: fsl_audmix: register card device depends on 'dais' property 2025-03-03 13:48:38 +00:00
fsl_audmix.h ASoC: fsl_audmix: Add spin lock to protect tdms 2019-11-11 13:01:37 +00:00
fsl_dma.c ASoC: Switch back to struct platform_driver::remove() 2024-09-09 18:26:49 +01:00
fsl_dma.h ASoC: fsl-dma: Switch to SPDX identifier 2019-04-08 13:51:01 +07:00
fsl_easrc.c ASoC: fsl_easrc: fix duplicate debugfs directory error 2025-12-17 12:00:53 +00:00
fsl_easrc.h ASoC: fsl_easrc: define functions for memory to memory usage 2024-12-13 08:57:08 +00:00
fsl_esai.c ASoC: fsl: Convert to RUNTIME_PM_OPS() and co 2025-03-17 10:14:39 +00:00
fsl_esai.h ASoC: fsl_esai: Switch to SPDX identifier 2018-05-03 10:29:05 +09:00
fsl_micfil.c ASoC: fsl_micfil: Set channel range control 2025-11-28 11:47:49 +00:00
fsl_micfil.h ASoC: fsl_micfil: Add decimation filter bypass mode support 2025-02-11 13:36:18 +00:00
fsl_mqs.c ASoC: fsl_mqs: rename system manager indices for i.MX95 2025-07-03 12:59:59 +01:00
fsl_qmc_audio.c ASoC: fsl: fsl_qmc_audio: Drop struct qmc_dai_chan 2025-09-18 22:50:48 +01:00
fsl_rpmsg.c ASoC: fsl_rpmsg: Allocate a smaller buffer size for capture stream 2025-05-02 05:38:54 +09:00
fsl_rpmsg.h ASoC: fsl_rpmsg: Allocate a smaller buffer size for capture stream 2025-05-02 05:38:54 +09:00
fsl_sai.c ASoC: fsl_sai: Add missing registers to cache default 2025-12-17 12:01:01 +00:00
fsl_sai.h ASoC: fsl_sai: separate set_tdm_slot() for tx and rx 2025-04-06 23:23:29 +01:00
fsl_spdif.c ASoC: fsl_spdif: Constify some structures 2025-11-03 13:14:17 +00:00
fsl_spdif.h ASoC: fsl_spdif: Add support for 22.05 kHz sample rate 2023-07-19 18:47:18 +01:00
fsl_ssi.c ASoC: Switch back to struct platform_driver::remove() 2024-09-09 18:26:49 +01:00
fsl_ssi.h ASoC: fsl: no need to check return value of debugfs_create functions 2019-06-14 16:37:48 +01:00
fsl_ssi_dbg.c ASoC: fsl: fsl_ssi_dbg: remove spurious kernel-doc comment start 2020-07-03 16:09:24 +01:00
fsl_utils.c ASoC: fsl_utils: Add function to constrain rates 2024-12-09 13:11:09 +00:00
fsl_utils.h ASoC: fsl_utils: Add function to constrain rates 2024-12-09 13:11:09 +00:00
fsl_xcvr.c ASoC: fsl_xcvr: fix missing lock in fsl_xcvr_mode_put() 2026-02-04 11:29:58 +00:00
fsl_xcvr.h ASoC: fsl_xcvr: Use regmap for PHY and PLL registers 2024-12-02 00:30:19 +00:00
imx-audio-rpmsg.c ASoC: fsl: Let imx-audio-rpmsg register platform device for card 2024-03-25 00:32:50 +00:00
imx-audmix.c ASoC: fsl: Rename stream name of SAI DAI driver 2025-02-24 18:35:53 +00:00
imx-audmux.c ASoC: fsl: Use kcalloc() instead of kzalloc() 2025-08-20 15:09:23 +01:00
imx-audmux.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
imx-card.c ASoC: fsl: imx-card: Do not force slot width to sample width 2026-01-20 12:56:02 +00:00
imx-es8328.c ASoC: fsl: Remove unused of_gpio.h 2024-06-10 12:48:37 +01:00
imx-hdmi.c ASoC: imx-hdmi: remove cpu_pdev related code 2025-08-24 22:41:09 +01:00
imx-pcm-dma.c ASoC: fsl: add missing MODULE_DESCRIPTION() macro 2024-06-03 15:59:20 +01:00
imx-pcm-fiq.c ASoC: fsl: imx-pcm-fiq: Switch to use hrtimer_setup() 2025-02-18 11:19:07 +01:00
imx-pcm-rpmsg.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
imx-pcm-rpmsg.h ASoC: imx-pcm-rpmsg: Fix warning of incorrect type in assignment 2021-05-10 13:05:38 +01:00
imx-pcm.h ASoC: fsl: Remove unused inline function imx_pcm_dma_params_init_data() 2022-09-23 13:56:25 +01:00
imx-rpmsg.c ASoC: fsl: imx-rpmsg: convert to snd_soc_dapm_xxx() 2025-11-17 00:17:19 +00:00
imx-sgtl5000.c ASoC: Switch back to struct platform_driver::remove() 2024-09-09 18:26:49 +01:00
imx-ssi.h dmaengine: imx: Move header to include/dma/ 2022-04-19 12:06:18 +01:00
Kconfig ASoC: fsl: Standardize ASoC menu 2025-06-24 01:01:13 +01:00
lpc3xxx-i2s.c ASoC: fsl: lpc3xxx: Make some symbols static 2024-08-02 14:05:32 +01:00
lpc3xxx-i2s.h ASoC: fsl: lpc3xxx-i2s: Include bitfield.h for FIELD_PREP 2024-07-01 20:07:28 +01:00
lpc3xxx-pcm.c ASoC: fsl: lpc3xxx: Make some symbols static 2024-08-02 14:05:32 +01:00
Makefile ASoC: fsl_asrc_m2m: Add memory to memory function 2024-12-13 08:57:09 +00:00
mpc5200_dma.c ASoC: fsl: mpc5200_dma.c: Fix warning of Function parameter or member not described 2023-10-10 12:39:37 +01:00
mpc5200_dma.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mpc5200_psc_ac97.c ASoC: Switch back to struct platform_driver::remove() 2024-09-09 18:26:49 +01:00
mpc5200_psc_i2s.c ASoC: Switch back to struct platform_driver::remove() 2024-09-09 18:26:49 +01:00
p1022_ds.c ASoC: Switch back to struct platform_driver::remove() 2024-09-09 18:26:49 +01:00
p1022_rdk.c ASoC: Switch back to struct platform_driver::remove() 2024-09-09 18:26:49 +01:00
pcm030-audio-fabric.c ASoC: Switch back to struct platform_driver::remove() 2024-09-09 18:26:49 +01:00