Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1186573 > unrolled thread

[PATCH/RFC v4 00/51] Remove work queues from LED class drivers

Started byJacek Anaszewski <j.anaszewski@samsung.com>
First post2015-07-17 10:50 +0200
Last post2015-07-17 11:20 +0200
Articles 20 on this page of 51 — 6 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH/RFC v4 00/51] Remove work queues from LED class drivers Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 10:50 +0200
    [PATCH/RFC 32/51] leds: gpio: Remove work queue Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 10:50 +0200
    [PATCH/RFC 10/51] leds: bd2802: Remove work queue Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 10:50 +0200
    [PATCH/RFC 27/51] leds: mc13783: Remove work queue Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 10:50 +0200
    [PATCH/RFC 39/51] leds: ss4200: Mark the LED fast Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 10:50 +0200
    [PATCH/RFC 04/51] leds: Improve setting brightness in a non sleeping  way Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 10:50 +0200
    [PATCH/RFC 44/51] leds: cobalt-qube: Mark the LED fast Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:00 +0200
    [PATCH/RFC 47/51] leds: locomo: Mark the LED fast Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:00 +0200
    [PATCH/RFC 42/51] leds: net48xx: Mark the LED fast Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:00 +0200
    [PATCH/RFC 45/51] leds: fsg: Mark the LED fast Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:00 +0200
    [PATCH/RFC 48/51] leds: dell: Mark the LED fast Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:00 +0200
    [PATCH/RFC 37/51] leds: ot200: Mark the LED fast Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:00 +0200
    [PATCH/RFC 33/51] leds: cobalt-raq: Mark the LED fast Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:00 +0200
    [PATCH/RFC 49/51] leds: rb532: Mark the LED fast Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:00 +0200
    [PATCH/RFC 50/51] leds: sunfire: Mark the LED fast Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:00 +0200
    [PATCH/RFC 38/51] leds: s3c24xx: Mark the LED fast Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:00 +0200
    [PATCH/RFC 35/51] leds: bcm6358: Mark the LED fast Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:00 +0200
    [PATCH/RFC 46/51] leds: hp6xx: Mark the LED fast Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:00 +0200
    [PATCH/RFC 34/51] leds: bcm6328: Mark the LED fast Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:00 +0200
    [PATCH/RFC 41/51] leds: wrap: Mark the LED fast Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:00 +0200
    [PATCH/RFC 43/51] leds: asic3: Mark the LED fast Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:00 +0200
    [PATCH/RFC 40/51] leds: versatile: Mark the LED fast Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:00 +0200
      Re: [PATCH/RFC 40/51] leds: versatile: Mark the LED fast Linus Walleij <linus.walleij@linaro.org> - 2015-07-17 15:50 +0200
    [PATCH/RFC 51/51] leds: ipaq-micro: Mark the LED fast Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:00 +0200
      Re: [PATCH/RFC 51/51] leds: ipaq-micro: Mark the LED fast Linus Walleij <linus.walleij@linaro.org> - 2015-07-17 15:50 +0200
    [PATCH/RFC 23/51] leds: da9052: Remove work queue Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:10 +0200
    [PATCH/RFC 20/51] leds: pca963x: Remove work queue Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:10 +0200
    [PATCH/RFC 25/51] leds: lt3593: Remove work queue Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:10 +0200
    [PATCH/RFC 26/51] leds: max8997: Remove unneeded workqueue include Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:10 +0200
    [PATCH/RFC 18/51] leds: lp8860: Remove work queue Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:10 +0200
      Re: [PATCH/RFC 18/51] leds: lp8860: Remove work queue Dan Murphy <dmurphy@ti.com> - 2015-07-17 16:00 +0200
    [PATCH/RFC 19/51] leds: pca955x: Remove work queue Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:10 +0200
    [PATCH/RFC 28/51] leds: regulator: Remove work queue Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:10 +0200
    [PATCH/RFC 15/51] leds: lp3944: Remove work queue Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:10 +0200
    [PATCH/RFC 21/51] leds: wm831x: Remove work queue Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:10 +0200
      Re: [PATCH/RFC 21/51] leds: wm831x: Remove work queue Mark Brown <broonie@kernel.org> - 2015-07-17 12:10 +0200
    [PATCH/RFC 16/51] leds: lp55xx: Remove work queue Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:10 +0200
    [PATCH/RFC 13/51] leds: lm3642: Remove work queue Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:10 +0200
    [PATCH/RFC 17/51] leds: lp8788: Remove work queue Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:10 +0200
    [PATCH/RFC 31/51] leds: lm355x: Remove work queue Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:10 +0200
    [PATCH/RFC 29/51] leds: wm8350: Remove work queue Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:10 +0200
      Re: [PATCH/RFC 29/51] leds: wm8350: Remove work queue Mark Brown <broonie@kernel.org> - 2015-07-17 12:10 +0200
    [PATCH/RFC 06/51] media: flash: use led_set_brightness_sync for torch  brightness Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:20 +0200
    [PATCH/RFC 03/51] leds: Add an internal led_set_brightness_nosleep  function Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:20 +0200
    [PATCH/RFC 07/51] leds: tlc591xx: Remove work queue Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:20 +0200
    [PATCH/RFC 12/51] leds: lm3533: Remove work queue Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:20 +0200
      Re: [PATCH/RFC 12/51] leds: lm3533: Remove work queue Johan Hovold <johan@kernel.org> - 2015-07-17 11:30 +0200
    [PATCH/RFC 01/51] leds: Add led_set_brightness_sync to the public LED  subsystem API Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:20 +0200
      Re: [PATCH/RFC 01/51] leds: Add led_set_brightness_sync to the  public LED subsystem API Pavel Machek <pavel@ucw.cz> - 2015-07-22 09:30 +0200
    [PATCH/RFC 11/51] leds: blinkm: Remove work queue Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:20 +0200
    [PATCH/RFC 05/51] leds: Drivers shouldn't enforce SYNC/ASYNC  brightness setting Jacek Anaszewski <j.anaszewski@samsung.com> - 2015-07-17 11:20 +0200

Page 1 of 3  [1] 2 3  Next page →


#1186573 — [PATCH/RFC v4 00/51] Remove work queues from LED class drivers

FromJacek Anaszewski <j.anaszewski@samsung.com>
Date2015-07-17 10:50 +0200
Subject[PATCH/RFC v4 00/51] Remove work queues from LED class drivers
Message-ID<pN9vb-kw-3@gated-at.bofh.it>
This is a fourth version of the RFC aiming at removing work queues
from LED class drivers, as well as getting rid of complimentary
functionalities introduced along with addition of LED flash class
extension.

======================
Changes from version 3
======================
- fixed return value in one of intermediary patches
- changed the comment over the brightness_set op member
  of struct led_classdev
- added patches adjusting LED subsystem drivers to the introduced
  modifications - they have been only compile-tested

======================
Changes from version 2
======================

- split changes to several incremental patches
- removed SET_BRIGHTNESS_SYNC and SET_BRIGHTNESS_ASYNC flags
- fixed led_set_brightness_async function instead of renaming it

======================
Changes from version 1
======================

V2 includes also patches for one LED class driver
and two LED flash class drivers, that show how the
drivers will benefit from the optimization being
introduced in the first patch of this patch set.

I was able to test only the LED Flash class drivers.

