greybus: arche-apb: Don't use gpio after failing to request it
authorViresh Kumar <viresh.kumar@linaro.org>
Mon, 11 Jan 2016 05:59:14 +0000 (11:29 +0530)
committerGreg Kroah-Hartman <gregkh@google.com>
Mon, 11 Jan 2016 23:58:01 +0000 (15:58 -0800)
If devm_gpio_request() returns an error, we shouldn't try to set the
direction of the same gpio.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Vaibhav Hiremath <vaibhav.hiremath@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/arche-apb-ctrl.c

index 8582a48..f83230d 100644 (file)
@@ -137,12 +137,15 @@ static int apb_ctrl_init_seq(struct platform_device *pdev,
        /* On DB3 clock was not mandatory */
        if (gpio_is_valid(apb->clk_en_gpio)) {
                ret = devm_gpio_request(dev, apb->clk_en_gpio, "apb_clk_en");
-               if (ret)
+               if (ret) {
                        dev_warn(dev, "Failed requesting APB clock en gpio %d\n",
-                                       apb->clk_en_gpio);
-               ret = gpio_direction_output(apb->clk_en_gpio, 1);
-               if (ret)
-                       dev_warn(dev, "failed to set APB clock en gpio dir:%d\n", ret);
+                                apb->clk_en_gpio);
+               } else {
+                       ret = gpio_direction_output(apb->clk_en_gpio, 1);
+                       if (ret)
+                               dev_warn(dev, "failed to set APB clock en gpio dir:%d\n",
+                                        ret);
+               }
        }
        /* Hold APB in reset state */
        ret = devm_gpio_request(dev, apb->resetn_gpio, "apb-reset");