| /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ | |
| /* Copyright(c) 2019-2020 Realtek Corporation | |
| */ | |
| #ifndef __RTW89_DEBUG_H__ | |
| #define __RTW89_DEBUG_H__ | |
| #include "core.h" | |
| enum rtw89_debug_mask { | |
| RTW89_DBG_TXRX = BIT(0), | |
| RTW89_DBG_RFK = BIT(1), | |
| RTW89_DBG_RFK_TRACK = BIT(2), | |
| RTW89_DBG_CFO = BIT(3), | |
| RTW89_DBG_TSSI = BIT(4), | |
| RTW89_DBG_TXPWR = BIT(5), | |
| RTW89_DBG_HCI = BIT(6), | |
| RTW89_DBG_RA = BIT(7), | |
| RTW89_DBG_REGD = BIT(8), | |
| RTW89_DBG_PHY_TRACK = BIT(9), | |
| RTW89_DBG_DIG = BIT(10), | |
| RTW89_DBG_SER = BIT(11), | |
| RTW89_DBG_FW = BIT(12), | |
| RTW89_DBG_BTC = BIT(13), | |
| RTW89_DBG_BF = BIT(14), | |
| RTW89_DBG_HW_SCAN = BIT(15), | |
| RTW89_DBG_SAR = BIT(16), | |
| RTW89_DBG_STATE = BIT(17), | |
| RTW89_DBG_WOW = BIT(18), | |
| RTW89_DBG_UL_TB = BIT(19), | |
| RTW89_DBG_CHAN = BIT(20), | |
| RTW89_DBG_ACPI = BIT(21), | |
| RTW89_DBG_EDCCA = BIT(22), | |
| RTW89_DBG_PS = BIT(23), | |
| RTW89_DBG_LED = BIT(24), | |
| RTW89_DBG_UNEXP = BIT(31), | |
| }; | |
| enum rtw89_debug_mac_reg_sel { | |
| RTW89_DBG_SEL_MAC_00, | |
| RTW89_DBG_SEL_MAC_30, | |
| RTW89_DBG_SEL_MAC_40, | |
| RTW89_DBG_SEL_MAC_80, | |
| RTW89_DBG_SEL_MAC_C0, | |
| RTW89_DBG_SEL_MAC_E0, | |
| RTW89_DBG_SEL_BB, | |
| RTW89_DBG_SEL_IQK, | |
| RTW89_DBG_SEL_RFC, | |
| }; | |
| #ifdef CONFIG_RTW89_DEBUGFS | |
| void rtw89_debugfs_init(struct rtw89_dev *rtwdev); | |
| void rtw89_debugfs_deinit(struct rtw89_dev *rtwdev); | |
| #else | |
| static inline void rtw89_debugfs_init(struct rtw89_dev *rtwdev) {} | |
| static inline void rtw89_debugfs_deinit(struct rtw89_dev *rtwdev) {} | |
| #endif | |
| #define rtw89_info(rtwdev, a...) dev_info((rtwdev)->dev, ##a) | |
| #define rtw89_info_once(rtwdev, a...) dev_info_once((rtwdev)->dev, ##a) | |
| #define rtw89_warn(rtwdev, a...) dev_warn((rtwdev)->dev, ##a) | |
| #define rtw89_err(rtwdev, a...) dev_err((rtwdev)->dev, ##a) | |
| #ifdef CONFIG_RTW89_DEBUGMSG | |
| extern unsigned int rtw89_debug_mask; | |
| __printf(3, 4) | |
| void rtw89_debug(struct rtw89_dev *rtwdev, enum rtw89_debug_mask mask, | |
| const char *fmt, ...); | |
| static inline void rtw89_hex_dump(struct rtw89_dev *rtwdev, | |
| enum rtw89_debug_mask mask, | |
| const char *prefix_str, | |
| const void *buf, size_t len) | |
| { | |
| if (!(rtw89_debug_mask & mask)) | |
| return; | |
| print_hex_dump_bytes(prefix_str, DUMP_PREFIX_OFFSET, buf, len); | |
| } | |
| static inline bool rtw89_debug_is_enabled(struct rtw89_dev *rtwdev, | |
| enum rtw89_debug_mask mask) | |
| { | |
| return !!(rtw89_debug_mask & mask); | |
| } | |
| #else | |
| static inline void rtw89_debug(struct rtw89_dev *rtwdev, | |
| enum rtw89_debug_mask mask, | |
| const char *fmt, ...) {} | |
| static inline void rtw89_hex_dump(struct rtw89_dev *rtwdev, | |
| enum rtw89_debug_mask mask, | |
| const char *prefix_str, | |
| const void *buf, size_t len) {} | |
| static inline bool rtw89_debug_is_enabled(struct rtw89_dev *rtwdev, | |
| enum rtw89_debug_mask mask) | |
| { | |
| return false; | |
| } | |
| #endif | |
| #endif |