]> Git Repo - J-linux.git/blob - drivers/net/wireless/ath/ath12k/debug.c
Merge tag 'vfs-6.13-rc7.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
[J-linux.git] / drivers / net / wireless / ath / ath12k / debug.c
1 // SPDX-License-Identifier: BSD-3-Clause-Clear
2 /*
3  * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
4  * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
5  */
6
7 #include <linux/vmalloc.h>
8 #include "core.h"
9 #include "debug.h"
10
11 void ath12k_info(struct ath12k_base *ab, const char *fmt, ...)
12 {
13         struct va_format vaf = {
14                 .fmt = fmt,
15         };
16         va_list args;
17
18         va_start(args, fmt);
19         vaf.va = &args;
20         dev_info(ab->dev, "%pV", &vaf);
21         /* TODO: Trace the log */
22         va_end(args);
23 }
24
25 void ath12k_err(struct ath12k_base *ab, const char *fmt, ...)
26 {
27         struct va_format vaf = {
28                 .fmt = fmt,
29         };
30         va_list args;
31
32         va_start(args, fmt);
33         vaf.va = &args;
34         dev_err(ab->dev, "%pV", &vaf);
35         /* TODO: Trace the log */
36         va_end(args);
37 }
38
39 void ath12k_warn(struct ath12k_base *ab, const char *fmt, ...)
40 {
41         struct va_format vaf = {
42                 .fmt = fmt,
43         };
44         va_list args;
45
46         va_start(args, fmt);
47         vaf.va = &args;
48         dev_warn_ratelimited(ab->dev, "%pV", &vaf);
49         /* TODO: Trace the log */
50         va_end(args);
51 }
52
53 #ifdef CONFIG_ATH12K_DEBUG
54
55 void __ath12k_dbg(struct ath12k_base *ab, enum ath12k_debug_mask mask,
56                   const char *fmt, ...)
57 {
58         struct va_format vaf;
59         va_list args;
60
61         va_start(args, fmt);
62
63         vaf.fmt = fmt;
64         vaf.va = &args;
65
66         if (ath12k_debug_mask & mask)
67                 dev_printk(KERN_DEBUG, ab->dev, "%pV", &vaf);
68
69         /* TODO: trace log */
70
71         va_end(args);
72 }
73
74 void ath12k_dbg_dump(struct ath12k_base *ab,
75                      enum ath12k_debug_mask mask,
76                      const char *msg, const char *prefix,
77                      const void *buf, size_t len)
78 {
79         char linebuf[256];
80         size_t linebuflen;
81         const void *ptr;
82
83         if (ath12k_debug_mask & mask) {
84                 if (msg)
85                         __ath12k_dbg(ab, mask, "%s\n", msg);
86
87                 for (ptr = buf; (ptr - buf) < len; ptr += 16) {
88                         linebuflen = 0;
89                         linebuflen += scnprintf(linebuf + linebuflen,
90                                                 sizeof(linebuf) - linebuflen,
91                                                 "%s%08x: ",
92                                                 (prefix ? prefix : ""),
93                                                 (unsigned int)(ptr - buf));
94                         hex_dump_to_buffer(ptr, len - (ptr - buf), 16, 1,
95                                            linebuf + linebuflen,
96                                            sizeof(linebuf) - linebuflen, true);
97                         dev_dbg(ab->dev, "%s\n", linebuf);
98                 }
99         }
100 }
101
102 #endif /* CONFIG_ATH12K_DEBUG */
This page took 0.048129 seconds and 4 git commands to generate.