Lines Matching refs:usx2y
55 struct usx2ydev *usx2y = subs->usx2y; in usx2y_usbpcm_urb_capt_retire() local
56 if (0 > usx2y->hwdep_pcm_shm->capture_iso_start) { //FIXME in usx2y_usbpcm_urb_capt_retire()
57 int head = usx2y->hwdep_pcm_shm->captured_iso_head + 1; in usx2y_usbpcm_urb_capt_retire()
58 if (head >= ARRAY_SIZE(usx2y->hwdep_pcm_shm->captured_iso)) in usx2y_usbpcm_urb_capt_retire()
60 usx2y->hwdep_pcm_shm->capture_iso_start = head; in usx2y_usbpcm_urb_capt_retire()
68 lens += urb->iso_frame_desc[i].actual_length / usx2y->stride; in usx2y_usbpcm_urb_capt_retire()
83 struct usx2ydev * usx2y) in usx2y_iso_frames_per_buffer() argument
85 …return (runtime->buffer_size * 1000) / usx2y->rate + 1; //FIXME: so far only correct period_size =… in usx2y_iso_frames_per_buffer()
102 struct usx2ydev *usx2y = subs->usx2y; in usx2y_hwdep_urb_play_prepare() local
103 struct snd_usx2y_hwdep_pcm_shm *shm = usx2y->hwdep_pcm_shm; in usx2y_hwdep_urb_play_prepare()
108 usx2y_iso_frames_per_buffer(runtime, usx2y); in usx2y_hwdep_urb_play_prepare()
117 counts = shm->captured_iso[shm->playback_iso_head].length / usx2y->stride; in usx2y_hwdep_urb_play_prepare()
132 urb->transfer_buffer_length = count * usx2y->stride; in usx2y_hwdep_urb_play_prepare()
144 struct snd_usx2y_hwdep_pcm_shm *shm = subs->usx2y->hwdep_pcm_shm; in usx2y_usbpcm_urb_capt_iso_advance()
221 struct usx2ydev *usx2y = subs->usx2y; in i_usx2y_usbpcm_urb_complete() local
226 usb_get_current_frame_number(usx2y->dev), in i_usx2y_usbpcm_urb_complete()
232 usx2y_error_urb_status(usx2y, subs, urb); in i_usx2y_usbpcm_urb_complete()
237 capsubs = usx2y->subs[SNDRV_PCM_STREAM_CAPTURE]; in i_usx2y_usbpcm_urb_complete()
238 capsubs2 = usx2y->subs[SNDRV_PCM_STREAM_CAPTURE + 2]; in i_usx2y_usbpcm_urb_complete()
239 playbacksubs = usx2y->subs[SNDRV_PCM_STREAM_PLAYBACK]; in i_usx2y_usbpcm_urb_complete()
244 usx2y->wait_iso_frame += nr_of_packs(); in i_usx2y_usbpcm_urb_complete()
247 usx2y_clients_stop(usx2y); in i_usx2y_usbpcm_urb_complete()
271 static void usx2y_usbpcm_subs_startup_finish(struct usx2ydev * usx2y) in usx2y_usbpcm_subs_startup_finish() argument
273 usx2y_urbs_set_complete(usx2y, i_usx2y_usbpcm_urb_complete); in usx2y_usbpcm_subs_startup_finish()
274 usx2y->prepare_subs = NULL; in usx2y_usbpcm_subs_startup_finish()
280 struct usx2ydev *usx2y = subs->usx2y; in i_usx2y_usbpcm_subs_startup() local
281 struct snd_usx2y_substream *prepare_subs = usx2y->prepare_subs; in i_usx2y_usbpcm_subs_startup()
285 if (prepare_subs == usx2y->subs[SNDRV_PCM_STREAM_CAPTURE]) { in i_usx2y_usbpcm_subs_startup()
286 struct snd_usx2y_substream *cap_subs2 = usx2y->subs[SNDRV_PCM_STREAM_CAPTURE + 2]; in i_usx2y_usbpcm_subs_startup()
290 usx2y_usbpcm_subs_startup_finish(usx2y); in i_usx2y_usbpcm_subs_startup()
291 wake_up(&usx2y->prepare_wait_queue); in i_usx2y_usbpcm_subs_startup()
304 int is_playback = subs == subs->usx2y->subs[SNDRV_PCM_STREAM_PLAYBACK]; in usx2y_usbpcm_urbs_allocate()
305 struct usb_device *dev = subs->usx2y->dev; in usx2y_usbpcm_urbs_allocate()
326 subs->usx2y->hwdep_pcm_shm->playback : ( in usx2y_usbpcm_urbs_allocate()
328 subs->usx2y->hwdep_pcm_shm->capture0x8 : in usx2y_usbpcm_urbs_allocate()
329 subs->usx2y->hwdep_pcm_shm->capture0xA); in usx2y_usbpcm_urbs_allocate()
348 *cap_subs2 = subs->usx2y->subs[SNDRV_PCM_STREAM_CAPTURE + 2]; in snd_usx2y_usbpcm_hw_free()
349 mutex_lock(&subs->usx2y->pcm_mutex); in snd_usx2y_usbpcm_hw_free()
353 struct snd_usx2y_substream *cap_subs = subs->usx2y->subs[SNDRV_PCM_STREAM_CAPTURE]; in snd_usx2y_usbpcm_hw_free()
368 struct snd_usx2y_substream *playback_subs = subs->usx2y->subs[SNDRV_PCM_STREAM_PLAYBACK]; in snd_usx2y_usbpcm_hw_free()
378 mutex_unlock(&subs->usx2y->pcm_mutex); in snd_usx2y_usbpcm_hw_free()
384 struct usx2ydev * usx2y = subs->usx2y; in usx2y_usbpcm_subs_startup() local
385 usx2y->prepare_subs = subs; in usx2y_usbpcm_subs_startup()
388 usx2y_urbs_set_complete(usx2y, i_usx2y_usbpcm_subs_startup); in usx2y_usbpcm_subs_startup()
395 struct usx2ydev *usx2y = subs->usx2y; in usx2y_usbpcm_urbs_start() local
398 usx2y->hwdep_pcm_shm->captured_iso_head = -1; in usx2y_usbpcm_urbs_start()
399 usx2y->hwdep_pcm_shm->captured_iso_frames = 0; in usx2y_usbpcm_urbs_start()
403 struct snd_usx2y_substream *subs = usx2y->subs[stream + p]; in usx2y_usbpcm_urbs_start()
412 struct snd_usx2y_substream *subs = usx2y->subs[p]; in usx2y_usbpcm_urbs_start()
421 struct snd_usx2y_substream *subs = usx2y->subs[stream + p]; in usx2y_usbpcm_urbs_start()
428 urb->dev = usx2y->dev; in usx2y_usbpcm_urbs_start()
441 usx2y->wait_iso_frame = urb->start_frame; in usx2y_usbpcm_urbs_start()
452 wait_event(usx2y->prepare_wait_queue, NULL == usx2y->prepare_subs); in usx2y_usbpcm_urbs_start()
458 usx2y_subs_startup_finish(usx2y); // Call it now in usx2y_usbpcm_urbs_start()
459 usx2y_clients_stop(usx2y); // something is completely wroong > stop evrything in usx2y_usbpcm_urbs_start()
473 struct usx2ydev *usx2y = subs->usx2y; in snd_usx2y_usbpcm_prepare() local
474 struct snd_usx2y_substream *capsubs = subs->usx2y->subs[SNDRV_PCM_STREAM_CAPTURE]; in snd_usx2y_usbpcm_prepare()
478 if (NULL == usx2y->hwdep_pcm_shm) { in snd_usx2y_usbpcm_prepare()
479 usx2y->hwdep_pcm_shm = alloc_pages_exact(sizeof(struct snd_usx2y_hwdep_pcm_shm), in snd_usx2y_usbpcm_prepare()
481 if (!usx2y->hwdep_pcm_shm) in snd_usx2y_usbpcm_prepare()
483 memset(usx2y->hwdep_pcm_shm, 0, sizeof(struct snd_usx2y_hwdep_pcm_shm)); in snd_usx2y_usbpcm_prepare()
486 mutex_lock(&usx2y->pcm_mutex); in snd_usx2y_usbpcm_prepare()
491 if (usx2y->format != runtime->format) in snd_usx2y_usbpcm_prepare()
492 if ((err = usx2y_format_set(usx2y, runtime->format)) < 0) in snd_usx2y_usbpcm_prepare()
494 if (usx2y->rate != runtime->rate) in snd_usx2y_usbpcm_prepare()
495 if ((err = usx2y_rate_set(usx2y, runtime->rate)) < 0) in snd_usx2y_usbpcm_prepare()
504 usx2y->hwdep_pcm_shm->playback_iso_start = -1; in snd_usx2y_usbpcm_prepare()
506 while (usx2y_iso_frames_per_buffer(runtime, usx2y) > in snd_usx2y_usbpcm_prepare()
507 usx2y->hwdep_pcm_shm->captured_iso_frames) { in snd_usx2y_usbpcm_prepare()
510 usx2y_iso_frames_per_buffer(runtime, usx2y), in snd_usx2y_usbpcm_prepare()
511 usx2y->hwdep_pcm_shm->captured_iso_frames); in snd_usx2y_usbpcm_prepare()
521 usx2y_iso_frames_per_buffer(runtime, usx2y), in snd_usx2y_usbpcm_prepare()
522 usx2y->hwdep_pcm_shm->captured_iso_frames); in snd_usx2y_usbpcm_prepare()
524 usx2y->hwdep_pcm_shm->capture_iso_start = -1; in snd_usx2y_usbpcm_prepare()
527 mutex_unlock(&usx2y->pcm_mutex); in snd_usx2y_usbpcm_prepare()
558 if (!(subs->usx2y->chip_status & USX2Y_STAT_CHIP_MMAP_PCM_URBS)) in snd_usx2y_usbpcm_open()
562 (subs->usx2y->subs[3] ? snd_usx2y_4c : snd_usx2y_2c); in snd_usx2y_usbpcm_open()
594 struct usx2ydev *dev = usx2y(card); in usx2y_pcms_busy_check()
611 mutex_lock(&usx2y(card)->pcm_mutex); in snd_usx2y_hwdep_pcm_open()
614 usx2y(card)->chip_status |= USX2Y_STAT_CHIP_MMAP_PCM_URBS; in snd_usx2y_hwdep_pcm_open()
615 mutex_unlock(&usx2y(card)->pcm_mutex); in snd_usx2y_hwdep_pcm_open()
625 mutex_lock(&usx2y(card)->pcm_mutex); in snd_usx2y_hwdep_pcm_release()
628 usx2y(hw->card)->chip_status &= ~USX2Y_STAT_CHIP_MMAP_PCM_URBS; in snd_usx2y_hwdep_pcm_release()
629 mutex_unlock(&usx2y(card)->pcm_mutex); in snd_usx2y_hwdep_pcm_release()
667 struct usx2ydev *usx2y = hw->private_data; in snd_usx2y_hwdep_pcm_mmap() local
669 if (!(usx2y->chip_status & USX2Y_STAT_CHIP_INIT)) in snd_usx2y_hwdep_pcm_mmap()
678 if (!usx2y->hwdep_pcm_shm) { in snd_usx2y_hwdep_pcm_mmap()
690 struct usx2ydev *usx2y = hwdep->private_data; in snd_usx2y_hwdep_pcm_private_free() local
691 if (NULL != usx2y->hwdep_pcm_shm) in snd_usx2y_hwdep_pcm_private_free()
692 free_pages_exact(usx2y->hwdep_pcm_shm, sizeof(struct snd_usx2y_hwdep_pcm_shm)); in snd_usx2y_hwdep_pcm_private_free()
701 struct usb_device *dev = usx2y(card)->dev; in usx2y_hwdep_pcm_new()
709 hw->private_data = usx2y(card); in usx2y_hwdep_pcm_new()
724 pcm->private_data = usx2y(card)->subs; in usx2y_hwdep_pcm_new()