Lines Matching refs:ff

104 static int pcm_init_hw_params(struct snd_ff *ff,  in pcm_init_hw_params()  argument
114 s = &ff->tx_stream; in pcm_init_hw_params()
115 pcm_channels = ff->spec->pcm_capture_channels; in pcm_init_hw_params()
118 s = &ff->rx_stream; in pcm_init_hw_params()
119 pcm_channels = ff->spec->pcm_playback_channels; in pcm_init_hw_params()
141 struct snd_ff *ff = substream->private_data; in pcm_open() local
146 err = snd_ff_stream_lock_try(ff); in pcm_open()
150 err = pcm_init_hw_params(ff, substream); in pcm_open()
154 err = ff->spec->protocol->get_clock(ff, &rate, &src); in pcm_open()
175 if (amdtp_stream_pcm_running(&ff->rx_stream) || in pcm_open()
176 amdtp_stream_pcm_running(&ff->tx_stream)) { in pcm_open()
177 rate = amdtp_rate_table[ff->rx_stream.sfc]; in pcm_open()
188 snd_ff_stream_lock_release(ff); in pcm_open()
194 struct snd_ff *ff = substream->private_data; in pcm_close() local
196 snd_ff_stream_lock_release(ff); in pcm_close()
204 struct snd_ff *ff = substream->private_data; in pcm_hw_params() local
215 mutex_lock(&ff->mutex); in pcm_hw_params()
216 err = snd_ff_stream_reserve_duplex(ff, rate); in pcm_hw_params()
218 ++ff->substreams_counter; in pcm_hw_params()
219 mutex_unlock(&ff->mutex); in pcm_hw_params()
227 struct snd_ff *ff = substream->private_data; in pcm_hw_free() local
229 mutex_lock(&ff->mutex); in pcm_hw_free()
232 --ff->substreams_counter; in pcm_hw_free()
234 snd_ff_stream_stop_duplex(ff); in pcm_hw_free()
236 mutex_unlock(&ff->mutex); in pcm_hw_free()
243 struct snd_ff *ff = substream->private_data; in pcm_capture_prepare() local
247 mutex_lock(&ff->mutex); in pcm_capture_prepare()
249 err = snd_ff_stream_start_duplex(ff, runtime->rate); in pcm_capture_prepare()
251 amdtp_stream_pcm_prepare(&ff->tx_stream); in pcm_capture_prepare()
253 mutex_unlock(&ff->mutex); in pcm_capture_prepare()
260 struct snd_ff *ff = substream->private_data; in pcm_playback_prepare() local
264 mutex_lock(&ff->mutex); in pcm_playback_prepare()
266 err = snd_ff_stream_start_duplex(ff, runtime->rate); in pcm_playback_prepare()
268 amdtp_stream_pcm_prepare(&ff->rx_stream); in pcm_playback_prepare()
270 mutex_unlock(&ff->mutex); in pcm_playback_prepare()
277 struct snd_ff *ff = substream->private_data; in pcm_capture_trigger() local
281 amdtp_stream_pcm_trigger(&ff->tx_stream, substream); in pcm_capture_trigger()
284 amdtp_stream_pcm_trigger(&ff->tx_stream, NULL); in pcm_capture_trigger()
295 struct snd_ff *ff = substream->private_data; in pcm_playback_trigger() local
299 amdtp_stream_pcm_trigger(&ff->rx_stream, substream); in pcm_playback_trigger()
302 amdtp_stream_pcm_trigger(&ff->rx_stream, NULL); in pcm_playback_trigger()
313 struct snd_ff *ff = sbstrm->private_data; in pcm_capture_pointer() local
315 return amdtp_stream_pcm_pointer(&ff->tx_stream); in pcm_capture_pointer()
320 struct snd_ff *ff = sbstrm->private_data; in pcm_playback_pointer() local
322 return amdtp_stream_pcm_pointer(&ff->rx_stream); in pcm_playback_pointer()
327 struct snd_ff *ff = substream->private_data; in pcm_capture_ack() local
329 return amdtp_stream_pcm_ack(&ff->tx_stream); in pcm_capture_ack()
334 struct snd_ff *ff = substream->private_data; in pcm_playback_ack() local
336 return amdtp_stream_pcm_ack(&ff->rx_stream); in pcm_playback_ack()
339 int snd_ff_create_pcm_devices(struct snd_ff *ff) in snd_ff_create_pcm_devices() argument
368 err = snd_pcm_new(ff->card, ff->card->driver, 0, 1, 1, &pcm); in snd_ff_create_pcm_devices()
372 pcm->private_data = ff; in snd_ff_create_pcm_devices()
374 "%s PCM", ff->card->shortname); in snd_ff_create_pcm_devices()