]> Pileus Git - ~andy/linux/commitdiff
ASoC: fsl-ssi: Drop ac97 specific trigger function
authorMarkus Pargmann <mpa@pengutronix.de>
Fri, 20 Dec 2013 13:11:35 +0000 (14:11 +0100)
committerMark Brown <broonie@linaro.org>
Wed, 8 Jan 2014 17:20:32 +0000 (17:20 +0000)
The normal trigger function can now be used for AC97. Drop AC97 trigger
function.

Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
sound/soc/fsl/fsl_ssi.c

index a96ab4e60652f871fb0d991af2ce36c9a78555dd..94dedcb0868dc268d0213f7653ee76921f9a9187 100644 (file)
@@ -1052,6 +1052,7 @@ static int fsl_ssi_trigger(struct snd_pcm_substream *substream, int cmd,
 {
        struct snd_soc_pcm_runtime *rtd = substream->private_data;
        struct fsl_ssi_private *ssi_private = snd_soc_dai_get_drvdata(rtd->cpu_dai);
+       struct ccsr_ssi __iomem *ssi = ssi_private->ssi;
        unsigned long flags;
 
        switch (cmd) {
@@ -1082,6 +1083,12 @@ static int fsl_ssi_trigger(struct snd_pcm_substream *substream, int cmd,
                return -EINVAL;
        }
 
+       if (ssi_private->imx_ac97) {
+               if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
+                       write_ssi(CCSR_SSI_SOR_TX_CLR, &ssi->sor);
+               else
+                       write_ssi(CCSR_SSI_SOR_RX_CLR, &ssi->sor);
+       }
 
        return 0;
 }
@@ -1129,58 +1136,6 @@ static const struct snd_soc_component_driver fsl_ssi_component = {
        .name           = "fsl-ssi",
 };
 
-/**
- * fsl_ssi_ac97_trigger: start and stop the AC97 receive/transmit.
- *
- * This function is called by ALSA to start, stop, pause, and resume the
- * transfer of data.
- */
-static int fsl_ssi_ac97_trigger(struct snd_pcm_substream *substream, int cmd,
-                          struct snd_soc_dai *dai)
-{
-       struct snd_soc_pcm_runtime *rtd = substream->private_data;
-       struct fsl_ssi_private *ssi_private = snd_soc_dai_get_drvdata(
-                       rtd->cpu_dai);
-       struct ccsr_ssi __iomem *ssi = ssi_private->ssi;
-
-       switch (cmd) {
-       case SNDRV_PCM_TRIGGER_START:
-       case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-               if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
-                       write_ssi_mask(&ssi->sier, 0, CCSR_SSI_SIER_TIE |
-                                       CCSR_SSI_SIER_TFE0_EN);
-               else
-                       write_ssi_mask(&ssi->sier, 0, CCSR_SSI_SIER_RIE |
-                                       CCSR_SSI_SIER_RFF0_EN);
-               break;
-
-       case SNDRV_PCM_TRIGGER_STOP:
-       case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-               if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
-                       write_ssi_mask(&ssi->sier, CCSR_SSI_SIER_TIE |
-                                       CCSR_SSI_SIER_TFE0_EN, 0);
-               else
-                       write_ssi_mask(&ssi->sier, CCSR_SSI_SIER_RIE |
-                                       CCSR_SSI_SIER_RFF0_EN, 0);
-               break;
-
-       default:
-               return -EINVAL;
-       }
-
-       if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
-               write_ssi(CCSR_SSI_SOR_TX_CLR, &ssi->sor);
-       else
-               write_ssi(CCSR_SSI_SOR_RX_CLR, &ssi->sor);
-
-       return 0;
-}
-
-static const struct snd_soc_dai_ops fsl_ssi_ac97_dai_ops = {
-       .startup        = fsl_ssi_startup,
-       .trigger        = fsl_ssi_ac97_trigger,
-};
-
 static struct snd_soc_dai_driver fsl_ssi_ac97_dai = {
        .ac97_control = 1,
        .playback = {
@@ -1197,7 +1152,7 @@ static struct snd_soc_dai_driver fsl_ssi_ac97_dai = {
                .rates = SNDRV_PCM_RATE_48000,
                .formats = SNDRV_PCM_FMTBIT_S16_LE,
        },
-       .ops = &fsl_ssi_ac97_dai_ops,
+       .ops = &fsl_ssi_dai_ops,
 };