Lines Matching refs:motu
71 static void limit_channels_and_rates(struct snd_motu *motu, in limit_channels_and_rates() argument
98 static int init_hw_info(struct snd_motu *motu, in init_hw_info() argument
109 stream = &motu->tx_stream; in init_hw_info()
110 formats = &motu->tx_packet_formats; in init_hw_info()
113 stream = &motu->rx_stream; in init_hw_info()
114 formats = &motu->rx_packet_formats; in init_hw_info()
117 limit_channels_and_rates(motu, runtime, formats); in init_hw_info()
135 struct snd_motu *motu = substream->private_data; in pcm_open() local
136 const struct snd_motu_protocol *const protocol = motu->spec->protocol; in pcm_open()
141 err = snd_motu_stream_lock_try(motu); in pcm_open()
145 mutex_lock(&motu->mutex); in pcm_open()
147 err = snd_motu_stream_cache_packet_formats(motu); in pcm_open()
151 err = init_hw_info(motu, substream); in pcm_open()
159 err = protocol->get_clock_source(motu, &src); in pcm_open()
163 amdtp_stream_pcm_running(&motu->tx_stream) || in pcm_open()
164 amdtp_stream_pcm_running(&motu->rx_stream)) { in pcm_open()
165 err = protocol->get_clock_rate(motu, &rate); in pcm_open()
174 mutex_unlock(&motu->mutex); in pcm_open()
178 mutex_unlock(&motu->mutex); in pcm_open()
179 snd_motu_stream_lock_release(motu); in pcm_open()
185 struct snd_motu *motu = substream->private_data; in pcm_close() local
187 snd_motu_stream_lock_release(motu); in pcm_close()
195 struct snd_motu *motu = substream->private_data; in pcm_hw_params() local
206 mutex_lock(&motu->mutex); in pcm_hw_params()
207 err = snd_motu_stream_reserve_duplex(motu, rate); in pcm_hw_params()
209 ++motu->substreams_counter; in pcm_hw_params()
210 mutex_unlock(&motu->mutex); in pcm_hw_params()
218 struct snd_motu *motu = substream->private_data; in pcm_hw_free() local
220 mutex_lock(&motu->mutex); in pcm_hw_free()
223 --motu->substreams_counter; in pcm_hw_free()
225 snd_motu_stream_stop_duplex(motu); in pcm_hw_free()
227 mutex_unlock(&motu->mutex); in pcm_hw_free()
234 struct snd_motu *motu = substream->private_data; in capture_prepare() local
237 mutex_lock(&motu->mutex); in capture_prepare()
238 err = snd_motu_stream_start_duplex(motu); in capture_prepare()
239 mutex_unlock(&motu->mutex); in capture_prepare()
241 amdtp_stream_pcm_prepare(&motu->tx_stream); in capture_prepare()
247 struct snd_motu *motu = substream->private_data; in playback_prepare() local
250 mutex_lock(&motu->mutex); in playback_prepare()
251 err = snd_motu_stream_start_duplex(motu); in playback_prepare()
252 mutex_unlock(&motu->mutex); in playback_prepare()
254 amdtp_stream_pcm_prepare(&motu->rx_stream); in playback_prepare()
261 struct snd_motu *motu = substream->private_data; in capture_trigger() local
265 amdtp_stream_pcm_trigger(&motu->tx_stream, substream); in capture_trigger()
268 amdtp_stream_pcm_trigger(&motu->tx_stream, NULL); in capture_trigger()
278 struct snd_motu *motu = substream->private_data; in playback_trigger() local
282 amdtp_stream_pcm_trigger(&motu->rx_stream, substream); in playback_trigger()
285 amdtp_stream_pcm_trigger(&motu->rx_stream, NULL); in playback_trigger()
296 struct snd_motu *motu = substream->private_data; in capture_pointer() local
298 return amdtp_stream_pcm_pointer(&motu->tx_stream); in capture_pointer()
302 struct snd_motu *motu = substream->private_data; in playback_pointer() local
304 return amdtp_stream_pcm_pointer(&motu->rx_stream); in playback_pointer()
309 struct snd_motu *motu = substream->private_data; in capture_ack() local
311 return amdtp_stream_pcm_ack(&motu->tx_stream); in capture_ack()
316 struct snd_motu *motu = substream->private_data; in playback_ack() local
318 return amdtp_stream_pcm_ack(&motu->rx_stream); in playback_ack()
321 int snd_motu_create_pcm_devices(struct snd_motu *motu) in snd_motu_create_pcm_devices() argument
350 err = snd_pcm_new(motu->card, motu->card->driver, 0, 1, 1, &pcm); in snd_motu_create_pcm_devices()
353 pcm->private_data = motu; in snd_motu_create_pcm_devices()
354 strcpy(pcm->name, motu->card->shortname); in snd_motu_create_pcm_devices()