summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev/acpica/hwtimer.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/dev/acpica/hwtimer.c')
-rw-r--r--sys/contrib/dev/acpica/hwtimer.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/sys/contrib/dev/acpica/hwtimer.c b/sys/contrib/dev/acpica/hwtimer.c
index 197c65c..52139ed 100644
--- a/sys/contrib/dev/acpica/hwtimer.c
+++ b/sys/contrib/dev/acpica/hwtimer.c
@@ -2,7 +2,7 @@
/******************************************************************************
*
* Name: hwtimer.c - ACPI Power Management Timer Interface
- * $Revision: 4 $
+ * $Revision: 5 $
*
*****************************************************************************/
@@ -235,7 +235,7 @@ AcpiGetTimerDuration (
/*
* Compute Tick Delta:
* -------------------
- * Handle timer rollovers on 24- versus 32-bit timers.
+ * Handle (max one) timer rollovers on 24- versus 32-bit timers.
*/
if (StartTicks < EndTicks)
{
@@ -246,7 +246,7 @@ AcpiGetTimerDuration (
/* 24-bit Timer */
if (0 == AcpiGbl_FADT->TmrValExt)
{
- DeltaTicks = (0x00FFFFFF - StartTicks) + EndTicks;
+ DeltaTicks = (((0x00FFFFFF - StartTicks) + EndTicks) & 0x00FFFFFF);
}
/* 32-bit Timer */
else
@@ -254,6 +254,11 @@ AcpiGetTimerDuration (
DeltaTicks = (0xFFFFFFFF - StartTicks) + EndTicks;
}
}
+ else
+ {
+ *TimeElapsed = 0;
+ return_ACPI_STATUS (AE_OK);
+ }
/*
* Compute Duration:
OpenPOWER on IntegriCloud