android_kernel_samsung_msm8976/sound/soc/fsl
Oskar Schirmer b63d5e491b ASoC: fsl: imx-pcm-fiq: omit fiq counter to avoid harm in unbalanced situations
commit fc7dc61d9a87011aaf8a6eb3144ebf9552adf5d2 upstream.

Unbalanced calls to snd_imx_pcm_trigger() may result in endless
FIQ activity and thus provoke eternal sound. While on the first glance,
the switch statement looks pretty symmetric, the SUSPEND/RESUME
pair is not: the suspend case comes along snd_pcm_suspend_all(),
which for fsl/imx-pcm-fiq is called only at snd_soc_suspend(),
but the resume case originates straight from the SNDRV_PCM_IOCTL_RESUME.
This way userland may provoke an unbalanced resume, which might cause
the fiq_enable counter to increase and never return to zero again,
so eventually imx_pcm_fiq is never disabled.

Simply removing the fiq_enable will solve the problem, as long as
one never goes play and capture game simultaneously, but beware
trying both at once, the early TRIGGER_STOP will cut off the other
activity prematurely. So now playing and capturing is scrutinized
separately, instead of by counting.

Signed-off-by: Oskar Schirmer <oskar@scara.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-12-04 10:55:48 -08:00
..
efika-audio-fabric.c
eukrea-tlv320.c
fsl_dma.c
fsl_dma.h
fsl_ssi.c ASoC: More updates for v3.10 2013-04-18 16:24:31 +02:00
fsl_ssi.h ASoC: fsl-ssi: Add SACNT definitions 2013-04-16 13:03:15 +01:00
fsl_utils.c
fsl_utils.h
imx-audmux.c ASoC: fsl: imx-audmux: Use devm_clk_get() 2013-03-13 10:39:31 +00:00
imx-audmux.h
imx-mc13783.c
imx-pcm-dma.c ASoC: imx: Use generic dmaengine PCM 2013-04-17 14:26:33 +01:00
imx-pcm-fiq.c ASoC: fsl: imx-pcm-fiq: omit fiq counter to avoid harm in unbalanced situations 2013-12-04 10:55:48 -08:00
imx-pcm.c ASoC: imx: Use generic dmaengine PCM 2013-04-17 14:26:33 +01:00
imx-pcm.h ASoC: imx: Use generic dmaengine PCM 2013-04-17 14:26:33 +01:00
imx-sgtl5000.c ASoC: imx-sgtl5000: use of_node to match cpu dai 2013-03-25 10:22:20 +00:00
imx-ssi.c sound/soc/fsl: don't check resource with devm_ioremap_resource 2013-05-18 11:59:44 +02:00
imx-ssi.h ASoC: fsl: Use common DAI DMA data struct 2013-04-05 11:25:47 +01:00
Kconfig ASoC: imx: Use generic dmaengine PCM 2013-04-17 14:26:33 +01:00
Makefile
mpc5200_dma.c
mpc5200_dma.h
mpc5200_psc_ac97.c ASoC: switch over to use snd_soc_register_component() on mpc5200 ac97 2013-03-26 21:55:22 +00:00
mpc5200_psc_ac97.h
mpc5200_psc_i2s.c ASoC: switch over to use snd_soc_register_component() on mpc5200 i2s 2013-03-26 21:55:26 +00:00
mpc8610_hpcd.c
mx27vis-aic32x4.c
p1022_ds.c
p1022_rdk.c
pcm030-audio-fabric.c ASoC: pcm030 audio fabric: remove __init from probe 2013-03-12 18:55:26 +00:00
phycore-ac97.c
wm1133-ev1.c