aboutsummaryrefslogtreecommitdiffstats
path: root/include/sound/pcm.h
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2010-01-12 03:40:08 -0500
committerTakashi Iwai <tiwai@suse.de>2010-01-12 03:40:08 -0500
commita29fb94ff48cba620e1ac1317f5eef5920ead3ff (patch)
tree2fb8e026712bdf7848ea400e25118f6a58824a02 /include/sound/pcm.h
parent52a7a5835173af61b9f6c3038212370d9717526f (diff)
parentdd3533eca859a6debb1565503ec03e68354e08e0 (diff)
Merge commit alsa/devel into topic/misc
Conflicts: include/sound/version.h
Diffstat (limited to 'include/sound/pcm.h')
-rw-r--r--include/sound/pcm.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/include/sound/pcm.h b/include/sound/pcm.h
index 0ad2d28f2360..1d4ca2aae50d 100644
--- a/include/sound/pcm.h
+++ b/include/sound/pcm.h
@@ -262,6 +262,8 @@ struct snd_pcm_hw_constraint_list {
262 unsigned int mask; 262 unsigned int mask;
263}; 263};
264 264
265struct snd_pcm_hwptr_log;
266
265struct snd_pcm_runtime { 267struct snd_pcm_runtime {
266 /* -- Status -- */ 268 /* -- Status -- */
267 struct snd_pcm_substream *trigger_master; 269 struct snd_pcm_substream *trigger_master;
@@ -269,7 +271,6 @@ struct snd_pcm_runtime {
269 int overrange; 271 int overrange;
270 snd_pcm_uframes_t avail_max; 272 snd_pcm_uframes_t avail_max;
271 snd_pcm_uframes_t hw_ptr_base; /* Position at buffer restart */ 273 snd_pcm_uframes_t hw_ptr_base; /* Position at buffer restart */
272 snd_pcm_uframes_t hw_ptr_interrupt; /* Position at interrupt time */
273 unsigned long hw_ptr_jiffies; /* Time when hw_ptr is updated */ 274 unsigned long hw_ptr_jiffies; /* Time when hw_ptr is updated */
274 snd_pcm_sframes_t delay; /* extra delay; typically FIFO size */ 275 snd_pcm_sframes_t delay; /* extra delay; typically FIFO size */
275 276
@@ -310,6 +311,7 @@ struct snd_pcm_runtime {
310 struct snd_pcm_mmap_control *control; 311 struct snd_pcm_mmap_control *control;
311 312
312 /* -- locking / scheduling -- */ 313 /* -- locking / scheduling -- */
314 unsigned int nowake: 1; /* no wakeup (data-copy in progress) */
313 wait_queue_head_t sleep; 315 wait_queue_head_t sleep;
314 struct fasync_struct *fasync; 316 struct fasync_struct *fasync;
315 317
@@ -340,6 +342,10 @@ struct snd_pcm_runtime {
340 /* -- OSS things -- */ 342 /* -- OSS things -- */
341 struct snd_pcm_oss_runtime oss; 343 struct snd_pcm_oss_runtime oss;
342#endif 344#endif
345
346#ifdef CONFIG_SND_PCM_XRUN_DEBUG
347 struct snd_pcm_hwptr_log *hwptr_log;
348#endif
343}; 349};
344 350
345struct snd_pcm_group { /* keep linked substreams */ 351struct snd_pcm_group { /* keep linked substreams */
@@ -834,6 +840,8 @@ void snd_pcm_set_sync(struct snd_pcm_substream *substream);
834int snd_pcm_lib_interleave_len(struct snd_pcm_substream *substream); 840int snd_pcm_lib_interleave_len(struct snd_pcm_substream *substream);
835int snd_pcm_lib_ioctl(struct snd_pcm_substream *substream, 841int snd_pcm_lib_ioctl(struct snd_pcm_substream *substream,
836 unsigned int cmd, void *arg); 842 unsigned int cmd, void *arg);
843int snd_pcm_update_state(struct snd_pcm_substream *substream,
844 struct snd_pcm_runtime *runtime);
837int snd_pcm_update_hw_ptr(struct snd_pcm_substream *substream); 845int snd_pcm_update_hw_ptr(struct snd_pcm_substream *substream);
838int snd_pcm_playback_xrun_check(struct snd_pcm_substream *substream); 846int snd_pcm_playback_xrun_check(struct snd_pcm_substream *substream);
839int snd_pcm_capture_xrun_check(struct snd_pcm_substream *substream); 847int snd_pcm_capture_xrun_check(struct snd_pcm_substream *substream);