Lines Matching refs:ff

3  * ff-pcm.c - a part of driver for RME Fireface series
8 #include "ff.h"
104 static int pcm_init_hw_params(struct snd_ff *ff,
114 s = &ff->tx_stream;
115 pcm_channels = ff->spec->pcm_capture_channels;
118 s = &ff->rx_stream;
119 pcm_channels = ff->spec->pcm_playback_channels;
141 struct snd_ff *ff = substream->private_data;
142 struct amdtp_domain *d = &ff->domain;
147 err = snd_ff_stream_lock_try(ff);
151 err = pcm_init_hw_params(ff, substream);
155 err = ff->spec->protocol->get_clock(ff, &rate, &src);
159 mutex_lock(&ff->mutex);
173 mutex_unlock(&ff->mutex);
181 if (ff->substreams_counter > 0) {
185 rate = amdtp_rate_table[ff->rx_stream.sfc];
193 mutex_unlock(&ff->mutex);
201 mutex_unlock(&ff->mutex);
207 mutex_unlock(&ff->mutex);
214 snd_ff_stream_lock_release(ff);
220 struct snd_ff *ff = substream->private_data;
222 snd_ff_stream_lock_release(ff);
230 struct snd_ff *ff = substream->private_data;
238 mutex_lock(&ff->mutex);
239 err = snd_ff_stream_reserve_duplex(ff, rate, frames_per_period,
242 ++ff->substreams_counter;
243 mutex_unlock(&ff->mutex);
251 struct snd_ff *ff = substream->private_data;
253 mutex_lock(&ff->mutex);
256 --ff->substreams_counter;
258 snd_ff_stream_stop_duplex(ff);
260 mutex_unlock(&ff->mutex);
267 struct snd_ff *ff = substream->private_data;
271 mutex_lock(&ff->mutex);
273 err = snd_ff_stream_start_duplex(ff, runtime->rate);
275 amdtp_stream_pcm_prepare(&ff->tx_stream);
277 mutex_unlock(&ff->mutex);
284 struct snd_ff *ff = substream->private_data;
288 mutex_lock(&ff->mutex);
290 err = snd_ff_stream_start_duplex(ff, runtime->rate);
292 amdtp_stream_pcm_prepare(&ff->rx_stream);
294 mutex_unlock(&ff->mutex);
301 struct snd_ff *ff = substream->private_data;
305 amdtp_stream_pcm_trigger(&ff->tx_stream, substream);
308 amdtp_stream_pcm_trigger(&ff->tx_stream, NULL);
319 struct snd_ff *ff = substream->private_data;
323 amdtp_stream_pcm_trigger(&ff->rx_stream, substream);
326 amdtp_stream_pcm_trigger(&ff->rx_stream, NULL);
337 struct snd_ff *ff = sbstrm->private_data;
339 return amdtp_domain_stream_pcm_pointer(&ff->domain, &ff->tx_stream);
344 struct snd_ff *ff = sbstrm->private_data;
346 return amdtp_domain_stream_pcm_pointer(&ff->domain, &ff->rx_stream);
351 struct snd_ff *ff = substream->private_data;
353 return amdtp_domain_stream_pcm_ack(&ff->domain, &ff->tx_stream);
358 struct snd_ff *ff = substream->private_data;
360 return amdtp_domain_stream_pcm_ack(&ff->domain, &ff->rx_stream);
363 int snd_ff_create_pcm_devices(struct snd_ff *ff)
388 err = snd_pcm_new(ff->card, ff->card->driver, 0, 1, 1, &pcm);
392 pcm->private_data = ff;
394 "%s PCM", ff->card->shortname);