diff options
author | Charles Keepax <ckeepax@opensource.wolfsonmicro.com> | 2017-03-22 13:15:35 -0400 |
---|---|---|
committer | Krzysztof Kozlowski <krzk@kernel.org> | 2017-03-23 15:13:19 -0400 |
commit | f69ae4f58a198ad15b0422637434d2bcf6fc2e2a (patch) | |
tree | 90750cb9c17e0a6f0abe0ee72120c16e2fe0063a | |
parent | 1abd18d1a51a95bf90c10459f1ed5c692660408e (diff) |
pinctrl: samsung: Use devres version of gpiochip_add_data
Use devm_gpiochip_add_data to simplify the error path in
samsung_gpiolib_register.
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
-rw-r--r-- | drivers/pinctrl/samsung/pinctrl-samsung.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/pinctrl/samsung/pinctrl-samsung.c b/drivers/pinctrl/samsung/pinctrl-samsung.c index 5d5337072350..934fc3b6b5aa 100644 --- a/drivers/pinctrl/samsung/pinctrl-samsung.c +++ b/drivers/pinctrl/samsung/pinctrl-samsung.c | |||
@@ -936,20 +936,15 @@ static int samsung_gpiolib_register(struct platform_device *pdev, | |||
936 | gc->of_node = bank->of_node; | 936 | gc->of_node = bank->of_node; |
937 | gc->label = bank->name; | 937 | gc->label = bank->name; |
938 | 938 | ||
939 | ret = gpiochip_add_data(gc, bank); | 939 | ret = devm_gpiochip_add_data(&pdev->dev, gc, bank); |
940 | if (ret) { | 940 | if (ret) { |
941 | dev_err(&pdev->dev, "failed to register gpio_chip %s, error code: %d\n", | 941 | dev_err(&pdev->dev, "failed to register gpio_chip %s, error code: %d\n", |
942 | gc->label, ret); | 942 | gc->label, ret); |
943 | goto fail; | 943 | return ret; |
944 | } | 944 | } |
945 | } | 945 | } |
946 | 946 | ||
947 | return 0; | 947 | return 0; |
948 | |||
949 | fail: | ||
950 | for (--i, --bank; i >= 0; --i, --bank) | ||
951 | gpiochip_remove(&bank->gpio_chip); | ||
952 | return ret; | ||
953 | } | 948 | } |
954 | 949 | ||
955 | /* retrieve the soc specific data */ | 950 | /* retrieve the soc specific data */ |