Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933558AbbGVKDt (ORCPT ); Wed, 22 Jul 2015 06:03:49 -0400 Received: from smtp207.alice.it ([82.57.200.103]:40021 "EHLO smtp207.alice.it" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932748AbbGVKDq (ORCPT ); Wed, 22 Jul 2015 06:03:46 -0400 Date: Wed, 22 Jul 2015 12:03:38 +0200 From: Antonio Ospite To: Jacek Anaszewski Cc: linux-leds@vger.kernel.org, linux-kernel@vger.kernel.org, cooloney@gmail.com, rpurdie@rpsys.net, stsp@users.sourceforge.net, Andrew Lunn , Antonio Ospite Subject: Re: [PATCH/RFC 28/51] leds: regulator: Remove work queue Message-Id: <20150722120338.e13541d25218c0af3aa56429@ao2.it> In-Reply-To: <1437122857-6765-29-git-send-email-j.anaszewski@samsung.com> References: <1437122857-6765-1-git-send-email-j.anaszewski@samsung.com> <1437122857-6765-29-git-send-email-j.anaszewski@samsung.com> X-Mailer: Sylpheed 3.5.0beta1 (GTK+ 2.24.28; x86_64-pc-linux-gnu) X-Face: z*RaLf`X<@C75u6Ig9}{oW$H;1_\2t5)({*|jhM/Vb;]yA5\I~93>J<_`<4)A{':UrE Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4559 Lines: 158 On Fri, 17 Jul 2015 10:47:14 +0200 Jacek Anaszewski wrote: > Now the core implements the work queue, remove it from the drivers. > > Signed-off-by: Andrew Lunn > Cc: Antonio Ospite I can't test the changes, but they look good to me. Acked-by: Antonio Ospite Maybe regulator_led_set_value() can even be folded into regulator_led_brightness_set() adjusting the callers of the former. Not a big deal anyway, If you are not adding this change in the next iteration I will eventually send the cleanup as a separate patch after your changes have been merged. Thanks, Antonio > --- > drivers/leds/leds-regulator.c | 34 +++++++++------------------------- > 1 file changed, 9 insertions(+), 25 deletions(-) > > diff --git a/drivers/leds/leds-regulator.c b/drivers/leds/leds-regulator.c > index ffc2139..87615e1 100644 > --- a/drivers/leds/leds-regulator.c > +++ b/drivers/leds/leds-regulator.c > @@ -14,7 +14,6 @@ > #include > #include > #include > -#include > #include > #include > #include > @@ -25,10 +24,8 @@ > > struct regulator_led { > struct led_classdev cdev; > - enum led_brightness value; > int enabled; > struct mutex mutex; > - struct work_struct work; > > struct regulator *vcc; > }; > @@ -94,22 +91,23 @@ static void regulator_led_disable(struct regulator_led *led) > led->enabled = 0; > } > > -static void regulator_led_set_value(struct regulator_led *led) > +static void regulator_led_set_value(struct regulator_led *led, > + enum led_brightness value) > { > int voltage; > int ret; > > mutex_lock(&led->mutex); > > - if (led->value == LED_OFF) { > + if (value == LED_OFF) { > regulator_led_disable(led); > goto out; > } > > if (led->cdev.max_brightness > 1) { > - voltage = led_regulator_get_voltage(led->vcc, led->value); > + voltage = led_regulator_get_voltage(led->vcc, value); > dev_dbg(led->cdev.dev, "brightness: %d voltage: %d\n", > - led->value, voltage); > + value, voltage); > > ret = regulator_set_voltage(led->vcc, voltage, voltage); > if (ret != 0) > @@ -123,21 +121,12 @@ out: > mutex_unlock(&led->mutex); > } > > -static void led_work(struct work_struct *work) > -{ > - struct regulator_led *led; > - > - led = container_of(work, struct regulator_led, work); > - regulator_led_set_value(led); > -} > - > static void regulator_led_brightness_set(struct led_classdev *led_cdev, > enum led_brightness value) > { > struct regulator_led *led = to_regulator_led(led_cdev); > > - led->value = value; > - schedule_work(&led->work); > + regulator_led_set_value(led, value); > } > > static int regulator_led_probe(struct platform_device *pdev) > @@ -169,7 +158,6 @@ static int regulator_led_probe(struct platform_device *pdev) > pdata->brightness); > return -EINVAL; > } > - led->value = pdata->brightness; > > led->cdev.brightness_set = regulator_led_brightness_set; > led->cdev.name = pdata->name; > @@ -181,21 +169,18 @@ static int regulator_led_probe(struct platform_device *pdev) > led->enabled = 1; > > mutex_init(&led->mutex); > - INIT_WORK(&led->work, led_work); > > platform_set_drvdata(pdev, led); > > ret = led_classdev_register(&pdev->dev, &led->cdev); > - if (ret < 0) { > - cancel_work_sync(&led->work); > + if (ret < 0) > return ret; > - } > > /* to expose the default value to userspace */ > - led->cdev.brightness = led->value; > + led->cdev.brightness = pdata->brightness; > > /* Set the default led status */ > - regulator_led_set_value(led); > + regulator_led_set_value(led, led->cdev.brightness); > > return 0; > } > @@ -205,7 +190,6 @@ static int regulator_led_remove(struct platform_device *pdev) > struct regulator_led *led = platform_get_drvdata(pdev); > > led_classdev_unregister(&led->cdev); > - cancel_work_sync(&led->work); > regulator_led_disable(led); > return 0; > } > -- > 1.7.9.5 > -- Antonio Ospite http://ao2.it A: Because it messes up the order in which people normally read text. See http://en.wikipedia.org/wiki/Posting_style Q: Why is top-posting such a bad thing? -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/