Lines Matching full:runtime

37 static inline void update_silence_vars(struct snd_pcm_runtime *runtime,  in update_silence_vars()  argument
47 delta += runtime->boundary; in update_silence_vars()
48 if ((snd_pcm_uframes_t)delta < runtime->silence_filled) in update_silence_vars()
49 runtime->silence_filled -= delta; in update_silence_vars()
51 runtime->silence_filled = 0; in update_silence_vars()
52 runtime->silence_start = new_ptr; in update_silence_vars()
57 * runtime->silence_start: starting pointer to silence area
58 * runtime->silence_filled: size filled with silence
59 * runtime->silence_threshold: threshold from application
60 * runtime->silence_size: maximal size from application
62 * when runtime->silence_size >= runtime->boundary - fill processed area with silence immediately
66 struct snd_pcm_runtime *runtime = substream->runtime; in snd_pcm_playback_silence() local
70 if (runtime->silence_size < runtime->boundary) { in snd_pcm_playback_silence()
72 snd_pcm_uframes_t appl_ptr = READ_ONCE(runtime->control->appl_ptr); in snd_pcm_playback_silence()
73 update_silence_vars(runtime, runtime->silence_start, appl_ptr); in snd_pcm_playback_silence()
76 new_hw_ptr = runtime->status->hw_ptr; in snd_pcm_playback_silence()
80 noise_dist += runtime->boundary; in snd_pcm_playback_silence()
82 noise_dist += runtime->silence_filled; in snd_pcm_playback_silence()
83 if (noise_dist >= (snd_pcm_sframes_t) runtime->silence_threshold) in snd_pcm_playback_silence()
85 frames = runtime->silence_threshold - noise_dist; in snd_pcm_playback_silence()
86 if (frames > runtime->silence_size) in snd_pcm_playback_silence()
87 frames = runtime->silence_size; in snd_pcm_playback_silence()
93 snd_pcm_uframes_t hw_ptr = runtime->status->hw_ptr; in snd_pcm_playback_silence()
101 snd_pcm_sframes_t avail = runtime->control->appl_ptr - hw_ptr; in snd_pcm_playback_silence()
103 avail += runtime->boundary; in snd_pcm_playback_silence()
109 runtime->silence_filled = avail > runtime->buffer_size ? 0 : avail; in snd_pcm_playback_silence()
110 runtime->silence_start = hw_ptr; in snd_pcm_playback_silence()
113 update_silence_vars(runtime, hw_ptr, new_hw_ptr); in snd_pcm_playback_silence()
119 frames = runtime->buffer_size - runtime->silence_filled; in snd_pcm_playback_silence()
121 if (snd_BUG_ON(frames > runtime->buffer_size)) in snd_pcm_playback_silence()
125 ofs = (runtime->silence_start + runtime->silence_filled) % runtime->buffer_size; in snd_pcm_playback_silence()
127 transfer = ofs + frames > runtime->buffer_size ? runtime->buffer_size - ofs : frames; in snd_pcm_playback_silence()
130 runtime->silence_filled += transfer; in snd_pcm_playback_silence()
170 struct snd_pcm_runtime *runtime = substream->runtime; in __snd_pcm_xrun() local
173 if (runtime->tstamp_mode == SNDRV_PCM_TSTAMP_ENABLE) { in __snd_pcm_xrun()
176 snd_pcm_gettime(runtime, &tstamp); in __snd_pcm_xrun()
177 runtime->status->tstamp.tv_sec = tstamp.tv_sec; in __snd_pcm_xrun()
178 runtime->status->tstamp.tv_nsec = tstamp.tv_nsec; in __snd_pcm_xrun()
207 struct snd_pcm_runtime *runtime) in snd_pcm_update_state() argument
212 if (avail > runtime->avail_max) in snd_pcm_update_state()
213 runtime->avail_max = avail; in snd_pcm_update_state()
214 if (runtime->state == SNDRV_PCM_STATE_DRAINING) { in snd_pcm_update_state()
215 if (avail >= runtime->buffer_size) { in snd_pcm_update_state()
220 if (avail >= runtime->stop_threshold) { in snd_pcm_update_state()
225 if (runtime->twake) { in snd_pcm_update_state()
226 if (avail >= runtime->twake) in snd_pcm_update_state()
227 wake_up(&runtime->tsleep); in snd_pcm_update_state()
228 } else if (avail >= runtime->control->avail_min) in snd_pcm_update_state()
229 wake_up(&runtime->sleep); in snd_pcm_update_state()
237 struct snd_pcm_runtime *runtime = substream->runtime; in update_audio_tstamp() local
241 if (runtime->tstamp_mode != SNDRV_PCM_TSTAMP_ENABLE) in update_audio_tstamp()
245 (runtime->audio_tstamp_report.actual_type == in update_audio_tstamp()
253 audio_frames = runtime->hw_ptr_wrap + runtime->status->hw_ptr; in update_audio_tstamp()
255 if (runtime->audio_tstamp_config.report_delay) { in update_audio_tstamp()
257 audio_frames -= runtime->delay; in update_audio_tstamp()
259 audio_frames += runtime->delay; in update_audio_tstamp()
262 runtime->rate); in update_audio_tstamp()
266 if (runtime->status->audio_tstamp.tv_sec != audio_tstamp->tv_sec || in update_audio_tstamp()
267 runtime->status->audio_tstamp.tv_nsec != audio_tstamp->tv_nsec) { in update_audio_tstamp()
268 runtime->status->audio_tstamp.tv_sec = audio_tstamp->tv_sec; in update_audio_tstamp()
269 runtime->status->audio_tstamp.tv_nsec = audio_tstamp->tv_nsec; in update_audio_tstamp()
270 runtime->status->tstamp.tv_sec = curr_tstamp->tv_sec; in update_audio_tstamp()
271 runtime->status->tstamp.tv_nsec = curr_tstamp->tv_nsec; in update_audio_tstamp()
279 snd_pcm_gettime(substream->runtime, &driver_tstamp); in update_audio_tstamp()
280 runtime->driver_tstamp = driver_tstamp; in update_audio_tstamp()
286 struct snd_pcm_runtime *runtime = substream->runtime; in snd_pcm_update_hw_ptr0() local
296 old_hw_ptr = runtime->status->hw_ptr; in snd_pcm_update_hw_ptr0()
306 if (runtime->tstamp_mode == SNDRV_PCM_TSTAMP_ENABLE) { in snd_pcm_update_hw_ptr0()
308 (runtime->audio_tstamp_config.type_requested != SNDRV_PCM_AUDIO_TSTAMP_TYPE_DEFAULT)) { in snd_pcm_update_hw_ptr0()
311 &runtime->audio_tstamp_config, in snd_pcm_update_hw_ptr0()
312 &runtime->audio_tstamp_report); in snd_pcm_update_hw_ptr0()
315 if (runtime->audio_tstamp_report.actual_type == SNDRV_PCM_AUDIO_TSTAMP_TYPE_DEFAULT) in snd_pcm_update_hw_ptr0()
316 snd_pcm_gettime(runtime, &curr_tstamp); in snd_pcm_update_hw_ptr0()
318 snd_pcm_gettime(runtime, &curr_tstamp); in snd_pcm_update_hw_ptr0()
325 if (pos >= runtime->buffer_size) { in snd_pcm_update_hw_ptr0()
331 name, pos, runtime->buffer_size, in snd_pcm_update_hw_ptr0()
332 runtime->period_size); in snd_pcm_update_hw_ptr0()
336 pos -= pos % runtime->min_align; in snd_pcm_update_hw_ptr0()
338 hw_base = runtime->hw_ptr_base; in snd_pcm_update_hw_ptr0()
343 delta = runtime->hw_ptr_interrupt + runtime->period_size; in snd_pcm_update_hw_ptr0()
346 hdelta = curr_jiffies - runtime->hw_ptr_jiffies; in snd_pcm_update_hw_ptr0()
347 if (hdelta > runtime->hw_ptr_buffer_jiffies/2 + 1) { in snd_pcm_update_hw_ptr0()
348 hw_base += runtime->buffer_size; in snd_pcm_update_hw_ptr0()
349 if (hw_base >= runtime->boundary) { in snd_pcm_update_hw_ptr0()
361 hw_base += runtime->buffer_size; in snd_pcm_update_hw_ptr0()
362 if (hw_base >= runtime->boundary) { in snd_pcm_update_hw_ptr0()
371 delta += runtime->boundary; in snd_pcm_update_hw_ptr0()
373 if (runtime->no_period_wakeup) { in snd_pcm_update_hw_ptr0()
379 jdelta = curr_jiffies - runtime->hw_ptr_jiffies; in snd_pcm_update_hw_ptr0()
380 if (jdelta < runtime->hw_ptr_buffer_jiffies / 2) in snd_pcm_update_hw_ptr0()
382 hdelta = jdelta - delta * HZ / runtime->rate; in snd_pcm_update_hw_ptr0()
383 xrun_threshold = runtime->hw_ptr_buffer_jiffies / 2 + 1; in snd_pcm_update_hw_ptr0()
385 delta += runtime->buffer_size; in snd_pcm_update_hw_ptr0()
386 hw_base += runtime->buffer_size; in snd_pcm_update_hw_ptr0()
387 if (hw_base >= runtime->boundary) { in snd_pcm_update_hw_ptr0()
392 hdelta -= runtime->hw_ptr_buffer_jiffies; in snd_pcm_update_hw_ptr0()
398 if (delta >= runtime->buffer_size + runtime->period_size) { in snd_pcm_update_hw_ptr0()
414 if (runtime->hw.info & SNDRV_PCM_INFO_BATCH) in snd_pcm_update_hw_ptr0()
417 if (hdelta < runtime->delay) in snd_pcm_update_hw_ptr0()
419 hdelta -= runtime->delay; in snd_pcm_update_hw_ptr0()
420 jdelta = curr_jiffies - runtime->hw_ptr_jiffies; in snd_pcm_update_hw_ptr0()
421 if (((hdelta * HZ) / runtime->rate) > jdelta + HZ/100) { in snd_pcm_update_hw_ptr0()
423 (((runtime->period_size * HZ) / runtime->rate) in snd_pcm_update_hw_ptr0()
431 new_hw_ptr += runtime->period_size; in snd_pcm_update_hw_ptr0()
432 if (new_hw_ptr >= runtime->boundary) { in snd_pcm_update_hw_ptr0()
433 new_hw_ptr -= runtime->boundary; in snd_pcm_update_hw_ptr0()
442 (long)runtime->period_size, jdelta, in snd_pcm_update_hw_ptr0()
443 ((hdelta * HZ) / runtime->rate), hw_base, in snd_pcm_update_hw_ptr0()
448 hw_base = new_hw_ptr - (new_hw_ptr % runtime->buffer_size); in snd_pcm_update_hw_ptr0()
451 if (delta > runtime->period_size + runtime->period_size / 2) { in snd_pcm_update_hw_ptr0()
461 if (runtime->status->hw_ptr == new_hw_ptr) { in snd_pcm_update_hw_ptr0()
462 runtime->hw_ptr_jiffies = curr_jiffies; in snd_pcm_update_hw_ptr0()
468 runtime->silence_size > 0) in snd_pcm_update_hw_ptr0()
472 delta = new_hw_ptr - runtime->hw_ptr_interrupt; in snd_pcm_update_hw_ptr0()
474 delta += runtime->boundary; in snd_pcm_update_hw_ptr0()
475 delta -= (snd_pcm_uframes_t)delta % runtime->period_size; in snd_pcm_update_hw_ptr0()
476 runtime->hw_ptr_interrupt += delta; in snd_pcm_update_hw_ptr0()
477 if (runtime->hw_ptr_interrupt >= runtime->boundary) in snd_pcm_update_hw_ptr0()
478 runtime->hw_ptr_interrupt -= runtime->boundary; in snd_pcm_update_hw_ptr0()
480 runtime->hw_ptr_base = hw_base; in snd_pcm_update_hw_ptr0()
481 runtime->status->hw_ptr = new_hw_ptr; in snd_pcm_update_hw_ptr0()
482 runtime->hw_ptr_jiffies = curr_jiffies; in snd_pcm_update_hw_ptr0()
485 runtime->hw_ptr_wrap += runtime->boundary; in snd_pcm_update_hw_ptr0()
490 return snd_pcm_update_state(substream, runtime); in snd_pcm_update_hw_ptr0()
526 struct snd_pcm_runtime *runtime = substream->runtime; in snd_pcm_set_sync() local
528 runtime->sync.id32[0] = substream->pcm->card->number; in snd_pcm_set_sync()
529 runtime->sync.id32[1] = -1; in snd_pcm_set_sync()
530 runtime->sync.id32[2] = -1; in snd_pcm_set_sync()
531 runtime->sync.id32[3] = -1; in snd_pcm_set_sync()
1136 * @runtime: the pcm runtime instance
1145 int snd_pcm_hw_rule_add(struct snd_pcm_runtime *runtime, unsigned int cond, in snd_pcm_hw_rule_add() argument
1150 struct snd_pcm_hw_constraints *constrs = &runtime->hw_constraints; in snd_pcm_hw_rule_add()
1191 * @runtime: PCM runtime instance
1199 int snd_pcm_hw_constraint_mask(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, in snd_pcm_hw_constraint_mask() argument
1202 struct snd_pcm_hw_constraints *constrs = &runtime->hw_constraints; in snd_pcm_hw_constraint_mask()
1213 * @runtime: PCM runtime instance
1221 int snd_pcm_hw_constraint_mask64(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, in snd_pcm_hw_constraint_mask64() argument
1224 struct snd_pcm_hw_constraints *constrs = &runtime->hw_constraints; in snd_pcm_hw_constraint_mask64()
1237 * @runtime: PCM runtime instance
1245 int snd_pcm_hw_constraint_integer(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var) in snd_pcm_hw_constraint_integer() argument
1247 struct snd_pcm_hw_constraints *constrs = &runtime->hw_constraints; in snd_pcm_hw_constraint_integer()
1254 * @runtime: PCM runtime instance
1264 int snd_pcm_hw_constraint_minmax(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, in snd_pcm_hw_constraint_minmax() argument
1267 struct snd_pcm_hw_constraints *constrs = &runtime->hw_constraints; in snd_pcm_hw_constraint_minmax()
1287 * @runtime: PCM runtime instance
1296 int snd_pcm_hw_constraint_list(struct snd_pcm_runtime *runtime, in snd_pcm_hw_constraint_list() argument
1301 return snd_pcm_hw_rule_add(runtime, cond, var, in snd_pcm_hw_constraint_list()
1318 * @runtime: PCM runtime instance
1327 int snd_pcm_hw_constraint_ranges(struct snd_pcm_runtime *runtime, in snd_pcm_hw_constraint_ranges() argument
1332 return snd_pcm_hw_rule_add(runtime, cond, var, in snd_pcm_hw_constraint_ranges()
1355 * @runtime: PCM runtime instance
1362 int snd_pcm_hw_constraint_ratnums(struct snd_pcm_runtime *runtime, in snd_pcm_hw_constraint_ratnums() argument
1367 return snd_pcm_hw_rule_add(runtime, cond, var, in snd_pcm_hw_constraint_ratnums()
1389 * @runtime: PCM runtime instance
1396 int snd_pcm_hw_constraint_ratdens(struct snd_pcm_runtime *runtime, in snd_pcm_hw_constraint_ratdens() argument
1401 return snd_pcm_hw_rule_add(runtime, cond, var, in snd_pcm_hw_constraint_ratdens()
1428 * @runtime: PCM runtime instance
1440 int snd_pcm_hw_constraint_msbits(struct snd_pcm_runtime *runtime, in snd_pcm_hw_constraint_msbits() argument
1446 return snd_pcm_hw_rule_add(runtime, cond, -1, in snd_pcm_hw_constraint_msbits()
1462 * @runtime: PCM runtime instance
1469 int snd_pcm_hw_constraint_step(struct snd_pcm_runtime *runtime, in snd_pcm_hw_constraint_step() argument
1474 return snd_pcm_hw_rule_add(runtime, cond, var, in snd_pcm_hw_constraint_step()
1494 * @runtime: PCM runtime instance
1500 int snd_pcm_hw_constraint_pow2(struct snd_pcm_runtime *runtime, in snd_pcm_hw_constraint_pow2() argument
1504 return snd_pcm_hw_rule_add(runtime, cond, var, in snd_pcm_hw_constraint_pow2()
1522 * @runtime: PCM runtime instance
1527 int snd_pcm_hw_rule_noresample(struct snd_pcm_runtime *runtime, in snd_pcm_hw_rule_noresample() argument
1530 return snd_pcm_hw_rule_add(runtime, SNDRV_PCM_HW_PARAMS_NORESAMPLE, in snd_pcm_hw_rule_noresample()
1712 struct snd_pcm_runtime *runtime = substream->runtime; in snd_pcm_lib_ioctl_reset() local
1717 runtime->status->hw_ptr %= runtime->buffer_size; in snd_pcm_lib_ioctl_reset()
1719 runtime->status->hw_ptr = 0; in snd_pcm_lib_ioctl_reset()
1720 runtime->hw_ptr_wrap = 0; in snd_pcm_lib_ioctl_reset()
1730 struct snd_pcm_runtime *runtime = substream->runtime; in snd_pcm_lib_ioctl_channel_info() local
1732 if (!(runtime->info & SNDRV_PCM_INFO_MMAP)) { in snd_pcm_lib_ioctl_channel_info()
1736 width = snd_pcm_format_physical_width(runtime->format); in snd_pcm_lib_ioctl_channel_info()
1740 switch (runtime->access) { in snd_pcm_lib_ioctl_channel_info()
1744 info->step = runtime->channels * width; in snd_pcm_lib_ioctl_channel_info()
1749 size_t size = runtime->dma_bytes / runtime->channels; in snd_pcm_lib_ioctl_channel_info()
1769 params->fifo_size = substream->runtime->hw.fifo_size; in snd_pcm_lib_ioctl_fifo_size()
1770 if (!(substream->runtime->hw.info & SNDRV_PCM_INFO_FIFO_IN_FRAMES)) { in snd_pcm_lib_ioctl_fifo_size()
1807 * snd_pcm_period_elapsed_under_stream_lock() - update the status of runtime for the next period
1814 * The call of function updates the status of runtime with the latest position of audio data
1835 struct snd_pcm_runtime *runtime; in snd_pcm_period_elapsed_under_stream_lock() local
1839 runtime = substream->runtime; in snd_pcm_period_elapsed_under_stream_lock()
1850 snd_kill_fasync(runtime->fasync, SIGIO, POLL_IN); in snd_pcm_period_elapsed_under_stream_lock()
1855 * snd_pcm_period_elapsed() - update the status of runtime for the next period by acquiring lock of
1888 struct snd_pcm_runtime *runtime = substream->runtime; in wait_for_avail() local
1897 add_wait_queue(&runtime->tsleep, &wait); in wait_for_avail()
1899 if (runtime->no_period_wakeup) in wait_for_avail()
1908 if (runtime->rate) { in wait_for_avail()
1909 long t = runtime->buffer_size * 1100 / runtime->rate; in wait_for_avail()
1930 if (avail >= runtime->twake) in wait_for_avail()
1938 switch (runtime->state) { in wait_for_avail()
1969 remove_wait_queue(&runtime->tsleep, &wait); in wait_for_avail()
1983 static void *get_dma_ptr(struct snd_pcm_runtime *runtime, in get_dma_ptr() argument
1986 return runtime->dma_area + hwoff + in get_dma_ptr()
1987 channel * (runtime->dma_bytes / runtime->channels); in get_dma_ptr()
1995 if (copy_from_iter(get_dma_ptr(substream->runtime, channel, hwoff), in default_write_copy()
2009 struct snd_pcm_runtime *runtime = substream->runtime; in fill_silence() local
2017 snd_pcm_format_set_silence(runtime->format, in fill_silence()
2018 get_dma_ptr(runtime, channel, hwoff), in fill_silence()
2019 bytes_to_samples(runtime, bytes)); in fill_silence()
2028 if (copy_to_iter(get_dma_ptr(substream->runtime, channel, hwoff), in default_read_copy()
2070 struct snd_pcm_runtime *runtime = substream->runtime; in interleaved_copy() local
2073 hwoff = frames_to_bytes(runtime, hwoff); in interleaved_copy()
2074 off = frames_to_bytes(runtime, off); in interleaved_copy()
2075 frames = frames_to_bytes(runtime, frames); in interleaved_copy()
2091 struct snd_pcm_runtime *runtime = substream->runtime; in noninterleaved_copy() local
2092 int channels = runtime->channels; in noninterleaved_copy()
2100 off = samples_to_bytes(runtime, off); in noninterleaved_copy()
2101 frames = samples_to_bytes(runtime, frames); in noninterleaved_copy()
2102 hwoff = samples_to_bytes(runtime, hwoff); in noninterleaved_copy()
2121 if (substream->runtime->access == SNDRV_PCM_ACCESS_RW_INTERLEAVED || in fill_silence_frames()
2122 substream->runtime->access == SNDRV_PCM_ACCESS_MMAP_INTERLEAVED) in fill_silence_frames()
2133 struct snd_pcm_runtime *runtime; in pcm_sanity_check() local
2136 runtime = substream->runtime; in pcm_sanity_check()
2137 if (snd_BUG_ON(!substream->ops->copy && !runtime->dma_area)) in pcm_sanity_check()
2139 if (runtime->state == SNDRV_PCM_STATE_OPEN) in pcm_sanity_check()
2144 static int pcm_accessible_state(struct snd_pcm_runtime *runtime) in pcm_accessible_state() argument
2146 switch (runtime->state) { in pcm_accessible_state()
2166 struct snd_pcm_runtime *runtime = substream->runtime; in pcm_lib_apply_appl_ptr() local
2167 snd_pcm_uframes_t old_appl_ptr = runtime->control->appl_ptr; in pcm_lib_apply_appl_ptr()
2174 if (appl_ptr >= runtime->boundary) in pcm_lib_apply_appl_ptr()
2179 if (substream->runtime->info & SNDRV_PCM_INFO_NO_REWINDS) { in pcm_lib_apply_appl_ptr()
2182 if (diff > runtime->buffer_size) in pcm_lib_apply_appl_ptr()
2185 if (runtime->boundary + diff > runtime->buffer_size) in pcm_lib_apply_appl_ptr()
2190 runtime->control->appl_ptr = appl_ptr; in pcm_lib_apply_appl_ptr()
2194 runtime->control->appl_ptr = old_appl_ptr; in pcm_lib_apply_appl_ptr()
2211 struct snd_pcm_runtime *runtime = substream->runtime; in __snd_pcm_lib_xfer() local
2227 if (runtime->access != SNDRV_PCM_ACCESS_RW_INTERLEAVED && in __snd_pcm_lib_xfer()
2228 runtime->channels > 1) in __snd_pcm_lib_xfer()
2232 if (runtime->access != SNDRV_PCM_ACCESS_RW_NONINTERLEAVED) in __snd_pcm_lib_xfer()
2256 err = pcm_accessible_state(runtime); in __snd_pcm_lib_xfer()
2260 runtime->twake = runtime->control->avail_min ? : 1; in __snd_pcm_lib_xfer()
2261 if (runtime->state == SNDRV_PCM_STATE_RUNNING) in __snd_pcm_lib_xfer()
2269 runtime->state == SNDRV_PCM_STATE_PREPARED && in __snd_pcm_lib_xfer()
2270 size >= runtime->start_threshold) { in __snd_pcm_lib_xfer()
2283 runtime->state == SNDRV_PCM_STATE_DRAINING) { in __snd_pcm_lib_xfer()
2291 runtime->twake = min_t(snd_pcm_uframes_t, size, in __snd_pcm_lib_xfer()
2292 runtime->control->avail_min ? : 1); in __snd_pcm_lib_xfer()
2300 appl_ptr = READ_ONCE(runtime->control->appl_ptr); in __snd_pcm_lib_xfer()
2301 appl_ofs = appl_ptr % runtime->buffer_size; in __snd_pcm_lib_xfer()
2302 cont = runtime->buffer_size - appl_ofs; in __snd_pcm_lib_xfer()
2309 if (!atomic_inc_unless_negative(&runtime->buffer_accessing)) { in __snd_pcm_lib_xfer()
2321 atomic_dec(&runtime->buffer_accessing); in __snd_pcm_lib_xfer()
2324 err = pcm_accessible_state(runtime); in __snd_pcm_lib_xfer()
2328 if (appl_ptr >= runtime->boundary) in __snd_pcm_lib_xfer()
2329 appl_ptr -= runtime->boundary; in __snd_pcm_lib_xfer()
2339 runtime->state == SNDRV_PCM_STATE_PREPARED && in __snd_pcm_lib_xfer()
2340 snd_pcm_playback_hw_avail(runtime) >= (snd_pcm_sframes_t)runtime->start_threshold) { in __snd_pcm_lib_xfer()
2347 runtime->twake = 0; in __snd_pcm_lib_xfer()
2349 snd_pcm_update_state(substream, runtime); in __snd_pcm_lib_xfer()
2440 if (!substream->runtime) in pcm_chmap_ctl_get()
2444 if (map->channels == substream->runtime->channels && in pcm_chmap_ctl_get()