Lines Matching defs:runtime

171 static void check_buf_block_i(struct pcmtst_buf_iter *v_iter, struct snd_pcm_runtime *runtime)
178 current_byte = runtime->dma_area[v_iter->buf_pos];
181 ch_num = (v_iter->total_bytes / v_iter->sample_bytes) % runtime->channels;
183 runtime->channels,
189 inc_buf_pos(v_iter, 1, runtime->dma_bytes);
192 inc_buf_pos(v_iter, v_iter->b_rw - i, runtime->dma_bytes);
195 static void check_buf_block_ni(struct pcmtst_buf_iter *v_iter, struct snd_pcm_runtime *runtime)
197 unsigned int channels = runtime->channels;
204 current_byte = runtime->dma_area[buf_pos_n(v_iter, channels, ch_num)];
212 inc_buf_pos(v_iter, 1, runtime->dma_bytes);
214 inc_buf_pos(v_iter, v_iter->b_rw - i, runtime->dma_bytes);
222 static void check_buf_block(struct pcmtst_buf_iter *v_iter, struct snd_pcm_runtime *runtime)
225 check_buf_block_i(v_iter, runtime);
227 check_buf_block_ni(v_iter, runtime);
238 static void fill_block_pattern_n(struct pcmtst_buf_iter *v_iter, struct snd_pcm_runtime *runtime)
241 unsigned int channels = runtime->channels;
246 runtime->dma_area[buf_pos_n(v_iter, channels, ch_num)] =
249 inc_buf_pos(v_iter, 1, runtime->dma_bytes);
254 static void fill_block_pattern_i(struct pcmtst_buf_iter *v_iter, struct snd_pcm_runtime *runtime)
260 pos_in_ch = ch_pos_i(v_iter->total_bytes, runtime->channels, v_iter->sample_bytes);
263 for (ch = 0; ch < runtime->channels; ch++) {
267 runtime->dma_area[v_iter->buf_pos] = patt_bufs[ch].buf[pos_pattern];
268 inc_buf_pos(v_iter, 1, runtime->dma_bytes);
274 static void fill_block_pattern(struct pcmtst_buf_iter *v_iter, struct snd_pcm_runtime *runtime)
277 fill_block_pattern_i(v_iter, runtime);
279 fill_block_pattern_n(v_iter, runtime);
282 static void fill_block_rand_n(struct pcmtst_buf_iter *v_iter, struct snd_pcm_runtime *runtime)
284 unsigned int channels = runtime->channels;
286 size_t bytes_remain = runtime->dma_bytes - v_iter->buf_pos;
292 get_random_bytes(runtime->dma_area + buf_pos_n(v_iter, channels, i),
296 get_random_bytes(runtime->dma_area + buf_pos_n(v_iter, channels, i),
298 get_random_bytes(runtime->dma_area + v_iter->chan_block * i,
302 inc_buf_pos(v_iter, v_iter->b_rw, runtime->dma_bytes);
305 static void fill_block_rand_i(struct pcmtst_buf_iter *v_iter, struct snd_pcm_runtime *runtime)
307 size_t in_cur_block = runtime->dma_bytes - v_iter->buf_pos;
310 get_random_bytes(&runtime->dma_area[v_iter->buf_pos], v_iter->b_rw);
312 get_random_bytes(&runtime->dma_area[v_iter->buf_pos], in_cur_block);
313 get_random_bytes(runtime->dma_area, v_iter->b_rw - in_cur_block);
315 inc_buf_pos(v_iter, v_iter->b_rw, runtime->dma_bytes);
318 static void fill_block_random(struct pcmtst_buf_iter *v_iter, struct snd_pcm_runtime *runtime)
321 fill_block_rand_i(v_iter, runtime);
323 fill_block_rand_n(v_iter, runtime);
326 static void fill_block(struct pcmtst_buf_iter *v_iter, struct snd_pcm_runtime *runtime)
330 fill_block_random(v_iter, runtime);
333 fill_block_pattern(v_iter, runtime);
355 check_buf_block(v_iter, substream->runtime);
357 fill_block(v_iter, substream->runtime);
359 inc_buf_pos(v_iter, v_iter->b_rw, substream->runtime->dma_bytes);
373 struct snd_pcm_runtime *runtime = substream->runtime;
384 runtime->hw = snd_pcmtst_hw;
385 runtime->private_data = v_iter;
397 struct pcmtst_buf_iter *v_iter = substream->runtime->private_data;
421 struct pcmtst_buf_iter *v_iter = substream->runtime->private_data;
446 struct pcmtst_buf_iter *v_iter = substream->runtime->private_data;
448 return bytes_to_frames(substream->runtime, v_iter->buf_pos);
471 struct snd_pcm_runtime *runtime = substream->runtime;
472 struct pcmtst_buf_iter *v_iter = runtime->private_data;
477 v_iter->sample_bytes = samples_to_bytes(runtime, 1);
480 if (runtime->access == SNDRV_PCM_ACCESS_RW_NONINTERLEAVED ||
481 runtime->access == SNDRV_PCM_ACCESS_MMAP_NONINTERLEAVED) {
482 v_iter->chan_block = snd_pcm_lib_buffer_bytes(substream) / runtime->channels;
486 v_iter->s_rw_ch = runtime->rate / TIMER_PER_SEC;
487 v_iter->b_rw = v_iter->s_rw_ch * v_iter->sample_bytes * runtime->channels;
517 struct pcmtst_buf_iter *v_iter = substream->runtime->private_data;