leds: lp5521: remove unnecessary writing commands

This patch reduces the number of programming commands.

(Count of sending commands)
Old code: 32 + program size (32 counts for clearing program memory)
New code: 32

Pattern buffer is initialized to 0 in this function.
Just update new program data and remaining buffers are filled with 0.
So it's needless to clear whole area.

Signed-off-by: Milo Kim <milo.kim@ti.com>
Signed-off-by: Bryan Wu <cooloney@gmail.com>
This commit is contained in:
Milo Kim 2013-08-08 13:45:45 +09:00 committed by Bryan Wu
parent c0e5e9b542
commit 1eca0b3ab8
1 changed files with 3 additions and 11 deletions

View File

@ -220,17 +220,11 @@ static int lp5521_update_program_memory(struct lp55xx_chip *chip,
}; };
unsigned cmd; unsigned cmd;
char c[3]; char c[3];
int program_size;
int nrchars; int nrchars;
int offset = 0;
int ret; int ret;
int i; int offset = 0;
int i = 0;
/* clear program memory before updating */
for (i = 0; i < LP5521_PROGRAM_LENGTH; i++)
lp55xx_write(chip, addr[idx] + i, 0);
i = 0;
while ((offset < size - 1) && (i < LP5521_PROGRAM_LENGTH)) { while ((offset < size - 1) && (i < LP5521_PROGRAM_LENGTH)) {
/* separate sscanfs because length is working only for %s */ /* separate sscanfs because length is working only for %s */
ret = sscanf(data + offset, "%2s%n ", c, &nrchars); ret = sscanf(data + offset, "%2s%n ", c, &nrchars);
@ -250,11 +244,9 @@ static int lp5521_update_program_memory(struct lp55xx_chip *chip,
if (i % 2) if (i % 2)
goto err; goto err;
program_size = i;
mutex_lock(&chip->lock); mutex_lock(&chip->lock);
for (i = 0; i < program_size; i++) { for (i = 0; i < LP5521_PROGRAM_LENGTH; i++) {
ret = lp55xx_write(chip, addr[idx] + i, pattern[i]); ret = lp55xx_write(chip, addr[idx] + i, pattern[i]);
if (ret) { if (ret) {
mutex_unlock(&chip->lock); mutex_unlock(&chip->lock);