Skip to content

Commit

Permalink
ASoC: fsl-ssi: Drop ac97 specific trigger function
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Markus Pargmann authored and Mark Brown committed Jan 8, 2014
1 parent 6de8387 commit a5a7ee7
Showing 1 changed file with 8 additions and 53 deletions.
61 changes: 8 additions & 53 deletions sound/soc/fsl/fsl_ssi.c
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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 = {
Expand All @@ -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,
};


Expand Down

0 comments on commit a5a7ee7

Please sign in to comment.