* [PATCH] leds: leds-netxbig.c: Use devm_led_classdev_register @ 2015-10-20 20:06 Fida Mohammad 2015-10-21 7:01 ` Jacek Anaszewski 0 siblings, 1 reply; 4+ messages in thread From: Fida Mohammad @ 2015-10-20 20:06 UTC (permalink / raw) To: Bryan Wu, Richard Purdie, Jacek Anaszewski, linux-leds, LKML, Muhammad Falak Cc: Fida Mohammad Use resource managed function devm_led_classdev_register to make error path simpler. Consequently, removed a goto call and remove function made simpler. Signed-off-by: Fida Mohammad <fmthoker@gmail.com> --- drivers/leds/leds-netxbig.c | 25 +++++-------------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/drivers/leds/leds-netxbig.c b/drivers/leds/leds-netxbig.c index 25e4197..639f8bd 100644 --- a/drivers/leds/leds-netxbig.c +++ b/drivers/leds/leds-netxbig.c @@ -299,10 +299,6 @@ static struct attribute *netxbig_led_attrs[] = { }; ATTRIBUTE_GROUPS(netxbig_led); -static void delete_netxbig_led(struct netxbig_led_data *led_dat) -{ - led_classdev_unregister(&led_dat->cdev); -} static int create_netxbig_led(struct platform_device *pdev, @@ -343,7 +339,7 @@ create_netxbig_led(struct platform_device *pdev, if (led_dat->mode_val[NETXBIG_LED_SATA] != NETXBIG_LED_INVALID_MODE) led_dat->cdev.groups = netxbig_led_groups; - return led_classdev_register(&pdev->dev, &led_dat->cdev); + return devm_led_classdev_register(&pdev->dev, &led_dat->cdev); } static int netxbig_led_probe(struct platform_device *pdev) @@ -367,32 +363,21 @@ static int netxbig_led_probe(struct platform_device *pdev) for (i = 0; i < pdata->num_leds; i++) { ret = create_netxbig_led(pdev, &leds_data[i], &pdata->leds[i]); - if (ret < 0) - goto err_free_leds; + if (ret < 0) { + gpio_ext_free(pdata->gpio_ext); + return ret; + } } platform_set_drvdata(pdev, leds_data); return 0; -err_free_leds: - for (i = i - 1; i >= 0; i--) - delete_netxbig_led(&leds_data[i]); - - gpio_ext_free(pdata->gpio_ext); - return ret; } static int netxbig_led_remove(struct platform_device *pdev) { struct netxbig_led_platform_data *pdata = dev_get_platdata(&pdev->dev); - struct netxbig_led_data *leds_data; - int i; - - leds_data = platform_get_drvdata(pdev); - - for (i = 0; i < pdata->num_leds; i++) - delete_netxbig_led(&leds_data[i]); gpio_ext_free(pdata->gpio_ext); -- 1.9.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] leds: leds-netxbig.c: Use devm_led_classdev_register 2015-10-20 20:06 [PATCH] leds: leds-netxbig.c: Use devm_led_classdev_register Fida Mohammad @ 2015-10-21 7:01 ` Jacek Anaszewski 2015-10-21 8:05 ` Simon Guinot 0 siblings, 1 reply; 4+ messages in thread From: Jacek Anaszewski @ 2015-10-21 7:01 UTC (permalink / raw) To: Fida Mohammad Cc: Bryan Wu, Richard Purdie, linux-leds, LKML, Muhammad Falak, Simon Guinot Hi Fida, On 10/20/2015 10:06 PM, Fida Mohammad wrote: > Use resource managed function devm_led_classdev_register to make > error path simpler. Consequently, removed a goto call and > remove function made simpler. > > Signed-off-by: Fida Mohammad <fmthoker@gmail.com> > --- > drivers/leds/leds-netxbig.c | 25 +++++-------------------- > 1 file changed, 5 insertions(+), 20 deletions(-) > > diff --git a/drivers/leds/leds-netxbig.c b/drivers/leds/leds-netxbig.c > index 25e4197..639f8bd 100644 > --- a/drivers/leds/leds-netxbig.c > +++ b/drivers/leds/leds-netxbig.c > @@ -299,10 +299,6 @@ static struct attribute *netxbig_led_attrs[] = { > }; > ATTRIBUTE_GROUPS(netxbig_led); > > -static void delete_netxbig_led(struct netxbig_led_data *led_dat) > -{ > - led_classdev_unregister(&led_dat->cdev); > -} > > static int > create_netxbig_led(struct platform_device *pdev, > @@ -343,7 +339,7 @@ create_netxbig_led(struct platform_device *pdev, > if (led_dat->mode_val[NETXBIG_LED_SATA] != NETXBIG_LED_INVALID_MODE) > led_dat->cdev.groups = netxbig_led_groups; > > - return led_classdev_register(&pdev->dev, &led_dat->cdev); > + return devm_led_classdev_register(&pdev->dev, &led_dat->cdev); > } > > static int netxbig_led_probe(struct platform_device *pdev) > @@ -367,32 +363,21 @@ static int netxbig_led_probe(struct platform_device *pdev) > > for (i = 0; i < pdata->num_leds; i++) { > ret = create_netxbig_led(pdev, &leds_data[i], &pdata->leds[i]); > - if (ret < 0) > - goto err_free_leds; > + if (ret < 0) { > + gpio_ext_free(pdata->gpio_ext); > + return ret; > + } > } > > platform_set_drvdata(pdev, leds_data); > > return 0; > > -err_free_leds: > - for (i = i - 1; i >= 0; i--) > - delete_netxbig_led(&leds_data[i]); > - > - gpio_ext_free(pdata->gpio_ext); > - return ret; > } > > static int netxbig_led_remove(struct platform_device *pdev) > { > struct netxbig_led_platform_data *pdata = dev_get_platdata(&pdev->dev); > - struct netxbig_led_data *leds_data; > - int i; > - > - leds_data = platform_get_drvdata(pdev); > - > - for (i = 0; i < pdata->num_leds; i++) > - delete_netxbig_led(&leds_data[i]); > > gpio_ext_free(pdata->gpio_ext); > > Thanks for the patch. Always when submitting patches please cc also the author. I know that this is a simple optimization, but nevertheless an ack from the author, who can test the patch on the hardware, is valuable. Cc Simon. -- Best Regards, Jacek Anaszewski ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] leds: leds-netxbig.c: Use devm_led_classdev_register 2015-10-21 7:01 ` Jacek Anaszewski @ 2015-10-21 8:05 ` Simon Guinot 2015-10-21 8:25 ` Jacek Anaszewski 0 siblings, 1 reply; 4+ messages in thread From: Simon Guinot @ 2015-10-21 8:05 UTC (permalink / raw) To: Jacek Anaszewski Cc: Fida Mohammad, Bryan Wu, Richard Purdie, linux-leds, LKML, Muhammad Falak, Simon Guinot [-- Attachment #1: Type: text/plain, Size: 2947 bytes --] On Wed, Oct 21, 2015 at 09:01:00AM +0200, Jacek Anaszewski wrote: > Hi Fida, > > On 10/20/2015 10:06 PM, Fida Mohammad wrote: > >Use resource managed function devm_led_classdev_register to make > >error path simpler. Consequently, removed a goto call and > >remove function made simpler. > > > >Signed-off-by: Fida Mohammad <fmthoker@gmail.com> > >--- > > drivers/leds/leds-netxbig.c | 25 +++++-------------------- > > 1 file changed, 5 insertions(+), 20 deletions(-) > > > >diff --git a/drivers/leds/leds-netxbig.c b/drivers/leds/leds-netxbig.c > >index 25e4197..639f8bd 100644 > >--- a/drivers/leds/leds-netxbig.c > >+++ b/drivers/leds/leds-netxbig.c > >@@ -299,10 +299,6 @@ static struct attribute *netxbig_led_attrs[] = { > > }; > > ATTRIBUTE_GROUPS(netxbig_led); > > > >-static void delete_netxbig_led(struct netxbig_led_data *led_dat) > >-{ > >- led_classdev_unregister(&led_dat->cdev); > >-} > > > > static int > > create_netxbig_led(struct platform_device *pdev, > >@@ -343,7 +339,7 @@ create_netxbig_led(struct platform_device *pdev, > > if (led_dat->mode_val[NETXBIG_LED_SATA] != NETXBIG_LED_INVALID_MODE) > > led_dat->cdev.groups = netxbig_led_groups; > > > >- return led_classdev_register(&pdev->dev, &led_dat->cdev); > >+ return devm_led_classdev_register(&pdev->dev, &led_dat->cdev); > > } > > > > static int netxbig_led_probe(struct platform_device *pdev) > >@@ -367,32 +363,21 @@ static int netxbig_led_probe(struct platform_device *pdev) > > > > for (i = 0; i < pdata->num_leds; i++) { > > ret = create_netxbig_led(pdev, &leds_data[i], &pdata->leds[i]); > >- if (ret < 0) > >- goto err_free_leds; > >+ if (ret < 0) { > >+ gpio_ext_free(pdata->gpio_ext); > >+ return ret; > >+ } > > } > > > > platform_set_drvdata(pdev, leds_data); > > > > return 0; > > > >-err_free_leds: > >- for (i = i - 1; i >= 0; i--) > >- delete_netxbig_led(&leds_data[i]); > >- > >- gpio_ext_free(pdata->gpio_ext); > >- return ret; > > } > > > > static int netxbig_led_remove(struct platform_device *pdev) > > { > > struct netxbig_led_platform_data *pdata = dev_get_platdata(&pdev->dev); > >- struct netxbig_led_data *leds_data; > >- int i; > >- > >- leds_data = platform_get_drvdata(pdev); > >- > >- for (i = 0; i < pdata->num_leds; i++) > >- delete_netxbig_led(&leds_data[i]); > > > > gpio_ext_free(pdata->gpio_ext); > > > > > > Thanks for the patch. > > Always when submitting patches please cc also the author. > I know that this is a simple optimization, but nevertheless > an ack from the author, who can test the patch on the hardware, > is valuable. Cc Simon. Hi Fida and Jacek, An extended version of this patch (with also the devm_gpio_ conversion) is already sitting in the LED's for-next branch. deae3c1895c234e17dafea57b0d4ce4d5da16559 leds: netxbig: convert to use the devm_ functions Thanks, Simon [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 181 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] leds: leds-netxbig.c: Use devm_led_classdev_register 2015-10-21 8:05 ` Simon Guinot @ 2015-10-21 8:25 ` Jacek Anaszewski 0 siblings, 0 replies; 4+ messages in thread From: Jacek Anaszewski @ 2015-10-21 8:25 UTC (permalink / raw) To: Simon Guinot Cc: Fida Mohammad, Bryan Wu, Richard Purdie, linux-leds, LKML, Muhammad Falak, Simon Guinot On 10/21/2015 10:05 AM, Simon Guinot wrote: > On Wed, Oct 21, 2015 at 09:01:00AM +0200, Jacek Anaszewski wrote: >> Hi Fida, >> >> On 10/20/2015 10:06 PM, Fida Mohammad wrote: >>> Use resource managed function devm_led_classdev_register to make >>> error path simpler. Consequently, removed a goto call and >>> remove function made simpler. >>> >>> Signed-off-by: Fida Mohammad <fmthoker@gmail.com> >>> --- >>> drivers/leds/leds-netxbig.c | 25 +++++-------------------- >>> 1 file changed, 5 insertions(+), 20 deletions(-) >>> >>> diff --git a/drivers/leds/leds-netxbig.c b/drivers/leds/leds-netxbig.c >>> index 25e4197..639f8bd 100644 >>> --- a/drivers/leds/leds-netxbig.c >>> +++ b/drivers/leds/leds-netxbig.c >>> @@ -299,10 +299,6 @@ static struct attribute *netxbig_led_attrs[] = { >>> }; >>> ATTRIBUTE_GROUPS(netxbig_led); >>> >>> -static void delete_netxbig_led(struct netxbig_led_data *led_dat) >>> -{ >>> - led_classdev_unregister(&led_dat->cdev); >>> -} >>> >>> static int >>> create_netxbig_led(struct platform_device *pdev, >>> @@ -343,7 +339,7 @@ create_netxbig_led(struct platform_device *pdev, >>> if (led_dat->mode_val[NETXBIG_LED_SATA] != NETXBIG_LED_INVALID_MODE) >>> led_dat->cdev.groups = netxbig_led_groups; >>> >>> - return led_classdev_register(&pdev->dev, &led_dat->cdev); >>> + return devm_led_classdev_register(&pdev->dev, &led_dat->cdev); >>> } >>> >>> static int netxbig_led_probe(struct platform_device *pdev) >>> @@ -367,32 +363,21 @@ static int netxbig_led_probe(struct platform_device *pdev) >>> >>> for (i = 0; i < pdata->num_leds; i++) { >>> ret = create_netxbig_led(pdev, &leds_data[i], &pdata->leds[i]); >>> - if (ret < 0) >>> - goto err_free_leds; >>> + if (ret < 0) { >>> + gpio_ext_free(pdata->gpio_ext); >>> + return ret; >>> + } >>> } >>> >>> platform_set_drvdata(pdev, leds_data); >>> >>> return 0; >>> >>> -err_free_leds: >>> - for (i = i - 1; i >= 0; i--) >>> - delete_netxbig_led(&leds_data[i]); >>> - >>> - gpio_ext_free(pdata->gpio_ext); >>> - return ret; >>> } >>> >>> static int netxbig_led_remove(struct platform_device *pdev) >>> { >>> struct netxbig_led_platform_data *pdata = dev_get_platdata(&pdev->dev); >>> - struct netxbig_led_data *leds_data; >>> - int i; >>> - >>> - leds_data = platform_get_drvdata(pdev); >>> - >>> - for (i = 0; i < pdata->num_leds; i++) >>> - delete_netxbig_led(&leds_data[i]); >>> >>> gpio_ext_free(pdata->gpio_ext); >>> >>> >> >> Thanks for the patch. >> >> Always when submitting patches please cc also the author. >> I know that this is a simple optimization, but nevertheless >> an ack from the author, who can test the patch on the hardware, >> is valuable. Cc Simon. > > Hi Fida and Jacek, > > An extended version of this patch (with also the devm_gpio_ conversion) > is already sitting in the LED's for-next branch. > > deae3c1895c234e17dafea57b0d4ce4d5da16559 > leds: netxbig: convert to use the devm_ functions Hi Simon, Fida, Indeed. Fida - please use LED tree as a reference for your patches. git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds.git -- Best Regards, Jacek Anaszewski ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-10-21 8:25 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-10-20 20:06 [PATCH] leds: leds-netxbig.c: Use devm_led_classdev_register Fida Mohammad 2015-10-21 7:01 ` Jacek Anaszewski 2015-10-21 8:05 ` Simon Guinot 2015-10-21 8:25 ` Jacek Anaszewski
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).