Lines Matching refs:dg00x
57 static int pcm_init_hw_params(struct snd_dg00x *dg00x,
68 s = &dg00x->tx_stream;
71 s = &dg00x->rx_stream;
102 struct snd_dg00x *dg00x = substream->private_data;
103 struct amdtp_domain *d = &dg00x->domain;
108 err = snd_dg00x_stream_lock_try(dg00x);
112 err = pcm_init_hw_params(dg00x, substream);
117 err = snd_dg00x_stream_get_clock(dg00x, &clock);
121 err = snd_dg00x_stream_check_external_clock(dg00x, &detect);
130 mutex_lock(&dg00x->mutex);
136 (dg00x->substreams_counter > 0 && d->events_per_period > 0)) {
141 err = snd_dg00x_stream_get_external_rate(dg00x, &rate);
143 mutex_unlock(&dg00x->mutex);
154 mutex_unlock(&dg00x->mutex);
162 mutex_unlock(&dg00x->mutex);
168 mutex_unlock(&dg00x->mutex);
174 snd_dg00x_stream_lock_release(dg00x);
180 struct snd_dg00x *dg00x = substream->private_data;
182 snd_dg00x_stream_lock_release(dg00x);
190 struct snd_dg00x *dg00x = substream->private_data;
198 mutex_lock(&dg00x->mutex);
199 err = snd_dg00x_stream_reserve_duplex(dg00x, rate,
202 ++dg00x->substreams_counter;
203 mutex_unlock(&dg00x->mutex);
211 struct snd_dg00x *dg00x = substream->private_data;
213 mutex_lock(&dg00x->mutex);
216 --dg00x->substreams_counter;
218 snd_dg00x_stream_stop_duplex(dg00x);
220 mutex_unlock(&dg00x->mutex);
227 struct snd_dg00x *dg00x = substream->private_data;
230 mutex_lock(&dg00x->mutex);
232 err = snd_dg00x_stream_start_duplex(dg00x);
234 amdtp_stream_pcm_prepare(&dg00x->tx_stream);
236 mutex_unlock(&dg00x->mutex);
243 struct snd_dg00x *dg00x = substream->private_data;
246 mutex_lock(&dg00x->mutex);
248 err = snd_dg00x_stream_start_duplex(dg00x);
250 amdtp_stream_pcm_prepare(&dg00x->rx_stream);
251 amdtp_dot_reset(&dg00x->rx_stream);
254 mutex_unlock(&dg00x->mutex);
261 struct snd_dg00x *dg00x = substream->private_data;
265 amdtp_stream_pcm_trigger(&dg00x->tx_stream, substream);
268 amdtp_stream_pcm_trigger(&dg00x->tx_stream, NULL);
279 struct snd_dg00x *dg00x = substream->private_data;
283 amdtp_stream_pcm_trigger(&dg00x->rx_stream, substream);
286 amdtp_stream_pcm_trigger(&dg00x->rx_stream, NULL);
297 struct snd_dg00x *dg00x = sbstrm->private_data;
299 return amdtp_domain_stream_pcm_pointer(&dg00x->domain, &dg00x->tx_stream);
304 struct snd_dg00x *dg00x = sbstrm->private_data;
306 return amdtp_domain_stream_pcm_pointer(&dg00x->domain, &dg00x->rx_stream);
311 struct snd_dg00x *dg00x = substream->private_data;
313 return amdtp_domain_stream_pcm_ack(&dg00x->domain, &dg00x->tx_stream);
318 struct snd_dg00x *dg00x = substream->private_data;
320 return amdtp_domain_stream_pcm_ack(&dg00x->domain, &dg00x->rx_stream);
323 int snd_dg00x_create_pcm_devices(struct snd_dg00x *dg00x)
348 err = snd_pcm_new(dg00x->card, dg00x->card->driver, 0, 1, 1, &pcm);
352 pcm->private_data = dg00x;
354 "%s PCM", dg00x->card->shortname);