kernel_optimize_test/drivers/leds
Simon Guinot 4b90432dc1 leds: leds-ns2: handle can_sleep GPIOs
On the board n090401 (Seagate NAS 4-Bay), some of the LEDs are handled
by the leds-ns2 driver. This LEDs are connected to an I2C GPIO expander
(PCA95554PW) which means that GPIO access may sleep. This patch makes
leds-ns2 compatible with such GPIOs by using the *_cansleep() variant of
the GPIO functions. As a drawback this functions can't be used safely in
a timer context (with the timer LED trigger for example). To fix this
issue, a workqueue mechanism (copied from the leds-gpio driver) is used.

Note that this patch also updates slightly the ns2_led_sata_store
function. The LED state is now retrieved from cached values instead of
reading the GPIOs previously. This prevents ns2_led_sata_store from
working with a stale LED state (which may happen when a delayed work
is pending).

Signed-off-by: Simon Guinot <simon.guinot@sequanux.org>
Signed-off-by: Vincent Donnefort <vdonnefort@gmail.com>
Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
2015-08-28 14:06:09 +02:00
..
trigger leds: Allow compile test of GPIO consumers if !GPIOLIB 2015-08-28 14:05:57 +02:00
dell-led.c dell-led: add mic mute led interface 2014-05-08 14:28:07 +08:00
Kconfig leds: Allow compile test of LEDS_AAT1290 and LEDS_KTD2692 if !GPIOLIB 2015-08-28 14:05:59 +02:00
led-class-flash.c leds: flash: Remove synchronized flash strobe feature 2015-03-09 17:16:23 -07:00
led-class.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds 2015-07-01 19:09:11 -07:00
led-core.c leds: fix brightness changing when software blinking is active 2015-05-25 13:26:47 -07:00
led-triggers.c leds: implement sysfs interface locking mechanism 2014-11-14 14:29:35 -08:00
leds-88pm860x.c leds: drop owner assignment from platform_drivers 2014-10-20 16:20:43 +02:00
leds-aat1290.c leds: aat1290: pass flags parameter to devm_gpiod_get 2015-06-22 13:57:24 -07:00
leds-adp5520.c leds: drop owner assignment from platform_drivers 2014-10-20 16:20:43 +02:00
leds-asic3.c leds: drop owner assignment from platform_drivers 2014-10-20 16:20:43 +02:00
leds-bcm6328.c leds: add BCM6328 LED driver 2015-05-04 11:22:28 -07:00
leds-bcm6358.c leds: add BCM6358 LED driver 2015-05-25 13:26:48 -07:00
leds-bd2802.c leds: Remove duplicated OOM message for individual driver 2014-05-08 14:28:08 +08:00
leds-blinkm.c leds: blinkm: remove unnecessary spaces 2014-02-27 10:19:57 -08:00
leds-clevo-mail.c leds: drop owner assignment from platform_drivers 2014-10-20 16:20:43 +02:00
leds-cobalt-qube.c leds: drop owner assignment from platform_drivers 2014-10-20 16:20:43 +02:00
leds-cobalt-raq.c drivers/leds: don't use module_init in non-modular leds-cobalt-raq.c 2015-06-22 13:57:09 -07:00
leds-da903x.c leds: drop owner assignment from platform_drivers 2014-10-20 16:20:43 +02:00
leds-da9052.c leds: drop owner assignment from platform_drivers 2014-10-20 16:20:43 +02:00
leds-dac124s085.c
leds-fsg.c drivers/leds: delete non-required instances of include <linux/init.h> 2014-02-27 09:56:56 -08:00
leds-gpio-register.c led: gpio: Fix possible ZERO_SIZE_PTR pointer dereferencing error. 2014-09-29 10:21:01 -07:00
leds-gpio.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds 2015-07-01 19:09:11 -07:00
leds-hp6xx.c leds: drop owner assignment from platform_drivers 2014-10-20 16:20:43 +02:00
leds-ipaq-micro.c leds: ipaq-micro: fix sparse non static symbol warning 2014-07-29 10:57:20 -07:00
leds-ktd2692.c leds: ktd2692: pass flags parameter to devm_gpiod_get 2015-06-22 13:57:16 -07:00
leds-lm355x.c leds: Drop owner assignment from i2c_driver 2015-08-28 14:06:02 +02:00
leds-lm3530.c leds: Drop owner assignment from i2c_driver 2015-08-28 14:06:02 +02:00
leds-lm3533.c leds: drop owner assignment from platform_drivers 2014-10-20 16:20:43 +02:00
leds-lm3642.c leds: Drop owner assignment from i2c_driver 2015-08-28 14:06:02 +02:00
leds-locomo.c
leds-lp55xx-common.c leds:lp55xx: fix firmware loading error 2015-06-29 10:10:57 -07:00
leds-lp55xx-common.h
leds-lp3944.c leds: lp3944: fix sparse warning 2014-09-11 16:55:27 -07:00
leds-lp5521.c drivers/leds: delete non-required instances of include <linux/init.h> 2014-02-27 09:56:56 -08:00
leds-lp5523.c leds: lp5523: add master_fader support 2015-05-25 13:26:46 -07:00
leds-lp5562.c leds: lp5562: remove unnecessary parentheses 2014-02-27 10:17:15 -08:00
leds-lp8501.c leds: lp8501: Fix typo in MODULE_DESCRIPTION in leds-lp8501.c 2015-03-30 11:55:51 -07:00
leds-lp8788.c leds: drop owner assignment from platform_drivers 2014-10-20 16:20:43 +02:00
leds-lp8860.c leds: lp8860: Constify reg_default tables 2015-08-28 14:06:04 +02:00
leds-lt3593.c leds: drop owner assignment from platform_drivers 2014-10-20 16:20:43 +02:00
leds-max8997.c leds: drop owner assignment from platform_drivers 2014-10-20 16:20:43 +02:00
leds-max77693.c leds: max77693: add support for V4L2 Flash sub-device 2015-06-22 13:55:17 -07:00
leds-mc13783.c leds: leds-mc13783: Use of_get_child_by_name() instead of refcount hack 2015-01-14 10:40:20 -08:00
leds-menf21bmc.c leds: drop owner assignment from platform_drivers 2014-10-20 16:20:43 +02:00
leds-net48xx.c leds: drop owner assignment from platform_drivers 2014-10-20 16:20:43 +02:00
leds-netxbig.c leds: netxbig: fix oops at probe time 2015-01-13 13:49:01 -08:00
leds-ns2.c leds: leds-ns2: handle can_sleep GPIOs 2015-08-28 14:06:09 +02:00
leds-ot200.c leds: drop owner assignment from platform_drivers 2014-10-20 16:20:43 +02:00
leds-pca955x.c leds: Drop owner assignment from i2c_driver 2015-08-28 14:06:02 +02:00
leds-pca963x.c leds: Drop owner assignment from i2c_driver 2015-08-28 14:06:02 +02:00
leds-pca9532.c driver:gpio remove all usage of gpio_remove retval in driver 2014-09-18 11:03:10 -07:00
leds-pm8941-wled.c leds: add Qualcomm PM8941 WLED driver 2015-03-30 11:55:49 -07:00
leds-pwm.c leds: leds-pwm: drop one pwm_get_period() call 2015-02-24 11:42:18 -08:00
leds-rb532.c leds: drop owner assignment from platform_drivers 2014-10-20 16:20:43 +02:00
leds-regulator.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds 2014-12-15 18:28:25 -08:00
leds-s3c24xx.c leds: drop owner assignment from platform_drivers 2014-10-20 16:20:43 +02:00
leds-ss4200.c leds: ss4200: fix attribute-creation race 2014-06-25 15:34:24 -07:00
leds-sunfire.c leds: drop owner assignment from platform_drivers 2014-10-20 16:20:43 +02:00
leds-syscon.c leds: syscon: instantiate from platform device 2015-05-11 08:55:03 +02:00
leds-tca6507.c leds: Drop owner assignment from i2c_driver 2015-08-28 14:06:02 +02:00
leds-tlc591xx.c leds: tlc591xx: Driver for the TI 8/16 Channel i2c LED driver 2015-05-04 11:05:54 -07:00
leds-versatile.c ARM/leds: move ARM Versatile LED driver to leds subsystem 2014-03-28 10:54:15 +01:00
leds-wm831x-status.c leds: drop owner assignment from platform_drivers 2014-10-20 16:20:43 +02:00
leds-wm8350.c leds: drop owner assignment from platform_drivers 2014-10-20 16:20:43 +02:00
leds-wrap.c leds: drop owner assignment from platform_drivers 2014-10-20 16:20:43 +02:00
leds.h leds: unify the location of led-trigger API 2015-05-04 11:05:55 -07:00
Makefile leds: add BCM6358 LED driver 2015-05-25 13:26:48 -07:00