xref: /linux/drivers/gpu/drm/amd/display/dc/sspl/spl_debug.h (revision 4f9786035f9e519db41375818e1d0b5f20da2f10)
1*5c06c1dfSSamson Tam /* SPDX-License-Identifier: MIT */
2*5c06c1dfSSamson Tam 
3*5c06c1dfSSamson Tam /* Copyright 2024 Advanced Micro Devices, Inc. */
4*5c06c1dfSSamson Tam 
5*5c06c1dfSSamson Tam #ifndef SPL_DEBUG_H
6*5c06c1dfSSamson Tam #define SPL_DEBUG_H
7*5c06c1dfSSamson Tam 
8*5c06c1dfSSamson Tam #if defined(CONFIG_HAVE_KGDB) || defined(CONFIG_KGDB)
9*5c06c1dfSSamson Tam #define SPL_ASSERT_CRITICAL(expr) do {	\
10*5c06c1dfSSamson Tam 	if (WARN_ON(!(expr))) { \
11*5c06c1dfSSamson Tam 		kgdb_breakpoint(); \
12*5c06c1dfSSamson Tam 	} \
13*5c06c1dfSSamson Tam } while (0)
14*5c06c1dfSSamson Tam #else
15*5c06c1dfSSamson Tam #define SPL_ASSERT_CRITICAL(expr) do {	\
16*5c06c1dfSSamson Tam 	if (WARN_ON(!(expr))) { \
17*5c06c1dfSSamson Tam 		; \
18*5c06c1dfSSamson Tam 	} \
19*5c06c1dfSSamson Tam } while (0)
20*5c06c1dfSSamson Tam #endif /* CONFIG_HAVE_KGDB || CONFIG_KGDB */
21*5c06c1dfSSamson Tam 
22*5c06c1dfSSamson Tam #if defined(CONFIG_DEBUG_KERNEL_DC)
23*5c06c1dfSSamson Tam #define SPL_ASSERT(expr) SPL_ASSERT_CRITICAL(expr)
24*5c06c1dfSSamson Tam #else
25*5c06c1dfSSamson Tam #define SPL_ASSERT(expr) WARN_ON(!(expr))
26*5c06c1dfSSamson Tam #endif /* CONFIG_DEBUG_KERNEL_DC */
27*5c06c1dfSSamson Tam 
28*5c06c1dfSSamson Tam #define SPL_BREAK_TO_DEBUGGER() SPL_ASSERT(0)
29*5c06c1dfSSamson Tam 
30*5c06c1dfSSamson Tam #endif  // SPL_DEBUG_H
31