diff options
author | Viresh Kumar <viresh.kumar@linaro.org> | 2016-01-11 11:29:14 +0530 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@google.com> | 2016-01-11 15:58:01 -0800 |
commit | a7a794ec540c442999598cf16605ba7962aa3861 (patch) | |
tree | 635a2459d45a8e59f1c403cf15422183a56cc6c0 /drivers/staging/greybus/arche-apb-ctrl.c | |
parent | db0cff554a612715701a04143df595cc87737d55 (diff) | |
download | op-kernel-dev-a7a794ec540c442999598cf16605ba7962aa3861.zip op-kernel-dev-a7a794ec540c442999598cf16605ba7962aa3861.tar.gz |
greybus: arche-apb: Don't use gpio after failing to request it
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>
Diffstat (limited to 'drivers/staging/greybus/arche-apb-ctrl.c')
-rw-r--r-- | drivers/staging/greybus/arche-apb-ctrl.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/staging/greybus/arche-apb-ctrl.c b/drivers/staging/greybus/arche-apb-ctrl.c index 8582a48..f83230d 100644 --- a/drivers/staging/greybus/arche-apb-ctrl.c +++ b/drivers/staging/greybus/arche-apb-ctrl.c @@ -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"); |