Lines Matching refs:substream
99 static int psc_dma_hw_free(struct snd_pcm_substream *substream) in psc_dma_hw_free() argument
101 snd_pcm_set_runtime_buffer(substream, NULL); in psc_dma_hw_free()
111 static int psc_dma_trigger(struct snd_pcm_substream *substream, int cmd) in psc_dma_trigger() argument
113 struct snd_soc_pcm_runtime *rtd = substream->private_data; in psc_dma_trigger()
115 struct snd_pcm_runtime *runtime = substream->runtime; in psc_dma_trigger()
116 struct psc_dma_stream *s = to_psc_dma_stream(substream, psc_dma); in psc_dma_trigger()
125 substream->pstr->stream, runtime->frame_bits, in psc_dma_trigger()
140 if (substream->pstr->stream == SNDRV_PCM_STREAM_CAPTURE) in psc_dma_trigger()
158 substream->pstr->stream, s->period_count); in psc_dma_trigger()
163 if (substream->pstr->stream == SNDRV_PCM_STREAM_CAPTURE) in psc_dma_trigger()
173 substream->pstr->stream, cmd); in psc_dma_trigger()
211 static int psc_dma_open(struct snd_pcm_substream *substream) in psc_dma_open() argument
213 struct snd_pcm_runtime *runtime = substream->runtime; in psc_dma_open()
214 struct snd_soc_pcm_runtime *rtd = substream->private_data; in psc_dma_open()
219 dev_dbg(psc_dma->dev, "psc_dma_open(substream=%p)\n", substream); in psc_dma_open()
221 if (substream->pstr->stream == SNDRV_PCM_STREAM_CAPTURE) in psc_dma_open()
226 snd_soc_set_runtime_hwparams(substream, &psc_dma_hardware); in psc_dma_open()
231 dev_err(substream->pcm->card->dev, "invalid buffer size\n"); in psc_dma_open()
235 s->stream = substream; in psc_dma_open()
239 static int psc_dma_close(struct snd_pcm_substream *substream) in psc_dma_close() argument
241 struct snd_soc_pcm_runtime *rtd = substream->private_data; in psc_dma_close()
245 dev_dbg(psc_dma->dev, "psc_dma_close(substream=%p)\n", substream); in psc_dma_close()
247 if (substream->pstr->stream == SNDRV_PCM_STREAM_CAPTURE) in psc_dma_close()
264 psc_dma_pointer(struct snd_pcm_substream *substream) in psc_dma_pointer() argument
266 struct snd_soc_pcm_runtime *rtd = substream->private_data; in psc_dma_pointer()
271 if (substream->pstr->stream == SNDRV_PCM_STREAM_CAPTURE) in psc_dma_pointer()
278 return bytes_to_frames(substream->runtime, count); in psc_dma_pointer()
282 psc_dma_hw_params(struct snd_pcm_substream *substream, in psc_dma_hw_params() argument
285 snd_pcm_set_runtime_buffer(substream, &substream->dma_buffer); in psc_dma_hw_params()
316 if (pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream) { in psc_dma_new()
318 size, &pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream->dma_buffer); in psc_dma_new()
323 if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream) { in psc_dma_new()
325 size, &pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream->dma_buffer); in psc_dma_new()
333 if (pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream) in psc_dma_new()
334 snd_dma_free_pages(&pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream->dma_buffer); in psc_dma_new()
345 struct snd_pcm_substream *substream; in psc_dma_free() local
351 substream = pcm->streams[stream].substream; in psc_dma_free()
352 if (substream) { in psc_dma_free()
353 snd_dma_free_pages(&substream->dma_buffer); in psc_dma_free()
354 substream->dma_buffer.area = NULL; in psc_dma_free()
355 substream->dma_buffer.addr = 0; in psc_dma_free()