···315 if (!params->info)316 params->info = hw->info & ~SNDRV_PCM_INFO_FIFO_IN_FRAMES;317 if (!params->fifo_size) {318- if (snd_mask_min(¶ms->masks[SNDRV_PCM_HW_PARAM_FORMAT]) ==319- snd_mask_max(¶ms->masks[SNDRV_PCM_HW_PARAM_FORMAT]) &&320- snd_mask_min(¶ms->masks[SNDRV_PCM_HW_PARAM_CHANNELS]) ==321- snd_mask_max(¶ms->masks[SNDRV_PCM_HW_PARAM_CHANNELS])) {322 changed = substream->ops->ioctl(substream,323 SNDRV_PCM_IOCTL1_FIFO_SIZE, params);324 if (changed < 0)
···315 if (!params->info)316 params->info = hw->info & ~SNDRV_PCM_INFO_FIFO_IN_FRAMES;317 if (!params->fifo_size) {318+ m = hw_param_mask(params, SNDRV_PCM_HW_PARAM_FORMAT);319+ i = hw_param_interval(params, SNDRV_PCM_HW_PARAM_CHANNELS);320+ if (snd_mask_min(m) == snd_mask_max(m) &&321+ snd_interval_min(i) == snd_interval_max(i)) {322 changed = substream->ops->ioctl(substream,323 SNDRV_PCM_IOCTL1_FIFO_SIZE, params);324 if (changed < 0)
+3-1
sound/pci/echoaudio/echoaudio.c
···1821 /* The hardware doesn't tell us which substream caused the irq,1822 thus we have to check all running substreams. */1823 for (ss = 0; ss < DSP_MAXPIPES; ss++) {1824- if ((substream = chip->substream[ss])) {001825 period = pcm_pointer(substream) /1826 substream->runtime->period_size;1827 if (period != chip->last_period[ss]) {
···1821 /* The hardware doesn't tell us which substream caused the irq,1822 thus we have to check all running substreams. */1823 for (ss = 0; ss < DSP_MAXPIPES; ss++) {1824+ substream = chip->substream[ss];1825+ if (substream && ((struct audiopipe *)substream->runtime->1826+ private_data)->state == PIPE_STATE_STARTED) {1827 period = pcm_pointer(substream) /1828 substream->runtime->period_size;1829 if (period != chip->last_period[ss]) {