printk(KERN_INFO "Vortex: periods %d, period_bytes %d, channels = %d\n", params_periods(hw_params),
params_period_bytes(hw_params), params_channels(hw_params));
*/
- spin_lock_irq(&chip->lock);
// Make audio routes and config buffer DMA.
if (VORTEX_PCM_TYPE(substream->pcm) != VORTEX_PCM_WT) {
int dma, type = VORTEX_PCM_TYPE(substream->pcm);
params_periods(hw_params));
}
#endif
- spin_unlock_irq(&chip->lock);
return 0;
}
vortex_t *chip = snd_pcm_substream_chip(substream);
stream_t *stream = (stream_t *) (substream->runtime->private_data);
- spin_lock_irq(&chip->lock);
// Delete audio routes.
if (VORTEX_PCM_TYPE(substream->pcm) != VORTEX_PCM_WT) {
if (stream != NULL)
}
#endif
substream->runtime->private_data = NULL;
- spin_unlock_irq(&chip->lock);
return snd_pcm_lib_free_pages(substream);
}
else
dir = 0;
fmt = vortex_alsafmt_aspfmt(runtime->format);
- spin_lock_irq(&chip->lock);
if (VORTEX_PCM_TYPE(substream->pcm) != VORTEX_PCM_WT) {
vortex_adbdma_setmode(chip, dma, 1, dir, fmt, 0 /*? */ ,
0);
vortex_wtdma_setstartbuffer(chip, dma, 0);
}
#endif
- spin_unlock_irq(&chip->lock);
return 0;
}
stream_t *stream = (stream_t *) substream->runtime->private_data;
int dma = stream->dma;
- spin_lock(&chip->lock);
switch (cmd) {
case SNDRV_PCM_TRIGGER_START:
// do something to start the PCM engine
#endif
break;
default:
- spin_unlock(&chip->lock);
return -EINVAL;
}
- spin_unlock(&chip->lock);
return 0;
}