Deleted Added
full compact
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