ALSA: ASoc: DaVinci Delay start of ASP to trigger
authorTroy Kisky <troy.kisky@boundarydevices.com>
Sun, 3 Oct 2010 21:44:19 +0000 (16:44 -0500)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 5 Oct 2010 00:55:17 +0000 (17:55 -0700)
Since only 4 mainline ASoC codecs support the trigger
callback, we cannot rely upon them stopping the frame clock
if they are master and must assume it is running even if the
sound is paused. Thus we cannot start the ASP until the trigger
method.

Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
Signed-off-by: Martin Ambrose <martin@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/davinci/davinci-i2s.c

index 9f8b6c55686668dd4fcbcd4965ed81d7b77cb31d..d46b545d41f432f037c58eb6c3b4b0f1b13cc2a2 100644 (file)
@@ -574,10 +574,6 @@ static int davinci_i2s_prepare(struct snd_pcm_substream *substream,
        struct davinci_mcbsp_dev *dev = snd_soc_dai_get_drvdata(dai);
        int playback = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK);
        davinci_mcbsp_stop(dev, playback);
-       if ((dev->pcr & DAVINCI_MCBSP_PCR_FSXM) == 0) {
-               /* codec is master */
-               davinci_mcbsp_start(dev, substream);
-       }
        return 0;
 }
 
@@ -587,8 +583,6 @@ static int davinci_i2s_trigger(struct snd_pcm_substream *substream, int cmd,
        struct davinci_mcbsp_dev *dev = snd_soc_dai_get_drvdata(dai);
        int ret = 0;
        int playback = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK);
-       if ((dev->pcr & DAVINCI_MCBSP_PCR_FSXM) == 0)
-               return 0;       /* return if codec is master */
 
        switch (cmd) {
        case SNDRV_PCM_TRIGGER_START: