summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Hopf <mhopf@suse.de>2009-10-25 20:12:53 +0100
committerMatthias Hopf <mhopf@suse.de>2009-10-25 20:12:53 +0100
commit5af4bd26faab4d6ba48617173472df36018a832d (patch)
tree4df5d5ea24eed63e17b835ddb9a8d349180ae56a
parent840369398e8c818470fd166ccceced4e3e64ebf6 (diff)
Fix behavior of wait_reg_time() in case of system time wrap.HEADmaster
-rw-r--r--r600_lib.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/r600_lib.c b/r600_lib.c
index 55df8d1..303b25e 100644
--- a/r600_lib.c
+++ b/r600_lib.c
@@ -83,6 +83,10 @@ float wait_reg_time (adapter_t *adapt, uint32_t reg, uint32_t v, const char *whe
break;
gettimeofday (&end, NULL);
diff = end.tv_sec - start.tv_sec + ((float)end.tv_usec - start.tv_usec) / 1e6;
+ if (diff < 0 || diff > 60) {
+ gettimeofday (&start, NULL); /* system time wrap */
+ diff = 0;
+ }
} while (i == 1e6 && diff < maxtime);
if (i == 1e6) {