Original message from the patch 483a3122 ("leds: Use set_brightness_work for
brightness_set ops that can sleep") that was sent previously as a single one:

Hi All,

Since this patch will affect all the LED subsystem drivers
I'd like it was tested by as many developers as possible
to make sure that I haven't missed something.

For the drivers which can sleep in their brightness_set ops
(e.g. use mutex or gpio "cansleep" API) you only need to
remove the work queues and move the code executed currently
in the work queue task to the brightness_set op, as now
LED core does the job.

For drivers that are capable of setting brightness with use
of MMIO you need to set the LED_BRIGHTNESS_FAST flag, so
that LED core would know that it doesn't have to employ
work queue.

After the patch is positively verified I will create relevant
patches for every LED class driver.

This patch is based on linux-next_20150622.

I am looking forward to your cooperation.

Best Regards,
Jacek Anaszewski

Andrew Lunn (21):
  leds: tlc591xx: Remove work queue
  leds: 88pm860x: Remove work queue
  leds: adp5520: Remove work queue
  leds: bd2802: Remove work queue
  leds: blinkm: Remove work queue
  leds: lm3533: Remove work queue
  leds: lm3642: Remove work queue
  leds: pca9532: Remove work queue for LEDs.
  leds: lp3944: Remove work queue
  leds: lp55xx: Remove work queue
  leds: lp8788: Remove work queue
  leds: lp8860: Remove work queue
  leds: pca955x: Remove work queue
  leds: pca963x: Remove work queue
  leds: wm831x: Remove work queue
  leds: da903x: Remove work queue
  leds: da9052: Remove work queue
  leds: dac124d085: Remove work queue
  leds: lt3593: Remove work queue
  leds: max8997: Remove unneeded workqueue include
  leds: mc13783: Remove work queue

Jacek Anaszewski (30):
  leds: Add led_set_brightness_sync to the public LED subsystem API
  leds: Improve asynchronous path of setting brightness
  leds: Add an internal led_set_brightness_nosleep function
  leds: Improve setting brightness in a non sleeping way
  leds: Drivers shouldn't enforce SYNC/ASYNC brightness setting
  media: flash: use led_set_brightness_sync for torch brightness
  leds: regulator: Remove work queue
  leds: wm8350: Remove work queue
  leds: pwm: remove work queue
  leds: lm355x: Remove work queue
  leds: gpio: Remove work queue
  leds: cobalt-raq: Mark the LED fast
  leds: bcm6328: Mark the LED fast
  leds: bcm6358: Mark the LED fast
  leds: syscon: Mark the LED fast
  leds: ot200: Mark the LED fast
  leds: s3c24xx: Mark the LED fast
  leds: ss4200: Mark the LED fast
  leds: versatile: Mark the LED fast
  leds: wrap: Mark the LED fast
  leds: net48xx: Mark the LED fast
  leds: asic3: Mark the LED fast
  leds: cobalt-qube: Mark the LED fast
  leds: fsg: Mark the LED fast
  leds: hp6xx: Mark the LED fast
  leds: locomo: Mark the LED fast
  leds: dell: Mark the LED fast
  leds: rb532: Mark the LED fast
  leds: sunfire: Mark the LED fast
  leds: ipaq-micro: Mark the LED fast

 drivers/leds/dell-led.c                        |    2 +-
 drivers/leds/led-class-flash.c                 |    7 ---
 drivers/leds/led-class.c                       |   20 +++----
 drivers/leds/led-core.c                        |   42 +++++++--------
 drivers/leds/leds-88pm860x.c                   |   21 ++------
 drivers/leds/leds-aat1290.c                    |   50 +++++-------------
 drivers/leds/leds-adp5520.c                    |   22 ++------
 drivers/leds/leds-asic3.c                      |    1 +
 drivers/leds/leds-bcm6328.c                    |    1 +
 drivers/leds/leds-bcm6358.c                    |    1 +
 drivers/leds/leds-bd2802.c                     |   24 +++------
 drivers/leds/leds-blinkm.c                     |   66 ++----------------------
 drivers/leds/leds-cobalt-qube.c                |    1 +
 drivers/leds/leds-cobalt-raq.c                 |    2 +
 drivers/leds/leds-da903x.c                     |   32 ++++--------
 drivers/leds/leds-da9052.c                     |   35 ++++---------
 drivers/leds/leds-dac124s085.c                 |   33 +++---------
 drivers/leds/leds-fsg.c                        |   12 ++---
 drivers/leds/leds-gpio.c                       |   50 +++++-------------
 drivers/leds/leds-hp6xx.c                      |    4 +-
 drivers/leds/leds-ipaq-micro.c                 |    2 +-
 drivers/leds/leds-ktd2692.c                    |   41 ++-------------
 drivers/leds/leds-lm3533.c                     |   30 +++--------
 drivers/leds/leds-lm355x.c                     |   58 ++++-----------------
 drivers/leds/leds-lm3642.c                     |   54 ++++---------------
 drivers/leds/leds-locomo.c                     |    2 +
 drivers/leds/leds-lp3944.c                     |   15 +-----
 drivers/leds/leds-lp5521.c                     |    6 +--
 drivers/leds/leds-lp5523.c                     |    6 +--
 drivers/leds/leds-lp5562.c                     |    6 +--
 drivers/leds/leds-lp55xx-common.c              |    8 ++-
 drivers/leds/leds-lp55xx-common.h              |    6 +--
 drivers/leds/leds-lp8501.c                     |    6 +--
 drivers/leds/leds-lp8788.c                     |   22 ++------
 drivers/leds/leds-lp8860.c                     |   24 ++-------
 drivers/leds/leds-lt3593.c                     |   27 +++-------
 drivers/leds/leds-max77693.c                   |   55 +++-----------------
 drivers/leds/leds-max8997.c                    |    1 -
 drivers/leds/leds-mc13783.c                    |   31 +++--------
 drivers/leds/leds-net48xx.c                    |    2 +-
 drivers/leds/leds-ot200.c                      |    1 +
 drivers/leds/leds-pca9532.c                    |   20 +++----
 drivers/leds/leds-pca955x.c                    |   37 +++----------
 drivers/leds/leds-pca963x.c                    |   56 +++-----------------
 drivers/leds/leds-pwm.c                        |   24 ++-------
 drivers/leds/leds-rb532.c                      |    1 +
 drivers/leds/leds-regulator.c                  |   34 ++++--------
 drivers/leds/leds-s3c24xx.c                    |    2 +-
 drivers/leds/leds-ss4200.c                     |    1 +
 drivers/leds/leds-sunfire.c                    |    1 +
 drivers/leds/leds-syscon.c                     |    1 +
 drivers/leds/leds-tlc591xx.c                   |   24 ++-------
 drivers/leds/leds-versatile.c                  |    1 +
 drivers/leds/leds-wm831x-status.c              |   23 +++------
 drivers/leds/leds-wm8350.c                     |   31 +++--------
 drivers/leds/leds-wrap.c                       |    6 +--
 drivers/leds/leds.h                            |   34 ++++++------
 drivers/leds/trigger/ledtrig-backlight.c       |    8 +--
 drivers/leds/trigger/ledtrig-default-on.c      |    2 +-
 drivers/leds/trigger/ledtrig-gpio.c            |    6 +--
 drivers/leds/trigger/ledtrig-heartbeat.c       |    4 +-
 drivers/leds/trigger/ledtrig-oneshot.c         |    4 +-
 drivers/leds/trigger/ledtrig-transient.c       |    8 +--
 drivers/media/v4l2-core/v4l2-flash-led-class.c |    8 +--
 include/linux/leds.h                           |   38 ++++++++++----
 include/linux/mfd/wm8350/pmic.h                |    1 -
 66 files changed, 319 insertions(+), 885 deletions(-)

-- 
1.7.9.5

--
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/

[toc] | [next] | [standalone]


#1186574 — [PATCH/RFC 32/51] leds: gpio: Remove work queue

FromJacek Anaszewski <j.anaszewski@samsung.com>
Date2015-07-17 10:50 +0200
Subject[PATCH/RFC 32/51] leds: gpio: Remove work queue
Message-ID<pN9ve-kw-39@gated-at.bofh.it>
In reply to#1186573
Now the core implements the work queue, remove it from the drivers.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Cc: Raphael Assenat <raph@8d.com>
---
 drivers/leds/leds-gpio.c |   50 +++++++++++-----------------------------------
 1 file changed, 12 insertions(+), 38 deletions(-)

diff --git a/drivers/leds/leds-gpio.c b/drivers/leds/leds-gpio.c
index af1876a..bf4dfbd 100644
--- a/drivers/leds/leds-gpio.c
+++ b/drivers/leds/leds-gpio.c
@@ -20,32 +20,16 @@
 #include <linux/platform_device.h>
 #include <linux/property.h>
 #include <linux/slab.h>
-#include <linux/workqueue.h>
 
 struct gpio_led_data {
 	struct led_classdev cdev;
 	struct gpio_desc *gpiod;
-	struct work_struct work;
-	u8 new_level;
 	u8 can_sleep;
 	u8 blinking;
 	int (*platform_gpio_blink_set)(struct gpio_desc *desc, int state,
 			unsigned long *delay_on, unsigned long *delay_off);
 };
 
-static void gpio_led_work(struct work_struct *work)
-{
-	struct gpio_led_data *led_dat =
-		container_of(work, struct gpio_led_data, work);
-
-	if (led_dat->blinking) {
-		led_dat->platform_gpio_blink_set(led_dat->gpiod,
-					led_dat->new_level, NULL, NULL);
-		led_dat->blinking = 0;
-	} else
-		gpiod_set_value_cansleep(led_dat->gpiod, led_dat->new_level);
-}
-
 static void gpio_led_set(struct led_classdev *led_cdev,
 	enum led_brightness value)
 {
@@ -62,17 +46,12 @@ static void gpio_led_set(struct led_classdev *led_cdev,
 	 * seem to have a reliable way to know if we're already in one; so
 	 * let's just assume the worst.
 	 */
-	if (led_dat->can_sleep) {
-		led_dat->new_level = level;
-		schedule_work(&led_dat->work);
-	} else {
-		if (led_dat->blinking) {
-			led_dat->platform_gpio_blink_set(led_dat->gpiod, level,
-							 NULL, NULL);
-			led_dat->blinking = 0;
-		} else
-			gpiod_set_value(led_dat->gpiod, level);
-	}
+	if (led_dat->blinking) {
+		led_dat->platform_gpio_blink_set(led_dat->gpiod, level,
+						 NULL, NULL);
+		led_dat->blinking = 0;
+	} else
+		gpiod_set_value(led_dat->gpiod, level);
 }
 
 static int gpio_blink_set(struct led_classdev *led_cdev,
@@ -125,6 +104,8 @@ static int create_gpio_led(const struct gpio_led *template,
 	led_dat->cdev.name = template->name;
 	led_dat->cdev.default_trigger = template->default_trigger;
 	led_dat->can_sleep = gpiod_cansleep(led_dat->gpiod);
+	if (!led_dat->can_sleep)
+		led_dat->cdev.flags |= LED_BRIGHTNESS_FAST;
 	led_dat->blinking = 0;
 	if (blink_set) {
 		led_dat->platform_gpio_blink_set = blink_set;
@@ -143,17 +124,9 @@ static int create_gpio_led(const struct gpio_led *template,
 	if (ret < 0)
 		return ret;
 
-	INIT_WORK(&led_dat->work, gpio_led_work);
-
 	return led_classdev_register(parent, &led_dat->cdev);
 }
 
-static void delete_gpio_led(struct gpio_led_data *led)
-{
-	led_classdev_unregister(&led->cdev);
-	cancel_work_sync(&led->work);
-}
-
 struct gpio_leds_priv {
 	int num_leds;
 	struct gpio_led_data leds[];
@@ -233,7 +206,7 @@ static struct gpio_leds_priv *gpio_leds_create(struct platform_device *pdev)
 
 err:
 	for (count = priv->num_leds - 1; count >= 0; count--)
-		delete_gpio_led(&priv->leds[count]);
+		led_classdev_unregister(&priv->leds[count].cdev);
 	return ERR_PTR(ret);
 }
 
@@ -265,7 +238,8 @@ static int gpio_led_probe(struct platform_device *pdev)
 			if (ret < 0) {
 				/* On failure: unwind the led creations */
 				for (i = i - 1; i >= 0; i--)
-					delete_gpio_led(&priv->leds[i]);
+					led_classdev_unregister(
+							&priv->leds[i].cdev);
 				return ret;
 			}
 		}
@@ -286,7 +260,7 @@ static int gpio_led_remove(struct platform_device *pdev)
 	int i;
 
 	for (i = 0; i < priv->num_leds; i++)
-		delete_gpio_led(&priv->leds[i]);
+		led_classdev_unregister(&priv->leds[i].cdev);
 
 	return 0;
 }
-- 
1.7.9.5

--
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/

[toc] | [prev] | [next] | [standalone]


#1186575 — [PATCH/RFC 10/51] leds: bd2802: Remove work queue

FromJacek Anaszewski <j.anaszewski@samsung.com>
Date2015-07-17 10:50 +0200
Subject[PATCH/RFC 10/51] leds: bd2802: Remove work queue
Message-ID<pN9ve-kw-41@gated-at.bofh.it>
In reply to#1186573
From: Andrew Lunn <andrew@lunn.ch>

Now the core implements the work queue, remove it from the driver.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Cc: Kim Kyuwon <q1.kim@samsung.com>
---
 drivers/leds/leds-bd2802.c |   24 ++++++------------------
 1 file changed, 6 insertions(+), 18 deletions(-)

diff --git a/drivers/leds/leds-bd2802.c b/drivers/leds/leds-bd2802.c
index 6078c15d..19113c0 100644
--- a/drivers/leds/leds-bd2802.c
+++ b/drivers/leds/leds-bd2802.c
@@ -72,7 +72,6 @@ struct bd2802_led {
 	struct bd2802_led_platform_data	*pdata;
 	struct i2c_client		*client;
 	struct rw_semaphore		rwsem;
-	struct work_struct		work;
 
 	struct led_state		led[2];
 
@@ -518,16 +517,6 @@ static struct device_attribute *bd2802_attributes[] = {
 	&bd2802_rgb_current_attr,
 };
 
-static void bd2802_led_work(struct work_struct *work)
-{
-	struct bd2802_led *led = container_of(work, struct bd2802_led, work);
-
-	if (led->state)
-		bd2802_turn_on(led, led->led_id, led->color, led->state);
-	else
-		bd2802_turn_off(led, led->led_id, led->color);
-}
-
 #define BD2802_CONTROL_RGBS(name, id, clr)				\
 static void bd2802_set_##name##_brightness(struct led_classdev *led_cdev,\
 					enum led_brightness value)	\
@@ -536,11 +525,13 @@ static void bd2802_set_##name##_brightness(struct led_classdev *led_cdev,\
 		container_of(led_cdev, struct bd2802_led, cdev_##name);	\
 	led->led_id = id;						\
 	led->color = clr;						\
-	if (value == LED_OFF)						\
+	if (value == LED_OFF) {						\
 		led->state = BD2802_OFF;				\
-	else								\
+		bd2802_turn_off(led, led->led_id, led->color);		\
+	} else {							\
 		led->state = BD2802_ON;					\
-	schedule_work(&led->work);					\
+		bd2802_turn_on(led, led->led_id, led->color, BD2802_ON);\
+	}								\
 }									\
 static int bd2802_set_##name##_blink(struct led_classdev *led_cdev,	\
 		unsigned long *delay_on, unsigned long *delay_off)	\
@@ -552,7 +543,7 @@ static int bd2802_set_##name##_blink(struct led_classdev *led_cdev,	\
 	led->led_id = id;						\
 	led->color = clr;						\
 	led->state = BD2802_BLINK;					\
-	schedule_work(&led->work);					\
+	bd2802_turn_on(led, led->led_id, led->color, BD2802_BLINK);	\
 	return 0;							\
 }
 
@@ -567,8 +558,6 @@ static int bd2802_register_led_classdev(struct bd2802_led *led)
 {
 	int ret;
 
-	INIT_WORK(&led->work, bd2802_led_work);
-
 	led->cdev_led1r.name = "led1_R";
 	led->cdev_led1r.brightness = LED_OFF;
 	led->cdev_led1r.brightness_set = bd2802_set_led1r_brightness;
@@ -661,7 +650,6 @@ failed_unregister_led1_R:
 
 static void bd2802_unregister_led_classdev(struct bd2802_led *led)
 {
-	cancel_work_sync(&led->work);
 	led_classdev_unregister(&led->cdev_led2b);
 	led_classdev_unregister(&led->cdev_led2g);
 	led_classdev_unregister(&led->cdev_led2r);
-- 
1.7.9.5

--
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/

[toc] | [prev] | [next] | [standalone]


#1186576 — [PATCH/RFC 27/51] leds: mc13783: Remove work queue

FromJacek Anaszewski <j.anaszewski@samsung.com>
Date2015-07-17 10:50 +0200
Subject[PATCH/RFC 27/51] leds: mc13783: Remove work queue
Message-ID<pN9ve-kw-43@gated-at.bofh.it>
In reply to#1186573
From: Andrew Lunn <andrew@lunn.ch>

Now the core implements the work queue, remove it from the drivers.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
---
 drivers/leds/leds-mc13783.c |   31 +++++++------------------------
 1 file changed, 7 insertions(+), 24 deletions(-)

diff --git a/drivers/leds/leds-mc13783.c b/drivers/leds/leds-mc13783.c
index e2b847f..f2f8cae 100644
--- a/drivers/leds/leds-mc13783.c
+++ b/drivers/leds/leds-mc13783.c
@@ -20,7 +20,6 @@
 #include <linux/platform_device.h>
 #include <linux/leds.h>
 #include <linux/of.h>
-#include <linux/workqueue.h>
 #include <linux/mfd/mc13xxx.h>
 
 struct mc13xxx_led_devtype {
@@ -32,8 +31,6 @@ struct mc13xxx_led_devtype {
 
 struct mc13xxx_led {
 	struct led_classdev	cdev;
-	struct work_struct	work;
-	enum led_brightness	new_brightness;
 	int			id;
 	struct mc13xxx_leds	*leds;
 };
@@ -55,9 +52,11 @@ static unsigned int mc13xxx_max_brightness(int id)
 	return 0x3f;
 }
 
-static void mc13xxx_led_work(struct work_struct *work)
+static void mc13xxx_led_set(struct led_classdev *led_cdev,
+			    enum led_brightness value)
 {
-	struct mc13xxx_led *led = container_of(work, struct mc13xxx_led, work);
+	struct mc13xxx_led *led =
+		container_of(led_cdev, struct mc13xxx_led, cdev);
 	struct mc13xxx_leds *leds = led->leds;
 	unsigned int reg, bank, off, shift;
 
@@ -107,17 +106,7 @@ static void mc13xxx_led_work(struct work_struct *work)
 
 	mc13xxx_reg_rmw(leds->master, leds->devtype->ledctrl_base + reg,
 			mc13xxx_max_brightness(led->id) << shift,
-			led->new_brightness << shift);
-}
-
-static void mc13xxx_led_set(struct led_classdev *led_cdev,
-			    enum led_brightness value)
-{
-	struct mc13xxx_led *led =
-		container_of(led_cdev, struct mc13xxx_led, cdev);
-
-	led->new_brightness = value;
-	schedule_work(&led->work);
+			value << shift);
 }
 
 #ifdef CONFIG_OF
@@ -260,8 +249,6 @@ static int __init mc13xxx_led_probe(struct platform_device *pdev)
 		leds->led[i].cdev.brightness_set = mc13xxx_led_set;
 		leds->led[i].cdev.max_brightness = mc13xxx_max_brightness(id);
 
-		INIT_WORK(&leds->led[i].work, mc13xxx_led_work);
-
 		ret = led_classdev_register(dev->parent, &leds->led[i].cdev);
 		if (ret) {
 			dev_err(dev, "Failed to register LED %i\n", id);
@@ -270,10 +257,8 @@ static int __init mc13xxx_led_probe(struct platform_device *pdev)
 	}
 
 	if (ret)
-		while (--i >= 0) {
+		while (--i >= 0)
 			led_classdev_unregister(&leds->led[i].cdev);
-			cancel_work_sync(&leds->led[i].work);
-		}
 
 	return ret;
 }
@@ -283,10 +268,8 @@ static int mc13xxx_led_remove(struct platform_device *pdev)
 	struct mc13xxx_leds *leds = platform_get_drvdata(pdev);
 	int i;
 
-	for (i = 0; i < leds->num_leds; i++) {
+	for (i = 0; i < leds->num_leds; i++)
 		led_classdev_unregister(&leds->led[i].cdev);
-		cancel_work_sync(&leds->led[i].work);
-	}
 
 	return 0;
 }
-- 
1.7.9.5

--
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/

[toc] | [prev] | [next] | [standalone]


#1186577 — [PATCH/RFC 39/51] leds: ss4200: Mark the LED fast

FromJacek Anaszewski <j.anaszewski@samsung.com>
Date2015-07-17 10:50 +0200
Subject[PATCH/RFC 39/51] leds: ss4200: Mark the LED fast
Message-ID<pN9ve-kw-45@gated-at.bofh.it>
In reply to#1186573
The driver neither sleeps nor uses delays in its brightness_set
op. Mark it fast then.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Cc: Dave Hansen <dave@sr71.net>
---
 drivers/leds/leds-ss4200.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/leds/leds-ss4200.c b/drivers/leds/leds-ss4200.c
index 046cb70..53ac0aa 100644
--- a/drivers/leds/leds-ss4200.c
+++ b/drivers/leds/leds-ss4200.c
@@ -488,6 +488,7 @@ static int register_nasgpio_led(int led_nr)
 	led->brightness_set = nasgpio_led_set_brightness;
 	led->blink_set = nasgpio_led_set_blink;
 	led->groups = nasgpio_led_groups;
+	led->flags |= LED_BRIGHTNESS_FAST;
 	ret = led_classdev_register(&nas_gpio_pci_dev->dev, led);
 	if (ret)
 		return ret;
-- 
1.7.9.5

--
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/

[toc] | [prev] | [next] | [standalone]


#1186579 — [PATCH/RFC 04/51] leds: Improve setting brightness in a non sleeping way

FromJacek Anaszewski <j.anaszewski@samsung.com>
Date2015-07-17 10:50 +0200
Subject[PATCH/RFC 04/51] leds: Improve setting brightness in a non sleeping way
Message-ID<pN9ve-kw-47@gated-at.bofh.it>
In reply to#1186573
This patch replaces led_set_brightness_async with
led_set_brightness_nosleep in all places where the most
vital was setting brightness in a non sleeping way but
not necessarily asynchronously, which is not needed for
fast drivers.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Cc: Bryan Wu <cooloney@gmail.com>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Stas Sergeev <stsp@users.sourceforge.net>
---
 drivers/leds/led-class.c                  |    4 ++--
 drivers/leds/led-core.c                   |    5 +++--
 drivers/leds/trigger/ledtrig-backlight.c  |    8 ++++----
 drivers/leds/trigger/ledtrig-default-on.c |    2 +-
 drivers/leds/trigger/ledtrig-gpio.c       |    6 +++---
 drivers/leds/trigger/ledtrig-heartbeat.c  |    4 ++--
 drivers/leds/trigger/ledtrig-oneshot.c    |    4 ++--
 drivers/leds/trigger/ledtrig-transient.c  |    8 ++++----
 8 files changed, 21 insertions(+), 20 deletions(-)

diff --git a/drivers/leds/led-class.c b/drivers/leds/led-class.c
index b8decf7..964750a 100644
--- a/drivers/leds/led-class.c
+++ b/drivers/leds/led-class.c
@@ -109,7 +109,7 @@ static void led_timer_function(unsigned long data)
 	unsigned long delay;
 
 	if (!led_cdev->blink_delay_on || !led_cdev->blink_delay_off) {
-		led_set_brightness_async(led_cdev, LED_OFF);
+		led_set_brightness_nosleep(led_cdev, LED_OFF);
 		return;
 	}
 
@@ -137,7 +137,7 @@ static void led_timer_function(unsigned long data)
 		delay = led_cdev->blink_delay_off;
 	}
 
