Lines Matching refs:substream
34 static struct lola_pcm *lola_get_pcm(struct snd_pcm_substream *substream) in lola_get_pcm() argument
36 struct lola *chip = snd_pcm_substream_chip(substream); in lola_get_pcm()
37 return &chip->pcm[substream->stream]; in lola_get_pcm()
40 static struct lola_stream *lola_get_stream(struct snd_pcm_substream *substream) in lola_get_stream() argument
42 struct lola_pcm *pcm = lola_get_pcm(substream); in lola_get_stream()
43 unsigned int idx = substream->number; in lola_get_stream()
129 struct snd_pcm_substream *substream, in lola_sync_wait_for_fifo() argument
139 snd_pcm_group_for_each_entry(s, substream) { in lola_sync_wait_for_fifo()
141 if (s->pcm->card != substream->pcm->card) in lola_sync_wait_for_fifo()
165 struct snd_pcm_substream *substream) in lola_sync_pause() argument
169 lola_sync_wait_for_fifo(chip, substream, false); in lola_sync_pause()
170 snd_pcm_group_for_each_entry(s, substream) { in lola_sync_pause()
172 if (s->pcm->card != substream->pcm->card) in lola_sync_pause()
179 lola_sync_wait_for_fifo(chip, substream, true); in lola_sync_pause()
186 lola_sync_pause(chip, str->substream); in lola_stream_reset()
223 static int lola_pcm_open(struct snd_pcm_substream *substream) in lola_pcm_open() argument
225 struct lola *chip = snd_pcm_substream_chip(substream); in lola_pcm_open()
226 struct lola_pcm *pcm = lola_get_pcm(substream); in lola_pcm_open()
227 struct lola_stream *str = lola_get_stream(substream); in lola_pcm_open()
228 struct snd_pcm_runtime *runtime = substream->runtime; in lola_pcm_open()
235 str->substream = substream; in lola_pcm_open()
272 static int lola_pcm_close(struct snd_pcm_substream *substream) in lola_pcm_close() argument
274 struct lola *chip = snd_pcm_substream_chip(substream); in lola_pcm_close()
275 struct lola_stream *str = lola_get_stream(substream); in lola_pcm_close()
278 if (str->substream == substream) { in lola_pcm_close()
279 str->substream = NULL; in lola_pcm_close()
290 static int lola_pcm_hw_params(struct snd_pcm_substream *substream, in lola_pcm_hw_params() argument
293 struct lola_stream *str = lola_get_stream(substream); in lola_pcm_hw_params()
298 return snd_pcm_lib_malloc_pages(substream, in lola_pcm_hw_params()
302 static int lola_pcm_hw_free(struct snd_pcm_substream *substream) in lola_pcm_hw_free() argument
304 struct lola *chip = snd_pcm_substream_chip(substream); in lola_pcm_hw_free()
305 struct lola_pcm *pcm = lola_get_pcm(substream); in lola_pcm_hw_free()
306 struct lola_stream *str = lola_get_stream(substream); in lola_pcm_hw_free()
312 return snd_pcm_lib_free_pages(substream); in lola_pcm_hw_free()
318 static int setup_bdle(struct snd_pcm_substream *substream, in setup_bdle() argument
331 addr = snd_pcm_sgbuf_get_addr(substream, ofs); in setup_bdle()
336 chunk = snd_pcm_sgbuf_get_chunk_size(substream, ofs, size); in setup_bdle()
355 struct snd_pcm_substream *substream, in lola_setup_periods() argument
369 ofs = setup_bdle(substream, str, &bdl, ofs, period_bytes); in lola_setup_periods()
381 static unsigned int lola_get_format_verb(struct snd_pcm_substream *substream) in lola_get_format_verb() argument
385 switch (substream->runtime->format) { in lola_get_format_verb()
401 verb |= substream->runtime->channels; in lola_get_format_verb()
465 static int lola_pcm_prepare(struct snd_pcm_substream *substream) in lola_pcm_prepare() argument
467 struct lola *chip = snd_pcm_substream_chip(substream); in lola_pcm_prepare()
468 struct lola_pcm *pcm = lola_get_pcm(substream); in lola_pcm_prepare()
469 struct lola_stream *str = lola_get_stream(substream); in lola_pcm_prepare()
470 struct snd_pcm_runtime *runtime = substream->runtime; in lola_pcm_prepare()
487 bufsize = snd_pcm_lib_buffer_bytes(substream); in lola_pcm_prepare()
488 period_bytes = snd_pcm_lib_period_bytes(substream); in lola_pcm_prepare()
489 format_verb = lola_get_format_verb(substream); in lola_pcm_prepare()
495 err = lola_setup_periods(chip, pcm, substream, str); in lola_pcm_prepare()
517 static int lola_pcm_trigger(struct snd_pcm_substream *substream, int cmd) in lola_pcm_trigger() argument
519 struct lola *chip = snd_pcm_substream_chip(substream); in lola_pcm_trigger()
545 sync_streams = (start && snd_pcm_stream_linked(substream)); in lola_pcm_trigger()
548 snd_pcm_group_for_each_entry(s, substream) { in lola_pcm_trigger()
549 if (s->pcm->card != substream->pcm->card) in lola_pcm_trigger()
558 snd_pcm_trigger_done(s, substream); in lola_pcm_trigger()
564 static snd_pcm_uframes_t lola_pcm_pointer(struct snd_pcm_substream *substream) in lola_pcm_pointer() argument
566 struct lola *chip = snd_pcm_substream_chip(substream); in lola_pcm_pointer()
567 struct lola_stream *str = lola_get_stream(substream); in lola_pcm_pointer()
572 return bytes_to_frames(substream->runtime, pos); in lola_pcm_pointer()
582 if (str->substream && str->running) in lola_pcm_update()
583 snd_pcm_period_elapsed(str->substream); in lola_pcm_update()