]> git.sesse.net Git - pistorm/blobdiff - gpio/ps_protocol.c
Fix config reload?
[pistorm] / gpio / ps_protocol.c
index cc21af6c27b35b268b78fffc460e4fa4d1241709..94e38a41b60481e2f2d5008af6cb862cfa2cd996 100644 (file)
@@ -177,10 +177,9 @@ unsigned int ps_read_16(unsigned int address) {
   *(gpio + 7) = (REG_DATA << PIN_A0);
   *(gpio + 7) = 1 << PIN_RD;
 
-  while (*(gpio + 13) & (1 << PIN_TXN_IN_PROGRESS))
-    ;
-
   unsigned int value = *(gpio + 13);
+  while ((value=*(gpio + 13)) & (1 << PIN_TXN_IN_PROGRESS))
+    ;
 
   *(gpio + 10) = 0xffffec;
 
@@ -209,10 +208,9 @@ unsigned int ps_read_8(unsigned int address) {
   *(gpio + 7) = (REG_DATA << PIN_A0);
   *(gpio + 7) = 1 << PIN_RD;
 
-  while (*(gpio + 13) & (1 << PIN_TXN_IN_PROGRESS))
-    ;
-
   unsigned int value = *(gpio + 13);
+  while ((value=*(gpio + 13)) & (1 << PIN_TXN_IN_PROGRESS))
+    ;
 
   *(gpio + 10) = 0xffffec;