-	led_set_brightness_async(led_cdev, brightness);
+	led_set_brightness_nosleep(led_cdev, brightness);
 
 	/* Return in next iteration if led is in one-shot mode and we are in
 	 * the final blink state so that the led is toggled each delay_on +
diff --git a/drivers/leds/led-core.c b/drivers/leds/led-core.c
index 16fe995..428f04c 100644
--- a/drivers/leds/led-core.c
+++ b/drivers/leds/led-core.c
@@ -42,13 +42,14 @@ static void led_set_software_blink(struct led_classdev *led_cdev,
 
 	/* never on - just set to off */
 	if (!delay_on) {
-		led_set_brightness_async(led_cdev, LED_OFF);
+		led_set_brightness_nosleep(led_cdev, LED_OFF);
 		return;
 	}
 
 	/* never off - just set to brightness */
 	if (!delay_off) {
-		led_set_brightness_async(led_cdev, led_cdev->blink_brightness);
+		led_set_brightness_nosleep(led_cdev,
+					   led_cdev->blink_brightness);
 		return;
 	}
 
diff --git a/drivers/leds/trigger/ledtrig-backlight.c b/drivers/leds/trigger/ledtrig-backlight.c
index 59eca17..1ca1f16 100644
--- a/drivers/leds/trigger/ledtrig-backlight.c
+++ b/drivers/leds/trigger/ledtrig-backlight.c
@@ -51,9 +51,9 @@ static int fb_notifier_callback(struct notifier_block *p,
 
 	if ((n->old_status == UNBLANK) ^ n->invert) {
 		n->brightness = led->brightness;
-		led_set_brightness_async(led, LED_OFF);
+		led_set_brightness_nosleep(led, LED_OFF);
 	} else {
-		led_set_brightness_async(led, n->brightness);
+		led_set_brightness_nosleep(led, n->brightness);
 	}
 
 	n->old_status = new_status;
@@ -89,9 +89,9 @@ static ssize_t bl_trig_invert_store(struct device *dev,
 
 	/* After inverting, we need to update the LED. */
 	if ((n->old_status == BLANK) ^ n->invert)
-		led_set_brightness_async(led, LED_OFF);
+		led_set_brightness_nosleep(led, LED_OFF);
 	else
-		led_set_brightness_async(led, n->brightness);
+		led_set_brightness_nosleep(led, n->brightness);
 
 	return num;
 }
diff --git a/drivers/leds/trigger/ledtrig-default-on.c b/drivers/leds/trigger/ledtrig-default-on.c
index 6f38f88..ff455cb 100644
--- a/drivers/leds/trigger/ledtrig-default-on.c
+++ b/drivers/leds/trigger/ledtrig-default-on.c
@@ -19,7 +19,7 @@
 
 static void defon_trig_activate(struct led_classdev *led_cdev)
 {
-	led_set_brightness_async(led_cdev, led_cdev->max_brightness);
+	led_set_brightness_nosleep(led_cdev, led_cdev->max_brightness);
 }
 
 static struct led_trigger defon_led_trigger = {
diff --git a/drivers/leds/trigger/ledtrig-gpio.c b/drivers/leds/trigger/ledtrig-gpio.c
index 4cc7040..51288a4 100644
--- a/drivers/leds/trigger/ledtrig-gpio.c
+++ b/drivers/leds/trigger/ledtrig-gpio.c
@@ -54,12 +54,12 @@ static void gpio_trig_work(struct work_struct *work)
 
 	if (tmp) {
 		if (gpio_data->desired_brightness)
-			led_set_brightness_async(gpio_data->led,
+			led_set_brightness_nosleep(gpio_data->led,
 					   gpio_data->desired_brightness);
 		else
-			led_set_brightness_async(gpio_data->led, LED_FULL);
+			led_set_brightness_nosleep(gpio_data->led, LED_FULL);
 	} else {
-		led_set_brightness_async(gpio_data->led, LED_OFF);
+		led_set_brightness_nosleep(gpio_data->led, LED_OFF);
 	}
 }
 
diff --git a/drivers/leds/trigger/ledtrig-heartbeat.c b/drivers/leds/trigger/ledtrig-heartbeat.c
index fea6871..3dc6f0c 100644
--- a/drivers/leds/trigger/ledtrig-heartbeat.c
+++ b/drivers/leds/trigger/ledtrig-heartbeat.c
@@ -37,7 +37,7 @@ static void led_heartbeat_function(unsigned long data)
 	unsigned long delay = 0;
 
 	if (unlikely(panic_heartbeats)) {
-		led_set_brightness(led_cdev, LED_OFF);
+		led_set_brightness_nosleep(led_cdev, LED_OFF);
 		return;
 	}
 
@@ -74,7 +74,7 @@ static void led_heartbeat_function(unsigned long data)
 		break;
 	}
 
-	led_set_brightness_async(led_cdev, brightness);
+	led_set_brightness_nosleep(led_cdev, brightness);
 	mod_timer(&heartbeat_data->timer, jiffies + delay);
 }
 
