Lines Matching refs:dg00x
58 static int pcm_init_hw_params(struct snd_dg00x *dg00x, in pcm_init_hw_params() argument
89 s = &dg00x->tx_stream; in pcm_init_hw_params()
93 s = &dg00x->rx_stream; in pcm_init_hw_params()
115 struct snd_dg00x *dg00x = substream->private_data; in pcm_open() local
121 err = snd_dg00x_stream_lock_try(dg00x); in pcm_open()
125 err = pcm_init_hw_params(dg00x, substream); in pcm_open()
130 err = snd_dg00x_stream_get_clock(dg00x, &clock); in pcm_open()
134 err = snd_dg00x_stream_check_external_clock(dg00x, &detect); in pcm_open()
144 amdtp_stream_pcm_running(&dg00x->rx_stream) || in pcm_open()
145 amdtp_stream_pcm_running(&dg00x->tx_stream)) { in pcm_open()
146 err = snd_dg00x_stream_get_external_rate(dg00x, &rate); in pcm_open()
157 snd_dg00x_stream_lock_release(dg00x); in pcm_open()
163 struct snd_dg00x *dg00x = substream->private_data; in pcm_close() local
165 snd_dg00x_stream_lock_release(dg00x); in pcm_close()
173 struct snd_dg00x *dg00x = substream->private_data; in pcm_capture_hw_params() local
182 mutex_lock(&dg00x->mutex); in pcm_capture_hw_params()
183 dg00x->substreams_counter++; in pcm_capture_hw_params()
184 mutex_unlock(&dg00x->mutex); in pcm_capture_hw_params()
187 amdtp_dot_set_pcm_format(&dg00x->tx_stream, params_format(hw_params)); in pcm_capture_hw_params()
195 struct snd_dg00x *dg00x = substream->private_data; in pcm_playback_hw_params() local
204 mutex_lock(&dg00x->mutex); in pcm_playback_hw_params()
205 dg00x->substreams_counter++; in pcm_playback_hw_params()
206 mutex_unlock(&dg00x->mutex); in pcm_playback_hw_params()
209 amdtp_dot_set_pcm_format(&dg00x->rx_stream, params_format(hw_params)); in pcm_playback_hw_params()
216 struct snd_dg00x *dg00x = substream->private_data; in pcm_capture_hw_free() local
218 mutex_lock(&dg00x->mutex); in pcm_capture_hw_free()
221 dg00x->substreams_counter--; in pcm_capture_hw_free()
223 snd_dg00x_stream_stop_duplex(dg00x); in pcm_capture_hw_free()
225 mutex_unlock(&dg00x->mutex); in pcm_capture_hw_free()
232 struct snd_dg00x *dg00x = substream->private_data; in pcm_playback_hw_free() local
234 mutex_lock(&dg00x->mutex); in pcm_playback_hw_free()
237 dg00x->substreams_counter--; in pcm_playback_hw_free()
239 snd_dg00x_stream_stop_duplex(dg00x); in pcm_playback_hw_free()
241 mutex_unlock(&dg00x->mutex); in pcm_playback_hw_free()
248 struct snd_dg00x *dg00x = substream->private_data; in pcm_capture_prepare() local
252 mutex_lock(&dg00x->mutex); in pcm_capture_prepare()
254 err = snd_dg00x_stream_start_duplex(dg00x, runtime->rate); in pcm_capture_prepare()
256 amdtp_stream_pcm_prepare(&dg00x->tx_stream); in pcm_capture_prepare()
258 mutex_unlock(&dg00x->mutex); in pcm_capture_prepare()
265 struct snd_dg00x *dg00x = substream->private_data; in pcm_playback_prepare() local
269 mutex_lock(&dg00x->mutex); in pcm_playback_prepare()
271 err = snd_dg00x_stream_start_duplex(dg00x, runtime->rate); in pcm_playback_prepare()
273 amdtp_stream_pcm_prepare(&dg00x->rx_stream); in pcm_playback_prepare()
274 amdtp_dot_reset(&dg00x->rx_stream); in pcm_playback_prepare()
277 mutex_unlock(&dg00x->mutex); in pcm_playback_prepare()
284 struct snd_dg00x *dg00x = substream->private_data; in pcm_capture_trigger() local
288 amdtp_stream_pcm_trigger(&dg00x->tx_stream, substream); in pcm_capture_trigger()
291 amdtp_stream_pcm_trigger(&dg00x->tx_stream, NULL); in pcm_capture_trigger()
302 struct snd_dg00x *dg00x = substream->private_data; in pcm_playback_trigger() local
306 amdtp_stream_pcm_trigger(&dg00x->rx_stream, substream); in pcm_playback_trigger()
309 amdtp_stream_pcm_trigger(&dg00x->rx_stream, NULL); in pcm_playback_trigger()
320 struct snd_dg00x *dg00x = sbstrm->private_data; in pcm_capture_pointer() local
322 return amdtp_stream_pcm_pointer(&dg00x->tx_stream); in pcm_capture_pointer()
327 struct snd_dg00x *dg00x = sbstrm->private_data; in pcm_playback_pointer() local
329 return amdtp_stream_pcm_pointer(&dg00x->rx_stream); in pcm_playback_pointer()
357 int snd_dg00x_create_pcm_devices(struct snd_dg00x *dg00x) in snd_dg00x_create_pcm_devices() argument
362 err = snd_pcm_new(dg00x->card, dg00x->card->driver, 0, 1, 1, &pcm); in snd_dg00x_create_pcm_devices()
366 pcm->private_data = dg00x; in snd_dg00x_create_pcm_devices()
368 "%s PCM", dg00x->card->shortname); in snd_dg00x_create_pcm_devices()