Lines Matching refs:tscm

10 static int pcm_init_hw_params(struct snd_tscm *tscm,  in pcm_init_hw_params()  argument
20 stream = &tscm->tx_stream; in pcm_init_hw_params()
21 pcm_channels = tscm->spec->pcm_capture_analog_channels; in pcm_init_hw_params()
24 stream = &tscm->rx_stream; in pcm_init_hw_params()
25 pcm_channels = tscm->spec->pcm_playback_analog_channels; in pcm_init_hw_params()
28 if (tscm->spec->has_adat) in pcm_init_hw_params()
30 if (tscm->spec->has_spdif) in pcm_init_hw_params()
45 struct snd_tscm *tscm = substream->private_data; in pcm_open() local
46 struct amdtp_domain *d = &tscm->domain; in pcm_open()
50 err = snd_tscm_stream_lock_try(tscm); in pcm_open()
54 err = pcm_init_hw_params(tscm, substream); in pcm_open()
58 err = snd_tscm_stream_get_clock(tscm, &clock); in pcm_open()
62 mutex_lock(&tscm->mutex); in pcm_open()
67 if (clock != SND_TSCM_CLOCK_INTERNAL || tscm->substreams_counter > 0) { in pcm_open()
72 err = snd_tscm_stream_get_rate(tscm, &rate); in pcm_open()
74 mutex_unlock(&tscm->mutex); in pcm_open()
84 mutex_unlock(&tscm->mutex); in pcm_open()
92 mutex_unlock(&tscm->mutex); in pcm_open()
97 mutex_unlock(&tscm->mutex); in pcm_open()
103 snd_tscm_stream_lock_release(tscm); in pcm_open()
109 struct snd_tscm *tscm = substream->private_data; in pcm_close() local
111 snd_tscm_stream_lock_release(tscm); in pcm_close()
119 struct snd_tscm *tscm = substream->private_data; in pcm_hw_params() local
127 mutex_lock(&tscm->mutex); in pcm_hw_params()
128 err = snd_tscm_stream_reserve_duplex(tscm, rate, in pcm_hw_params()
131 ++tscm->substreams_counter; in pcm_hw_params()
132 mutex_unlock(&tscm->mutex); in pcm_hw_params()
140 struct snd_tscm *tscm = substream->private_data; in pcm_hw_free() local
142 mutex_lock(&tscm->mutex); in pcm_hw_free()
145 --tscm->substreams_counter; in pcm_hw_free()
147 snd_tscm_stream_stop_duplex(tscm); in pcm_hw_free()
149 mutex_unlock(&tscm->mutex); in pcm_hw_free()
156 struct snd_tscm *tscm = substream->private_data; in pcm_capture_prepare() local
160 mutex_lock(&tscm->mutex); in pcm_capture_prepare()
162 err = snd_tscm_stream_start_duplex(tscm, runtime->rate); in pcm_capture_prepare()
164 amdtp_stream_pcm_prepare(&tscm->tx_stream); in pcm_capture_prepare()
166 mutex_unlock(&tscm->mutex); in pcm_capture_prepare()
173 struct snd_tscm *tscm = substream->private_data; in pcm_playback_prepare() local
177 mutex_lock(&tscm->mutex); in pcm_playback_prepare()
179 err = snd_tscm_stream_start_duplex(tscm, runtime->rate); in pcm_playback_prepare()
181 amdtp_stream_pcm_prepare(&tscm->rx_stream); in pcm_playback_prepare()
183 mutex_unlock(&tscm->mutex); in pcm_playback_prepare()
190 struct snd_tscm *tscm = substream->private_data; in pcm_capture_trigger() local
194 amdtp_stream_pcm_trigger(&tscm->tx_stream, substream); in pcm_capture_trigger()
197 amdtp_stream_pcm_trigger(&tscm->tx_stream, NULL); in pcm_capture_trigger()
208 struct snd_tscm *tscm = substream->private_data; in pcm_playback_trigger() local
212 amdtp_stream_pcm_trigger(&tscm->rx_stream, substream); in pcm_playback_trigger()
215 amdtp_stream_pcm_trigger(&tscm->rx_stream, NULL); in pcm_playback_trigger()
226 struct snd_tscm *tscm = sbstrm->private_data; in pcm_capture_pointer() local
228 return amdtp_domain_stream_pcm_pointer(&tscm->domain, &tscm->tx_stream); in pcm_capture_pointer()
233 struct snd_tscm *tscm = sbstrm->private_data; in pcm_playback_pointer() local
235 return amdtp_domain_stream_pcm_pointer(&tscm->domain, &tscm->rx_stream); in pcm_playback_pointer()
240 struct snd_tscm *tscm = substream->private_data; in pcm_capture_ack() local
242 return amdtp_domain_stream_pcm_ack(&tscm->domain, &tscm->tx_stream); in pcm_capture_ack()
247 struct snd_tscm *tscm = substream->private_data; in pcm_playback_ack() local
249 return amdtp_domain_stream_pcm_ack(&tscm->domain, &tscm->rx_stream); in pcm_playback_ack()
252 int snd_tscm_create_pcm_devices(struct snd_tscm *tscm) in snd_tscm_create_pcm_devices() argument
277 err = snd_pcm_new(tscm->card, tscm->card->driver, 0, 1, 1, &pcm); in snd_tscm_create_pcm_devices()
281 pcm->private_data = tscm; in snd_tscm_create_pcm_devices()
283 "%s PCM", tscm->card->shortname); in snd_tscm_create_pcm_devices()