diff options
author | Tiago Vignatti <vignatti@c3sl.ufpr.br> | 2008-07-07 14:31:32 -0300 |
---|---|---|
committer | Tiago Vignatti <vignatti@c3sl.ufpr.br> | 2008-07-07 14:31:32 -0300 |
commit | fe77fea533068f5698cf4d8e9bc076a6e06d2cd2 (patch) | |
tree | 9f2db0d2a94a4d620492da1b5fe272d6c1149a97 | |
parent | 2de0dcfff822e2a8e5b993936bbad771bf9420b1 (diff) |
Fix my bad typo in last commit.
Switch inexistent getsecs() function to gettimeofday().
-rw-r--r-- | src/tdfx_priv.c | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/src/tdfx_priv.c b/src/tdfx_priv.c index 0063c20..3f3228b 100644 --- a/src/tdfx_priv.c +++ b/src/tdfx_priv.c @@ -104,7 +104,7 @@ static void TDFXResetFifo(ScrnInfoPtr pScrn) { TDFXPtr pTDFX; int oldValue; - long start_sec, end_sec, dummy; + struct timeval start, stop; pTDFX=TDFXPTR(pScrn); ErrorF("Resetting FIFO\n"); @@ -113,17 +113,17 @@ static void TDFXResetFifo(ScrnInfoPtr pScrn) /* Toggle the reset bits */ oldValue=TDFXReadLongMMIO(pTDFX, MISCINIT0); TDFXWriteLongMMIO(pTDFX, MISCINIT0, oldValue|0x23); - getsecs(&start_sec, &dummy); + gettimeofday(&start, NULL); do { - getsecs(&end_sec, &dummy); - } while (end_sec-start_sec<2); + gettimeofday(&stop, NULL); + } while (stop.tv_sec - start.tv_sec < 2); TDFXWriteLongMMIO(pTDFX, MISCINIT0, oldValue); oldValue=TDFXReadLongMMIO(pTDFX, MISCINIT1); TDFXWriteLongMMIO(pTDFX, MISCINIT1, oldValue|BIT(19)); - getsecs(&start_sec, &dummy); + gettimeofday(&start, NULL); do { - getsecs(&end_sec, &dummy); - } while (end_sec-start_sec<2); + gettimeofday(&stop, NULL); + } while (stop.tv_sec - start.tv_sec < 2); TDFXWriteLongMMIO(pTDFX, MISCINIT1, oldValue); InstallFifo(pScrn); } @@ -141,14 +141,16 @@ static void TDFXSyncFifo(ScrnInfoPtr pScrn) TDFXPtr pTDFX; int i, cnt, resets=0; int stat; - long start_sec, end_sec, dummy, readptr; + long tmp, readptr; + struct timeval start, stop; TDFXTRACEACCEL("TDFXSyncFifo start\n"); pTDFX=TDFXPTR(pScrn); TDFXSendNOPFifo(pScrn); i=0; cnt=0; - start_sec=0; + start.tv_sec=0; + readptr=TDFXReadLongMMIO(pTDFX, SST_FIFO_RDPTRL0); do { readptr=TDFXReadLongMMIO(pTDFX, SST_FIFO_RDPTRL0); @@ -156,15 +158,15 @@ static void TDFXSyncFifo(ScrnInfoPtr pScrn) if (stat&SST_BUSY) i=0; else i++; cnt++; if (cnt==1000) { - if (!start_sec) { - getsecs(&start_sec, &dummy); + if (!start.tv_sec) { + gettimeofday(&start, NULL); } else { - getsecs(&end_sec, &dummy); - if (end_sec-start_sec>3) { - dummy=TDFXReadLongMMIO(pTDFX, SST_FIFO_RDPTRL0); - if (dummy==readptr) { + gettimeofday(&stop, NULL); + if (stop.tv_sec - start.tv_sec > 3) { + tmp = TDFXReadLongMMIO(pTDFX, SST_FIFO_RDPTRL0); + if (tmp == readptr) { TDFXResetFifo(pScrn); - readptr=dummy; + readptr = tmp; resets++; if (resets==3) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, @@ -172,7 +174,7 @@ static void TDFXSyncFifo(ScrnInfoPtr pScrn) return; } } - start_sec=0; + start.tv_sec=0; } } cnt=0; |