• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/sound/usb/usx2y/

Lines Matching defs:usX2Y

76 	struct usX2Ydev	*usX2Y = subs->usX2Y;
86 len = urb->iso_frame_desc[i].actual_length / usX2Y->stride;
95 int blen = cnt * usX2Y->stride;
96 memcpy(runtime->dma_area + hwptr_done * usX2Y->stride, cp, blen);
97 memcpy(runtime->dma_area, cp + blen, len * usX2Y->stride - blen);
99 memcpy(runtime->dma_area + hwptr_done * usX2Y->stride, cp,
100 len * usX2Y->stride);
131 struct usX2Ydev *usX2Y = subs->usX2Y;
137 counts = cap_urb->iso_frame_desc[pack].actual_length / usX2Y->stride;
159 subs->hwptr * usX2Y->stride, len * usX2Y->stride);
160 memcpy(subs->tmpbuf + len * usX2Y->stride,
161 runtime->dma_area, (count - len) * usX2Y->stride);
166 urb->transfer_buffer = runtime->dma_area + subs->hwptr * usX2Y->stride;
172 urb->transfer_buffer_length = count * usX2Y->stride;
184 int len = urb->actual_length / subs->usX2Y->stride;
203 urb->dev = subs->usX2Y->chip.dev; /* we need to set this at each time */
260 static void usX2Y_clients_stop(struct usX2Ydev *usX2Y)
265 struct snd_usX2Y_substream *subs = usX2Y->subs[s];
272 struct snd_usX2Y_substream *subs = usX2Y->subs[s];
285 usX2Y->prepare_subs = NULL;
286 wake_up(&usX2Y->prepare_wait_queue);
289 static void usX2Y_error_urb_status(struct usX2Ydev *usX2Y,
294 usX2Y_clients_stop(usX2Y);
297 static void usX2Y_error_sequence(struct usX2Ydev *usX2Y,
303 usb_get_current_frame_number(usX2Y->chip.dev),
305 usX2Y->wait_iso_frame, urb->start_frame, usX2Y->wait_iso_frame);
306 usX2Y_clients_stop(usX2Y);
312 struct usX2Ydev *usX2Y = subs->usX2Y;
316 usb_get_current_frame_number(usX2Y->chip.dev),
322 usX2Y_error_urb_status(usX2Y, subs, urb);
325 if (likely((urb->start_frame & 0xFFFF) == (usX2Y->wait_iso_frame & 0xFFFF)))
328 usX2Y_error_sequence(usX2Y, subs, urb);
332 struct snd_usX2Y_substream *capsubs = usX2Y->subs[SNDRV_PCM_STREAM_CAPTURE],
333 *playbacksubs = usX2Y->subs[SNDRV_PCM_STREAM_PLAYBACK];
339 usX2Y->wait_iso_frame += nr_of_packs();
342 usX2Y_clients_stop(usX2Y);
348 static void usX2Y_urbs_set_complete(struct usX2Ydev * usX2Y,
353 struct snd_usX2Y_substream *subs = usX2Y->subs[s];
363 static void usX2Y_subs_startup_finish(struct usX2Ydev * usX2Y)
365 usX2Y_urbs_set_complete(usX2Y, i_usX2Y_urb_complete);
366 usX2Y->prepare_subs = NULL;
372 struct usX2Ydev *usX2Y = subs->usX2Y;
373 struct snd_usX2Y_substream *prepare_subs = usX2Y->prepare_subs;
376 usX2Y_subs_startup_finish(usX2Y);
378 wake_up(&usX2Y->prepare_wait_queue);
414 subs != subs->usX2Y->subs[SNDRV_PCM_STREAM_PLAYBACK]);
426 int is_playback = subs == subs->usX2Y->subs[SNDRV_PCM_STREAM_PLAYBACK];
427 struct usb_device *dev = subs->usX2Y->chip.dev;
474 struct usX2Ydev *usX2Y = subs->usX2Y;
475 usX2Y->prepare_subs = subs;
478 usX2Y_urbs_set_complete(usX2Y, i_usX2Y_subs_startup);
484 struct usX2Ydev *usX2Y = subs->usX2Y;
490 struct snd_usX2Y_substream *subs = usX2Y->subs[i];
503 urb->dev = usX2Y->chip.dev;
516 usX2Y->wait_iso_frame = urb->start_frame;
524 wait_event(usX2Y->prepare_wait_queue, NULL == usX2Y->prepare_subs);
530 usX2Y_subs_startup_finish(usX2Y);
531 usX2Y_clients_stop(usX2Y); // something is completely wroong > stop evrything
555 atomic_read(&subs->usX2Y->subs[SNDRV_PCM_STREAM_CAPTURE]->state) >= state_PREPARED) {
662 struct usX2Ydev *usX2Y = urb->context;
666 if (0 == --usX2Y->US04->len)
667 wake_up(&usX2Y->In04WaitQueue);
670 static int usX2Y_rate_set(struct usX2Ydev *usX2Y, int rate)
677 if (usX2Y->rate != rate) {
695 usb_fill_bulk_urb(us->urb[i], usX2Y->chip.dev, usb_sndbulkpipe(usX2Y->chip.dev, 4),
696 usbdata + i, 2, i_usX2Y_04Int, usX2Y);
703 usX2Y->US04 = us;
704 wait_event_timeout(usX2Y->In04WaitQueue, 0 == us->len, HZ);
705 usX2Y->US04 = NULL;
720 usX2Y->US04 = NULL;
724 usX2Y->rate = rate;
732 static int usX2Y_format_set(struct usX2Ydev *usX2Y, snd_pcm_format_t format)
738 usX2Y->stride = 6;
741 usX2Y->stride = 4;
743 list_for_each(p, &usX2Y->chip.midi_list) {
746 usb_kill_urb(usX2Y->In04urb);
747 if ((err = usb_set_interface(usX2Y->chip.dev, 0, alternate))) {
751 usX2Y->In04urb->dev = usX2Y->chip.dev;
752 err = usb_submit_urb(usX2Y->In04urb, GFP_KERNEL);
753 list_for_each(p, &usX2Y->chip.midi_list) {
756 usX2Y->format = format;
757 usX2Y->rate = 0;
772 // all pcm substreams off one usX2Y have to operate at the same rate & format
808 mutex_lock(&subs->usX2Y->prepare_mutex);
812 struct snd_usX2Y_substream *cap_subs = subs->usX2Y->subs[SNDRV_PCM_STREAM_CAPTURE];
823 struct snd_usX2Y_substream *playback_subs = subs->usX2Y->subs[SNDRV_PCM_STREAM_PLAYBACK];
829 mutex_unlock(&subs->usX2Y->prepare_mutex);
841 struct usX2Ydev *usX2Y = subs->usX2Y;
842 struct snd_usX2Y_substream *capsubs = subs->usX2Y->subs[SNDRV_PCM_STREAM_CAPTURE];
846 mutex_lock(&usX2Y->prepare_mutex);
851 if (usX2Y->format != runtime->format)
852 if ((err = usX2Y_format_set(usX2Y, runtime->format)) < 0)
854 if (usX2Y->rate != runtime->rate)
855 if ((err = usX2Y_rate_set(usX2Y, runtime->rate)) < 0)
866 mutex_unlock(&usX2Y->prepare_mutex);
897 if (subs->usX2Y->chip_status & USX2Y_STAT_CHIP_MMAP_PCM_URBS)
958 usX2Y(card)->subs + 2 * usX2Y(card)->chip.pcm_devs;
967 usX2Y_substream[i]->usX2Y = usX2Y(card);
974 err = snd_pcm_new(card, NAME_ALLCAPS" Audio", usX2Y(card)->chip.pcm_devs,
990 sprintf(pcm->name, NAME_ALLCAPS" Audio #%d", usX2Y(card)->chip.pcm_devs);
1004 usX2Y(card)->chip.pcm_devs++;
1016 INIT_LIST_HEAD(&usX2Y(card)->chip.pcm_list);
1020 if (le16_to_cpu(usX2Y(card)->chip.dev->descriptor.idProduct) == USB_ID_US428)
1023 if (le16_to_cpu(usX2Y(card)->chip.dev->descriptor.idProduct) != USB_ID_US122)
1024 err = usX2Y_rate_set(usX2Y(card), 44100); // Lets us428 recognize output-volume settings, disturbs us122.