1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef PM_TRACE_H 3#define PM_TRACE_H 4 5#include <linux/types.h> 6#ifdef CONFIG_PM_TRACE 7#include <asm/pm-trace.h> 8 9extern int pm_trace_enabled; 10extern bool pm_trace_rtc_abused; 11 12static inline bool pm_trace_rtc_valid(void) 13{ 14 return !pm_trace_rtc_abused; 15} 16 17static inline int pm_trace_is_enabled(void) 18{ 19 return pm_trace_enabled; 20} 21 22struct device; 23extern void set_trace_device(struct device *); 24extern void generate_pm_trace(const void *tracedata, unsigned int user); 25extern int show_trace_dev_match(char *buf, size_t size); 26 27#define TRACE_DEVICE(dev) do { \ 28 if (pm_trace_enabled) \ 29 set_trace_device(dev); \ 30 } while(0) 31 32#else 33 34static inline bool pm_trace_rtc_valid(void) { return true; } 35static inline int pm_trace_is_enabled(void) { return 0; } 36 37#define TRACE_DEVICE(dev) do { } while (0) 38#define TRACE_RESUME(dev) do { } while (0) 39#define TRACE_SUSPEND(dev) do { } while (0) 40 41#endif 42 43#endif 44