Lines Matching defs:substream
233 struct snd_pcm_substream *substream; /* assigned PCM substream */
343 struct snd_pcm_substream *substream,
374 addr = (u32)substream->runtime->dma_addr;
403 struct snd_pcm_substream *substream)
647 static snd_pcm_uframes_t snd_atiixp_pcm_pointer(struct snd_pcm_substream *substream)
649 struct atiixp *chip = snd_pcm_substream_chip(substream);
650 struct snd_pcm_runtime *runtime = substream->runtime;
670 * XRUN detected, and stop the PCM substream
674 if (! dma->substream || ! dma->running)
677 snd_pcm_stop_xrun(dma->substream);
681 * the period ack. update the substream.
685 if (! dma->substream || ! dma->running)
687 snd_pcm_period_elapsed(dma->substream);
707 static int snd_atiixp_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
709 struct atiixp *chip = snd_pcm_substream_chip(substream);
710 struct atiixp_dma *dma = substream->runtime->private_data;
861 static int snd_atiixp_spdif_prepare(struct snd_pcm_substream *substream)
863 struct atiixp *chip = snd_pcm_substream_chip(substream);
877 substream->runtime->format == SNDRV_PCM_FORMAT_S16_LE ?
888 static int snd_atiixp_playback_prepare(struct snd_pcm_substream *substream)
890 struct atiixp *chip = snd_pcm_substream_chip(substream);
895 switch (substream->runtime->channels) {
919 substream->runtime->format == SNDRV_PCM_FORMAT_S16_LE ?
926 substream->runtime->channels >= 6 ? ATI_REG_6CH_REORDER_EN: 0);
933 static int snd_atiixp_capture_prepare(struct snd_pcm_substream *substream)
935 struct atiixp *chip = snd_pcm_substream_chip(substream);
939 substream->runtime->format == SNDRV_PCM_FORMAT_S16_LE ?
948 static int snd_atiixp_pcm_hw_params(struct snd_pcm_substream *substream,
951 struct atiixp *chip = snd_pcm_substream_chip(substream);
952 struct atiixp_dma *dma = substream->runtime->private_data;
955 dma->buf_addr = substream->runtime->dma_addr;
958 err = atiixp_build_dma_packets(chip, dma, substream,
983 static int snd_atiixp_pcm_hw_free(struct snd_pcm_substream *substream)
985 struct atiixp *chip = snd_pcm_substream_chip(substream);
986 struct atiixp_dma *dma = substream->runtime->private_data;
993 atiixp_clear_dma_packets(chip, dma, substream);
1021 static int snd_atiixp_pcm_open(struct snd_pcm_substream *substream,
1024 struct atiixp *chip = snd_pcm_substream_chip(substream);
1025 struct snd_pcm_runtime *runtime = substream->runtime;
1033 dma->substream = substream;
1056 static int snd_atiixp_pcm_close(struct snd_pcm_substream *substream,
1059 struct atiixp *chip = snd_pcm_substream_chip(substream);
1066 dma->substream = NULL;
1073 static int snd_atiixp_playback_open(struct snd_pcm_substream *substream)
1075 struct atiixp *chip = snd_pcm_substream_chip(substream);
1079 err = snd_atiixp_pcm_open(substream, &chip->dmas[ATI_DMA_PLAYBACK], 0);
1083 substream->runtime->hw.channels_max = chip->max_channels;
1086 snd_pcm_hw_constraint_step(substream->runtime, 0,
1091 static int snd_atiixp_playback_close(struct snd_pcm_substream *substream)
1093 struct atiixp *chip = snd_pcm_substream_chip(substream);
1096 err = snd_atiixp_pcm_close(substream, &chip->dmas[ATI_DMA_PLAYBACK]);
1101 static int snd_atiixp_capture_open(struct snd_pcm_substream *substream)
1103 struct atiixp *chip = snd_pcm_substream_chip(substream);
1104 return snd_atiixp_pcm_open(substream, &chip->dmas[ATI_DMA_CAPTURE], 1);
1107 static int snd_atiixp_capture_close(struct snd_pcm_substream *substream)
1109 struct atiixp *chip = snd_pcm_substream_chip(substream);
1110 return snd_atiixp_pcm_close(substream, &chip->dmas[ATI_DMA_CAPTURE]);
1113 static int snd_atiixp_spdif_open(struct snd_pcm_substream *substream)
1115 struct atiixp *chip = snd_pcm_substream_chip(substream);
1119 err = snd_atiixp_pcm_open(substream, &chip->dmas[ATI_DMA_PLAYBACK], 2);
1121 err = snd_atiixp_pcm_open(substream, &chip->dmas[ATI_DMA_SPDIF], -1);
1126 static int snd_atiixp_spdif_close(struct snd_pcm_substream *substream)
1128 struct atiixp *chip = snd_pcm_substream_chip(substream);
1132 err = snd_atiixp_pcm_close(substream, &chip->dmas[ATI_DMA_PLAYBACK]);
1134 err = snd_atiixp_pcm_close(substream, &chip->dmas[ATI_DMA_SPDIF]);
1488 if (dma->substream && dma->suspended) {
1490 dma->substream->ops->prepare(dma->substream);