summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2002-05-16 21:20:52 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2002-05-16 21:20:52 +0000
commit250c3b65dfb0eccce25bf71d5b31d248b7b95c8a (patch)
tree03c2a04bbfffd2bd5113617debc77bfbc9b1b70e
parent0e085999d50578eff8bf89e71a88b9a9e05e3463 (diff)
downloadrockbox-250c3b65dfb0eccce25bf71d5b31d248b7b95c8a.zip
rockbox-250c3b65dfb0eccce25bf71d5b31d248b7b95c8a.tar.gz
rockbox-250c3b65dfb0eccce25bf71d5b31d248b7b95c8a.tar.bz2
rockbox-250c3b65dfb0eccce25bf71d5b31d248b7b95c8a.tar.xz
Now yields when waiting for flow control
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@607 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/drivers/i2c.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/firmware/drivers/i2c.c b/firmware/drivers/i2c.c
index 3a5603d..3ef2f48 100644
--- a/firmware/drivers/i2c.c
+++ b/firmware/drivers/i2c.c
@@ -18,6 +18,7 @@
****************************************************************************/
#include "lcd.h"
#include "sh7034.h"
+#include "kernel.h"
#include "debug.h"
#define PB13 0x2000
@@ -94,7 +95,8 @@ void i2c_ack(int bit)
SDA_LO;
SCL_INPUT; /* Set the clock to input */
- while(!SCL); /* and wait for the MAS to release it */
+ while(!SCL) /* and wait for the MAS to release it */
+ yield();
DELAY;
SCL_OUTPUT;
@@ -114,8 +116,9 @@ int i2c_getack(void)
SDA_INPUT; /* And set to input */
SCL_LO; /* Set the clock low */
SCL_INPUT; /* Set the clock to input */
- while(!SCL); /* and wait for the MAS to release it */
-
+ while(!SCL) /* and wait for the MAS to release it */
+ yield();
+
x = SDA;
if (x)
/* ack failed */