123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- // SPDX-License-Identifier: BSD-3-Clause-Clear
- /*
- * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
- */
- #include <linux/vmalloc.h>
- #include "core.h"
- #include "debug.h"
- void ath11k_info(struct ath11k_base *ab, const char *fmt, ...)
- {
- struct va_format vaf = {
- .fmt = fmt,
- };
- va_list args;
- va_start(args, fmt);
- vaf.va = &args;
- dev_info(ab->dev, "%pV", &vaf);
- trace_ath11k_log_info(ab, &vaf);
- va_end(args);
- }
- EXPORT_SYMBOL(ath11k_info);
- void ath11k_err(struct ath11k_base *ab, const char *fmt, ...)
- {
- struct va_format vaf = {
- .fmt = fmt,
- };
- va_list args;
- va_start(args, fmt);
- vaf.va = &args;
- dev_err(ab->dev, "%pV", &vaf);
- trace_ath11k_log_err(ab, &vaf);
- va_end(args);
- }
- EXPORT_SYMBOL(ath11k_err);
- void ath11k_warn(struct ath11k_base *ab, const char *fmt, ...)
- {
- struct va_format vaf = {
- .fmt = fmt,
- };
- va_list args;
- va_start(args, fmt);
- vaf.va = &args;
- dev_warn_ratelimited(ab->dev, "%pV", &vaf);
- trace_ath11k_log_warn(ab, &vaf);
- va_end(args);
- }
- EXPORT_SYMBOL(ath11k_warn);
- #ifdef CONFIG_ATH11K_DEBUG
- void __ath11k_dbg(struct ath11k_base *ab, enum ath11k_debug_mask mask,
- const char *fmt, ...)
- {
- struct va_format vaf;
- va_list args;
- va_start(args, fmt);
- vaf.fmt = fmt;
- vaf.va = &args;
- if (ath11k_debug_mask & mask)
- dev_printk(KERN_DEBUG, ab->dev, "%pV", &vaf);
- trace_ath11k_log_dbg(ab, mask, &vaf);
- va_end(args);
- }
- EXPORT_SYMBOL(__ath11k_dbg);
- void ath11k_dbg_dump(struct ath11k_base *ab,
- enum ath11k_debug_mask mask,
- const char *msg, const char *prefix,
- const void *buf, size_t len)
- {
- char linebuf[256];
- size_t linebuflen;
- const void *ptr;
- if (ath11k_debug_mask & mask) {
- if (msg)
- __ath11k_dbg(ab, mask, "%s\n", msg);
- for (ptr = buf; (ptr - buf) < len; ptr += 16) {
- linebuflen = 0;
- linebuflen += scnprintf(linebuf + linebuflen,
- sizeof(linebuf) - linebuflen,
- "%s%08x: ",
- (prefix ? prefix : ""),
- (unsigned int)(ptr - buf));
- hex_dump_to_buffer(ptr, len - (ptr - buf), 16, 1,
- linebuf + linebuflen,
- sizeof(linebuf) - linebuflen, true);
- dev_printk(KERN_DEBUG, ab->dev, "%s\n", linebuf);
- }
- }
- /* tracing code doesn't like null strings */
- trace_ath11k_log_dbg_dump(ab, msg ? msg : "", prefix ? prefix : "",
- buf, len);
- }
- EXPORT_SYMBOL(ath11k_dbg_dump);
- #endif /* CONFIG_ATH11K_DEBUG */
|