diff options
-rw-r--r-- | sound/soc/omap/omap-mcpdm.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/sound/soc/omap/omap-mcpdm.c b/sound/soc/omap/omap-mcpdm.c index b837265ac3e9..11bd07cdce22 100644 --- a/sound/soc/omap/omap-mcpdm.c +++ b/sound/soc/omap/omap-mcpdm.c | |||
@@ -173,6 +173,10 @@ static inline int omap_mcpdm_active(struct omap_mcpdm *mcpdm) | |||
173 | */ | 173 | */ |
174 | static void omap_mcpdm_open_streams(struct omap_mcpdm *mcpdm) | 174 | static void omap_mcpdm_open_streams(struct omap_mcpdm *mcpdm) |
175 | { | 175 | { |
176 | u32 ctrl = omap_mcpdm_read(mcpdm, MCPDM_REG_CTRL); | ||
177 | |||
178 | omap_mcpdm_write(mcpdm, MCPDM_REG_CTRL, ctrl | MCPDM_WD_EN); | ||
179 | |||
176 | omap_mcpdm_write(mcpdm, MCPDM_REG_IRQENABLE_SET, | 180 | omap_mcpdm_write(mcpdm, MCPDM_REG_IRQENABLE_SET, |
177 | MCPDM_DN_IRQ_EMPTY | MCPDM_DN_IRQ_FULL | | 181 | MCPDM_DN_IRQ_EMPTY | MCPDM_DN_IRQ_FULL | |
178 | MCPDM_UP_IRQ_EMPTY | MCPDM_UP_IRQ_FULL); | 182 | MCPDM_UP_IRQ_EMPTY | MCPDM_UP_IRQ_FULL); |
@@ -258,12 +262,9 @@ static int omap_mcpdm_dai_startup(struct snd_pcm_substream *substream, | |||
258 | 262 | ||
259 | mutex_lock(&mcpdm->mutex); | 263 | mutex_lock(&mcpdm->mutex); |
260 | 264 | ||
261 | if (!dai->active) { | 265 | if (!dai->active) |
262 | u32 ctrl = omap_mcpdm_read(mcpdm, MCPDM_REG_CTRL); | ||
263 | |||
264 | omap_mcpdm_write(mcpdm, MCPDM_REG_CTRL, ctrl | MCPDM_WD_EN); | ||
265 | omap_mcpdm_open_streams(mcpdm); | 266 | omap_mcpdm_open_streams(mcpdm); |
266 | } | 267 | |
267 | mutex_unlock(&mcpdm->mutex); | 268 | mutex_unlock(&mcpdm->mutex); |
268 | 269 | ||
269 | return 0; | 270 | return 0; |