summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2007-11-26 07:59:42 +0000
committerMichael Sevakis <jethead71@rockbox.org>2007-11-26 07:59:42 +0000
commit9beb210007f62eb9e4f4b2013612b87ed33fc67b (patch)
tree56b697202368bc77a36023d97399abcf149b201f
parente711de2974c82edb246bcc7da6607cf77d34cf23 (diff)
downloadrockbox-9beb210007f62eb9e4f4b2013612b87ed33fc67b.tar.gz
rockbox-9beb210007f62eb9e4f4b2013612b87ed33fc67b.zip
pcf50605_write_multiple must prelock driver or the series of bytes may be interrupted resulting in something you didn't intend. :)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15807 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/drivers/pcf50605.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/firmware/drivers/pcf50605.c b/firmware/drivers/pcf50605.c
index 94d9d0882f..d34e8512c1 100644
--- a/firmware/drivers/pcf50605.c
+++ b/firmware/drivers/pcf50605.c
@@ -91,8 +91,14 @@ int pcf50605_write(int address, unsigned char val)
91int pcf50605_write_multiple(int address, const unsigned char* buf, int count) 91int pcf50605_write_multiple(int address, const unsigned char* buf, int count)
92{ 92{
93 int i; 93 int i;
94
95 i2c_lock();
96
94 for (i = 0; i < count; i++) 97 for (i = 0; i < count; i++)
95 pp_i2c_send(0x8, address + i, buf[i]); 98 pp_i2c_send(0x8, address + i, buf[i]);
99
100 i2c_unlock();
101
96 return 0; 102 return 0;
97} 103}
98 104