Lines Matching refs:sub

261 static bool hiface_pcm_playback(struct pcm_substream *sub, struct pcm_urb *urb)  in hiface_pcm_playback()  argument
263 struct snd_pcm_runtime *alsa_rt = sub->instance->runtime; in hiface_pcm_playback()
270 pcm_buffer_size = snd_pcm_lib_buffer_bytes(sub->instance); in hiface_pcm_playback()
272 if (sub->dma_off + PCM_PACKET_SIZE <= pcm_buffer_size) { in hiface_pcm_playback()
275 (unsigned int) sub->dma_off); in hiface_pcm_playback()
277 source = alsa_rt->dma_area + sub->dma_off; in hiface_pcm_playback()
285 (unsigned int) sub->dma_off); in hiface_pcm_playback()
287 len = pcm_buffer_size - sub->dma_off; in hiface_pcm_playback()
289 source = alsa_rt->dma_area + sub->dma_off; in hiface_pcm_playback()
296 sub->dma_off += PCM_PACKET_SIZE; in hiface_pcm_playback()
297 if (sub->dma_off >= pcm_buffer_size) in hiface_pcm_playback()
298 sub->dma_off -= pcm_buffer_size; in hiface_pcm_playback()
300 sub->period_off += PCM_PACKET_SIZE; in hiface_pcm_playback()
301 if (sub->period_off >= alsa_rt->period_size) { in hiface_pcm_playback()
302 sub->period_off %= alsa_rt->period_size; in hiface_pcm_playback()
312 struct pcm_substream *sub; in hiface_pcm_out_urb_handler() local
333 sub = &rt->playback; in hiface_pcm_out_urb_handler()
334 spin_lock_irqsave(&sub->lock, flags); in hiface_pcm_out_urb_handler()
335 if (sub->active) in hiface_pcm_out_urb_handler()
336 do_period_elapsed = hiface_pcm_playback(sub, out_urb); in hiface_pcm_out_urb_handler()
340 spin_unlock_irqrestore(&sub->lock, flags); in hiface_pcm_out_urb_handler()
343 snd_pcm_period_elapsed(sub->instance); in hiface_pcm_out_urb_handler()
358 struct pcm_substream *sub = NULL; in hiface_pcm_open() local
369 sub = &rt->playback; in hiface_pcm_open()
371 if (!sub) { in hiface_pcm_open()
392 sub->instance = alsa_sub; in hiface_pcm_open()
393 sub->active = false; in hiface_pcm_open()
401 struct pcm_substream *sub = hiface_pcm_get_substream(alsa_sub); in hiface_pcm_close() local
408 if (sub) { in hiface_pcm_close()
412 spin_lock_irqsave(&sub->lock, flags); in hiface_pcm_close()
413 sub->instance = NULL; in hiface_pcm_close()
414 sub->active = false; in hiface_pcm_close()
415 spin_unlock_irqrestore(&sub->lock, flags); in hiface_pcm_close()
437 struct pcm_substream *sub = hiface_pcm_get_substream(alsa_sub); in hiface_pcm_prepare() local
443 if (!sub) in hiface_pcm_prepare()
448 sub->dma_off = 0; in hiface_pcm_prepare()
449 sub->period_off = 0; in hiface_pcm_prepare()
470 struct pcm_substream *sub = hiface_pcm_get_substream(alsa_sub); in hiface_pcm_trigger() local
475 if (!sub) in hiface_pcm_trigger()
481 spin_lock_irq(&sub->lock); in hiface_pcm_trigger()
482 sub->active = true; in hiface_pcm_trigger()
483 spin_unlock_irq(&sub->lock); in hiface_pcm_trigger()
488 spin_lock_irq(&sub->lock); in hiface_pcm_trigger()
489 sub->active = false; in hiface_pcm_trigger()
490 spin_unlock_irq(&sub->lock); in hiface_pcm_trigger()
500 struct pcm_substream *sub = hiface_pcm_get_substream(alsa_sub); in hiface_pcm_pointer() local
505 if (rt->panic || !sub) in hiface_pcm_pointer()
508 spin_lock_irqsave(&sub->lock, flags); in hiface_pcm_pointer()
509 dma_offset = sub->dma_off; in hiface_pcm_pointer()
510 spin_unlock_irqrestore(&sub->lock, flags); in hiface_pcm_pointer()