This drivers leaks GPIO descriptors on driver removal. Use devres API
function devm_gpiod_get_from_of_node instead of gpiod_get_from_of_node
to avoid this.

Signed-off-by: Marek Behún <[email protected]>
Cc: Simon Guinot <[email protected]>
Cc: Simon Guinot <[email protected]>
Cc: Vincent Donnefort <[email protected]>
Cc: Thomas Petazzoni <[email protected]>
Cc: Linus Walleij <[email protected]>
---
 drivers/leds/leds-ns2.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/leds/leds-ns2.c b/drivers/leds/leds-ns2.c
index 46d4f7e963c04..fa06ab40ee143 100644
--- a/drivers/leds/leds-ns2.c
+++ b/drivers/leds/leds-ns2.c
@@ -240,13 +240,13 @@ static int ns2_leds_parse_one(struct device *dev, struct 
device_node *np,
        if (ret)
                led->name = np->name;
 
-       led->cmd = gpiod_get_from_of_node(np, "cmd-gpio", 0, GPIOD_ASIS,
-                                         led->name);
+       led->cmd = devm_gpiod_get_from_of_node(dev, np, "cmd-gpio", 0,
+                                              GPIOD_ASIS, led->name);
        if (IS_ERR(led->cmd))
                return PTR_ERR(led->cmd);
 
-       led->slow = gpiod_get_from_of_node(np, "slow-gpio", 0, GPIOD_ASIS,
-                                          led->name);
+       led->slow = devm_gpiod_get_from_of_node(dev, np, "slow-gpio", 0,
+                                               GPIOD_ASIS, led->name);
        if (IS_ERR(led->slow))
                return PTR_ERR(led->slow);
 
-- 
2.26.2

Reply via email to