From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753819AbbJUIZu (ORCPT ); Wed, 21 Oct 2015 04:25:50 -0400 Received: from mailout2.w1.samsung.com ([210.118.77.12]:18229 "EHLO mailout2.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753690AbbJUIZr (ORCPT ); Wed, 21 Oct 2015 04:25:47 -0400 X-AuditID: cbfec7f4-f79c56d0000012ee-c0-56274c08b407 Message-id: <56274C07.3030206@samsung.com> Date: Wed, 21 Oct 2015 10:25:43 +0200 From: Jacek Anaszewski User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130804 Thunderbird/17.0.8 MIME-version: 1.0 To: Simon Guinot Cc: Fida Mohammad , Bryan Wu , Richard Purdie , linux-leds@vger.kernel.org, LKML , Muhammad Falak , Simon Guinot Subject: Re: [PATCH] leds: leds-netxbig.c: Use devm_led_classdev_register References: <1445371592-24228-1-git-send-email-fmthoker@gmail.com> <5627382C.4040207@samsung.com> <20151021080546.GC6540@kw.sim.vm.gnt> In-reply-to: <20151021080546.GC6540@kw.sim.vm.gnt> Content-type: text/plain; charset=ISO-8859-1; format=flowed Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrELMWRmVeSWpSXmKPExsVy+t/xy7ocPuphBr/+K1sc3TmRyWL3w/Os Fqu/v2SyuLxrDpvF1jfrGC1273rKarH+CZfF9SP7mBw4PHbOusvusfLyAyaPPfN/sHq0XZ/H 5vF5k1wAaxSXTUpqTmZZapG+XQJXRuuxTtaCXZIV0/dtZ2pg/CDSxcjJISFgItHYN4UVwhaT uHBvPVsXIxeHkMBSRomZxxYyQzjPGCWurP4FVsUroCXR8/QwM4jNIqAqcW7PHjYQm03AUOLn i9dMILaoQITEn9P7oOoFJX5MvscCYosI6Ej0HpjKDjKUWeAno8Sr3afABgkLeEpc+nQCanUn o8SJ46vZQRKcAkYSxyZsB5vELGAtsXLSNkYIW15i85q3zBMYBWYhWTILSdksJGULGJlXMYqm liYXFCel5xrqFSfmFpfmpesl5+duYoSE/JcdjIuPWR1iFOBgVOLh/bBQLUyINbGsuDL3EKME B7OSCO9nd/UwId6UxMqq1KL8+KLSnNTiQ4zSHCxK4rxzd70PERJITyxJzU5NLUgtgskycXBK NTBOrPj4OL2g5obI1feN5/9WcAsWO679dTklMv4L11p9yU/mzWf9OLlUf33rMOj9cEFzWsN+ 7jNaUnpCj38+a7JanK2y+63hrFiW0nlte0QLnkkvUnVQbxba6nr8t/yzGU9POvhv2vQi9+CP yCP9LB7bFeROqwbO0Xwb6+6vkhyxVqG3rjTirIwSS3FGoqEWc1FxIgDBHFxudQIAAA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 >>> --- >>> 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