Lines Matching refs:efw

132 pcm_init_hw_params(struct snd_efw *efw,
142 s = &efw->tx_stream;
143 pcm_channels = efw->pcm_capture_channels;
146 s = &efw->rx_stream;
147 pcm_channels = efw->pcm_playback_channels;
151 runtime->hw.rates = efw->supported_sampling_rate;
175 struct snd_efw *efw = substream->private_data;
176 struct amdtp_domain *d = &efw->domain;
180 err = snd_efw_stream_lock_try(efw);
184 err = pcm_init_hw_params(efw, substream);
188 err = snd_efw_command_get_clock_source(efw, &clock_source);
192 mutex_lock(&efw->mutex);
198 (efw->substreams_counter > 0 && d->events_per_period > 0)) {
203 err = snd_efw_command_get_sampling_rate(efw, &sampling_rate);
205 mutex_unlock(&efw->mutex);
216 mutex_unlock(&efw->mutex);
224 mutex_unlock(&efw->mutex);
230 mutex_unlock(&efw->mutex);
236 snd_efw_stream_lock_release(efw);
242 struct snd_efw *efw = substream->private_data;
243 snd_efw_stream_lock_release(efw);
250 struct snd_efw *efw = substream->private_data;
258 mutex_lock(&efw->mutex);
259 err = snd_efw_stream_reserve_duplex(efw, rate,
262 ++efw->substreams_counter;
263 mutex_unlock(&efw->mutex);
271 struct snd_efw *efw = substream->private_data;
273 mutex_lock(&efw->mutex);
276 --efw->substreams_counter;
278 snd_efw_stream_stop_duplex(efw);
280 mutex_unlock(&efw->mutex);
287 struct snd_efw *efw = substream->private_data;
290 err = snd_efw_stream_start_duplex(efw);
292 amdtp_stream_pcm_prepare(&efw->tx_stream);
298 struct snd_efw *efw = substream->private_data;
301 err = snd_efw_stream_start_duplex(efw);
303 amdtp_stream_pcm_prepare(&efw->rx_stream);
310 struct snd_efw *efw = substream->private_data;
314 amdtp_stream_pcm_trigger(&efw->tx_stream, substream);
317 amdtp_stream_pcm_trigger(&efw->tx_stream, NULL);
327 struct snd_efw *efw = substream->private_data;
331 amdtp_stream_pcm_trigger(&efw->rx_stream, substream);
334 amdtp_stream_pcm_trigger(&efw->rx_stream, NULL);
345 struct snd_efw *efw = sbstrm->private_data;
347 return amdtp_domain_stream_pcm_pointer(&efw->domain, &efw->tx_stream);
351 struct snd_efw *efw = sbstrm->private_data;
353 return amdtp_domain_stream_pcm_pointer(&efw->domain, &efw->rx_stream);
358 struct snd_efw *efw = substream->private_data;
360 return amdtp_domain_stream_pcm_ack(&efw->domain, &efw->tx_stream);
365 struct snd_efw *efw = substream->private_data;
367 return amdtp_domain_stream_pcm_ack(&efw->domain, &efw->rx_stream);
370 int snd_efw_create_pcm_devices(struct snd_efw *efw)
395 err = snd_pcm_new(efw->card, efw->card->driver, 0, 1, 1, &pcm);
399 pcm->private_data = efw;
400 snprintf(pcm->name, sizeof(pcm->name), "%s PCM", efw->card->shortname);