Lines Matching refs:sub
196 static void usb6fire_pcm_capture(struct pcm_substream *sub, struct pcm_urb *urb) in usb6fire_pcm_capture() argument
202 struct pcm_runtime *rt = snd_pcm_substream_chip(sub->instance); in usb6fire_pcm_capture()
203 struct snd_pcm_runtime *alsa_rt = sub->instance->runtime; in usb6fire_pcm_capture()
205 u32 *dest = (u32 *) (alsa_rt->dma_area + sub->dma_off in usb6fire_pcm_capture()
232 sub->dma_off++; in usb6fire_pcm_capture()
233 sub->period_off++; in usb6fire_pcm_capture()
235 sub->dma_off = 0; in usb6fire_pcm_capture()
243 static void usb6fire_pcm_playback(struct pcm_substream *sub, in usb6fire_pcm_playback() argument
249 struct pcm_runtime *rt = snd_pcm_substream_chip(sub->instance); in usb6fire_pcm_playback()
250 struct snd_pcm_runtime *alsa_rt = sub->instance->runtime; in usb6fire_pcm_playback()
251 u32 *src = (u32 *) (alsa_rt->dma_area + sub->dma_off in usb6fire_pcm_playback()
280 sub->dma_off++; in usb6fire_pcm_playback()
281 sub->period_off++; in usb6fire_pcm_playback()
284 sub->dma_off = 0; in usb6fire_pcm_playback()
295 struct pcm_substream *sub; in usb6fire_pcm_in_urb_handler() local
319 sub = &rt->capture; in usb6fire_pcm_in_urb_handler()
320 spin_lock_irqsave(&sub->lock, flags); in usb6fire_pcm_in_urb_handler()
321 if (sub->active) { in usb6fire_pcm_in_urb_handler()
322 usb6fire_pcm_capture(sub, in_urb); in usb6fire_pcm_in_urb_handler()
323 if (sub->period_off >= sub->instance->runtime->period_size) { in usb6fire_pcm_in_urb_handler()
324 sub->period_off %= sub->instance->runtime->period_size; in usb6fire_pcm_in_urb_handler()
325 spin_unlock_irqrestore(&sub->lock, flags); in usb6fire_pcm_in_urb_handler()
326 snd_pcm_period_elapsed(sub->instance); in usb6fire_pcm_in_urb_handler()
328 spin_unlock_irqrestore(&sub->lock, flags); in usb6fire_pcm_in_urb_handler()
330 spin_unlock_irqrestore(&sub->lock, flags); in usb6fire_pcm_in_urb_handler()
344 sub = &rt->playback; in usb6fire_pcm_in_urb_handler()
345 spin_lock_irqsave(&sub->lock, flags); in usb6fire_pcm_in_urb_handler()
346 if (sub->active) { in usb6fire_pcm_in_urb_handler()
347 usb6fire_pcm_playback(sub, out_urb); in usb6fire_pcm_in_urb_handler()
348 if (sub->period_off >= sub->instance->runtime->period_size) { in usb6fire_pcm_in_urb_handler()
349 sub->period_off %= sub->instance->runtime->period_size; in usb6fire_pcm_in_urb_handler()
350 spin_unlock_irqrestore(&sub->lock, flags); in usb6fire_pcm_in_urb_handler()
351 snd_pcm_period_elapsed(sub->instance); in usb6fire_pcm_in_urb_handler()
353 spin_unlock_irqrestore(&sub->lock, flags); in usb6fire_pcm_in_urb_handler()
355 spin_unlock_irqrestore(&sub->lock, flags); in usb6fire_pcm_in_urb_handler()
393 struct pcm_substream *sub = NULL; in usb6fire_pcm_open() local
406 sub = &rt->playback; in usb6fire_pcm_open()
411 sub = &rt->capture; in usb6fire_pcm_open()
414 if (!sub) { in usb6fire_pcm_open()
420 sub->instance = alsa_sub; in usb6fire_pcm_open()
421 sub->active = false; in usb6fire_pcm_open()
429 struct pcm_substream *sub = usb6fire_pcm_get_substream(alsa_sub); in usb6fire_pcm_close() local
436 if (sub) { in usb6fire_pcm_close()
438 spin_lock_irqsave(&sub->lock, flags); in usb6fire_pcm_close()
439 sub->instance = NULL; in usb6fire_pcm_close()
440 sub->active = false; in usb6fire_pcm_close()
441 spin_unlock_irqrestore(&sub->lock, flags); in usb6fire_pcm_close()
468 struct pcm_substream *sub = usb6fire_pcm_get_substream(alsa_sub); in usb6fire_pcm_prepare() local
474 if (!sub) in usb6fire_pcm_prepare()
478 sub->dma_off = 0; in usb6fire_pcm_prepare()
479 sub->period_off = 0; in usb6fire_pcm_prepare()
512 struct pcm_substream *sub = usb6fire_pcm_get_substream(alsa_sub); in usb6fire_pcm_trigger() local
518 if (!sub) in usb6fire_pcm_trigger()
524 spin_lock_irqsave(&sub->lock, flags); in usb6fire_pcm_trigger()
525 sub->active = true; in usb6fire_pcm_trigger()
526 spin_unlock_irqrestore(&sub->lock, flags); in usb6fire_pcm_trigger()
531 spin_lock_irqsave(&sub->lock, flags); in usb6fire_pcm_trigger()
532 sub->active = false; in usb6fire_pcm_trigger()
533 spin_unlock_irqrestore(&sub->lock, flags); in usb6fire_pcm_trigger()
544 struct pcm_substream *sub = usb6fire_pcm_get_substream(alsa_sub); in usb6fire_pcm_pointer() local
549 if (rt->panic || !sub) in usb6fire_pcm_pointer()
552 spin_lock_irqsave(&sub->lock, flags); in usb6fire_pcm_pointer()
553 ret = sub->dma_off; in usb6fire_pcm_pointer()
554 spin_unlock_irqrestore(&sub->lock, flags); in usb6fire_pcm_pointer()