xref: /linux/drivers/net/wireless/ath/ath11k/debug.h (revision 4f6b838c378a52ea3ae0b15f12ca8a20849072fa)
1d5c65159SKalle Valo /* SPDX-License-Identifier: BSD-3-Clause-Clear */
2d5c65159SKalle Valo /*
3d5c65159SKalle Valo  * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
4d5c65159SKalle Valo  */
5d5c65159SKalle Valo 
6d5c65159SKalle Valo #ifndef _ATH11K_DEBUG_H_
7d5c65159SKalle Valo #define _ATH11K_DEBUG_H_
8d5c65159SKalle Valo 
9d5c65159SKalle Valo #include "trace.h"
10*da3a9d3cSKalle Valo #include "debugfs.h"
1164f1d7e9SMaharaja Kennadyrajan 
12d5c65159SKalle Valo enum ath11k_debug_mask {
13d5c65159SKalle Valo 	ATH11K_DBG_AHB		= 0x00000001,
14d5c65159SKalle Valo 	ATH11K_DBG_WMI		= 0x00000002,
15d5c65159SKalle Valo 	ATH11K_DBG_HTC		= 0x00000004,
16d5c65159SKalle Valo 	ATH11K_DBG_DP_HTT	= 0x00000008,
17d5c65159SKalle Valo 	ATH11K_DBG_MAC		= 0x00000010,
18d5c65159SKalle Valo 	ATH11K_DBG_BOOT		= 0x00000020,
19d5c65159SKalle Valo 	ATH11K_DBG_QMI		= 0x00000040,
20d5c65159SKalle Valo 	ATH11K_DBG_DATA		= 0x00000080,
21d5c65159SKalle Valo 	ATH11K_DBG_MGMT		= 0x00000100,
22d5c65159SKalle Valo 	ATH11K_DBG_REG		= 0x00000200,
23d5c65159SKalle Valo 	ATH11K_DBG_TESTMODE	= 0x00000400,
24d5c65159SKalle Valo 	ATH11k_DBG_HAL		= 0x00000800,
255697a564SGovind Singh 	ATH11K_DBG_PCI		= 0x00001000,
26aa2092a9SVenkateswara Naralasetty 	ATH11K_DBG_DP_TX	= 0x00001000,
27aa2092a9SVenkateswara Naralasetty 	ATH11K_DBG_DP_RX	= 0x00002000,
28d5c65159SKalle Valo 	ATH11K_DBG_ANY		= 0xffffffff,
29d5c65159SKalle Valo };
30d5c65159SKalle Valo 
31d5c65159SKalle Valo __printf(2, 3) void ath11k_info(struct ath11k_base *ab, const char *fmt, ...);
32d5c65159SKalle Valo __printf(2, 3) void ath11k_err(struct ath11k_base *ab, const char *fmt, ...);
33d5c65159SKalle Valo __printf(2, 3) void ath11k_warn(struct ath11k_base *ab, const char *fmt, ...);
34d5c65159SKalle Valo 
35d5c65159SKalle Valo extern unsigned int ath11k_debug_mask;
36d5c65159SKalle Valo 
37d5c65159SKalle Valo #ifdef CONFIG_ATH11K_DEBUG
38d5c65159SKalle Valo __printf(3, 4) void __ath11k_dbg(struct ath11k_base *ab,
39d5c65159SKalle Valo 				 enum ath11k_debug_mask mask,
40d5c65159SKalle Valo 				 const char *fmt, ...);
41d5c65159SKalle Valo void ath11k_dbg_dump(struct ath11k_base *ab,
42d5c65159SKalle Valo 		     enum ath11k_debug_mask mask,
43d5c65159SKalle Valo 		     const char *msg, const char *prefix,
44d5c65159SKalle Valo 		     const void *buf, size_t len);
45d5c65159SKalle Valo #else /* CONFIG_ATH11K_DEBUG */
46d5c65159SKalle Valo static inline int __ath11k_dbg(struct ath11k_base *ab,
47d5c65159SKalle Valo 			       enum ath11k_debug_mask dbg_mask,
48d5c65159SKalle Valo 			       const char *fmt, ...)
49d5c65159SKalle Valo {
50d5c65159SKalle Valo 	return 0;
51d5c65159SKalle Valo }
52d5c65159SKalle Valo 
53d5c65159SKalle Valo static inline void ath11k_dbg_dump(struct ath11k_base *ab,
54d5c65159SKalle Valo 				   enum ath11k_debug_mask mask,
55d5c65159SKalle Valo 				   const char *msg, const char *prefix,
56d5c65159SKalle Valo 				   const void *buf, size_t len)
57d5c65159SKalle Valo {
58d5c65159SKalle Valo }
59d5c65159SKalle Valo #endif /* CONFIG_ATH11K_DEBUG */
60d5c65159SKalle Valo 
61d5c65159SKalle Valo #define ath11k_dbg(ar, dbg_mask, fmt, ...)			\
62d5c65159SKalle Valo do {								\
63d5c65159SKalle Valo 	if (ath11k_debug_mask & dbg_mask)			\
64d5c65159SKalle Valo 		__ath11k_dbg(ar, dbg_mask, fmt, ##__VA_ARGS__);	\
65d5c65159SKalle Valo } while (0)
66d5c65159SKalle Valo 
67d5c65159SKalle Valo #endif /* _ATH11K_DEBUG_H_ */
68