aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/leds/leds-lp5523.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/drivers/leds/leds-lp5523.c b/drivers/leds/leds-lp5523.c
index 9b8be6f6c595..fe3bcbb5747f 100644
--- a/drivers/leds/leds-lp5523.c
+++ b/drivers/leds/leds-lp5523.c
@@ -312,17 +312,11 @@ static int lp5523_update_program_memory(struct lp55xx_chip *chip,
312 u8 pattern[LP5523_PROGRAM_LENGTH] = {0}; 312 u8 pattern[LP5523_PROGRAM_LENGTH] = {0};
313 unsigned cmd; 313 unsigned cmd;
314 char c[3]; 314 char c[3];
315 int update_size;
316 int nrchars; 315 int nrchars;
317 int offset = 0;
318 int ret; 316 int ret;
319 int i; 317 int offset = 0;
320 318 int i = 0;
321 /* clear program memory before updating */
322 for (i = 0; i < LP5523_PROGRAM_LENGTH; i++)
323 lp55xx_write(chip, LP5523_REG_PROG_MEM + i, 0);
324 319
325 i = 0;
326 while ((offset < size - 1) && (i < LP5523_PROGRAM_LENGTH)) { 320 while ((offset < size - 1) && (i < LP5523_PROGRAM_LENGTH)) {
327 /* separate sscanfs because length is working only for %s */ 321 /* separate sscanfs because length is working only for %s */
328 ret = sscanf(data + offset, "%2s%n ", c, &nrchars); 322 ret = sscanf(data + offset, "%2s%n ", c, &nrchars);
@@ -342,11 +336,9 @@ static int lp5523_update_program_memory(struct lp55xx_chip *chip,
342 if (i % 2) 336 if (i % 2)
343 goto err; 337 goto err;
344 338
345 update_size = i;
346
347 mutex_lock(&chip->lock); 339 mutex_lock(&chip->lock);
348 340
349 for (i = 0; i < update_size; i++) { 341 for (i = 0; i < LP5523_PROGRAM_LENGTH; i++) {
350 ret = lp55xx_write(chip, LP5523_REG_PROG_MEM + i, pattern[i]); 342 ret = lp55xx_write(chip, LP5523_REG_PROG_MEM + i, pattern[i]);
351 if (ret) { 343 if (ret) {
352 mutex_unlock(&chip->lock); 344 mutex_unlock(&chip->lock);