Lines Matching refs:stream
505 struct pcxhr_stream *stream) in pcxhr_set_stream_state() argument
511 if (stream->status == PCXHR_STREAM_STATUS_SCHEDULE_RUN) in pcxhr_set_stream_state()
514 if (stream->status != PCXHR_STREAM_STATUS_SCHEDULE_STOP) { in pcxhr_set_stream_state()
521 if (!stream->substream) in pcxhr_set_stream_state()
524 stream->timer_abs_periods = 0; in pcxhr_set_stream_state()
525 stream->timer_period_frag = 0; /* reset theoretical stream pos */ in pcxhr_set_stream_state()
526 stream->timer_buf_periods = 0; in pcxhr_set_stream_state()
527 stream->timer_is_synced = 0; in pcxhr_set_stream_state()
530 stream->pipe->is_capture ? 1 : 1<<stream->substream->number; in pcxhr_set_stream_state()
533 pcxhr_set_pipe_cmd_params(&rmh, stream->pipe->is_capture, in pcxhr_set_stream_state()
534 stream->pipe->first_audio, 0, stream_mask); in pcxhr_set_stream_state()
536 chip = snd_pcm_substream_chip(stream->substream); in pcxhr_set_stream_state()
542 stream->status = in pcxhr_set_stream_state()
556 static int pcxhr_set_format(struct pcxhr_stream *stream) in pcxhr_set_format() argument
563 chip = snd_pcm_substream_chip(stream->substream); in pcxhr_set_format()
564 switch (stream->format) { in pcxhr_set_format()
598 if (stream->channels == 1) in pcxhr_set_format()
601 is_capture = stream->pipe->is_capture; in pcxhr_set_format()
602 stream_num = is_capture ? 0 : stream->substream->number; in pcxhr_set_format()
606 pcxhr_set_pipe_cmd_params(&rmh, is_capture, stream->pipe->first_audio, in pcxhr_set_format()
620 rmh.cmd[1] = stream->channels; in pcxhr_set_format()
623 rmh.cmd[2] = (stream->channels == 1) ? 0x01 : 0x03; in pcxhr_set_format()
636 static int pcxhr_update_r_buffer(struct pcxhr_stream *stream) in pcxhr_update_r_buffer() argument
640 struct snd_pcm_substream *subs = stream->substream; in pcxhr_update_r_buffer()
643 is_capture = (subs->stream == SNDRV_PCM_STREAM_CAPTURE); in pcxhr_update_r_buffer()
653 pcxhr_set_pipe_cmd_params(&rmh, is_capture, stream->pipe->first_audio, in pcxhr_update_r_buffer()
676 static int pcxhr_pipe_sample_count(struct pcxhr_stream *stream,
681 pcxhr_t *chip = snd_pcm_substream_chip(stream->substream);
683 pcxhr_set_pipe_cmd_params(&rmh, stream->pipe->is_capture, 0, 0,
684 1<<stream->pipe->first_audio);
695 static inline int pcxhr_stream_scheduled_get_pipe(struct pcxhr_stream *stream, in pcxhr_stream_scheduled_get_pipe() argument
698 if (stream->status == PCXHR_STREAM_STATUS_SCHEDULE_RUN) { in pcxhr_stream_scheduled_get_pipe()
699 *pipe = stream->pipe; in pcxhr_stream_scheduled_get_pipe()
758 struct pcxhr_stream *stream; in pcxhr_start_linked_stream() local
761 stream = &chip->capture_stream[j]; in pcxhr_start_linked_stream()
762 if (pcxhr_stream_scheduled_get_pipe(stream, &pipe)) { in pcxhr_start_linked_stream()
763 err = pcxhr_set_format(stream); in pcxhr_start_linked_stream()
764 err = pcxhr_update_r_buffer(stream); in pcxhr_start_linked_stream()
768 stream = &chip->playback_stream[j]; in pcxhr_start_linked_stream()
769 if (pcxhr_stream_scheduled_get_pipe(stream, &pipe)) { in pcxhr_start_linked_stream()
770 err = pcxhr_set_format(stream); in pcxhr_start_linked_stream()
771 err = pcxhr_update_r_buffer(stream); in pcxhr_start_linked_stream()
777 struct pcxhr_stream *stream; in pcxhr_start_linked_stream() local
780 stream = &chip->capture_stream[j]; in pcxhr_start_linked_stream()
781 if (pcxhr_stream_scheduled_get_pipe(stream, &pipe)) in pcxhr_start_linked_stream()
782 err = pcxhr_set_stream_state(chip, stream); in pcxhr_start_linked_stream()
785 stream = &chip->playback_stream[j]; in pcxhr_start_linked_stream()
786 if (pcxhr_stream_scheduled_get_pipe(stream, &pipe)) in pcxhr_start_linked_stream()
787 err = pcxhr_set_stream_state(chip, stream); in pcxhr_start_linked_stream()
806 struct pcxhr_stream *stream; in pcxhr_start_linked_stream() local
809 stream = &chip->capture_stream[j]; in pcxhr_start_linked_stream()
810 if(stream->status == PCXHR_STREAM_STATUS_STARTED) in pcxhr_start_linked_stream()
811 stream->status = PCXHR_STREAM_STATUS_RUNNING; in pcxhr_start_linked_stream()
814 stream = &chip->playback_stream[j]; in pcxhr_start_linked_stream()
815 if (stream->status == PCXHR_STREAM_STATUS_STARTED) { in pcxhr_start_linked_stream()
817 stream->timer_period_frag += mgr->granularity; in pcxhr_start_linked_stream()
818 stream->status = PCXHR_STREAM_STATUS_RUNNING; in pcxhr_start_linked_stream()
840 struct pcxhr_stream *stream; in pcxhr_trigger() local
851 stream = s->runtime->private_data; in pcxhr_trigger()
852 stream->status = in pcxhr_trigger()
858 stream = subs->runtime->private_data; in pcxhr_trigger()
860 stream->pipe->is_capture ? 'C' : 'P', in pcxhr_trigger()
861 stream->pipe->first_audio); in pcxhr_trigger()
862 if (pcxhr_set_format(stream)) in pcxhr_trigger()
864 if (pcxhr_update_r_buffer(stream)) in pcxhr_trigger()
867 stream->status = PCXHR_STREAM_STATUS_SCHEDULE_RUN; in pcxhr_trigger()
868 if (pcxhr_set_stream_state(chip, stream)) in pcxhr_trigger()
870 stream->status = PCXHR_STREAM_STATUS_RUNNING; in pcxhr_trigger()
876 stream = s->runtime->private_data; in pcxhr_trigger()
877 stream->status = PCXHR_STREAM_STATUS_SCHEDULE_STOP; in pcxhr_trigger()
878 if (pcxhr_set_stream_state(chip, stream)) in pcxhr_trigger()
955 struct pcxhr_stream *stream = subs->runtime->private_data; in pcxhr_hw_params() local
968 stream->channels = channels; in pcxhr_hw_params()
969 stream->format = format; in pcxhr_hw_params()
1021 struct pcxhr_stream *stream; in pcxhr_open() local
1029 if( subs->stream == SNDRV_PCM_STREAM_PLAYBACK ) { in pcxhr_open()
1032 stream = &chip->playback_stream[subs->number]; in pcxhr_open()
1040 stream = &chip->capture_stream[subs->number]; in pcxhr_open()
1042 if (stream->status != PCXHR_STREAM_STATUS_FREE){ in pcxhr_open()
1082 stream->status = PCXHR_STREAM_STATUS_OPEN; in pcxhr_open()
1083 stream->substream = subs; in pcxhr_open()
1084 stream->channels = 0; /* not configured yet */ in pcxhr_open()
1086 runtime->private_data = stream; in pcxhr_open()
1106 struct pcxhr_stream *stream = subs->runtime->private_data; in pcxhr_close() local
1119 stream->status = PCXHR_STREAM_STATUS_FREE; in pcxhr_close()
1120 stream->substream = NULL; in pcxhr_close()
1134 struct pcxhr_stream *stream = runtime->private_data; in pcxhr_stream_pointer() local
1139 timer_period_frag = stream->timer_period_frag; in pcxhr_stream_pointer()
1140 timer_buf_periods = stream->timer_buf_periods; in pcxhr_stream_pointer()