Lines Matching refs:pstr
148 struct line6_pcm_stream *pstr, int direction, int type) in line6_buffer_acquire() argument
156 if (!test_and_set_bit(type, &pstr->opened) && !pstr->buffer) { in line6_buffer_acquire()
157 pstr->buffer = in line6_buffer_acquire()
161 if (!pstr->buffer) in line6_buffer_acquire()
171 struct line6_pcm_stream *pstr, int type) in line6_buffer_release() argument
173 clear_bit(type, &pstr->opened); in line6_buffer_release()
174 if (!pstr->opened) { in line6_buffer_release()
175 line6_wait_clear_audio_urbs(line6pcm, pstr); in line6_buffer_release()
176 kfree(pstr->buffer); in line6_buffer_release()
177 pstr->buffer = NULL; in line6_buffer_release()
186 struct line6_pcm_stream *pstr = get_stream(line6pcm, direction); in line6_stream_start() local
189 spin_lock_irqsave(&pstr->lock, flags); in line6_stream_start()
190 if (!test_and_set_bit(type, &pstr->running) && in line6_stream_start()
191 !(pstr->active_urbs || pstr->unlink_urbs)) { in line6_stream_start()
192 pstr->count = 0; in line6_stream_start()
201 clear_bit(type, &pstr->running); in line6_stream_start()
202 spin_unlock_irqrestore(&pstr->lock, flags); in line6_stream_start()
211 struct line6_pcm_stream *pstr = get_stream(line6pcm, direction); in line6_stream_stop() local
213 spin_lock_irqsave(&pstr->lock, flags); in line6_stream_stop()
214 clear_bit(type, &pstr->running); in line6_stream_stop()
215 if (!pstr->running) { in line6_stream_stop()
216 spin_unlock_irqrestore(&pstr->lock, flags); in line6_stream_stop()
217 line6_unlink_audio_urbs(line6pcm, pstr); in line6_stream_stop()
218 spin_lock_irqsave(&pstr->lock, flags); in line6_stream_stop()
224 spin_unlock_irqrestore(&pstr->lock, flags); in line6_stream_stop()
293 struct line6_pcm_stream *pstr = get_stream(line6pcm, substream->stream); in snd_line6_pointer() local
295 return pstr->pos_done; in snd_line6_pointer()
303 struct line6_pcm_stream *pstr; in line6_pcm_acquire() local
309 pstr = get_stream(line6pcm, dir); in line6_pcm_acquire()
310 ret = line6_buffer_acquire(line6pcm, pstr, dir, type); in line6_pcm_acquire()
313 if (!pstr->running) in line6_pcm_acquire()
314 line6_wait_clear_audio_urbs(line6pcm, pstr); in line6_pcm_acquire()
334 struct line6_pcm_stream *pstr; in line6_pcm_release() local
341 pstr = get_stream(line6pcm, dir); in line6_pcm_release()
342 line6_buffer_release(line6pcm, pstr, type); in line6_pcm_release()
354 struct line6_pcm_stream *pstr = get_stream(line6pcm, substream->stream); in snd_line6_hw_params() local
357 ret = line6_buffer_acquire(line6pcm, pstr, substream->stream, in snd_line6_hw_params()
362 pstr->period = params_period_bytes(hw_params); in snd_line6_hw_params()
372 struct line6_pcm_stream *pstr = get_stream(line6pcm, substream->stream); in snd_line6_hw_free() local
375 line6_buffer_release(line6pcm, pstr, LINE6_STREAM_PCM); in snd_line6_hw_free()
589 struct line6_pcm_stream *pstr = get_stream(line6pcm, substream->stream); in snd_line6_prepare() local
592 if (!pstr->running) in snd_line6_prepare()
593 line6_wait_clear_audio_urbs(line6pcm, pstr); in snd_line6_prepare()