diff mbox series

[10/50] wifi: ath12k: add debug.h

Message ID 20220812161003.27279-11-kvalo@kernel.org
State Superseded
Headers show
Series wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices | expand

Commit Message

Kalle Valo Aug. 12, 2022, 4:09 p.m. UTC
From: Kalle Valo <quic_kvalo@quicinc.com>

(Patches split into one patch per file for easier review, but the final
commit will be one big patch. See the cover letter for more info.)

Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
---
 drivers/net/wireless/ath/ath12k/debug.h | 68 +++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)

Comments

Jeff Johnson Aug. 15, 2022, 8:11 p.m. UTC | #1
On 8/12/2022 9:09 AM, Kalle Valo wrote:
> From: Kalle Valo <quic_kvalo@quicinc.com>
> 
> (Patches split into one patch per file for easier review, but the final
> commit will be one big patch. See the cover letter for more info.)
> 
> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
> ---
>   drivers/net/wireless/ath/ath12k/debug.h | 68 +++++++++++++++++++++++++++++++++
>   1 file changed, 68 insertions(+)
> 
> diff --git a/drivers/net/wireless/ath/ath12k/debug.h b/drivers/net/wireless/ath/ath12k/debug.h
> new file mode 100644
> index 000000000000..ec2be467edbc
> --- /dev/null
> +++ b/drivers/net/wireless/ath/ath12k/debug.h
> @@ -0,0 +1,68 @@
> +/* SPDX-License-Identifier: BSD-3-Clause-Clear */
> +/*
> + * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
> + * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
> + */
> +
> +#ifndef _ATH12K_DEBUG_H_
> +#define _ATH12K_DEBUG_H_
> +
> +#include "trace.h"
> +
> +enum ath12k_debug_mask {
> +	ATH12K_DBG_AHB		= 0x00000001,
> +	ATH12K_DBG_WMI		= 0x00000002,
> +	ATH12K_DBG_HTC		= 0x00000004,
> +	ATH12K_DBG_DP_HTT	= 0x00000008,
> +	ATH12K_DBG_MAC		= 0x00000010,
> +	ATH12K_DBG_BOOT		= 0x00000020,
> +	ATH12K_DBG_QMI		= 0x00000040,
> +	ATH12K_DBG_DATA		= 0x00000080,
> +	ATH12K_DBG_MGMT		= 0x00000100,
> +	ATH12K_DBG_REG		= 0x00000200,
> +	ATH12K_DBG_TESTMODE	= 0x00000400,
> +	ATH12K_DBG_HAL		= 0x00000800,
> +	ATH12K_DBG_PCI		= 0x00001000,
> +	ATH12K_DBG_DP_TX	= 0x00001000,

duplicate assignments above

would using BIT() help here?
or does having the hex masks make it easier for folks generating the masks

> +	ATH12K_DBG_DP_RX	= 0x00002000,
> +	ATH12K_DBG_ANY		= 0xffffffff,
> +};
> +
> +__printf(2, 3) void ath12k_info(struct ath12k_base *ab, const char *fmt, ...);
> +__printf(2, 3) void ath12k_err(struct ath12k_base *ab, const char *fmt, ...);
> +__printf(2, 3) void ath12k_warn(struct ath12k_base *ab, const char *fmt, ...);
> +
> +extern unsigned int ath12k_debug_mask;
> +
> +#ifdef CONFIG_ATH12K_DEBUG
> +__printf(3, 4) void __ath12k_dbg(struct ath12k_base *ab,
> +				 enum ath12k_debug_mask mask,
> +				 const char *fmt, ...);
> +void ath12k_dbg_dump(struct ath12k_base *ab,
> +		     enum ath12k_debug_mask mask,
> +		     const char *msg, const char *prefix,
> +		     const void *buf, size_t len);
> +#else /* CONFIG_ATH12K_DEBUG */
> +static inline int __ath12k_dbg(struct ath12k_base *ab,

should be a void function with an empty body to match the signature of 
the real function

> +			       enum ath12k_debug_mask dbg_mask,
> +			       const char *fmt, ...)
> +{
> +	return 0;
> +}
> +
> +static inline void ath12k_dbg_dump(struct ath12k_base *ab,
> +				   enum ath12k_debug_mask mask,
> +				   const char *msg, const char *prefix,
> +				   const void *buf, size_t len)
> +{
> +}
> +#endif /* CONFIG_ATH12K_DEBUG */
> +
> +#define ath12k_dbg(ar, dbg_mask, fmt, ...)			\
> +do {								\
> +	typeof(dbg_mask) mask = (dbg_mask);			\
> +	if (ath12k_debug_mask & mask)				\
> +		__ath12k_dbg(ar, mask, fmt, ##__VA_ARGS__);	\
> +} while (0)
> +
> +#endif /* _ATH12K_DEBUG_H_ */
>
Kalle Valo Oct. 21, 2022, 11:18 a.m. UTC | #2
Jeff Johnson <quic_jjohnson@quicinc.com> writes:

> On 8/12/2022 9:09 AM, Kalle Valo wrote:
>
>> From: Kalle Valo <quic_kvalo@quicinc.com>
>>
>> (Patches split into one patch per file for easier review, but the final
>> commit will be one big patch. See the cover letter for more info.)
>>
>> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>

[...]

>> +enum ath12k_debug_mask {
>> +	ATH12K_DBG_AHB		= 0x00000001,
>> +	ATH12K_DBG_WMI		= 0x00000002,
>> +	ATH12K_DBG_HTC		= 0x00000004,
>> +	ATH12K_DBG_DP_HTT	= 0x00000008,
>> +	ATH12K_DBG_MAC		= 0x00000010,
>> +	ATH12K_DBG_BOOT		= 0x00000020,
>> +	ATH12K_DBG_QMI		= 0x00000040,
>> +	ATH12K_DBG_DATA		= 0x00000080,
>> +	ATH12K_DBG_MGMT		= 0x00000100,
>> +	ATH12K_DBG_REG		= 0x00000200,
>> +	ATH12K_DBG_TESTMODE	= 0x00000400,
>> +	ATH12K_DBG_HAL		= 0x00000800,
>> +	ATH12K_DBG_PCI		= 0x00001000,
>> +	ATH12K_DBG_DP_TX	= 0x00001000,
>
> duplicate assignments above

Praneesh fixed this:

c8bd8aa45f6a ath12k: fix ATH12K_DBG_DP_TX value in ath12k_debug_mask

> would using BIT() help here?
> or does having the hex masks make it easier for folks generating the
> masks

Back in the early ath10k days these enums were actually usign BIT() but
someone suggested to switch using hex numbers directly, just because
it's faster to calculate the debug mask. And I have to agree with that,
it's a lot easier when these are in hex.

>> +#ifdef CONFIG_ATH12K_DEBUG
>> +__printf(3, 4) void __ath12k_dbg(struct ath12k_base *ab,
>> +				 enum ath12k_debug_mask mask,
>> +				 const char *fmt, ...);
>> +void ath12k_dbg_dump(struct ath12k_base *ab,
>> +		     enum ath12k_debug_mask mask,
>> +		     const char *msg, const char *prefix,
>> +		     const void *buf, size_t len);
>> +#else /* CONFIG_ATH12K_DEBUG */
>> +static inline int __ath12k_dbg(struct ath12k_base *ab,
>
> should be a void function with an empty body to match the signature of
> the real function

Praneesh fixed in:

c568d8bc26de ath12k: convert payload[0] to payload[], use ab variable and fix __ath12k_dbg() signature
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/ath12k/debug.h b/drivers/net/wireless/ath/ath12k/debug.h
new file mode 100644
index 000000000000..ec2be467edbc
--- /dev/null
+++ b/drivers/net/wireless/ath/ath12k/debug.h
@@ -0,0 +1,68 @@ 
+/* SPDX-License-Identifier: BSD-3-Clause-Clear */
+/*
+ * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+#ifndef _ATH12K_DEBUG_H_
+#define _ATH12K_DEBUG_H_
+
+#include "trace.h"
+
+enum ath12k_debug_mask {
+	ATH12K_DBG_AHB		= 0x00000001,
+	ATH12K_DBG_WMI		= 0x00000002,
+	ATH12K_DBG_HTC		= 0x00000004,
+	ATH12K_DBG_DP_HTT	= 0x00000008,
+	ATH12K_DBG_MAC		= 0x00000010,
+	ATH12K_DBG_BOOT		= 0x00000020,
+	ATH12K_DBG_QMI		= 0x00000040,
+	ATH12K_DBG_DATA		= 0x00000080,
+	ATH12K_DBG_MGMT		= 0x00000100,
+	ATH12K_DBG_REG		= 0x00000200,
+	ATH12K_DBG_TESTMODE	= 0x00000400,
+	ATH12K_DBG_HAL		= 0x00000800,
+	ATH12K_DBG_PCI		= 0x00001000,
+	ATH12K_DBG_DP_TX	= 0x00001000,
+	ATH12K_DBG_DP_RX	= 0x00002000,
+	ATH12K_DBG_ANY		= 0xffffffff,
+};
+
+__printf(2, 3) void ath12k_info(struct ath12k_base *ab, const char *fmt, ...);
+__printf(2, 3) void ath12k_err(struct ath12k_base *ab, const char *fmt, ...);
+__printf(2, 3) void ath12k_warn(struct ath12k_base *ab, const char *fmt, ...);
+
+extern unsigned int ath12k_debug_mask;
+
+#ifdef CONFIG_ATH12K_DEBUG
+__printf(3, 4) void __ath12k_dbg(struct ath12k_base *ab,
+				 enum ath12k_debug_mask mask,
+				 const char *fmt, ...);
+void ath12k_dbg_dump(struct ath12k_base *ab,
+		     enum ath12k_debug_mask mask,
+		     const char *msg, const char *prefix,
+		     const void *buf, size_t len);
+#else /* CONFIG_ATH12K_DEBUG */
+static inline int __ath12k_dbg(struct ath12k_base *ab,
+			       enum ath12k_debug_mask dbg_mask,
+			       const char *fmt, ...)
+{
+	return 0;
+}
+
+static inline void ath12k_dbg_dump(struct ath12k_base *ab,
+				   enum ath12k_debug_mask mask,
+				   const char *msg, const char *prefix,
+				   const void *buf, size_t len)
+{
+}
+#endif /* CONFIG_ATH12K_DEBUG */
+
+#define ath12k_dbg(ar, dbg_mask, fmt, ...)			\
+do {								\
+	typeof(dbg_mask) mask = (dbg_mask);			\
+	if (ath12k_debug_mask & mask)				\
+		__ath12k_dbg(ar, mask, fmt, ##__VA_ARGS__);	\
+} while (0)
+
+#endif /* _ATH12K_DEBUG_H_ */