greybus: audio: Remove un-necessary goto statement
authorVaibhav Agarwal <vaibhav.agarwal@linaro.org>
Thu, 4 Aug 2016 09:44:28 +0000 (15:14 +0530)
committerGreg Kroah-Hartman <gregkh@google.com>
Thu, 4 Aug 2016 17:07:30 +0000 (19:07 +0200)
For most of the helper functions, goto statement is widely used.  It was
originally used with an intent of single exit point for the function
with some cleanup required. This is no more the case. So, simplify code
by avoiding un-necessary gotos.

Signed-off-by: Vaibhav Agarwal <vaibhav.agarwal@linaro.org>
Reviewed-by: Mark Greer <mgreer@animalcreek.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/audio_codec.c

index d7679e6..9b98e9c 100644 (file)
@@ -64,7 +64,8 @@ static int gbaudio_module_disable(struct gbaudio_codec_info *codec,
        if (module_state == GBAUDIO_CODEC_SHUTDOWN) {
                dev_dbg(codec->dev, "%s: module already configured\n",
                        module->name);
-               goto func_exit;
+               mutex_unlock(&codec->lock);
+               return 0;
        }
 
        /* find the dai */
@@ -72,8 +73,8 @@ static int gbaudio_module_disable(struct gbaudio_codec_info *codec,
        if (!data) {
                dev_err(codec->dev, "%s:%s DATA connection missing\n",
                        dai_name, module->name);
-               ret = -ENODEV;
-               goto func_exit;
+               mutex_unlock(&codec->lock);
+               return -ENODEV;
        }
        if (codec_state > GBAUDIO_CODEC_HWPARAMS) {
                data_cport = data->connection->intf_cport_id;
@@ -162,7 +163,8 @@ static int gbaudio_module_enable(struct gbaudio_codec_info *codec,
        if (module_state == codec_state) {
                dev_dbg(codec->dev, "%s: module already configured\n",
                        module->name);
-               goto func_exit;
+               mutex_unlock(&codec->lock);
+               return 0;
        }
 
        /* find the dai */
@@ -170,8 +172,8 @@ static int gbaudio_module_enable(struct gbaudio_codec_info *codec,
        if (!data) {
                dev_err(codec->dev, "%s:%s DATA connection missing\n",
                        dai_name, module->name);
-               ret = -ENODEV;
-               goto func_exit;
+               mutex_unlock(&codec->lock);
+               return -ENODEV;
        }
 
        /* register cport */
@@ -754,8 +756,8 @@ static int gbcodec_mute_stream(struct snd_soc_dai *dai, int mute, int stream)
        if (!data) {
                dev_err(dai->dev, "%s:%s DATA connection missing\n",
                        dai->name, module->name);
-               ret = -ENODEV;
-               goto func_exit;
+               mutex_unlock(&codec->lock);
+               return -ENODEV;
        }
 
        if (!mute && !stream) {/* start playback */
@@ -792,9 +794,8 @@ static int gbcodec_mute_stream(struct snd_soc_dai *dai, int mute, int stream)
                                    module->name, mute ? "Mute" : "Unmute",
                                    stream ? "Capture" : "Playback", ret);
 
-func_exit:
        mutex_unlock(&codec->lock);
-       return 0;
+       return ret;
 }
 
 static struct snd_soc_dai_ops gbcodec_dai_ops = {