|
@@ -1821,7 +1821,9 @@ static irqreturn_t snd_echo_interrupt(int irq, void *dev_id)
|
|
|
/* The hardware doesn't tell us which substream caused the irq,
|
|
|
thus we have to check all running substreams. */
|
|
|
for (ss = 0; ss < DSP_MAXPIPES; ss++) {
|
|
|
- if ((substream = chip->substream[ss])) {
|
|
|
+ substream = chip->substream[ss];
|
|
|
+ if (substream && ((struct audiopipe *)substream->runtime->
|
|
|
+ private_data)->state == PIPE_STATE_STARTED) {
|
|
|
period = pcm_pointer(substream) /
|
|
|
substream->runtime->period_size;
|
|
|
if (period != chip->last_period[ss]) {
|