mirror of
https://github.com/torvalds/linux.git
synced 2024-11-19 10:31:48 +00:00
ASoC: fsl-ssi: Drop ac97 specific trigger function
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>
This commit is contained in:
parent
6de8387905
commit
a5a7ee7c98
@ -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 snd_soc_pcm_runtime *rtd = substream->private_data;
|
||||||
struct fsl_ssi_private *ssi_private = snd_soc_dai_get_drvdata(rtd->cpu_dai);
|
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;
|
unsigned long flags;
|
||||||
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
@ -1082,6 +1083,12 @@ static int fsl_ssi_trigger(struct snd_pcm_substream *substream, int cmd,
|
|||||||
return -EINVAL;
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -1129,58 +1136,6 @@ static const struct snd_soc_component_driver fsl_ssi_component = {
|
|||||||
.name = "fsl-ssi",
|
.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 = {
|
static struct snd_soc_dai_driver fsl_ssi_ac97_dai = {
|
||||||
.ac97_control = 1,
|
.ac97_control = 1,
|
||||||
.playback = {
|
.playback = {
|
||||||
@ -1197,7 +1152,7 @@ static struct snd_soc_dai_driver fsl_ssi_ac97_dai = {
|
|||||||
.rates = SNDRV_PCM_RATE_48000,
|
.rates = SNDRV_PCM_RATE_48000,
|
||||||
.formats = SNDRV_PCM_FMTBIT_S16_LE,
|
.formats = SNDRV_PCM_FMTBIT_S16_LE,
|
||||||
},
|
},
|
||||||
.ops = &fsl_ssi_ac97_dai_ops,
|
.ops = &fsl_ssi_dai_ops,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user