LED class drivers use duplicated workqueue method to implement
.brightness_set() and some of them forget to use workqueue, since
workqueue is required by .brightness_set() in atomic context.

This patchset add workqueue into API function led_set_brightness().
So class drivers don't need to worry about it.

With the first patch, we can remove all the workqueue handling code in
class drivers. For example, workqueue was removed from leds-gpio.c

Bryan Wu (2):
  leds: use workqueue in led_set_brightness() API internally
  leds-gpio: remove workqueue in .brightness_set()

 drivers/leds/led-class.c          | 23 +++++++++++----------
 drivers/leds/led-core.c           | 15 +++++++-------
 drivers/leds/leds-gpio.c          | 43 ++++++---------------------------------
 drivers/leds/leds.h               | 11 ++--------
 drivers/leds/ledtrig-backlight.c  |  8 ++++----
 drivers/leds/ledtrig-default-on.c |  2 +-
 drivers/leds/ledtrig-gpio.c       |  6 +++---
 drivers/leds/ledtrig-heartbeat.c  |  2 +-
 drivers/leds/ledtrig-oneshot.c    |  4 ++--
 drivers/leds/ledtrig-transient.c  |  8 ++++----
 include/linux/leds.h              | 12 ++++++-----
 11 files changed, 49 insertions(+), 85 deletions(-)

-- 
1.7.11.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to