git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git]
/
drivers
/
acpi
/
hardware
/
hwtimer.c
diff --git
a/drivers/acpi/hardware/hwtimer.c
b/drivers/acpi/hardware/hwtimer.c
index
8878aff
..
fc10b7c
100644
(file)
--- a/
drivers/acpi/hardware/hwtimer.c
+++ b/
drivers/acpi/hardware/hwtimer.c
@@
-6,7
+6,7
@@
*****************************************************************************/
/*
*****************************************************************************/
/*
- * Copyright (C) 2000 - 200
4
, R. Byron Moore
+ * Copyright (C) 2000 - 200
6
, R. Byron Moore
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@
-42,87
+42,78
@@
* POSSIBILITY OF SUCH DAMAGES.
*/
* POSSIBILITY OF SUCH DAMAGES.
*/
+#include <linux/module.h>
#include <acpi/acpi.h>
#define _COMPONENT ACPI_HARDWARE
#include <acpi/acpi.h>
#define _COMPONENT ACPI_HARDWARE
- ACPI_MODULE_NAME ("hwtimer")
-
+ACPI_MODULE_NAME("hwtimer")
/******************************************************************************
*
* FUNCTION: acpi_get_timer_resolution
*
/******************************************************************************
*
* FUNCTION: acpi_get_timer_resolution
*
- * PARAMETERS:
none
+ * PARAMETERS:
Resolution - Where the resolution is returned
*
*
- * RETURN:
Number of bits of resolution in the PM Timer (24 or 32).
+ * RETURN:
Status and timer resolution
*
*
- * DESCRIPTION: Obtains resolution of the ACPI PM Timer.
+ * DESCRIPTION: Obtains resolution of the ACPI PM Timer
(24 or 32 bits)
.
*
******************************************************************************/
*
******************************************************************************/
-
-acpi_status
-acpi_get_timer_resolution (
- u32 *resolution)
+acpi_status acpi_get_timer_resolution(u32 * resolution)
{
{
- ACPI_FUNCTION_TRACE ("acpi_get_timer_resolution");
-
+ ACPI_FUNCTION_TRACE("acpi_get_timer_resolution");
if (!resolution) {
if (!resolution) {
- return_ACPI_STATUS
(AE_BAD_PARAMETER);
+ return_ACPI_STATUS(AE_BAD_PARAMETER);
}
if (0 == acpi_gbl_FADT->tmr_val_ext) {
*resolution = 24;
}
if (0 == acpi_gbl_FADT->tmr_val_ext) {
*resolution = 24;
- }
- else {
+ } else {
*resolution = 32;
}
*resolution = 32;
}
- return_ACPI_STATUS
(AE_OK);
+ return_ACPI_STATUS(AE_OK);
}
}
-
/******************************************************************************
*
* FUNCTION: acpi_get_timer
*
/******************************************************************************
*
* FUNCTION: acpi_get_timer
*
- * PARAMETERS:
none
+ * PARAMETERS:
Ticks - Where the timer value is returned
*
*
- * RETURN:
Current value of the ACPI PM Timer (in ticks).
+ * RETURN:
Status and current timer value (ticks)
*
*
- * DESCRIPTION: Obtains current value of ACPI PM Timer.
+ * DESCRIPTION: Obtains current value of ACPI PM Timer
(in ticks)
.
*
******************************************************************************/
*
******************************************************************************/
-acpi_status
-acpi_get_timer (
- u32 *ticks)
+acpi_status acpi_get_timer(u32 * ticks)
{
{
- acpi_status status;
-
-
- ACPI_FUNCTION_TRACE ("acpi_get_timer");
+ acpi_status status;
+ ACPI_FUNCTION_TRACE("acpi_get_timer");
if (!ticks) {
if (!ticks) {
- return_ACPI_STATUS
(AE_BAD_PARAMETER);
+ return_ACPI_STATUS(AE_BAD_PARAMETER);
}
}
- status = acpi_hw_low_level_read
(32, ticks, &acpi_gbl_FADT->xpm_tmr_blk);
+ status = acpi_hw_low_level_read(32, ticks, &acpi_gbl_FADT->xpm_tmr_blk);
- return_ACPI_STATUS
(status);
+ return_ACPI_STATUS(status);
}
}
+EXPORT_SYMBOL(acpi_get_timer);
/******************************************************************************
*
* FUNCTION: acpi_get_timer_duration
*
/******************************************************************************
*
* FUNCTION: acpi_get_timer_duration
*
- * PARAMETERS: start_ticks
- * end_ticks
- * time_elapsed
+ * PARAMETERS: start_ticks
- Starting timestamp
+ * end_ticks
- End timestamp
+ * time_elapsed
- Where the elapsed time is returned
*
*
- * RETURN: time_elapsed
+ * RETURN:
Status and
time_elapsed
*
* DESCRIPTION: Computes the time elapsed (in microseconds) between two
* PM Timer time stamps, taking into account the possibility of
*
* DESCRIPTION: Computes the time elapsed (in microseconds) between two
* PM Timer time stamps, taking into account the possibility of
@@
-136,7
+127,7
@@
acpi_get_timer (
* Note that this function accommodates only a single timer
* rollover. Thus for 24-bit timers, this function should only
* be used for calculating durations less than ~4.6 seconds
* Note that this function accommodates only a single timer
* rollover. Thus for 24-bit timers, this function should only
* be used for calculating durations less than ~4.6 seconds
- * (~20 minutes for 32-bit timers) -- calculations below
+ * (~20 minutes for 32-bit timers) -- calculations below
:
*
* 2**24 Ticks / 3,600,000 Ticks/Sec = 4.66 sec
* 2**32 Ticks / 3,600,000 Ticks/Sec = 1193 sec or 19.88 minutes
*
* 2**24 Ticks / 3,600,000 Ticks/Sec = 4.66 sec
* 2**32 Ticks / 3,600,000 Ticks/Sec = 1193 sec or 19.88 minutes
@@
-144,64
+135,52
@@
acpi_get_timer (
******************************************************************************/
acpi_status
******************************************************************************/
acpi_status
-acpi_get_timer_duration (
- u32 start_ticks,
- u32 end_ticks,
- u32 *time_elapsed)
+acpi_get_timer_duration(u32 start_ticks, u32 end_ticks, u32 * time_elapsed)
{
{
- u32 delta_ticks = 0;
- union uint64_overlay normalized_ticks;
- acpi_status status;
- acpi_integer out_quotient;
-
-
- ACPI_FUNCTION_TRACE ("acpi_get_timer_duration");
+ acpi_status status;
+ u32 delta_ticks;
+ acpi_integer quotient;
+ ACPI_FUNCTION_TRACE("acpi_get_timer_duration");
if (!time_elapsed) {
if (!time_elapsed) {
- return_ACPI_STATUS
(AE_BAD_PARAMETER);
+ return_ACPI_STATUS(AE_BAD_PARAMETER);
}
/*
* Compute Tick Delta:
}
/*
* Compute Tick Delta:
- * -------------------
- * Handle (max one) timer rollovers on 24- versus 32-bit timers.
+ * Handle (max one) timer rollovers on 24-bit versus 32-bit timers.
*/
if (start_ticks < end_ticks) {
delta_ticks = end_ticks - start_ticks;
*/
if (start_ticks < end_ticks) {
delta_ticks = end_ticks - start_ticks;
- }
- else if (start_ticks > end_ticks) {
+ } else if (start_ticks > end_ticks) {
if (0 == acpi_gbl_FADT->tmr_val_ext) {
/* 24-bit Timer */
if (0 == acpi_gbl_FADT->tmr_val_ext) {
/* 24-bit Timer */
- delta_ticks = (((0x00FFFFFF - start_ticks) + end_ticks) & 0x00FFFFFF);
- }
- else {
+ delta_ticks =
+ (((0x00FFFFFF - start_ticks) +
+ end_ticks) & 0x00FFFFFF);
+ } else {
/* 32-bit Timer */
delta_ticks = (0xFFFFFFFF - start_ticks) + end_ticks;
}
/* 32-bit Timer */
delta_ticks = (0xFFFFFFFF - start_ticks) + end_ticks;
}
- }
- else {
+ }
else { /* start_ticks == end_ticks */
+
*time_elapsed = 0;
*time_elapsed = 0;
- return_ACPI_STATUS
(AE_OK);
+ return_ACPI_STATUS(AE_OK);
}
/*
}
/*
- * Compute Duration:
- * -----------------
- *
- * Requires a 64-bit divide:
+ * Compute Duration (Requires a 64-bit multiply and divide):
*
* time_elapsed = (delta_ticks * 1000000) / PM_TIMER_FREQUENCY;
*/
*
* time_elapsed = (delta_ticks * 1000000) / PM_TIMER_FREQUENCY;
*/
- normalized_ticks.full = ((u64) delta_ticks) * 1000000;
+ status = acpi_ut_short_divide(((u64) delta_ticks) * 1000000,
+ PM_TIMER_FREQUENCY, "ient, NULL);
- status = acpi_ut_short_divide (&normalized_ticks.full, PM_TIMER_FREQUENCY,
- &out_quotient, NULL);
-
- *time_elapsed = (u32) out_quotient;
- return_ACPI_STATUS (status);
+ *time_elapsed = (u32) quotient;
+ return_ACPI_STATUS(status);
}
}
-
+EXPORT_SYMBOL(acpi_get_timer_duration);