aboutsummaryrefslogtreecommitdiffstats
path: root/include/sound
diff options
context:
space:
mode:
authorJaroslav Kysela <perex@perex.cz>2010-01-05 11:19:34 -0500
committerJaroslav Kysela <perex@perex.cz>2010-01-07 09:47:38 -0500
commitf240406babfe1526998e10583ea5eccc2676a433 (patch)
tree311f0dd33f0ec87bd0ac48d4871f67ad78b9ee36 /include/sound
parent4d96eb255c53ab5e39b37fd4d484ea3dc39ab456 (diff)
ALSA: pcm_lib - cleanup & merge hw_ptr update functions
Do general cleanup in snd_pcm_update_hw_ptr*() routines and merge them. The main change is hw_ptr_interrupt variable removal to simplify code logic. This variable can be computed directly from hw_ptr. Ensure that updated hw_ptr is not lower than previous one (it was possible with old code in some obscure situations when interrupt was delayed or the lowlevel driver returns wrong ring buffer position value). Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Diffstat (limited to 'include/sound')
-rw-r--r--include/sound/pcm.h1
-rw-r--r--include/sound/pcm_oss.h2
2 files changed, 1 insertions, 2 deletions
diff --git a/include/sound/pcm.h b/include/sound/pcm.h
index 4e18a6dbe690..fe1b131842be 100644
--- a/include/sound/pcm.h
+++ b/include/sound/pcm.h
@@ -271,7 +271,6 @@ struct snd_pcm_runtime {
271 int overrange; 271 int overrange;
272 snd_pcm_uframes_t avail_max; 272 snd_pcm_uframes_t avail_max;
273 snd_pcm_uframes_t hw_ptr_base; /* Position at buffer restart */ 273 snd_pcm_uframes_t hw_ptr_base; /* Position at buffer restart */
274 snd_pcm_uframes_t hw_ptr_interrupt; /* Position at interrupt time */
275 unsigned long hw_ptr_jiffies; /* Time when hw_ptr is updated */ 274 unsigned long hw_ptr_jiffies; /* Time when hw_ptr is updated */
276 snd_pcm_sframes_t delay; /* extra delay; typically FIFO size */ 275 snd_pcm_sframes_t delay; /* extra delay; typically FIFO size */
277 276
diff --git a/include/sound/pcm_oss.h b/include/sound/pcm_oss.h
index cc4e226f35fd..760c969d885d 100644
--- a/include/sound/pcm_oss.h
+++ b/include/sound/pcm_oss.h
@@ -61,7 +61,7 @@ struct snd_pcm_oss_runtime {
61 struct snd_pcm_plugin *plugin_first; 61 struct snd_pcm_plugin *plugin_first;
62 struct snd_pcm_plugin *plugin_last; 62 struct snd_pcm_plugin *plugin_last;
63#endif 63#endif
64 unsigned int prev_hw_ptr_interrupt; 64 unsigned int prev_hw_ptr_period;
65}; 65};
66 66
67struct snd_pcm_oss_file { 67struct snd_pcm_oss_file {