diff --git a/drivers/leds/trigger/ledtrig-oneshot.c b/drivers/leds/trigger/ledtrig-oneshot.c
index fbd02cd..6729317 100644
--- a/drivers/leds/trigger/ledtrig-oneshot.c
+++ b/drivers/leds/trigger/ledtrig-oneshot.c
@@ -63,9 +63,9 @@ static ssize_t led_invert_store(struct device *dev,
 	oneshot_data->invert = !!state;
 
 	if (oneshot_data->invert)
-		led_set_brightness_async(led_cdev, LED_FULL);
+		led_set_brightness_nosleep(led_cdev, LED_FULL);
 	else
-		led_set_brightness_async(led_cdev, LED_OFF);
+		led_set_brightness_nosleep(led_cdev, LED_OFF);
 
 	return size;
 }
diff --git a/drivers/leds/trigger/ledtrig-transient.c b/drivers/leds/trigger/ledtrig-transient.c
index 3c34de4..1dddd8f 100644
--- a/drivers/leds/trigger/ledtrig-transient.c
+++ b/drivers/leds/trigger/ledtrig-transient.c
@@ -41,7 +41,7 @@ static void transient_timer_function(unsigned long data)
 	struct transient_trig_data *transient_data = led_cdev->trigger_data;
 
 	transient_data->activate = 0;
