1 | /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ |
2 | /* Copyright(c) 2019-2020 Realtek Corporation |
3 | */ |
4 | |
5 | #ifndef __RTW89_DEBUG_H__ |
6 | #define __RTW89_DEBUG_H__ |
7 | |
8 | #include "core.h" |
9 | |
10 | enum rtw89_debug_mask { |
11 | RTW89_DBG_TXRX = BIT(0), |
12 | RTW89_DBG_RFK = BIT(1), |
13 | RTW89_DBG_RFK_TRACK = BIT(2), |
14 | RTW89_DBG_CFO = BIT(3), |
15 | RTW89_DBG_TSSI = BIT(4), |
16 | RTW89_DBG_TXPWR = BIT(5), |
17 | RTW89_DBG_HCI = BIT(6), |
18 | RTW89_DBG_RA = BIT(7), |
19 | RTW89_DBG_REGD = BIT(8), |
20 | RTW89_DBG_PHY_TRACK = BIT(9), |
21 | RTW89_DBG_DIG = BIT(10), |
22 | RTW89_DBG_SER = BIT(11), |
23 | RTW89_DBG_FW = BIT(12), |
24 | RTW89_DBG_BTC = BIT(13), |
25 | RTW89_DBG_BF = BIT(14), |
26 | RTW89_DBG_HW_SCAN = BIT(15), |
27 | RTW89_DBG_SAR = BIT(16), |
28 | RTW89_DBG_STATE = BIT(17), |
29 | RTW89_DBG_WOW = BIT(18), |
30 | RTW89_DBG_UL_TB = BIT(19), |
31 | RTW89_DBG_CHAN = BIT(20), |
32 | RTW89_DBG_ACPI = BIT(21), |
33 | RTW89_DBG_EDCCA = BIT(22), |
34 | |
35 | RTW89_DBG_UNEXP = BIT(31), |
36 | }; |
37 | |
38 | enum rtw89_debug_mac_reg_sel { |
39 | RTW89_DBG_SEL_MAC_00, |
40 | RTW89_DBG_SEL_MAC_30, |
41 | RTW89_DBG_SEL_MAC_40, |
42 | RTW89_DBG_SEL_MAC_80, |
43 | RTW89_DBG_SEL_MAC_C0, |
44 | RTW89_DBG_SEL_MAC_E0, |
45 | RTW89_DBG_SEL_BB, |
46 | RTW89_DBG_SEL_IQK, |
47 | RTW89_DBG_SEL_RFC, |
48 | }; |
49 | |
50 | #ifdef CONFIG_RTW89_DEBUGFS |
51 | void rtw89_debugfs_init(struct rtw89_dev *rtwdev); |
52 | #else |
53 | static inline void rtw89_debugfs_init(struct rtw89_dev *rtwdev) {} |
54 | #endif |
55 | |
56 | #define rtw89_info(rtwdev, a...) dev_info((rtwdev)->dev, ##a) |
57 | #define rtw89_warn(rtwdev, a...) dev_warn((rtwdev)->dev, ##a) |
58 | #define rtw89_err(rtwdev, a...) dev_err((rtwdev)->dev, ##a) |
59 | |
60 | #ifdef CONFIG_RTW89_DEBUGMSG |
61 | extern unsigned int rtw89_debug_mask; |
62 | |
63 | __printf(3, 4) |
64 | void rtw89_debug(struct rtw89_dev *rtwdev, enum rtw89_debug_mask mask, |
65 | const char *fmt, ...); |
66 | static inline void rtw89_hex_dump(struct rtw89_dev *rtwdev, |
67 | enum rtw89_debug_mask mask, |
68 | const char *prefix_str, |
69 | const void *buf, size_t len) |
70 | { |
71 | if (!(rtw89_debug_mask & mask)) |
72 | return; |
73 | |
74 | print_hex_dump_bytes(prefix_str, DUMP_PREFIX_OFFSET, buf, len); |
75 | } |
76 | |
77 | static inline bool rtw89_debug_is_enabled(struct rtw89_dev *rtwdev, |
78 | enum rtw89_debug_mask mask) |
79 | { |
80 | return !!(rtw89_debug_mask & mask); |
81 | } |
82 | #else |
83 | static inline void rtw89_debug(struct rtw89_dev *rtwdev, |
84 | enum rtw89_debug_mask mask, |
85 | const char *fmt, ...) {} |
86 | static inline void rtw89_hex_dump(struct rtw89_dev *rtwdev, |
87 | enum rtw89_debug_mask mask, |
88 | const char *prefix_str, |
89 | const void *buf, size_t len) {} |
90 | static inline bool rtw89_debug_is_enabled(struct rtw89_dev *rtwdev, |
91 | enum rtw89_debug_mask mask) |
92 | { |
93 | return false; |
94 | } |
95 | #endif |
96 | |
97 | #endif |
98 | |