diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2007-02-16 04:27:57 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-16 11:13:58 -0500 |
| commit | d66bea57e779cd592657cca6e61345ae899b78d9 (patch) | |
| tree | 70fe41bf930ac96a59d594ba5a37272a3df775e0 /include | |
| parent | 169a0abbe32813af4904cc1605c0f7ea0534f77b (diff) | |
[PATCH] Allow early access to the power management timer
Allow early access to the power management timer by exposing the verified read
function and providing a helper function which checks the pmtmr_ioport
variable and returns either the pm timer readout or 0 in case the pm timer is
not available.
Create a new header file and replace also the ifdef'ed extern definition in
arch/i386/kernel/acpi/boot.c
This is a preperatory patch for the rework of the local apic timer
calibration.
No functional changes.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: john stultz <johnstul@us.ibm.com>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/acpi_pmtmr.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/include/linux/acpi_pmtmr.h b/include/linux/acpi_pmtmr.h new file mode 100644 index 000000000000..1d0ef1ae8036 --- /dev/null +++ b/include/linux/acpi_pmtmr.h | |||
| @@ -0,0 +1,38 @@ | |||
| 1 | #ifndef _ACPI_PMTMR_H_ | ||
| 2 | #define _ACPI_PMTMR_H_ | ||
| 3 | |||
| 4 | #include <linux/clocksource.h> | ||
| 5 | |||
| 6 | /* Number of PMTMR ticks expected during calibration run */ | ||
| 7 | #define PMTMR_TICKS_PER_SEC 3579545 | ||
| 8 | |||
| 9 | /* limit it to 24 bits */ | ||
| 10 | #define ACPI_PM_MASK CLOCKSOURCE_MASK(24) | ||
| 11 | |||
| 12 | /* Overrun value */ | ||
| 13 | #define ACPI_PM_OVRRUN (1<<24) | ||
| 14 | |||
| 15 | #ifdef CONFIG_X86_PM_TIMER | ||
| 16 | |||
| 17 | extern u32 acpi_pm_read_verified(void); | ||
| 18 | extern u32 pmtmr_ioport; | ||
| 19 | |||
| 20 | static inline u32 acpi_pm_read_early(void) | ||
| 21 | { | ||
| 22 | if (!pmtmr_ioport) | ||
| 23 | return 0; | ||
| 24 | /* mask the output to 24 bits */ | ||
| 25 | return acpi_pm_read_verified() & ACPI_PM_MASK; | ||
| 26 | } | ||
| 27 | |||
| 28 | #else | ||
| 29 | |||
| 30 | static inline u32 acpi_pm_read_early(void) | ||
| 31 | { | ||
| 32 | return 0; | ||
| 33 | } | ||
| 34 | |||
| 35 | #endif | ||
| 36 | |||
| 37 | #endif | ||
| 38 | |||
