Skip to content

Commit

Permalink
ACPICA: Add time macros for various timer/time manipulation.
Browse files Browse the repository at this point in the history
Constants for time manipulation, including constants for the 100
nanosecond timers. Chao Guan, Bob Moore, Lv Zheng.

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  • Loading branch information
Bob Moore authored and Rafael J. Wysocki committed Jan 10, 2013
1 parent c8d586f commit c41679a
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 6 deletions.
2 changes: 1 addition & 1 deletion drivers/acpi/acpica/hwsleep.c
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ acpi_status acpi_hw_legacy_sleep(u8 sleep_state)
* to still read the right value. Ideally, this block would go
* away entirely.
*/
acpi_os_stall(10000000);
acpi_os_stall(10 * ACPI_USEC_PER_SEC);

status = acpi_hw_register_write(ACPI_REGISTER_PM1_CONTROL,
sleep_enable_reg_info->
Expand Down
7 changes: 4 additions & 3 deletions drivers/acpi/acpica/hwtimer.c
Original file line number Diff line number Diff line change
Expand Up @@ -176,10 +176,11 @@ acpi_get_timer_duration(u32 start_ticks, u32 end_ticks, u32 * time_elapsed)
/*
* Compute Duration (Requires a 64-bit multiply and divide):
*
* time_elapsed = (delta_ticks * 1000000) / PM_TIMER_FREQUENCY;
* time_elapsed (microseconds) =
* (delta_ticks * ACPI_USEC_PER_SEC) / ACPI_PM_TIMER_FREQUENCY;
*/
status = acpi_ut_short_divide(((u64) delta_ticks) * 1000000,
PM_TIMER_FREQUENCY, &quotient, NULL);
status = acpi_ut_short_divide(((u64)delta_ticks) * ACPI_USEC_PER_SEC,
ACPI_PM_TIMER_FREQUENCY, &quotient, NULL);

*time_elapsed = (u32) quotient;
return_ACPI_STATUS(status);
Expand Down
2 changes: 1 addition & 1 deletion drivers/acpi/acpica/hwxfsleep.c
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ acpi_status asmlinkage acpi_enter_sleep_state_s4bios(void)
(u32)acpi_gbl_FADT.s4_bios_request, 8);

do {
acpi_os_stall(1000);
acpi_os_stall(ACPI_USEC_PER_MSEC);
status =
acpi_read_bit_register(ACPI_BITREG_WAKE_STATUS, &in_value);
if (ACPI_FAILURE(status)) {
Expand Down
17 changes: 16 additions & 1 deletion include/acpi/actypes.h
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,7 @@ typedef u32 acpi_physical_address;

/* PM Timer ticks per second (HZ) */

#define PM_TIMER_FREQUENCY 3579545
#define ACPI_PM_TIMER_FREQUENCY 3579545

/*******************************************************************************
*
Expand Down Expand Up @@ -373,6 +373,21 @@ typedef u32 acpi_name; /* 4-byte ACPI name */
typedef char *acpi_string; /* Null terminated ASCII string */
typedef void *acpi_handle; /* Actually a ptr to a NS Node */

/* Time constants for timer calculations */

#define ACPI_MSEC_PER_SEC 1000L

#define ACPI_USEC_PER_MSEC 1000L
#define ACPI_USEC_PER_SEC 1000000L

#define ACPI_100NSEC_PER_USEC 10L
#define ACPI_100NSEC_PER_MSEC 10000L
#define ACPI_100NSEC_PER_SEC 10000000L

#define ACPI_NSEC_PER_USEC 1000L
#define ACPI_NSEC_PER_MSEC 1000000L
#define ACPI_NSEC_PER_SEC 1000000000L

/* Owner IDs are used to track namespace nodes for selective deletion */

typedef u8 acpi_owner_id;
Expand Down

0 comments on commit c41679a

Please sign in to comment.