Lines Matching refs:substream

165 /* Get the active PCM substream;
172 struct snd_pcm_substream *substream;
176 substream = intelhaddata->stream_info.substream;
177 if (substream)
180 return substream;
183 /* Unref the active PCM substream;
284 static int had_prog_status_reg(struct snd_pcm_substream *substream,
295 switch (substream->runtime->rate) {
327 switch (substream->runtime->format) {
351 static int had_init_audio_ctrl(struct snd_pcm_substream *substream,
358 had_prog_status_reg(substream, intelhaddata);
365 channels = substream->runtime->channels;
372 if (substream->runtime->format == SNDRV_PCM_FORMAT_S16_LE)
375 if (substream->runtime->format == SNDRV_PCM_FORMAT_S32_LE)
592 static void had_prog_dip(struct snd_pcm_substream *substream,
604 channels = substream->runtime->channels;
611 frame2.regval = (substream->runtime->channels - 1) | (ca << 24);
614 frame2.regx.chnl_cnt = substream->runtime->channels - 1;
727 * @intelhaddata: substream private data
797 * @intelhaddata: substream private data
872 static void had_prog_bd(struct snd_pcm_substream *substream,
877 u32 addr = substream->runtime->dma_addr + ofs;
880 if (!substream->runtime->no_period_wakeup)
890 intelhaddata->pcmbuf_filled %= substream->runtime->periods;
902 static void had_init_ringbuf(struct snd_pcm_substream *substream,
905 struct snd_pcm_runtime *runtime = substream->runtime;
922 had_prog_bd(substream, intelhaddata);
931 static void had_advance_ringbuf(struct snd_pcm_substream *substream,
934 int num_periods = substream->runtime->periods;
937 had_prog_bd(substream, intelhaddata);
947 static int had_process_ringbuf(struct snd_pcm_substream *substream,
975 had_advance_ringbuf(substream, intelhaddata);
988 struct snd_pcm_substream *substream;
990 substream = had_substream_get(intelhaddata);
991 if (!substream)
995 snd_pcm_stop_xrun(substream);
1000 if (had_process_ringbuf(substream, intelhaddata) < 0)
1001 snd_pcm_stop_xrun(substream);
1003 snd_pcm_period_elapsed(substream);
1034 static int had_pcm_sync_stop(struct snd_pcm_substream *substream)
1036 struct snd_intelhad *intelhaddata = snd_pcm_substream_chip(substream);
1050 struct snd_pcm_substream *substream;
1053 substream = had_substream_get(intelhaddata);
1054 if (substream) {
1055 snd_pcm_stop_xrun(substream);
1063 static int had_pcm_open(struct snd_pcm_substream *substream)
1069 intelhaddata = snd_pcm_substream_chip(substream);
1070 runtime = substream->runtime;
1087 retval = snd_pcm_hw_constraint_step(substream->runtime, 0,
1096 /* expose PCM substream */
1098 intelhaddata->stream_info.substream = substream;
1112 static int had_pcm_close(struct snd_pcm_substream *substream)
1116 intelhaddata = snd_pcm_substream_chip(substream);
1120 intelhaddata->stream_info.substream = NULL;
1137 static int had_pcm_hw_params(struct snd_pcm_substream *substream,
1143 intelhaddata = snd_pcm_substream_chip(substream);
1153 static int had_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
1158 intelhaddata = snd_pcm_substream_chip(substream);
1186 static int had_pcm_prepare(struct snd_pcm_substream *substream)
1194 intelhaddata = snd_pcm_substream_chip(substream);
1195 runtime = substream->runtime;
1201 (int)snd_pcm_lib_buffer_bytes(substream));
1208 retval = had_prog_n(substream->runtime->rate, &n_param, intelhaddata);
1218 had_prog_cts(substream->runtime->rate, disp_samp_freq, link_rate,
1221 had_prog_dip(substream, intelhaddata);
1223 retval = had_init_audio_ctrl(substream, intelhaddata);
1226 had_init_ringbuf(substream, intelhaddata);
1242 static snd_pcm_uframes_t had_pcm_pointer(struct snd_pcm_substream *substream)
1247 intelhaddata = snd_pcm_substream_chip(substream);
1252 len = had_process_ringbuf(substream, intelhaddata);
1255 len = bytes_to_frames(substream->runtime, len);
1257 len %= substream->runtime->buffer_size;
1277 struct snd_pcm_substream *substream;
1282 substream = had_substream_get(intelhaddata);
1283 if (!substream)
1292 retval = had_prog_n(substream->runtime->rate, &n_param, intelhaddata);
1302 had_prog_cts(substream->runtime->rate, disp_samp_freq, link_rate,
1316 struct snd_pcm_substream *substream;
1337 substream = had_substream_get(intelhaddata);
1338 if (substream) {
1339 snd_pcm_stop_xrun(substream);
1349 struct snd_pcm_substream *substream;
1372 substream = had_substream_get(intelhaddata);
1373 if (substream) {
1374 snd_pcm_stop_xrun(substream);