diff options
author | Misael Lopez Cruz <misael.lopez@ti.com> | 2011-07-24 20:59:53 +0100 |
---|---|---|
committer | Andy Green <andy.green@linaro.org> | 2011-08-25 07:38:12 +0100 |
commit | 7eb9f8ec1aa9c587ce1184e0153d1f8cd4d54513 (patch) | |
tree | 4cfd6023f1b0ae98c746e63f054b776877f3097a /sound | |
parent | 390e33e00920faaec82e9536b5681a93d423c69c (diff) |
Subject: [PATCH 101/104] ASoC: ABE DAI: Call modem trigger in bespoke_trigger()
Modem DAI is a special case because requires explicit ALSA PCM
calls to the DAI associated with the serial port (e.g. McBSP).
The trigger() call was missing and the serial port was not
initiating any transfer.
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/omap/omap-abe.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/sound/soc/omap/omap-abe.c b/sound/soc/omap/omap-abe.c index dc0e44146aa..07a7e770fc7 100644 --- a/sound/soc/omap/omap-abe.c +++ b/sound/soc/omap/omap-abe.c @@ -1002,14 +1002,30 @@ static int omap_abe_dai_trigger(struct snd_pcm_substream *substream, static int omap_abe_dai_bespoke_trigger(struct snd_pcm_substream *substream, int cmd, struct snd_soc_dai *dai) { + struct omap_abe_data *abe_priv = snd_soc_dai_get_drvdata(dai); + int ret = 0; + dev_dbg(dai->dev, "%s: %s cmd %d\n", __func__, dai->name, cmd); + if (dai->id == ABE_FRONTEND_DAI_MODEM) { + + dev_dbg(abe_priv->modem_dai->dev, "%s: MODEM stream %d cmd %d\n", + __func__, substream->stream, cmd); + + ret = snd_soc_dai_trigger(abe_priv->modem_substream[substream->stream], + cmd, abe_priv->modem_dai); + if (ret < 0) { + dev_err(abe_priv->modem_dai->dev, "MODEM trigger failed\n"); + return ret; + } + } + if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) playback_trigger(substream, dai, cmd); else capture_trigger(substream, dai, cmd); - return 0; + return ret; } static int omap_abe_dai_hw_free(struct snd_pcm_substream *substream, |