Lines Matching refs:rt

112 static int hiface_pcm_set_rate(struct pcm_runtime *rt, unsigned int rate)
114 struct usb_device *device = rt->chip->dev;
172 struct pcm_runtime *rt = snd_pcm_substream_chip(alsa_sub);
173 struct device *device = &rt->chip->dev->dev;
176 return &rt->playback;
183 static void hiface_pcm_stream_stop(struct pcm_runtime *rt)
187 if (rt->stream_state != STREAM_DISABLED) {
188 rt->stream_state = STREAM_STOPPING;
192 &rt->out_urbs[i].submitted, 100);
195 &rt->out_urbs[i].submitted);
196 usb_kill_urb(&rt->out_urbs[i].instance);
199 rt->stream_state = STREAM_DISABLED;
204 static int hiface_pcm_stream_start(struct pcm_runtime *rt)
209 if (rt->stream_state == STREAM_DISABLED) {
212 rt->panic = false;
215 rt->stream_state = STREAM_STARTING;
217 memset(rt->out_urbs[i].buffer, 0, PCM_PACKET_SIZE);
218 usb_anchor_urb(&rt->out_urbs[i].instance,
219 &rt->out_urbs[i].submitted);
220 ret = usb_submit_urb(&rt->out_urbs[i].instance,
223 hiface_pcm_stream_stop(rt);
229 wait_event_timeout(rt->stream_wait_queue, rt->stream_wait_cond,
231 if (rt->stream_wait_cond) {
232 struct device *device = &rt->chip->dev->dev;
235 rt->stream_state = STREAM_RUNNING;
237 hiface_pcm_stream_stop(rt);
305 struct pcm_runtime *rt = out_urb->chip->pcm;
311 if (rt->panic || rt->stream_state == STREAM_STOPPING)
321 if (rt->stream_state == STREAM_STARTING) {
322 rt->stream_wait_cond = true;
323 wake_up(&rt->stream_wait_queue);
327 sub = &rt->playback;
346 rt->panic = true;
351 struct pcm_runtime *rt = snd_pcm_substream_chip(alsa_sub);
356 if (rt->panic)
359 mutex_lock(&rt->stream_mutex);
363 sub = &rt->playback;
366 struct device *device = &rt->chip->dev->dev;
367 mutex_unlock(&rt->stream_mutex);
372 if (rt->extra_freq) {
381 mutex_unlock(&rt->stream_mutex);
388 mutex_unlock(&rt->stream_mutex);
394 struct pcm_runtime *rt = snd_pcm_substream_chip(alsa_sub);
398 if (rt->panic)
401 mutex_lock(&rt->stream_mutex);
403 hiface_pcm_stream_stop(rt);
412 mutex_unlock(&rt->stream_mutex);
418 struct pcm_runtime *rt = snd_pcm_substream_chip(alsa_sub);
423 if (rt->panic)
428 mutex_lock(&rt->stream_mutex);
430 hiface_pcm_stream_stop(rt);
435 if (rt->stream_state == STREAM_DISABLED) {
437 ret = hiface_pcm_set_rate(rt, alsa_rt->rate);
439 mutex_unlock(&rt->stream_mutex);
442 ret = hiface_pcm_stream_start(rt);
444 mutex_unlock(&rt->stream_mutex);
448 mutex_unlock(&rt->stream_mutex);
455 struct pcm_runtime *rt = snd_pcm_substream_chip(alsa_sub);
457 if (rt->panic)
485 struct pcm_runtime *rt = snd_pcm_substream_chip(alsa_sub);
489 if (rt->panic || !sub)
530 struct pcm_runtime *rt = chip->pcm;
532 if (rt) {
533 rt->panic = true;
535 mutex_lock(&rt->stream_mutex);
536 hiface_pcm_stream_stop(rt);
537 mutex_unlock(&rt->stream_mutex);
543 struct pcm_runtime *rt = chip->pcm;
547 kfree(rt->out_urbs[i].buffer);
555 struct pcm_runtime *rt = pcm->private_data;
557 if (rt)
558 hiface_pcm_destroy(rt->chip);
566 struct pcm_runtime *rt;
568 rt = kzalloc(sizeof(*rt), GFP_KERNEL);
569 if (!rt)
572 rt->chip = chip;
573 rt->stream_state = STREAM_DISABLED;
575 rt->extra_freq = 1;
577 init_waitqueue_head(&rt->stream_wait_queue);
578 mutex_init(&rt->stream_mutex);
579 spin_lock_init(&rt->playback.lock);
582 ret = hiface_pcm_init_urb(&rt->out_urbs[i], chip, OUT_EP,
594 pcm->private_data = rt;
602 rt->instance = pcm;
604 chip->pcm = rt;
609 kfree(rt->out_urbs[i].buffer);
610 kfree(rt);