summaryrefslogtreecommitdiff
path: root/drivers/leds/leds-lp5523.c
diff options
context:
space:
mode:
authorAlexander Stein <alexander.stein@systec-electronic.com>2012-05-30 02:07:30 +0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-05-30 03:22:32 +0400
commite7e11d8ba807d451857b5c68abe249c7fc2b980f (patch)
treed93a84ccd11589da51e93b76924d30d2f8eec626 /drivers/leds/leds-lp5523.c
parent44e1e9f8e70506728b02a18e6d03599a6485d67f (diff)
downloadlinux-e7e11d8ba807d451857b5c68abe249c7fc2b980f.tar.xz
drivers/leds/leds-pca955x.c: fix race condition while setting brightness on several LEDs
When issuing the following command: for I in 0 1 2 3 4 5 6 7; do echo 0 > /sys/class/leds/pca955x\:${I}/brightness; done It is possible that all the pca955x_read_ls calls are done sequentially before any pca955x_write_ls call is done. This updates the LS only to the last LED update in its set. Fix this by using a global lock for the pca995x device during pca955x_led_work. Also used a struct for shared data betreen all LEDs. [akpm@linux-foundation.org: revert unintentional rename of pca955x_ledsel()] Signed-off-by: Alexander Stein <alexander.stein@systec-electronic.com> Cc: Richard Purdie <rpurdie@rpsys.net> Cc: Bryan Wu <bryan.wu@canonical.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/leds/leds-lp5523.c')
0 files changed, 0 insertions, 0 deletions