ALSA: pcm: Refactoring snd_pcm_action()
authorTakashi Iwai <tiwai@suse.de>
Fri, 31 Oct 2014 14:19:36 +0000 (15:19 +0100)
committerTakashi Iwai <tiwai@suse.de>
Fri, 31 Oct 2014 14:27:02 +0000 (15:27 +0100)
Just a small code refactoring to reduce more lines.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/pcm_native.c

index b92b605fc784ea7e3e6ca30c14bdb2c389cc2a86..ca224fa2a33a043b1006dbd6c4de36fd9ac5291e 100644 (file)
@@ -900,14 +900,19 @@ static int snd_pcm_action_single(struct action_ops *ops,
        return res;
 }
 
-/* call in mutex-protected context */
-static int snd_pcm_action_mutex(struct action_ops *ops,
-                               struct snd_pcm_substream *substream,
-                               int state)
+/*
+ *  Note: call with stream lock
+ */
+static int snd_pcm_action(struct action_ops *ops,
+                         struct snd_pcm_substream *substream,
+                         int state)
 {
        int res;
 
-       if (snd_pcm_stream_linked(substream)) {
+       if (!snd_pcm_stream_linked(substream))
+               return snd_pcm_action_single(ops, substream, state);
+
+       if (substream->pcm->nonatomic) {
                if (!mutex_trylock(&substream->group->mutex)) {
                        mutex_unlock(&substream->self_group.mutex);
                        mutex_lock(&substream->group->mutex);
@@ -916,24 +921,6 @@ static int snd_pcm_action_mutex(struct action_ops *ops,
                res = snd_pcm_action_group(ops, substream, state, 1);
                mutex_unlock(&substream->group->mutex);
        } else {
-               res = snd_pcm_action_single(ops, substream, state);
-       }
-       return res;
-}
-
-/*
- *  Note: call with stream lock
- */
-static int snd_pcm_action(struct action_ops *ops,
-                         struct snd_pcm_substream *substream,
-                         int state)
-{
-       int res;
-
-       if (substream->pcm->nonatomic)
-               return snd_pcm_action_mutex(ops, substream, state);
-
-       if (snd_pcm_stream_linked(substream)) {
                if (!spin_trylock(&substream->group->lock)) {
                        spin_unlock(&substream->self_group.lock);
                        spin_lock(&substream->group->lock);
@@ -941,8 +928,6 @@ static int snd_pcm_action(struct action_ops *ops,
                }
                res = snd_pcm_action_group(ops, substream, state, 1);
                spin_unlock(&substream->group->lock);
-       } else {
-               res = snd_pcm_action_single(ops, substream, state);
        }
        return res;
 }