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 
acpi_pm_read_early(void)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 
acpi_pm_read_early(void)30 static inline u32 acpi_pm_read_early(void)
31 {
32 	return 0;
33 }
34 
35 #endif
36 
37 #endif
38 
39