]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00209384-2 mxc_spdif: capture playback start function
authorAdrian Alonso <aalonso@freescale.com>
Mon, 14 May 2012 23:50:53 +0000 (18:50 -0500)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:34:38 +0000 (08:34 +0200)
* Add start capture/playback function
  Start sequence for capturing/playing audio data.
* Remove caprure/playback prepere function hwd initialization
  handled by trigger function when user/app starts capture/play
  process.

Signed-off-by: Adrian Alonso <aalonso@freescale.com>
sound/soc/codecs/mxc_spdif.c

index 8c163fbd7c7d6e75d623b9f5e30499ee2ac3c098..445650f749d9509edc2a55bb0ad078e3447c7c9e 100644 (file)
@@ -552,7 +552,7 @@ failed_clk:
        return err;
 }
 
-static int mxc_spdif_playback_prepare(struct snd_pcm_substream *substream,
+static int mxc_spdif_playback_start(struct snd_pcm_substream *substream,
                                          struct snd_soc_dai *dai)
 {
        struct snd_soc_codec *codec = dai->codec;
@@ -648,6 +648,7 @@ static int mxc_spdif_playback_trigger(struct snd_pcm_substream *substream,
        case SNDRV_PCM_TRIGGER_START:
        case SNDRV_PCM_TRIGGER_RESUME:
        case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
+               ret = mxc_spdif_playback_start(substream, dai);
                break;
        case SNDRV_PCM_TRIGGER_STOP:
        case SNDRV_PCM_TRIGGER_SUSPEND:
@@ -703,7 +704,7 @@ failed_clk:
        return err;
 }
 
-static int mxc_spdif_capture_prepare(struct snd_pcm_substream *substream,
+static int mxc_spdif_capture_start(struct snd_pcm_substream *substream,
                                         struct snd_soc_dai *dai)
 {
        struct snd_soc_codec *codec = dai->codec;
@@ -799,6 +800,7 @@ static int mxc_spdif_capture_trigger(struct snd_pcm_substream *substream,
        case SNDRV_PCM_TRIGGER_START:
        case SNDRV_PCM_TRIGGER_RESUME:
        case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
+               ret = mxc_spdif_capture_start(substream, dai);
                break;
        case SNDRV_PCM_TRIGGER_STOP:
        case SNDRV_PCM_TRIGGER_SUSPEND:
@@ -1158,19 +1160,6 @@ static void mxc_spdif_shutdown(struct snd_pcm_substream *substream,
        clk_disable(plat_data->spdif_core_clk);
 }
 
-static int mxc_spdif_prepare(struct snd_pcm_substream *substream,
-                            struct snd_soc_dai *dai)
-{
-       int ret;
-
-       if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
-               ret = mxc_spdif_playback_prepare(substream, dai);
-       else
-               ret = mxc_spdif_capture_prepare(substream, dai);
-
-       return ret;
-}
-
 static int mxc_spdif_trigger(struct snd_pcm_substream *substream,
                                int cmd, struct snd_soc_dai *dai)
 {
@@ -1186,7 +1175,6 @@ static int mxc_spdif_trigger(struct snd_pcm_substream *substream,
 
 struct snd_soc_dai_ops mxc_spdif_codec_dai_ops = {
        .startup = mxc_spdif_startup,
-       .prepare = mxc_spdif_prepare,
        .trigger = mxc_spdif_trigger,
        .shutdown = mxc_spdif_shutdown,
 };