summaryrefslogtreecommitdiffstats
path: root/drivers/leds
AgeCommit message (Collapse)AuthorFilesLines
2012-08-13leds: renesas: fix error handlingArnd Bergmann1-1/+1
bfe4c041 "leds: convert Renesas TPU LED driver to devm_kzalloc() and cleanup error exit path" introduced a possible case in which r_tpu_probe calls iounmap on a wild pointer. This changes the one case that was missed in the same way as the other error paths. Without this patch, building kota2_defconfig results in: drivers/leds/leds-renesas-tpu.c: In function 'r_tpu_probe': drivers/leds/leds-renesas-tpu.c:246:6: warning: 'ret' may be used uninitialized in this function [-Wuninitialized] drivers/leds/leds-renesas-tpu.c:308:17: warning: 'p' may be used uninitialized in this function [-Wuninitialized] Signed-off-by: Arnd Bergmann <arnd@arndb.de> Cc: Magnus Damm <damm@opensource.se> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-08-13Revert "leds: use led_set_brightness in led_trigger_event"Fabio Baltieri1-1/+1
This reverts commit a0193cbee0809d65362a0767b2d50306b145b2f5. The problem with the original commit was that it caused a warning with the MMC trigger calling del_timer_sync from hard-irq context. Signed-off-by: Fabio Baltieri <fabio.baltieri@gmail.com> Reported-by: Pawel Moll <pawel.moll@arm.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-08-08leds: lp8788: Fix updating scale configuration bitsAxel Lin1-1/+1
We need to do left shift (cfg->num + LP8788_ISINK_SCALE_OFFSET) bits for updating scale configuration. Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Milo(Woogyom) Kim <milo.kim@ti.com> Tested-by: Milo(Woogyom) Kim <milo.kim@ti.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-27leds-lp8788: forgotten unlock at lp8788_led_workDevendra Naga1-0/+1
at default case of switch we return with out unlocking the mutex. Signed-off-by: Devendra Naga <develkernel412222@gmail.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-27LEDS: propagate error codes in blinkm_detect()Dan Carpenter1-2/+2
Use the error codes from the lower levels instead of -ENODEV. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Acked-by: Jan-Simon Möller <jansimon.moeller@gmx.de> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-27LEDS: memory leak in blinkm_led_common_set()Dan Carpenter1-2/+5
This can return without freeing the bl_work struct. Also there was no check for allocation failure. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Acked-by: Jan-Simon Möller <jansimon.moeller@gmx.de> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-26leds: add new lp8788 led driverKim, Milo3-0/+200
TI LP8788 PMU has the current sink as the keyboard led driver. The brightness is controlled by the i2c commands. Configurable parameters can be defined in the platform side. Patch v2. (a) use workqueue on changing the brightness (b) use mutex_lock/unlock when the brightness is set and the led block of lp8788 device is enabled (c) remove err_dev on _probe() : just return as returned value if any errors (d) replace module_init/exit() with module_platform_driver() (e) add led configuration structure and loading them by default if platform data is null Signed-off-by: Milo(Woogyom) Kim <milo.kim@ti.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24LEDS: add BlinkM RGB LED driver, documentation and update MAINTAINERSJan-Simon Möller3-0/+821
Add driver for BlinkM device to drivers/leds/. Add entry to MAINTAINERS file. Add documentation in Documentation/leds/. A BlinkM is a RGB LED controlled through I2C. This driver implements an interface to the LED framework and another sysfs group to access the internal options of the BlinkM. rev6: Use module_i2c_driver(). rev5: Removed own workqueue in favor of events wq. rev4: Fixed comments by Bryan Wu. rev3: Fixed issues found by Jonathan Neuschäfer. (bryan.wu@canonical.com: remove 2 trailing whitespace) Signed-off-by: Jan-Simon Möller <jansimon.moeller@gmx.de> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: max8997: Simplify max8997_led_set_mode implementationAxel Lin1-47/+13
It is not necessary to call max8997_update_reg() twice just for updating MAX8997_REG_LEN_CNTL register. With proper val and mask arguments to max8997_update_reg() call, this can be done in one max8997_update_reg() call. And then we can remove max8997_led_clear_mode() function. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds/leds-s3c24xx: use devm_gpio_requestDevendra Naga1-2/+1
why? because if the led_classdev_register fails we wont do gpio free because using devm_ functions, there is no need for error paths Signed-off-by: Devendra Naga <devendra.aaru@gmail.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: convert Network Space v2 LED driver to devm_kzalloc() and cleanup ↵Bryan Wu1-13/+6
error exit path Cc: Simon Guinot <sguinot@lacie.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: convert DAC124S085 LED driver to devm_kzalloc()Bryan Wu1-3/+1
Cc: Guennadi Liakhovetski <lg@denx.de> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: convert LM3530 LED driver to devm_kzalloc() and cleanup error exit pathBryan Wu1-16/+8
Cc: Shreshtha Kumar SAHU <shreshthakumar.sahu@stericsson.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: convert TCA6507 LED driver to devm_kzalloc()Bryan Wu1-3/+1
Cc: Neil Brown <neilb@suse.de> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: convert Freescale MC13783 LED driver to devm_kzalloc() and cleanup ↵Bryan Wu1-5/+3
error exit path Cc: Philippe Retornaz <philippe.retornaz@epfl.ch> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: convert ADP5520 LED driver to devm_kzalloc() and cleanup error exit pathBryan Wu1-5/+3
Cc: Michael Hennerich <hennerich@blackfin.uclinux.org> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: convert PCA955x LED driver to devm_kzalloc() and cleanup error exit pathBryan Wu1-13/+5
Cc: Nate Case <ncase@xes-inc.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: convert Sun Fire LED driver to devm_kzalloc() and cleanup error exit pathBryan Wu1-15/+6
Cc: David S. Miller <davem@davemloft.net> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: convert PCA9532 LED driver to devm_kzalloc()Bryan Wu1-8/+2
Cc: Riku Voipio <riku.voipio@iki.fi> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: convert LT3593 LED driver to devm_kzalloc()Bryan Wu1-6/+3
Cc: Daniel Mack <daniel@caiaq.de> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: convert Renesas TPU LED driver to devm_kzalloc() and cleanup error ↵Bryan Wu1-14/+9
exit path Cc: Magnus Damm <damm@opensource.se> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: convert LP5523 LED driver to devm_kzalloc() and cleanup error exit pathBryan Wu1-14/+10
Cc: Mathias Nyman <mathias.nyman@nokia.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: convert PCA9633 LED driver to devm_kzalloc()Bryan Wu1-5/+1
Cc: Peter Meerwald <p.meerwald@bct-electronic.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: convert BD2802 RGB LED driver to devm_kzalloc() and cleanup error exit ↵Bryan Wu1-6/+2
path Cc: Kim Kyuwon <q1.kim@samsung.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: convert LP5521 LED driver to devm_kzalloc() and cleanup error exit pathBryan Wu1-12/+8
Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: convert DA9030/DA9034 LED driver to devm_kzalloc() and cleanup error ↵Bryan Wu1-7/+2
exit path Cc: Eric Miao <eric.miao@canonical.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: convert LP3944 LED driver to devm_kzalloc()Bryan Wu1-6/+3
Cc: Antonio Ospite <ospite@studenti.unina.it> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: convert Atmel PWM LED driver to devm_kzalloc()Bryan Wu1-3/+2
Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: convert HTC ASIC3 LED driver to devm_kzalloc() and cleanup error exit pathBryan Wu1-10/+6
Cc: Paul Parsons <lost.distance@yahoo.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: convert Big Networks LED driver to devm_kzalloc()Bryan Wu1-7/+3
Cc: Simon Guinot <sguinot@lacie.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: Use devm_kzalloc in leds-gpio.c fileSachin Kamat1-6/+5
devm_kzalloc() makes cleanup simpler. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: Use devm_kzalloc in leds-max8997.c fileSachin Kamat1-15/+6
devm_kzalloc() makes code cleanup simpler. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: Use devm_kzalloc in leds-regulator.c fileSachin Kamat1-6/+3
devm_kzalloc() makes cleanup simpler. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: Use devm_kzalloc in leds-pwm.c fileSachin Kamat1-5/+2
devm_kzalloc() makes cleanup simpler. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: Use module_platform_driver() in leds-max8997.c fileSachin Kamat1-11/+1
module_platform_driver() makes the code simpler. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: convert tca6507 driver to module_i2c_driver()Peter Meerwald1-12/+1
Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com> Cc: NeilBrown <neilb@suse.de> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: Convert S3C24XX LED driver to gpiolib APISylwester Nawrocki1-14/+20
The s3c2410_gpio* calls are obsolete and have been scheduled for removal since several kernel releases. Remove them and use common gpiolib API instead. This patch also adds gpio_request/gpio_free call for API corectness. It is a prerequisite for removal of the S3C24XX SoC specific arch/arm/plat-samsung/include/gpio-fns.h header. Tested on Micro2440-SDK. Cc: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Sylwester Nawrocki <sylvester.nawrocki@gmail.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: Convert S3C24XX LED driver to devm_kzalloc()Sylwester Nawrocki1-5/+3
Use the device managed resource API for simplifying the error/driver remove paths. Cc: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Sylwester Nawrocki <sylvester.nawrocki@gmail.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds-mc13783: set platform data to NULL at mc13783_led_removeDevendra Naga1-0/+1
the platform_set_drvdata (pdev, NULL) to be set at the remove of the driver, as we have set the platform data to led at probe. Signed-off-by: Devendra Naga <devendra.aaru@gmail.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds-88pm860x: use devm_kzalloc functionDevendra Naga1-7/+2
Using devm_kzalloc will remove all the error checks and the frees are automatically done at the driver unload side. Signed-off-by: Devendra Naga <devendra.aaru@gmail.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds-lp5523: BUG() in error handling in probe()Dan Carpenter1-3/+3
Inside the error handling in lp5523_init_led(), there is a place that calls to led_classdev_unregister(). When we unregister the LED drivers, it tries to set the brightness to OFF. In this driver setting the brightness is done through a work queue and the work queue hasn't been initialized yet. The result is that we trigger a WARN_ON() in the __queue_work(). The fix is to move the INIT_WORK() in front of the call to lp5523_init_led(). Matt Renzelmann found this using a bug finding tool. Reported-by: Matt Renzelmann <mjr@cs.wisc.edu> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: Add LED driver for lm3556 chipG.Shark Jeong3-0/+521
LM3556 : The LM3556 is a 4 MHz fixed-frequency synchronous boost converter plus 1.5A constant current driver for a high-current white LED. Datasheet: www.national.com/ds/LM/LM3556.pdf Tested on OMAP4430 (bryan.wu@canonical.com: use module_i2c_driver() rather than lm3556_init/lm3556_exit for code simplicity; fixed some typo pointed out by Rob Landley) Signed-off-by: G.Shark Jeong <gshark.jeong@gmail.com> Reviewed-by: Axel Lin <axel.lin@gmail.com> Reviewed-by: Kim, Milo <Milo.Kim@ti.com> Acked-by: Rob Landley <rob@landley.net> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: [trivial]Remove unnecesary returnDevendra Naga1-2/+1
the ret is got the status returned by the led_classdev_register, returning ret if the led_classdev_register fails and returning 0 if the led_classdev_register success, can be done by doing just "return ret" at the end. Signed-off-by: Devendra Naga <devendra.aaru@gmail.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: fix sparse warnings due to missing staticBryan Wu2-2/+2
drivers/leds/led-core.c:56:6: sparse: symbol 'led_blink_setup' was not declared. Should it be static? drivers/leds/led-triggers.c:233:6: sparse: symbol 'led_trigger_blink_setup' was not declared. Should it be static? Reported-by: Fengguang Wu <wfg@linux.intel.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: correct trivial type in drivers/leds/KconfigJesper Dangaard Brouer1-1/+1
Correct "hadrware" to "hardware", for LEDS_TRIGGER_TRANSIENT. Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: use led_set_brightness in led_trigger_eventFabio Baltieri1-1/+1
Fix led_trigger_event() to use led_set_brightness() instead of __led_set_brightness(), so that any pending blink timer is stopped before setting the new brightness value. Without this fix LED status may be overridden by a pending timer. This allows a trigger to use a mix of led_trigger_event(), led_trigger_blink() and led_trigger_blink_oneshot() without races. (applied over: leds: Rename led_brightness_set() to led_set_brightness()) Signed-off-by: Fabio Baltieri <fabio.baltieri@gmail.com> Cc: Shuah Khan <shuahkhan@gmail.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: Rename led_brightness_set() to led_set_brightness()Shuah Khan5-6/+6
Rename leds external interface led_brightness_set() to led_set_brightness(). This is the second phase of the change to reduce confusion between the leds internal and external interfaces that set brightness. With this change, now the external interface is led_set_brightness(). The first phase renamed the internal interface led_set_brightness() to __led_set_brightness(). There are no changes to the interface implementations. Signed-off-by: Shuah Khan <shuahkhan@gmail.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: Rename led_set_brightness() to __led_set_brightness()Shuah Khan10-22/+22
Rename leds internal interface led_set_brightness() to __led_set_brightness() to reduce confusion between led_set_brightness() and the external interface led_brightness_set(). led_brightness_set() cancels the timer and then calls led_set_brightness(). Signed-off-by: Shuah Khan <shuahkhan@gmail.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: add oneshot triggerFabio Baltieri3-0/+219
Add oneshot trigger to blink a led with configurale parameters via sysfs. Signed-off-by: Fabio Baltieri <fabio.baltieri@gmail.com> Cc: Shuah Khan <shuahkhan@gmail.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
2012-07-24leds: fix led_brightness_set when soft-blinkingFabio Baltieri1-9/+6
Move led_stop_software_blink() code into led_brightness_set() to ensure software blink timer is stopped and cleared when changing trigger. Also use led_set_brightness() instead of calling led_cdev->brightness_set() directly to keep led_cdev->brightness consistent with current LED status. This ensure proper cleaning when changing triggers, as without this fix a LED may be turned off while leaving it's led_cdev->brightness = 1, leading to an erratic software-blink behaviour. The problem was easy to reproduce by changing the trigger from "timer" to "oneshot". Signed-off-by: Fabio Baltieri <fabio.baltieri@gmail.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>