]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00220172 ESAI ASRC: put all asrc pair release operation to shutdown()
authorChen Liangjun <b36089@freescale.com>
Sun, 12 Aug 2012 15:03:01 +0000 (23:03 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:35:12 +0000 (08:35 +0200)
When use ASRC for ESAI P2P playback, ESAI driver would release ASRC pair
resource immediately after ASRC function's error return.It may
introduce risk that in ESAI machine driver's shutdown(), ASRC resource
release operation may be double called. In this case, system hang
happens due to ASRC register's operation with no clock.

In this patch, let all ASRC resource release operation in ESAI machine
driver's shutdown().

Signed-off-by: Chen Liangjun <b36089@freescale.com>
sound/soc/imx/imx-cs42888.c

index e06b1a7fc314cb7774c1645683d4cba902afda87..c372587ecce97359190bcc335ce8b19fc171053a 100644 (file)
@@ -85,8 +85,6 @@ static int config_asrc(struct snd_pcm_substream *substream,
        ret = asrc_req_pair(channel, &iprtd->asrc_index);
        if (ret < 0) {
                pr_err("Fail to request asrc pair\n");
-               asrc_release_pair(iprtd->asrc_index);
-               asrc_finish_conv(iprtd->asrc_index);
                return -EINVAL;
        }
 
@@ -102,8 +100,6 @@ static int config_asrc(struct snd_pcm_substream *substream,
        ret = asrc_config_pair(&config);
        if (ret < 0) {
                pr_err("Fail to config asrc\n");
-               asrc_release_pair(iprtd->asrc_index);
-               asrc_finish_conv(iprtd->asrc_index);
                return ret;
        }