-	led_set_brightness_async(led_cdev, transient_data->restore_state);
+	led_set_brightness_nosleep(led_cdev, transient_data->restore_state);
 }
 
 static ssize_t transient_activate_show(struct device *dev,
@@ -72,7 +72,7 @@ static ssize_t transient_activate_store(struct device *dev,
 	if (state == 0 && transient_data->activate == 1) {
 		del_timer(&transient_data->timer);
 		transient_data->activate = state;
-		led_set_brightness_async(led_cdev,
+		led_set_brightness_nosleep(led_cdev,
 					transient_data->restore_state);
 		return size;
 	}
@@ -81,7 +81,7 @@ static ssize_t transient_activate_store(struct device *dev,
 	if (state == 1 && transient_data->activate == 0 &&
 	    transient_data->duration != 0) {
 		transient_data->activate = state;
-		led_set_brightness_async(led_cdev, transient_data->state);
+		led_set_brightness_nosleep(led_cdev, transient_data->state);
 		transient_data->restore_state =
 		    (transient_data->state == LED_FULL) ? LED_OFF : LED_FULL;
 		mod_timer(&transient_data->timer,
@@ -204,7 +204,7 @@ static void transient_trig_deactivate(struct led_classdev *led_cdev)
 
 	if (led_cdev->activated) {
 		del_timer_sync(&transient_data->timer);
-		led_set_brightness_async(led_cdev,
+		led_set_brightness_nosleep(led_cdev,
 					transient_data->restore_state);
 		device_remove_file(led_cdev->dev, &dev_attr_activate);
 		device_remove_file(led_cdev->dev, &dev_attr_duration);
-- 
1.7.9.5

--
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/

[toc] | [prev] | [next] | [standalone]


#1186580 — [PATCH/RFC 44/51] leds: cobalt-qube: Mark the LED fast

FromJacek Anaszewski <j.anaszewski@samsung.com>
Date2015-07-17 11:00 +0200
Subject[PATCH/RFC 44/51] leds: cobalt-qube: Mark the LED fast
Message-ID<pN9ER-w9-1@gated-at.bofh.it>
In reply to#1186573
The driver neither sleeps nor uses delays in its brightness_set
op. Mark it fast then.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Cc: Florian Fainelli <florian@openwrt.org>
---
 drivers/leds/leds-cobalt-qube.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/leds/leds-cobalt-qube.c b/drivers/leds/leds-cobalt-qube.c
index d975220..f16da2a 100644
--- a/drivers/leds/leds-cobalt-qube.c
+++ b/drivers/leds/leds-cobalt-qube.c
@@ -31,6 +31,7 @@ static struct led_classdev qube_front_led = {
 	.brightness		= LED_FULL,
 	.brightness_set		= qube_front_led_set,
 	.default_trigger	= "default-on",
+	.flags			= LED_BRIGHTNESS_FAST,
 };
 
 static int cobalt_qube_led_probe(struct platform_device *pdev)
-- 
1.7.9.5

--
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/

[toc] | [prev] | [next] | [standalone]


#1186582 — [PATCH/RFC 47/51] leds: locomo: Mark the LED fast

FromJacek Anaszewski <j.anaszewski@samsung.com>
Date2015-07-17 11:00 +0200
Subject[PATCH/RFC 47/51] leds: locomo: Mark the LED fast
Message-ID<pN9ER-w9-5@gated-at.bofh.it>
In reply to#1186573
The driver neither sleeps nor uses delays in its brightness_set
op. Mark it fast then.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Cc: John Lenz <lenz@cs.wisc.edu>
---
 drivers/leds/leds-locomo.c |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/leds/leds-locomo.c b/drivers/leds/leds-locomo.c
index 80ba048..a6dc039 100644
--- a/drivers/leds/leds-locomo.c
+++ b/drivers/leds/leds-locomo.c
@@ -47,12 +47,14 @@ static struct led_classdev locomo_led0 = {
 	.name			= "locomo:amber:charge",
 	.default_trigger	= "main-battery-charging",
 	.brightness_set		= locomoled_brightness_set0,
+	.flags			= LED_BRIGHTESS_FAST,
 };
 
 static struct led_classdev locomo_led1 = {
 	.name			= "locomo:green:mail",
 	.default_trigger	= "nand-disk",
 	.brightness_set		= locomoled_brightness_set1,
+	.flags			= LED_BRIGHTESS_FAST,
 };
 
 static int locomoled_probe(struct locomo_dev *ldev)
-- 
1.7.9.5

--
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/

[toc] | [prev] | [next] | [standalone]


#1186583 — [PATCH/RFC 42/51] leds: net48xx: Mark the LED fast

FromJacek Anaszewski <j.anaszewski@samsung.com>
Date2015-07-17 11:00 +0200
Subject[PATCH/RFC 42/51] leds: net48xx: Mark the LED fast
Message-ID<pN9ER-w9-9@gated-at.bofh.it>
In reply to#1186573
The driver neither sleeps nor uses delays in its brightness_set
op. Mark it fast then.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Cc: Chris Boot <bootc@bootc.net>
---
 drivers/leds/leds-net48xx.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/leds/leds-net48xx.c b/drivers/leds/leds-net48xx.c
index ec3a2e8..8644341 100644
--- a/drivers/leds/leds-net48xx.c
+++ b/drivers/leds/leds-net48xx.c
@@ -34,7 +34,7 @@ static void net48xx_error_led_set(struct led_classdev *led_cdev,
 static struct led_classdev net48xx_error_led = {
 	.name		= "net48xx::error",
 	.brightness_set	= net48xx_error_led_set,
-	.flags		= LED_CORE_SUSPENDRESUME,
+	.flags		= LED_CORE_SUSPENDRESUME | LED_BRIGHTNESS_FAST,
 };
 
 static int net48xx_led_probe(struct platform_device *pdev)
-- 
1.7.9.5

--
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/

[toc] | [prev] | [next] | [standalone]


#1186584 — [PATCH/RFC 45/51] leds: fsg: Mark the LED fast

FromJacek Anaszewski <j.anaszewski@samsung.com>
Date2015-07-17 11:00 +0200
Subject[PATCH/RFC 45/51] leds: fsg: Mark the LED fast
Message-ID<pN9ER-w9-11@gated-at.bofh.it>
In reply to#1186573
The driver neither sleeps nor uses delays in its brightness_set
op. Mark it fast then.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Cc: Rod Whitby <rod@whitby.id.au>
---
 drivers/leds/leds-fsg.c |   12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/leds/leds-fsg.c b/drivers/leds/leds-fsg.c
index 2b4dc73..8b33269 100644
--- a/drivers/leds/leds-fsg.c
+++ b/drivers/leds/leds-fsg.c
@@ -109,37 +109,37 @@ static void fsg_led_ring_set(struct led_classdev *led_cdev,
 static struct led_classdev fsg_wlan_led = {
 	.name			= "fsg:blue:wlan",
 	.brightness_set		= fsg_led_wlan_set,
-	.flags			= LED_CORE_SUSPENDRESUME,
+	.flags			= LED_CORE_SUSPENDRESUME | LED_BRIGHTNESS_FAST,
 };
 
 static struct led_classdev fsg_wan_led = {
 	.name			= "fsg:blue:wan",
 	.brightness_set		= fsg_led_wan_set,
-	.flags			= LED_CORE_SUSPENDRESUME,
+	.flags			= LED_CORE_SUSPENDRESUME | LED_BRIGHTNESS_FAST,
 };
 
 static struct led_classdev fsg_sata_led = {
 	.name			= "fsg:blue:sata",
 	.brightness_set		= fsg_led_sata_set,
-	.flags			= LED_CORE_SUSPENDRESUME,
+	.flags			= LED_CORE_SUSPENDRESUME | LED_BRIGHTNESS_FAST,
 };
 
 static struct led_classdev fsg_usb_led = {
 	.name			= "fsg:blue:usb",
 	.brightness_set		= fsg_led_usb_set,
-	.flags			= LED_CORE_SUSPENDRESUME,
+	.flags			= LED_CORE_SUSPENDRESUME | LED_BRIGHTNESS_FAST,
 };
 
 static struct led_classdev fsg_sync_led = {
 	.name			= "fsg:blue:sync",
 	.brightness_set		= fsg_led_sync_set,
-	.flags			= LED_CORE_SUSPENDRESUME,
+	.flags			= LED_CORE_SUSPENDRESUME | LED_BRIGHTNESS_FAST,
 };
 
 static struct led_classdev fsg_ring_led = {
 	.name			= "fsg:blue:ring",
 	.brightness_set		= fsg_led_ring_set,
-	.flags			= LED_CORE_SUSPENDRESUME,
+	.flags			= LED_CORE_SUSPENDRESUME | LED_BRIGHTNESS_FAST,
 };
 
 
-- 
1.7.9.5

--
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/

[toc] | [prev] | [next] | [standalone]


#1186585 — [PATCH/RFC 48/51] leds: dell: Mark the LED fast

FromJacek Anaszewski <j.anaszewski@samsung.com>
Date2015-07-17 11:00 +0200
Subject[PATCH/RFC 48/51] leds: dell: Mark the LED fast
Message-ID<pN9ER-w9-13@gated-at.bofh.it>
In reply to#1186573
The driver neither sleeps nor uses delays in its brightness_set
op. Mark it fast then.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Cc: Louis Davis <louis_davis@dell.com>
Cc: Jim Dailey <jim_dailey@dell.com>
---
 drivers/leds/dell-led.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/leds/dell-led.c b/drivers/leds/dell-led.c
index c36acaf..159231b 100644
--- a/drivers/leds/dell-led.c
+++ b/drivers/leds/dell-led.c
@@ -320,7 +320,7 @@ static struct led_classdev dell_led = {
 	.max_brightness = 1,
 	.brightness_set = dell_led_set,
 	.blink_set	= dell_led_blink,
-	.flags		= LED_CORE_SUSPENDRESUME,
+	.flags		= LED_CORE_SUSPENDRESUME | LED_BRIGHTNESS_FAST,
 };
 
 static int __init dell_led_init(void)
-- 
1.7.9.5

--
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/

[toc] | [prev] | [next] | [standalone]


#1186587 — [PATCH/RFC 37/51] leds: ot200: Mark the LED fast

FromJacek Anaszewski <j.anaszewski@samsung.com>
Date2015-07-17 11:00 +0200
Subject[PATCH/RFC 37/51] leds: ot200: Mark the LED fast
Message-ID<pN9ES-w9-17@gated-at.bofh.it>
In reply to#1186573
The driver neither sleeps nor uses delays in its brightness_set
op. Mark it fast then.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Cc: Sebastian A. Siewior <bigeasy@linutronix.de>
---
 drivers/leds/leds-ot200.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/leds/leds-ot200.c b/drivers/leds/leds-ot200.c
index 39870de..d357c14 100644
--- a/drivers/leds/leds-ot200.c
+++ b/drivers/leds/leds-ot200.c
@@ -123,6 +123,7 @@ static int ot200_led_probe(struct platform_device *pdev)
 
 		leds[i].cdev.name = leds[i].name;
 		leds[i].cdev.brightness_set = ot200_led_brightness_set;
+		leds[i].cdev.flags |= LED_BRIGHTNESS_FAST;
 
 		ret = led_classdev_register(&pdev->dev, &leds[i].cdev);
 		if (ret < 0)
-- 
1.7.9.5

--
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/

[toc] | [prev] | [next] | [standalone]


#1186588 — [PATCH/RFC 33/51] leds: cobalt-raq: Mark the LED fast

FromJacek Anaszewski <j.anaszewski@samsung.com>
Date2015-07-17 11:00 +0200
Subject[PATCH/RFC 33/51] leds: cobalt-raq: Mark the LED fast
Message-ID<pN9ES-w9-19@gated-at.bofh.it>
In reply to#1186573
The driver neither sleeps nor uses delays in its brightness_set
ops. Mark it fast then.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
---
 drivers/leds/leds-cobalt-raq.c |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/leds/leds-cobalt-raq.c b/drivers/leds/leds-cobalt-raq.c
index b316df4..c46b856 100644
--- a/drivers/leds/leds-cobalt-raq.c
+++ b/drivers/leds/leds-cobalt-raq.c
@@ -52,6 +52,7 @@ static void raq_web_led_set(struct led_classdev *led_cdev,
 static struct led_classdev raq_web_led = {
 	.name		= "raq::web",
 	.brightness_set	= raq_web_led_set,
+	.flags		= LED_BRIGHTNESS_FAST,
 };
 
 static void raq_power_off_led_set(struct led_classdev *led_cdev,
@@ -74,6 +75,7 @@ static struct led_classdev raq_power_off_led = {
 	.name			= "raq::power-off",
 	.brightness_set		= raq_power_off_led_set,
 	.default_trigger	= "power-off",
+	.flags			= LED_BRIGHTNESS_FAST,
 };
 
 static int cobalt_raq_led_probe(struct platform_device *pdev)
-- 
1.7.9.5

--
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/

[toc] | [prev] | [next] | [standalone]


#1186589 — [PATCH/RFC 49/51] leds: rb532: Mark the LED fast

FromJacek Anaszewski <j.anaszewski@samsung.com>
Date2015-07-17 11:00 +0200
Subject[PATCH/RFC 49/51] leds: rb532: Mark the LED fast
Message-ID<pN9ES-w9-21@gated-at.bofh.it>
In reply to#1186573
The driver neither sleeps nor uses delays in its brightness_set
op. Mark it fast then.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Cc: Phil Sutter <n0-1@freewrt.org>
---
 drivers/leds/leds-rb532.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/leds/leds-rb532.c b/drivers/leds/leds-rb532.c
index fcd1215b..e825006 100644
--- a/drivers/leds/leds-rb532.c
+++ b/drivers/leds/leds-rb532.c
@@ -35,6 +35,7 @@ static struct led_classdev rb532_uled = {
 	.brightness_set = rb532_led_set,
 	.brightness_get = rb532_led_get,
 	.default_trigger = "nand-disk",
+	.flags		= LED_BRIGHTNESS_FAST,
 };
 
 static int rb532_led_probe(struct platform_device *pdev)
-- 
1.7.9.5

--
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/

[toc] | [prev] | [next] | [standalone]


#1186590 — [PATCH/RFC 50/51] leds: sunfire: Mark the LED fast

FromJacek Anaszewski <j.anaszewski@samsung.com>
Date2015-07-17 11:00 +0200
Subject[PATCH/RFC 50/51] leds: sunfire: Mark the LED fast
Message-ID<pN9ES-w9-25@gated-at.bofh.it>
In reply to#1186573
The driver neither sleeps nor uses delays in its brightness_set
op. Mark it fast then.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Cc: David S. Miller <davem@davemloft.net>
---
 drivers/leds/leds-sunfire.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/leds/leds-sunfire.c b/drivers/leds/leds-sunfire.c
index c2553c5..4d08e44 100644
--- a/drivers/leds/leds-sunfire.c
+++ b/drivers/leds/leds-sunfire.c
@@ -146,6 +146,7 @@ static int sunfire_led_generic_probe(struct platform_device *pdev,
 		lp->brightness = LED_FULL;
 		lp->brightness_set = types[i].handler;
 		lp->default_trigger = types[i].default_trigger;
+		lp->flags |= LED_BRIGHTNESS_FAST;
 
 		err = led_classdev_register(&pdev->dev, lp);
 		if (err) {
-- 
1.7.9.5

--
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/

[toc] | [prev] | [next] | [standalone]


#1186591 — [PATCH/RFC 38/51] leds: s3c24xx: Mark the LED fast

FromJacek Anaszewski <j.anaszewski@samsung.com>
Date2015-07-17 11:00 +0200
Subject[PATCH/RFC 38/51] leds: s3c24xx: Mark the LED fast
Message-ID<pN9ES-w9-23@gated-at.bofh.it>
In reply to#1186573
The driver neither sleeps nor uses delays in its brightness_set
op. Mark it fast then.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Cc: Ben Dooks <ben@simtec.co.uk>
---
 drivers/leds/leds-s3c24xx.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/leds/leds-s3c24xx.c b/drivers/leds/leds-s3c24xx.c
index 83641a7..ed61bf9 100644
--- a/drivers/leds/leds-s3c24xx.c
+++ b/drivers/leds/leds-s3c24xx.c
@@ -84,7 +84,7 @@ static int s3c24xx_led_probe(struct platform_device *dev)
 	led->cdev.brightness_set = s3c24xx_led_set;
 	led->cdev.default_trigger = pdata->def_trigger;
 	led->cdev.name = pdata->name;
-	led->cdev.flags |= LED_CORE_SUSPENDRESUME;
+	led->cdev.flags |= LED_CORE_SUSPENDRESUME | LED_BRIGHTNESS_FAST;
 
 	led->pdata = pdata;
 
-- 
1.7.9.5

--
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/

[toc] | [prev] | [next] | [standalone]


#1186592 — [PATCH/RFC 35/51] leds: bcm6358: Mark the LED fast

FromJacek Anaszewski <j.anaszewski@samsung.com>
Date2015-07-17 11:00 +0200
Subject[PATCH/RFC 35/51] leds: bcm6358: Mark the LED fast
Message-ID<pN9ET-w9-27@gated-at.bofh.it>
In reply to#1186573
The driver neither sleeps nor uses delays in its brightness_set
op. Mark it fast then.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Cc: Álvaro Fernández Rojas <noltari@gmail.com>
---
 drivers/leds/leds-bcm6358.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/leds/leds-bcm6358.c b/drivers/leds/leds-bcm6358.c
index 21f9693..2827c9f 100644
--- a/drivers/leds/leds-bcm6358.c
+++ b/drivers/leds/leds-bcm6358.c
@@ -145,6 +145,7 @@ static int bcm6358_led(struct device *dev, struct device_node *nc, u32 reg,
 	spin_unlock_irqrestore(lock, flags);
 
 	led->cdev.brightness_set = bcm6358_led_set;
+	led->cdev.flags |= LED_BRIGHTNESS_FAST;
 
 	rc = led_classdev_register(dev, &led->cdev);
 	if (rc < 0)
-- 
1.7.9.5

--
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/

[toc] | [prev] | [next] | [standalone]


#1186593 — [PATCH/RFC 46/51] leds: hp6xx: Mark the LED fast

FromJacek Anaszewski <j.anaszewski@samsung.com>
Date2015-07-17 11:00 +0200
Subject[PATCH/RFC 46/51] leds: hp6xx: Mark the LED fast
Message-ID<pN9ET-w9-31@gated-at.bofh.it>
In reply to#1186573
The driver neither sleeps nor uses delays in its brightness_set
op. Mark it fast then.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Cc: Kristoffer Ericson <kristoffer.ericson@gmail.com>
---
 drivers/leds/leds-hp6xx.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/leds/leds-hp6xx.c b/drivers/leds/leds-hp6xx.c
index 0b84c01..8f369fb 100644
--- a/drivers/leds/leds-hp6xx.c
+++ b/drivers/leds/leds-hp6xx.c
@@ -45,14 +45,14 @@ static struct led_classdev hp6xx_red_led = {
 	.name			= "hp6xx:red",
 	.default_trigger	= "hp6xx-charge",
 	.brightness_set		= hp6xxled_red_set,
-	.flags			= LED_CORE_SUSPENDRESUME,
+	.flags			= LED_CORE_SUSPENDRESUME | LED_BRIGHTNESS_FAST,
 };
 
 static struct led_classdev hp6xx_green_led = {
 	.name			= "hp6xx:green",
 	.default_trigger	= "ide-disk",
 	.brightness_set		= hp6xxled_green_set,
-	.flags			= LED_CORE_SUSPENDRESUME,
+	.flags			= LED_CORE_SUSPENDRESUME | LED_BRIGHTNESS_FAST,
 };
 
 static int hp6xxled_probe(struct platform_device *pdev)
-- 
1.7.9.5

--
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/

[toc] | [prev] | [next] | [standalone]


#1186594 — [PATCH/RFC 34/51] leds: bcm6328: Mark the LED fast

FromJacek Anaszewski <j.anaszewski@samsung.com>
Date2015-07-17 11:00 +0200
Subject[PATCH/RFC 34/51] leds: bcm6328: Mark the LED fast
Message-ID<pN9ET-w9-33@gated-at.bofh.it>
In reply to#1186573
The driver neither sleeps nor uses delays in its brightness_set
ops. Mark it fast then.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Cc: Álvaro Fernández Rojas <noltari@gmail.com>
Cc: Jonas Gorski <jogo@openwrt.org>
---
 drivers/leds/leds-bcm6328.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/leds/leds-bcm6328.c b/drivers/leds/leds-bcm6328.c
index 986fe1e..99b8524 100644
--- a/drivers/leds/leds-bcm6328.c
+++ b/drivers/leds/leds-bcm6328.c
@@ -313,6 +313,7 @@ static int bcm6328_led(struct device *dev, struct device_node *nc, u32 reg,
 
 	led->cdev.brightness_set = bcm6328_led_set;
 	led->cdev.blink_set = bcm6328_blink_set;
+	led->cdev.flags |= LED_BRIGHTNESS_FAST;
 
 	rc = led_classdev_register(dev, &led->cdev);
 	if (rc < 0)
-- 
1.7.9.5

--
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/

[toc] | [prev] | [next] | [standalone]


#1186595 — [PATCH/RFC 41/51] leds: wrap: Mark the LED fast

FromJacek Anaszewski <j.anaszewski@samsung.com>
Date2015-07-17 11:00 +0200
Subject[PATCH/RFC 41/51] leds: wrap: Mark the LED fast
Message-ID<pN9ET-w9-37@gated-at.bofh.it>
In reply to#1186573
The driver neither sleeps nor uses delays in its brightness_set
op. Mark it fast then.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Cc: Kristian Kielhofner <kris@krisk.org>
---
 drivers/leds/leds-wrap.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/leds/leds-wrap.c b/drivers/leds/leds-wrap.c
index 1ba3def..dfc9e73 100644
--- a/drivers/leds/leds-wrap.c
+++ b/drivers/leds/leds-wrap.c
@@ -57,19 +57,19 @@ static struct led_classdev wrap_power_led = {
 	.name			= "wrap::power",
 	.brightness_set		= wrap_power_led_set,
 	.default_trigger	= "default-on",
-	.flags			= LED_CORE_SUSPENDRESUME,
+	.flags			= LED_CORE_SUSPENDRESUME | LED_BRIGHTNESS_FAST,
 };
 
 static struct led_classdev wrap_error_led = {
 	.name		= "wrap::error",
 	.brightness_set	= wrap_error_led_set,
-	.flags			= LED_CORE_SUSPENDRESUME,
+	.flags			= LED_CORE_SUSPENDRESUME | LED_BRIGHTNESS_FAST,
 };
 
 static struct led_classdev wrap_extra_led = {
 	.name           = "wrap::extra",
 	.brightness_set = wrap_extra_led_set,
-	.flags			= LED_CORE_SUSPENDRESUME,
+	.flags			= LED_CORE_SUSPENDRESUME | LED_BRIGHTNESS_FAST,
 };
 
 static int wrap_led_probe(struct platform_device *pdev)
-- 
1.7.9.5

--
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/

[toc] | [prev] | [next] | [standalone]


Page 1 of 3  [1] 2 3  Next page →

Back to top | Article view | linux.kernel


csiph-web