Lines Matching refs:pipe
97 struct audiopipe *pipe = runtime->private_data; in audiopipe_free() local
99 if (pipe->sgpage.area) in audiopipe_free()
100 snd_dma_free_pages(&pipe->sgpage); in audiopipe_free()
101 kfree(pipe); in audiopipe_free()
270 struct audiopipe *pipe; in pcm_open() local
279 pipe = kzalloc(sizeof(struct audiopipe), GFP_KERNEL); in pcm_open()
280 if (!pipe) in pcm_open()
282 pipe->index = -1; /* Not configured yet */ in pcm_open()
285 memcpy(&pipe->hw, &pcm_hardware_skel, sizeof(struct snd_pcm_hardware)); in pcm_open()
287 pipe->constr.list = channels_list; in pcm_open()
288 pipe->constr.mask = 0; in pcm_open()
290 pipe->constr.count = i; in pcm_open()
291 if (pipe->hw.channels_max > max_channels) in pcm_open()
292 pipe->hw.channels_max = max_channels; in pcm_open()
294 pipe->hw.rate_max = 48000; in pcm_open()
295 pipe->hw.rates &= SNDRV_PCM_RATE_8000_48000; in pcm_open()
298 runtime->hw = pipe->hw; in pcm_open()
299 runtime->private_data = pipe; in pcm_open()
306 &pipe->constr); in pcm_open()
338 PAGE_SIZE, &pipe->sgpage); in pcm_open()
542 struct audiopipe *pipe; in init_engine() local
545 pipe = (struct audiopipe *) substream->runtime->private_data; in init_engine()
551 if (pipe->index >= 0) { in init_engine()
552 dev_dbg(chip->card->dev, "hwp_ie free(%d)\n", pipe->index); in init_engine()
553 err = free_pipes(chip, pipe); in init_engine()
555 chip->substream[pipe->index] = NULL; in init_engine()
558 err = allocate_pipes(chip, pipe, pipe_index, interleave); in init_engine()
573 sglist_init(chip, pipe); in init_engine()
584 sglist_add_mapping(chip, pipe, addr, rest); in init_engine()
585 sglist_add_irq(chip, pipe); in init_engine()
589 sglist_add_mapping(chip, pipe, addr, in init_engine()
602 sglist_wrap(chip, pipe); in init_engine()
607 pipe->last_period = 0; in init_engine()
608 pipe->last_counter = 0; in init_engine()
609 pipe->position = 0; in init_engine()
672 struct audiopipe *pipe; in pcm_hw_free() local
675 pipe = (struct audiopipe *) substream->runtime->private_data; in pcm_hw_free()
678 if (pipe->index >= 0) { in pcm_hw_free()
679 dev_dbg(chip->card->dev, "pcm_hw_free(%d)\n", pipe->index); in pcm_hw_free()
680 free_pipes(chip, pipe); in pcm_hw_free()
681 chip->substream[pipe->index] = NULL; in pcm_hw_free()
682 pipe->index = -1; in pcm_hw_free()
752 struct audiopipe *pipe; in pcm_trigger() local
773 pipe = chip->substream[i]->runtime->private_data; in pcm_trigger()
774 switch (pipe->state) { in pcm_trigger()
776 pipe->last_period = 0; in pcm_trigger()
777 pipe->last_counter = 0; in pcm_trigger()
778 pipe->position = 0; in pcm_trigger()
779 *pipe->dma_counter = 0; in pcm_trigger()
782 pipe->state = PIPE_STATE_STARTED; in pcm_trigger()
796 pipe = chip->substream[i]->runtime->private_data; in pcm_trigger()
797 pipe->state = PIPE_STATE_STOPPED; in pcm_trigger()
805 pipe = chip->substream[i]->runtime->private_data; in pcm_trigger()
806 pipe->state = PIPE_STATE_PAUSED; in pcm_trigger()
823 struct audiopipe *pipe = runtime->private_data; in pcm_pointer() local
831 counter = le32_to_cpu(*pipe->dma_counter); /* presumed atomic */ in pcm_pointer()
833 step = counter - pipe->last_counter; /* handles wrapping */ in pcm_pointer()
834 pipe->last_counter = counter; in pcm_pointer()
840 pipe->position += step; in pcm_pointer()
841 pipe->position %= frames_to_bytes(runtime, runtime->buffer_size); /* wrap */ in pcm_pointer()
843 return bytes_to_frames(runtime, pipe->position); in pcm_pointer()
1823 struct audiopipe *pipe = runtime->private_data; in period_has_elapsed() local
1827 if (pipe->state != PIPE_STATE_STARTED) in period_has_elapsed()
1832 counter = le32_to_cpu(*pipe->dma_counter); /* presumed atomic */ in period_has_elapsed()
1834 step = counter - pipe->last_period; /* handles wrapping */ in period_has_elapsed()
1840 pipe->last_period += step; /* used exclusively by us */ in period_has_elapsed()