summaryrefslogtreecommitdiff
path: root/sound/soc/omap/omap-abe.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/omap/omap-abe.c')
-rw-r--r--sound/soc/omap/omap-abe.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/sound/soc/omap/omap-abe.c b/sound/soc/omap/omap-abe.c
index 011fb675975b..b75b405ddfce 100644
--- a/sound/soc/omap/omap-abe.c
+++ b/sound/soc/omap/omap-abe.c
@@ -41,7 +41,7 @@
struct omap_mcpdm_data {
struct omap_mcpdm_link *links;
- int active;
+ int active[2];
int requested;
};
@@ -58,13 +58,14 @@ static struct omap_mcpdm_link omap_mcpdm_links[] = {
.irq_mask = UP_IRQ_EMPTY | UP_IRQ_FULL,
.threshold = 1,
.format = PDMOUTFORMAT_LJUST,
- .channels = PDM_UP_MASK | PDM_STATUS_MASK,
+ .channels = PDM_UP_MASK | PDM_STATUS_MASK |
+ PDM_DN_MASK | PDM_CMD_MASK,
},
};
static struct omap_mcpdm_data mcpdm_data = {
.links = omap_mcpdm_links,
- .active = 0,
+ .active = {0},
.requested = 0,
};
@@ -122,14 +123,14 @@ static int omap_abe_dai_trigger(struct snd_pcm_substream *substream, int cmd,
case SNDRV_PCM_TRIGGER_START:
case SNDRV_PCM_TRIGGER_RESUME:
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
- if (!mcpdm_priv->active++)
+ if (!mcpdm_priv->active[stream]++)
omap_mcpdm_start(stream);
break;
case SNDRV_PCM_TRIGGER_STOP:
case SNDRV_PCM_TRIGGER_SUSPEND:
case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
- if (!--mcpdm_priv->active)
+ if (!--mcpdm_priv->active[stream])
omap_mcpdm_stop(stream);
break;
default: