ASoC: kirkwood: prevent double streaming
The kirkwood audio subsystem presents 2 PCM's for one source. Streaming on a second PCM while the first one is active cuts this last one. Then, ending the last stream gives a kernel trap in free_irq(). Signed-off-by: Jean-Francois Moine <moinejf@free.fr> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
bc0195aad0
commit
c4a42915d8
|
@ -148,10 +148,14 @@ static int kirkwood_dma_open(struct snd_pcm_substream *substream)
|
|||
dram = mv_mbus_dram_info();
|
||||
addr = substream->dma_buffer.addr;
|
||||
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
|
||||
if (priv->substream_play)
|
||||
return -EBUSY;
|
||||
priv->substream_play = substream;
|
||||
kirkwood_dma_conf_mbus_windows(priv->io,
|
||||
KIRKWOOD_PLAYBACK_WIN, addr, dram);
|
||||
} else {
|
||||
if (priv->substream_rec)
|
||||
return -EBUSY;
|
||||
priv->substream_rec = substream;
|
||||
kirkwood_dma_conf_mbus_windows(priv->io,
|
||||
KIRKWOOD_RECORD_WIN, addr, dram);
|
||||
|
|
Loading…
Reference in New Issue