Path: blob/main/sys/contrib/dev/athk/ath11k/debug.h
48375 views
/* SPDX-License-Identifier: BSD-3-Clause-Clear */1/*2* Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.3* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.4*/56#ifndef _ATH11K_DEBUG_H_7#define _ATH11K_DEBUG_H_89#include "trace.h"10#include "debugfs.h"1112enum ath11k_debug_mask {13ATH11K_DBG_AHB = 0x00000001,14ATH11K_DBG_WMI = 0x00000002,15ATH11K_DBG_HTC = 0x00000004,16ATH11K_DBG_DP_HTT = 0x00000008,17ATH11K_DBG_MAC = 0x00000010,18ATH11K_DBG_BOOT = 0x00000020,19ATH11K_DBG_QMI = 0x00000040,20ATH11K_DBG_DATA = 0x00000080,21ATH11K_DBG_MGMT = 0x00000100,22ATH11K_DBG_REG = 0x00000200,23ATH11K_DBG_TESTMODE = 0x00000400,24ATH11K_DBG_HAL = 0x00000800,25ATH11K_DBG_PCI = 0x00001000,26ATH11K_DBG_DP_TX = 0x00002000,27ATH11K_DBG_DP_RX = 0x00004000,28ATH11K_DBG_CE = 0x00008000,29};3031static inline const char *ath11k_dbg_str(enum ath11k_debug_mask mask)32{33switch (mask) {34case ATH11K_DBG_AHB:35return "ahb";36case ATH11K_DBG_WMI:37return "wmi";38case ATH11K_DBG_HTC:39return "htc";40case ATH11K_DBG_DP_HTT:41return "dp_htt";42case ATH11K_DBG_MAC:43return "mac";44case ATH11K_DBG_BOOT:45return "boot";46case ATH11K_DBG_QMI:47return "qmi";48case ATH11K_DBG_DATA:49return "data";50case ATH11K_DBG_MGMT:51return "mgmt";52case ATH11K_DBG_REG:53return "reg";54case ATH11K_DBG_TESTMODE:55return "testmode";56case ATH11K_DBG_HAL:57return "hal";58case ATH11K_DBG_PCI:59return "pci";60case ATH11K_DBG_DP_TX:61return "dp_tx";62case ATH11K_DBG_DP_RX:63return "dp_rx";64case ATH11K_DBG_CE:65return "ce";6667/* no default handler to allow compiler to check that the68* enum is fully handled69*/70}7172return "<?>";73}7475__printf(2, 3) void ath11k_info(struct ath11k_base *ab, const char *fmt, ...);76__printf(2, 3) void ath11k_err(struct ath11k_base *ab, const char *fmt, ...);77__printf(2, 3) void ath11k_warn(struct ath11k_base *ab, const char *fmt, ...);7879extern unsigned int ath11k_debug_mask;8081#ifdef CONFIG_ATH11K_DEBUG82__printf(3, 4) void __ath11k_dbg(struct ath11k_base *ab,83enum ath11k_debug_mask mask,84const char *fmt, ...);85void ath11k_dbg_dump(struct ath11k_base *ab,86enum ath11k_debug_mask mask,87const char *msg, const char *prefix,88const void *buf, size_t len);89#else /* CONFIG_ATH11K_DEBUG */90static inline int __ath11k_dbg(struct ath11k_base *ab,91enum ath11k_debug_mask dbg_mask,92const char *fmt, ...)93{94return 0;95}9697static inline void ath11k_dbg_dump(struct ath11k_base *ab,98enum ath11k_debug_mask mask,99const char *msg, const char *prefix,100const void *buf, size_t len)101{102}103#endif /* CONFIG_ATH11K_DEBUG */104105#define ath11k_dbg(ar, dbg_mask, fmt, ...) \106do { \107if ((ath11k_debug_mask & dbg_mask) || \108trace_ath11k_log_dbg_enabled()) \109__ath11k_dbg(ar, dbg_mask, fmt, ##__VA_ARGS__); \110} while (0)111112#endif /* _ATH11K_DEBUG_H_ */113114115