aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2009-03-06 10:30:07 -0500
committerTakashi Iwai <tiwai@suse.de>2009-03-09 09:02:00 -0400
commit85122ea40c4fc82af5b66b8683f525c2c4a36d1a (patch)
treeb2aed8862ef28a0e245ae3a73afa064486456ff0
parented3da3d9a0ef13c6fe1414ec73c9c1be12747b62 (diff)
ALSA: Remove unneeded snd_pcm_substream.timer_lock
The timer callbacks are called in the protected status by the lock of the timer instance, so there is no need for an extra lock in the PCM substream. Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--include/sound/pcm.h1
-rw-r--r--sound/core/pcm.c1
-rw-r--r--sound/core/pcm_timer.c6
3 files changed, 0 insertions, 8 deletions
diff --git a/include/sound/pcm.h b/include/sound/pcm.h
index 40c5a6fa6bcd..e4f60076e6c4 100644
--- a/include/sound/pcm.h
+++ b/include/sound/pcm.h
@@ -364,7 +364,6 @@ struct snd_pcm_substream {
364 /* -- timer section -- */ 364 /* -- timer section -- */
365 struct snd_timer *timer; /* timer */ 365 struct snd_timer *timer; /* timer */
366 unsigned timer_running: 1; /* time is running */ 366 unsigned timer_running: 1; /* time is running */
367 spinlock_t timer_lock;
368 /* -- next substream -- */ 367 /* -- next substream -- */
369 struct snd_pcm_substream *next; 368 struct snd_pcm_substream *next;
370 /* -- linked substreams -- */ 369 /* -- linked substreams -- */
diff --git a/sound/core/pcm.c b/sound/core/pcm.c
index 192a433a2403..37f567a68ef2 100644
--- a/sound/core/pcm.c
+++ b/sound/core/pcm.c
@@ -667,7 +667,6 @@ int snd_pcm_new_stream(struct snd_pcm *pcm, int stream, int substream_count)
667 spin_lock_init(&substream->self_group.lock); 667 spin_lock_init(&substream->self_group.lock);
668 INIT_LIST_HEAD(&substream->self_group.substreams); 668 INIT_LIST_HEAD(&substream->self_group.substreams);
669 list_add_tail(&substream->link_list, &substream->self_group.substreams); 669 list_add_tail(&substream->link_list, &substream->self_group.substreams);
670 spin_lock_init(&substream->timer_lock);
671 atomic_set(&substream->mmap_count, 0); 670 atomic_set(&substream->mmap_count, 0);
672 prev = substream; 671 prev = substream;
673 } 672 }
diff --git a/sound/core/pcm_timer.c b/sound/core/pcm_timer.c
index 2c89c04f2916..ca8068b63d6c 100644
--- a/sound/core/pcm_timer.c
+++ b/sound/core/pcm_timer.c
@@ -85,25 +85,19 @@ static unsigned long snd_pcm_timer_resolution(struct snd_timer * timer)
85 85
86static int snd_pcm_timer_start(struct snd_timer * timer) 86static int snd_pcm_timer_start(struct snd_timer * timer)
87{ 87{
88 unsigned long flags;
89 struct snd_pcm_substream *substream; 88 struct snd_pcm_substream *substream;
90 89
91 substream = snd_timer_chip(timer); 90 substream = snd_timer_chip(timer);
92 spin_lock_irqsave(&substream->timer_lock, flags);
93 substream->timer_running = 1; 91 substream->timer_running = 1;
94 spin_unlock_irqrestore(&substream->timer_lock, flags);
95 return 0; 92 return 0;
96} 93}
97 94
98static int snd_pcm_timer_stop(struct snd_timer * timer) 95static int snd_pcm_timer_stop(struct snd_timer * timer)
99{ 96{
100 unsigned long flags;
101 struct snd_pcm_substream *substream; 97 struct snd_pcm_substream *substream;
102 98
103 substream = snd_timer_chip(timer); 99 substream = snd_timer_chip(timer);
104 spin_lock_irqsave(&substream->timer_lock, flags);
105 substream->timer_running = 0; 100 substream->timer_running = 0;
106 spin_unlock_irqrestore(&substream->timer_lock, flags);
107 return 0; 101 return 0;
108} 102}
109 103