Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifndef _ACPI_PMTMR_H_
0003 #define _ACPI_PMTMR_H_
0004 
0005 #include <linux/clocksource.h>
0006 
0007 /* Number of PMTMR ticks expected during calibration run */
0008 #define PMTMR_TICKS_PER_SEC 3579545
0009 
0010 /* limit it to 24 bits */
0011 #define ACPI_PM_MASK CLOCKSOURCE_MASK(24)
0012 
0013 /* Overrun value */
0014 #define ACPI_PM_OVRRUN  (1<<24)
0015 
0016 #ifdef CONFIG_X86_PM_TIMER
0017 
0018 extern u32 acpi_pm_read_verified(void);
0019 extern u32 pmtmr_ioport;
0020 
0021 static inline u32 acpi_pm_read_early(void)
0022 {
0023     if (!pmtmr_ioport)
0024         return 0;
0025     /* mask the output to 24 bits */
0026     return acpi_pm_read_verified() & ACPI_PM_MASK;
0027 }
0028 
0029 #else
0030 
0031 static inline u32 acpi_pm_read_early(void)
0032 {
0033     return 0;
0034 }
0035 
0036 #endif
0037 
0038 #endif
0039