leds: lp5523: restore legacy device attributes
authorMilo Kim <milo.kim@ti.com>
Thu, 8 Aug 2013 05:02:29 +0000 (14:02 +0900)
committerBryan Wu <cooloney@gmail.com>
Tue, 27 Aug 2013 00:22:13 +0000 (17:22 -0700)
commit45e611bfbe18d854498c65d60703841e4a4c3c3a
tree1e7b6ad98d93d7bb1341d914433a0c098d093eca
parent224604389a5295360ef36b50ca5a51806a235fcf
leds: lp5523: restore legacy device attributes

git commit db6eaf8388a413a5ee1b4547ce78506b9c6456b0
(leds-lp5523: use generic firmware interface) causes an application conflict.
This interface should be maintained for compatibility.

Restored device attributes are 'engineN_mode', 'engineN_load' and
'engineN_leds'. (N = 1, 2 or 3)
A 'selftest' attribute macro is replaced with LP55xx common macro.
Those are accessed when a LED pattern is run by an application.

Use a mutex in lp5523_update_program_memory()
: This function is called when an user-application writes a 'engineN_load' file
or pattern data is loaded from generic firmware interface.
So, writing program memory should be protected.
If an error occurs on accessing this area, just it returns as -EINVAL quickly.
This error code is exact same as old driver function, lp5523_do_store_load()
because it should be kept for an user-application compatibility.
Even the driver is changed, we can use the application without re-compiling
sources.

Reported-by: Pali Rohár <pali.rohar@gmail.com>
Signed-off-by: Milo Kim <milo.kim@ti.com>
Signed-off-by: Bryan Wu <cooloney@gmail.com>
drivers/leds/leds-lp5523.c