From: Chen Liangjun Date: Thu, 23 Aug 2012 04:30:57 +0000 (+0800) Subject: ENGR00221177 ESAI ASRC: add mutex protection between ESAI and ASRC P2P X-Git-Tag: v3.0.35-fsl~552 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=e87a6b21f4a5c3d753e6add90513387531338148;p=karo-tx-linux.git ENGR00221177 ESAI ASRC: add mutex protection between ESAI and ASRC P2P ESAI playback and ASRC P2P playback use difference codec_dai while using the same codec. Thus they can't work together. In this patch, add mutual protection between ESAI playback and ASRC P2P playback. Signed-off-by: Chen Liangjun --- diff --git a/sound/soc/imx/imx-esai.c b/sound/soc/imx/imx-esai.c index bc56d8073dce..359cb2a4aea0 100644 --- a/sound/soc/imx/imx-esai.c +++ b/sound/soc/imx/imx-esai.c @@ -278,6 +278,12 @@ static int imx_esai_startup(struct snd_pcm_substream *substream, { struct imx_esai *esai = snd_soc_dai_get_drvdata(cpu_dai); + if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK && + (local_esai->imx_esai_txrx_state & IMX_DAI_ESAI_TX)) { + pr_err("error: too much esai playback!\n"); + return -EINVAL; + } + if (!(local_esai->imx_esai_txrx_state & IMX_DAI_ESAI_TXRX)) { clk_enable(esai->clk);