hwtimer.c (151937) | hwtimer.c (167802) |
---|---|
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: 1.30 $ | 5 * $Revision: 1.37 $ |
6 * 7 *****************************************************************************/ 8 9/****************************************************************************** 10 * 11 * 1. Copyright Notice 12 * | 6 * 7 *****************************************************************************/ 8 9/****************************************************************************** 10 * 11 * 1. Copyright Notice 12 * |
13 * Some or all of this work - Copyright (c) 1999 - 2005, Intel Corp. | 13 * Some or all of this work - Copyright (c) 1999 - 2007, Intel Corp. |
14 * All rights reserved. 15 * 16 * 2. License 17 * 18 * 2.1. This is your license from Intel Corp. under its intellectual property 19 * rights. You may have additional license terms from the party that provided 20 * you this software, covering your right to use that party's intellectual 21 * property rights. --- 110 unchanged lines hidden (view full) --- 132 * DESCRIPTION: Obtains resolution of the ACPI PM Timer (24 or 32 bits). 133 * 134 ******************************************************************************/ 135 136ACPI_STATUS 137AcpiGetTimerResolution ( 138 UINT32 *Resolution) 139{ | 14 * All rights reserved. 15 * 16 * 2. License 17 * 18 * 2.1. This is your license from Intel Corp. under its intellectual property 19 * rights. You may have additional license terms from the party that provided 20 * you this software, covering your right to use that party's intellectual 21 * property rights. --- 110 unchanged lines hidden (view full) --- 132 * DESCRIPTION: Obtains resolution of the ACPI PM Timer (24 or 32 bits). 133 * 134 ******************************************************************************/ 135 136ACPI_STATUS 137AcpiGetTimerResolution ( 138 UINT32 *Resolution) 139{ |
140 ACPI_FUNCTION_TRACE ("AcpiGetTimerResolution"); | 140 ACPI_FUNCTION_TRACE (AcpiGetTimerResolution); |
141 142 143 if (!Resolution) 144 { 145 return_ACPI_STATUS (AE_BAD_PARAMETER); 146 } 147 | 141 142 143 if (!Resolution) 144 { 145 return_ACPI_STATUS (AE_BAD_PARAMETER); 146 } 147 |
148 if (0 == AcpiGbl_FADT->TmrValExt) | 148 if ((AcpiGbl_FADT.Flags & ACPI_FADT_32BIT_TIMER) == 0) |
149 { 150 *Resolution = 24; 151 } 152 else 153 { 154 *Resolution = 32; 155 } 156 157 return_ACPI_STATUS (AE_OK); 158} 159 | 149 { 150 *Resolution = 24; 151 } 152 else 153 { 154 *Resolution = 32; 155 } 156 157 return_ACPI_STATUS (AE_OK); 158} 159 |
160ACPI_EXPORT_SYMBOL (AcpiGetTimerResolution) |
|
160 | 161 |
162 |
|
161/****************************************************************************** 162 * 163 * FUNCTION: AcpiGetTimer 164 * 165 * PARAMETERS: Ticks - Where the timer value is returned 166 * 167 * RETURN: Status and current timer value (ticks) 168 * 169 * DESCRIPTION: Obtains current value of ACPI PM Timer (in ticks). 170 * 171 ******************************************************************************/ 172 173ACPI_STATUS 174AcpiGetTimer ( 175 UINT32 *Ticks) 176{ 177 ACPI_STATUS Status; 178 179 | 163/****************************************************************************** 164 * 165 * FUNCTION: AcpiGetTimer 166 * 167 * PARAMETERS: Ticks - Where the timer value is returned 168 * 169 * RETURN: Status and current timer value (ticks) 170 * 171 * DESCRIPTION: Obtains current value of ACPI PM Timer (in ticks). 172 * 173 ******************************************************************************/ 174 175ACPI_STATUS 176AcpiGetTimer ( 177 UINT32 *Ticks) 178{ 179 ACPI_STATUS Status; 180 181 |
180 ACPI_FUNCTION_TRACE ("AcpiGetTimer"); | 182 ACPI_FUNCTION_TRACE (AcpiGetTimer); |
181 182 183 if (!Ticks) 184 { 185 return_ACPI_STATUS (AE_BAD_PARAMETER); 186 } 187 | 183 184 185 if (!Ticks) 186 { 187 return_ACPI_STATUS (AE_BAD_PARAMETER); 188 } 189 |
188 Status = AcpiHwLowLevelRead (32, Ticks, &AcpiGbl_FADT->XPmTmrBlk); | 190 Status = AcpiHwLowLevelRead (32, Ticks, &AcpiGbl_FADT.XPmTimerBlock); |
189 190 return_ACPI_STATUS (Status); 191} 192 | 191 192 return_ACPI_STATUS (Status); 193} 194 |
195ACPI_EXPORT_SYMBOL (AcpiGetTimer) |
|
193 | 196 |
197 |
|
194/****************************************************************************** 195 * 196 * FUNCTION: AcpiGetTimerDuration 197 * 198 * PARAMETERS: StartTicks - Starting timestamp 199 * EndTicks - End timestamp 200 * TimeElapsed - Where the elapsed time is returned 201 * --- 24 unchanged lines hidden (view full) --- 226 UINT32 EndTicks, 227 UINT32 *TimeElapsed) 228{ 229 ACPI_STATUS Status; 230 UINT32 DeltaTicks; 231 ACPI_INTEGER Quotient; 232 233 | 198/****************************************************************************** 199 * 200 * FUNCTION: AcpiGetTimerDuration 201 * 202 * PARAMETERS: StartTicks - Starting timestamp 203 * EndTicks - End timestamp 204 * TimeElapsed - Where the elapsed time is returned 205 * --- 24 unchanged lines hidden (view full) --- 230 UINT32 EndTicks, 231 UINT32 *TimeElapsed) 232{ 233 ACPI_STATUS Status; 234 UINT32 DeltaTicks; 235 ACPI_INTEGER Quotient; 236 237 |
234 ACPI_FUNCTION_TRACE ("AcpiGetTimerDuration"); | 238 ACPI_FUNCTION_TRACE (AcpiGetTimerDuration); |
235 236 237 if (!TimeElapsed) 238 { 239 return_ACPI_STATUS (AE_BAD_PARAMETER); 240 } 241 242 /* 243 * Compute Tick Delta: 244 * Handle (max one) timer rollovers on 24-bit versus 32-bit timers. 245 */ 246 if (StartTicks < EndTicks) 247 { 248 DeltaTicks = EndTicks - StartTicks; 249 } 250 else if (StartTicks > EndTicks) 251 { | 239 240 241 if (!TimeElapsed) 242 { 243 return_ACPI_STATUS (AE_BAD_PARAMETER); 244 } 245 246 /* 247 * Compute Tick Delta: 248 * Handle (max one) timer rollovers on 24-bit versus 32-bit timers. 249 */ 250 if (StartTicks < EndTicks) 251 { 252 DeltaTicks = EndTicks - StartTicks; 253 } 254 else if (StartTicks > EndTicks) 255 { |
252 if (0 == AcpiGbl_FADT->TmrValExt) | 256 if ((AcpiGbl_FADT.Flags & ACPI_FADT_32BIT_TIMER) == 0) |
253 { 254 /* 24-bit Timer */ 255 256 DeltaTicks = (((0x00FFFFFF - StartTicks) + EndTicks) & 0x00FFFFFF); 257 } 258 else 259 { 260 /* 32-bit Timer */ --- 14 unchanged lines hidden (view full) --- 275 */ 276 Status = AcpiUtShortDivide (((UINT64) DeltaTicks) * 1000000, 277 PM_TIMER_FREQUENCY, &Quotient, NULL); 278 279 *TimeElapsed = (UINT32) Quotient; 280 return_ACPI_STATUS (Status); 281} 282 | 257 { 258 /* 24-bit Timer */ 259 260 DeltaTicks = (((0x00FFFFFF - StartTicks) + EndTicks) & 0x00FFFFFF); 261 } 262 else 263 { 264 /* 32-bit Timer */ --- 14 unchanged lines hidden (view full) --- 279 */ 280 Status = AcpiUtShortDivide (((UINT64) DeltaTicks) * 1000000, 281 PM_TIMER_FREQUENCY, &Quotient, NULL); 282 283 *TimeElapsed = (UINT32) Quotient; 284 return_ACPI_STATUS (Status); 285} 286 |
287ACPI_EXPORT_SYMBOL (AcpiGetTimerDuration) |
|
283 | 288 |