Skip to contentSkip to conversation

leds/leds-s3c24xx: use devm_gpio_request

PATCH In review Devendra Naga 2 participants 3 messages Jul 11, 2012 – Jul 13, 2012

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 leds/leds-s3c24xx: use devm_gpio_request

why?
because if the led_classdev_register fails we wont do gpio free because using devm_ functions, there is no need for error paths

---
Bryan,

This patch is not even compile tested, since my machine crashed, and
didn't have the ARM toolchain, sorry ..

	And i think this patch is legit not as that pci_set_drvdata one :(
 drivers/leds/leds-s3c24xx.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/leds/leds-s3c24xx.c +1 -2
index e120640..942f0ea 100644
@@ -65,7 +65,6 @@ static int s3c24xx_led_remove(struct platform_device *dev)
 	struct s3c24xx_gpio_led *led = pdev_to_gpio(dev);
 
 	led_classdev_unregister(&led->cdev);
-	gpio_free(led->pdata->gpio);
 
 	return 0;
 }
@@ -92,7 +91,7 @@ static int s3c24xx_led_probe(struct platform_device *dev)
 
 	led->pdata = pdata;
 
-	ret = gpio_request(pdata->gpio, "S3C24XX_LED");
+	ret = devm_gpio_request(&dev->dev, pdata->gpio, "S3C24XX_LED");
 	if (ret < 0)
 		return ret;
 
Signature · 1 line
1.7.9.5
#1 lore raw
Quoted 11 lines · Devendra Naga

why?
because if the led_classdev_register fails we wont do gpio free because using devm_ functions, there is no need for error paths

---
Bryan,

This patch is not even compile tested, since my machine crashed, and
didn't have the ARM toolchain, sorry ..

Thanks, I built it successfully. It looks fine to me. I will apply this to my for-next branch.

-Bryan

Quoted 32 lines
        And i think this patch is legit not as that pci_set_drvdata one :(
 drivers/leds/leds-s3c24xx.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/leds/leds-s3c24xx.c +1 -3
index e120640..942f0ea 100644
@@ -65,7 +65,6 @@ static int s3c24xx_led_remove(struct platform_device *dev)
        struct s3c24xx_gpio_led *led = pdev_to_gpio(dev);
 
        led_classdev_unregister(&led->cdev);
-       gpio_free(led->pdata->gpio);
 
        return 0;
 }
@@ -92,7 +91,7 @@ static int s3c24xx_led_probe(struct platform_device *dev)
 
        led->pdata = pdata;
 
-       ret = gpio_request(pdata->gpio, "S3C24XX_LED");
+       ret = devm_gpio_request(&dev->dev, pdata->gpio, "S3C24XX_LED");
        if (ret < 0)
                return ret;
 
--

1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-leds" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Signature · 4 lines
Bryan Wu <[email protected]>
Kernel Developer    +86.186-168-78255 Mobile
Canonical Ltd.      www.canonical.com
Ubuntu - Linux for human beings | www.ubuntu.com
#2 lore raw
Quoted 12 lines · Bryan Wu
Quoted 5 lines · Devendra Naga

Bryan,

This patch is not even compile tested, since my machine crashed, and
didn't have the ARM toolchain, sorry ..

Thanks, I built it successfully. It looks fine to me. I will apply this to my for-next branch.

-Bryan

Thank Bryan, I will set up my cross-toolchain soon.. sorry for not compiling it.