summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorMisael Lopez Cruz <misael.lopez@ti.com>2011-07-24 20:59:53 +0100
committerAndy Green <andy.green@linaro.org>2011-08-25 07:38:12 +0100
commit7eb9f8ec1aa9c587ce1184e0153d1f8cd4d54513 (patch)
tree4cfd6023f1b0ae98c746e63f054b776877f3097a /sound
parent390e33e00920faaec82e9536b5681a93d423c69c (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.c18
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,