blob: 5a823689db685f95d99c2ee0c7c80509b20487d5 [file] [log] [blame]
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
/*
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
*/
#ifndef __AMLOGIC_DEBUG_IRQFLAGS_H
#define __AMLOGIC_DEBUG_IRQFLAGS_H
typedef void (*irq_trace_fn_t)(unsigned long flags);
extern irq_trace_fn_t irq_trace_start_hook;
extern irq_trace_fn_t irq_trace_stop_hook;
void irq_trace_start_gki_builtin(unsigned long flags);
void irq_trace_stop_gki_builtin(unsigned long flags);
static inline void __nocfi irq_trace_start_glue(unsigned long flags)
{
#if defined(CONFIG_AMLOGIC_DEBUG) || (defined(CONFIG_AMLOGIC_DEBUG_MODULE) && defined(MODULE))
/* builtin mode or gki mode build with module */
if (irq_trace_start_hook)
irq_trace_start_hook(flags);
#elif defined(CONFIG_AMLOGIC_BGKI_DEBUG_MISC)
/* gki mode build with builtin */
irq_trace_start_gki_builtin(flags);
#endif
}
static inline void __nocfi irq_trace_stop_glue(unsigned long flags)
{
#if defined(CONFIG_AMLOGIC_DEBUG) || (defined(CONFIG_AMLOGIC_DEBUG_MODULE) && defined(MODULE))
/* builtin mode or gki mode build with module */
if (irq_trace_stop_hook)
irq_trace_stop_hook(flags);
#elif defined(CONFIG_AMLOGIC_BGKI_DEBUG_MISC)
/* gki mode build with builtin */
irq_trace_stop_gki_builtin(flags);
#endif
}
void set_lockup_hook(void (*lockup_hook)(int cpu));
#endif