All of lore.kernel.org
 help / color / mirror / Atom feed
From: Heiner Kallweit <hkallweit1@gmail.com>
To: Jacek Anaszewski <j.anaszewski@samsung.com>,
	"linux-leds@vger.kernel.org" <linux-leds@vger.kernel.org>
Subject: [PATCH 7/8] leds: gpio: switch to managed version of led_classdev_register
Date: Tue, 13 Sep 2016 08:03:39 +0200	[thread overview]
Message-ID: <333c8dff-7cda-b963-3098-9dbbd1745320@gmail.com> (raw)
In-Reply-To: <5432fb03-ea18-a949-ce53-10fedc15f5d9@gmail.com>

Using the managed version of led_classdev_register allows to
significantly simplify the code.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
 drivers/leds/leds-gpio.c | 23 ++---------------------
 1 file changed, 2 insertions(+), 21 deletions(-)

diff --git a/drivers/leds/leds-gpio.c b/drivers/leds/leds-gpio.c
index deea159..381f6e0 100644
--- a/drivers/leds/leds-gpio.c
+++ b/drivers/leds/leds-gpio.c
@@ -134,7 +134,7 @@ static int create_gpio_led(const struct gpio_led *template,
 	if (ret < 0)
 		return ret;
 
-	return led_classdev_register(parent, &led_dat->cdev);
+	return devm_led_classdev_register(parent, &led_dat->cdev);
 }
 
 struct gpio_leds_priv {
@@ -214,8 +214,6 @@ static struct gpio_leds_priv *gpio_leds_create(struct platform_device *pdev)
 	return priv;
 
 err:
-	for (count = priv->num_leds - 1; count >= 0; count--)
-		led_classdev_unregister(&priv->leds[count].cdev);
 	return ERR_PTR(ret);
 }
 
@@ -244,13 +242,8 @@ static int gpio_led_probe(struct platform_device *pdev)
 			ret = create_gpio_led(&pdata->leds[i],
 					      &priv->leds[i],
 					      &pdev->dev, pdata->gpio_blink_set);
-			if (ret < 0) {
-				/* On failure: unwind the led creations */
-				for (i = i - 1; i >= 0; i--)
-					led_classdev_unregister(
-							&priv->leds[i].cdev);
+			if (ret < 0)
 				return ret;
-			}
 		}
 	} else {
 		priv = gpio_leds_create(pdev);
@@ -263,17 +256,6 @@ static int gpio_led_probe(struct platform_device *pdev)
 	return 0;
 }
 
-static int gpio_led_remove(struct platform_device *pdev)
-{
-	struct gpio_leds_priv *priv = platform_get_drvdata(pdev);
-	int i;
-
-	for (i = 0; i < priv->num_leds; i++)
-		led_classdev_unregister(&priv->leds[i].cdev);
-
-	return 0;
-}
-
 static void gpio_led_shutdown(struct platform_device *pdev)
 {
 	struct gpio_leds_priv *priv = platform_get_drvdata(pdev);
@@ -288,7 +270,6 @@ static void gpio_led_shutdown(struct platform_device *pdev)
 
 static struct platform_driver gpio_led_driver = {
 	.probe		= gpio_led_probe,
-	.remove		= gpio_led_remove,
 	.shutdown	= gpio_led_shutdown,
 	.driver		= {
 		.name	= "leds-gpio",
-- 
2.9.2

  parent reply	other threads:[~2016-09-13  6:04 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <5432fb03-ea18-a949-ce53-10fedc15f5d9@gmail.com>
2016-09-13  6:03 ` [PATCH 2/8] leds: gpio: set max_brightness to 1 Heiner Kallweit
2016-09-13 13:35   ` Jacek Anaszewski
2016-09-13 18:42     ` Heiner Kallweit
2016-09-13  6:03 ` [PATCH 3/8] leds: gpio: fix an unhandled error case in create_gpio_led Heiner Kallweit
2016-09-13  6:03 ` [PATCH 4/8] leds: gpio: add helper cdev_to_gpio_led_data Heiner Kallweit
2016-09-13  6:03 ` [PATCH 5/8] leds: gpio: simplify gpio_leds_create Heiner Kallweit
2016-09-13  6:03 ` [PATCH 6/8] leds: gpio: fix and simplify reading property "label" Heiner Kallweit
2016-09-13  6:03 ` Heiner Kallweit [this message]
2016-09-13  6:03 ` [PATCH 8/8] leds: gpio: fix and simplify error handling in gpio_leds_create Heiner Kallweit
2016-09-13 18:53 ` [PATCH 1/6] leds: gpio: fix an unhandled error case in create_gpio_led Heiner Kallweit
2016-09-14  7:13   ` Jacek Anaszewski
2016-09-15 11:48   ` Jacek Anaszewski
2016-09-13 18:54 ` [PATCH 2/6] leds: gpio: add helper cdev_to_gpio_led_data Heiner Kallweit
2016-09-13 18:55 ` [PATCH 3/6] leds: gpio: simplify gpio_leds_create Heiner Kallweit
2016-09-13 18:56 ` [PATCH 4/6] leds: gpio: fix and simplify reading property "label" Heiner Kallweit
2016-09-13 18:57 ` [PATCH 5/6] leds: gpio: switch to managed version of led_classdev_register Heiner Kallweit
2016-09-13 18:57 ` [PATCH 6/6] leds: gpio: fix and simplify error handling in gpio_leds_create Heiner Kallweit
2016-09-14 18:54 ` [PATCH v2 2/7] leds: gpio: fix an unhandled error case in create_gpio_led Heiner Kallweit
2016-09-14 18:55 ` [PATCH v2 3/7] leds: gpio: add helper cdev_to_gpio_led_data Heiner Kallweit
2016-09-14 18:55 ` [PATCH v2 4/7] leds: gpio: simplify gpio_leds_create Heiner Kallweit
2016-09-14 18:55 ` [PATCH v2 5/7] leds: gpio: fix and simplify reading property "label" Heiner Kallweit
2016-09-14 18:55 ` [PATCH v2 6/7] leds: gpio: switch to managed version of led_classdev_register Heiner Kallweit
2016-09-14 18:55 ` [PATCH v2 7/7] leds: gpio: fix and simplify error handling in gpio_leds_create Heiner Kallweit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=333c8dff-7cda-b963-3098-9dbbd1745320@gmail.com \
    --to=hkallweit1@gmail.com \
    --cc=j.anaszewski@samsung.com \
    --cc=linux-leds@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.