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