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.zip
rockbox-9beb210007f62eb9e4f4b2013612b87ed33fc67b.tar.gz
rockbox-9beb210007f62eb9e4f4b2013612b87ed33fc67b.tar.bz2
rockbox-9beb210007f62eb9e4f4b2013612b87ed33fc67b.tar.xz
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 94d9d08..d34e851 100644
--- a/firmware/drivers/pcf50605.c
+++ b/firmware/drivers/pcf50605.c
@@ -91,8 +91,14 @@ int pcf50605_write(int address, unsigned char val)
int pcf50605_write_multiple(int address, const unsigned char* buf, int count)
{
int i;
+
+ i2c_lock();
+
for (i = 0; i < count; i++)
pp_i2c_send(0x8, address + i, buf[i]);
+
+ i2c_unlock();
+
return 0;
}