Lines Matching refs:tscm

21 static int pcm_init_hw_params(struct snd_tscm *tscm,  in pcm_init_hw_params()  argument
48 stream = &tscm->tx_stream; in pcm_init_hw_params()
49 pcm_channels = tscm->spec->pcm_capture_analog_channels; in pcm_init_hw_params()
53 stream = &tscm->rx_stream; in pcm_init_hw_params()
54 pcm_channels = tscm->spec->pcm_playback_analog_channels; in pcm_init_hw_params()
57 if (tscm->spec->has_adat) in pcm_init_hw_params()
59 if (tscm->spec->has_spdif) in pcm_init_hw_params()
70 struct snd_tscm *tscm = substream->private_data; in pcm_open() local
75 err = snd_tscm_stream_lock_try(tscm); in pcm_open()
79 err = pcm_init_hw_params(tscm, substream); in pcm_open()
83 err = snd_tscm_stream_get_clock(tscm, &clock); in pcm_open()
85 amdtp_stream_pcm_running(&tscm->rx_stream) || in pcm_open()
86 amdtp_stream_pcm_running(&tscm->tx_stream)) { in pcm_open()
87 err = snd_tscm_stream_get_rate(tscm, &rate); in pcm_open()
98 snd_tscm_stream_lock_release(tscm); in pcm_open()
104 struct snd_tscm *tscm = substream->private_data; in pcm_close() local
106 snd_tscm_stream_lock_release(tscm); in pcm_close()
114 struct snd_tscm *tscm = substream->private_data; in pcm_capture_hw_params() local
123 mutex_lock(&tscm->mutex); in pcm_capture_hw_params()
124 tscm->substreams_counter++; in pcm_capture_hw_params()
125 mutex_unlock(&tscm->mutex); in pcm_capture_hw_params()
128 amdtp_tscm_set_pcm_format(&tscm->tx_stream, params_format(hw_params)); in pcm_capture_hw_params()
136 struct snd_tscm *tscm = substream->private_data; in pcm_playback_hw_params() local
145 mutex_lock(&tscm->mutex); in pcm_playback_hw_params()
146 tscm->substreams_counter++; in pcm_playback_hw_params()
147 mutex_unlock(&tscm->mutex); in pcm_playback_hw_params()
150 amdtp_tscm_set_pcm_format(&tscm->rx_stream, params_format(hw_params)); in pcm_playback_hw_params()
157 struct snd_tscm *tscm = substream->private_data; in pcm_capture_hw_free() local
159 mutex_lock(&tscm->mutex); in pcm_capture_hw_free()
162 tscm->substreams_counter--; in pcm_capture_hw_free()
164 snd_tscm_stream_stop_duplex(tscm); in pcm_capture_hw_free()
166 mutex_unlock(&tscm->mutex); in pcm_capture_hw_free()
173 struct snd_tscm *tscm = substream->private_data; in pcm_playback_hw_free() local
175 mutex_lock(&tscm->mutex); in pcm_playback_hw_free()
178 tscm->substreams_counter--; in pcm_playback_hw_free()
180 snd_tscm_stream_stop_duplex(tscm); in pcm_playback_hw_free()
182 mutex_unlock(&tscm->mutex); in pcm_playback_hw_free()
189 struct snd_tscm *tscm = substream->private_data; in pcm_capture_prepare() local
193 mutex_lock(&tscm->mutex); in pcm_capture_prepare()
195 err = snd_tscm_stream_start_duplex(tscm, runtime->rate); in pcm_capture_prepare()
197 amdtp_stream_pcm_prepare(&tscm->tx_stream); in pcm_capture_prepare()
199 mutex_unlock(&tscm->mutex); in pcm_capture_prepare()
206 struct snd_tscm *tscm = substream->private_data; in pcm_playback_prepare() local
210 mutex_lock(&tscm->mutex); in pcm_playback_prepare()
212 err = snd_tscm_stream_start_duplex(tscm, runtime->rate); in pcm_playback_prepare()
214 amdtp_stream_pcm_prepare(&tscm->rx_stream); in pcm_playback_prepare()
216 mutex_unlock(&tscm->mutex); in pcm_playback_prepare()
223 struct snd_tscm *tscm = substream->private_data; in pcm_capture_trigger() local
227 amdtp_stream_pcm_trigger(&tscm->tx_stream, substream); in pcm_capture_trigger()
230 amdtp_stream_pcm_trigger(&tscm->tx_stream, NULL); in pcm_capture_trigger()
241 struct snd_tscm *tscm = substream->private_data; in pcm_playback_trigger() local
245 amdtp_stream_pcm_trigger(&tscm->rx_stream, substream); in pcm_playback_trigger()
248 amdtp_stream_pcm_trigger(&tscm->rx_stream, NULL); in pcm_playback_trigger()
259 struct snd_tscm *tscm = sbstrm->private_data; in pcm_capture_pointer() local
261 return amdtp_stream_pcm_pointer(&tscm->tx_stream); in pcm_capture_pointer()
266 struct snd_tscm *tscm = sbstrm->private_data; in pcm_playback_pointer() local
268 return amdtp_stream_pcm_pointer(&tscm->rx_stream); in pcm_playback_pointer()
296 int snd_tscm_create_pcm_devices(struct snd_tscm *tscm) in snd_tscm_create_pcm_devices() argument
301 err = snd_pcm_new(tscm->card, tscm->card->driver, 0, 1, 1, &pcm); in snd_tscm_create_pcm_devices()
305 pcm->private_data = tscm; in snd_tscm_create_pcm_devices()
307 "%s PCM", tscm->card->shortname); in snd_tscm_create_pcm_devices()