Branch data Line data Source code
1 : : /* SPDX-License-Identifier: GPL-2.0 */ 2 : : #ifndef _ACPI_PMTMR_H_ 3 : : #define _ACPI_PMTMR_H_ 4 : : 5 : : #include <linux/clocksource.h> 6 : : 7 : : /* Number of PMTMR ticks expected during calibration run */ 8 : : #define PMTMR_TICKS_PER_SEC 3579545 9 : : 10 : : /* limit it to 24 bits */ 11 : : #define ACPI_PM_MASK CLOCKSOURCE_MASK(24) 12 : : 13 : : /* Overrun value */ 14 : : #define ACPI_PM_OVRRUN (1<<24) 15 : : 16 : : #ifdef CONFIG_X86_PM_TIMER 17 : : 18 : : extern u32 acpi_pm_read_verified(void); 19 : : extern u32 pmtmr_ioport; 20 : : 21 : 2856 : static inline u32 acpi_pm_read_early(void) 22 : : { 23 [ + - ]: 2856 : if (!pmtmr_ioport) 24 : : return 0; 25 : : /* mask the output to 24 bits */ 26 : 2856 : return acpi_pm_read_verified() & ACPI_PM_MASK; 27 : : } 28 : : 29 : : #else 30 : : 31 : : static inline u32 acpi_pm_read_early(void) 32 : : { 33 : : return 0; 34 : : } 35 : : 36 : : #endif 37 : : 38 : : #endif 39 : :