hwtimer.c (71867) | hwtimer.c (73561) |
---|---|
1 2/****************************************************************************** 3 * 4 * Name: hwtimer.c - ACPI Power Management Timer Interface | 1 2/****************************************************************************** 3 * 4 * Name: hwtimer.c - ACPI Power Management Timer Interface |
5 * $Revision: 4 $ | 5 * $Revision: 5 $ |
6 * 7 *****************************************************************************/ 8 9/****************************************************************************** 10 * 11 * 1. Copyright Notice 12 * 13 * Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp. --- 216 unchanged lines hidden (view full) --- 230 if (!TimeElapsed) 231 { 232 return_ACPI_STATUS (AE_BAD_PARAMETER); 233 } 234 235 /* 236 * Compute Tick Delta: 237 * ------------------- | 6 * 7 *****************************************************************************/ 8 9/****************************************************************************** 10 * 11 * 1. Copyright Notice 12 * 13 * Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp. --- 216 unchanged lines hidden (view full) --- 230 if (!TimeElapsed) 231 { 232 return_ACPI_STATUS (AE_BAD_PARAMETER); 233 } 234 235 /* 236 * Compute Tick Delta: 237 * ------------------- |
238 * Handle timer rollovers on 24- versus 32-bit timers. | 238 * Handle (max one) timer rollovers on 24- versus 32-bit timers. |
239 */ 240 if (StartTicks < EndTicks) 241 { 242 DeltaTicks = EndTicks - StartTicks; 243 } 244 else if (StartTicks > EndTicks) 245 { 246 /* 24-bit Timer */ 247 if (0 == AcpiGbl_FADT->TmrValExt) 248 { | 239 */ 240 if (StartTicks < EndTicks) 241 { 242 DeltaTicks = EndTicks - StartTicks; 243 } 244 else if (StartTicks > EndTicks) 245 { 246 /* 24-bit Timer */ 247 if (0 == AcpiGbl_FADT->TmrValExt) 248 { |
249 DeltaTicks = (0x00FFFFFF - StartTicks) + EndTicks; | 249 DeltaTicks = (((0x00FFFFFF - StartTicks) + EndTicks) & 0x00FFFFFF); |
250 } 251 /* 32-bit Timer */ 252 else 253 { 254 DeltaTicks = (0xFFFFFFFF - StartTicks) + EndTicks; 255 } 256 } | 250 } 251 /* 32-bit Timer */ 252 else 253 { 254 DeltaTicks = (0xFFFFFFFF - StartTicks) + EndTicks; 255 } 256 } |
257 else 258 { 259 *TimeElapsed = 0; 260 return_ACPI_STATUS (AE_OK); 261 } |
|
257 258 /* 259 * Compute Duration: 260 * ----------------- 261 * Since certain compilers (gcc/Linux, argh!) don't support 64-bit 262 * divides in kernel-space we have to do some trickery to preserve 263 * accuracy while using 32-bit math. 264 * --- 38 unchanged lines hidden --- | 262 263 /* 264 * Compute Duration: 265 * ----------------- 266 * Since certain compilers (gcc/Linux, argh!) don't support 64-bit 267 * divides in kernel-space we have to do some trickery to preserve 268 * accuracy while using 32-bit math. 269 * --- 38 unchanged lines hidden --- |