1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2431d452aSZhonghui Fu #ifndef PM_TRACE_H 3431d452aSZhonghui Fu #define PM_TRACE_H 4431d452aSZhonghui Fu 5ba58d102SChen Yu #include <linux/types.h> 6431d452aSZhonghui Fu #ifdef CONFIG_PM_TRACE 7431d452aSZhonghui Fu #include <asm/pm-trace.h> 8431d452aSZhonghui Fu 9431d452aSZhonghui Fu extern int pm_trace_enabled; 10ba58d102SChen Yu extern bool pm_trace_rtc_abused; 11ba58d102SChen Yu pm_trace_rtc_valid(void)12ba58d102SChen Yustatic inline bool pm_trace_rtc_valid(void) 13ba58d102SChen Yu { 14ba58d102SChen Yu return !pm_trace_rtc_abused; 15ba58d102SChen Yu } 16431d452aSZhonghui Fu pm_trace_is_enabled(void)17431d452aSZhonghui Fustatic inline int pm_trace_is_enabled(void) 18431d452aSZhonghui Fu { 19431d452aSZhonghui Fu return pm_trace_enabled; 20431d452aSZhonghui Fu } 21431d452aSZhonghui Fu 22431d452aSZhonghui Fu struct device; 23431d452aSZhonghui Fu extern void set_trace_device(struct device *); 24431d452aSZhonghui Fu extern void generate_pm_trace(const void *tracedata, unsigned int user); 25431d452aSZhonghui Fu extern int show_trace_dev_match(char *buf, size_t size); 26431d452aSZhonghui Fu 27431d452aSZhonghui Fu #define TRACE_DEVICE(dev) do { \ 28431d452aSZhonghui Fu if (pm_trace_enabled) \ 29431d452aSZhonghui Fu set_trace_device(dev); \ 30431d452aSZhonghui Fu } while(0) 31431d452aSZhonghui Fu 32431d452aSZhonghui Fu #else 33431d452aSZhonghui Fu pm_trace_rtc_valid(void)34ba58d102SChen Yustatic inline bool pm_trace_rtc_valid(void) { return true; } pm_trace_is_enabled(void)35431d452aSZhonghui Fustatic inline int pm_trace_is_enabled(void) { return 0; } 36431d452aSZhonghui Fu 37431d452aSZhonghui Fu #define TRACE_DEVICE(dev) do { } while (0) 38431d452aSZhonghui Fu #define TRACE_RESUME(dev) do { } while (0) 39431d452aSZhonghui Fu #define TRACE_SUSPEND(dev) do { } while (0) 40431d452aSZhonghui Fu 41431d452aSZhonghui Fu #endif 42431d452aSZhonghui Fu 43431d452aSZhonghui Fu #endif 44