brintos

brintos / linux-shallow public Read only

0
0
Text · 1.0 KiB · 0ded922 Raw
53 lines · c
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 35795459 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_TIMER17 18extern u32 acpi_pm_read_verified(void);19extern u32 pmtmr_ioport;20 21static inline u32 acpi_pm_read_early(void)22{23	if (!pmtmr_ioport)24		return 0;25	/* mask the output to 24 bits */26	return acpi_pm_read_verified() & ACPI_PM_MASK;27}28 29/**30 * Register callback for suspend and resume event31 *32 * @cb Callback triggered on suspend and resume33 * @data Data passed with the callback34 */35void acpi_pmtmr_register_suspend_resume_callback(void (*cb)(void *data, bool suspend), void *data);36 37/**38 * Remove registered callback for suspend and resume event39 */40void acpi_pmtmr_unregister_suspend_resume_callback(void);41 42#else43 44static inline u32 acpi_pm_read_early(void)45{46	return 0;47}48 49#endif50 51#endif52 53