1 // SPDX-License-Identifier: ISC 2 /* 3 * Copyright (c) 2013,2016 Qualcomm Atheros, Inc. 4 * Copyright (c) 2018, The Linux Foundation. All rights reserved. 5 */ 6 7 #include "wil6210.h" 8 #include "trace.h" 9 10 void __wil_err(struct wil6210_priv *wil, const char *fmt, ...) 11 { 12 struct va_format vaf; 13 va_list args; 14 15 va_start(args, fmt); 16 vaf.fmt = fmt; 17 vaf.va = &args; 18 netdev_err(wil->main_ndev, "%pV", &vaf); 19 trace_wil6210_log_err(&vaf); 20 va_end(args); 21 } 22 23 void __wil_err_ratelimited(struct wil6210_priv *wil, const char *fmt, ...) 24 { 25 struct va_format vaf; 26 va_list args; 27 28 if (!net_ratelimit()) 29 return; 30 31 va_start(args, fmt); 32 vaf.fmt = fmt; 33 vaf.va = &args; 34 netdev_err(wil->main_ndev, "%pV", &vaf); 35 trace_wil6210_log_err(&vaf); 36 va_end(args); 37 } 38 39 void wil_dbg_ratelimited(const struct wil6210_priv *wil, const char *fmt, ...) 40 { 41 struct va_format vaf; 42 va_list args; 43 44 if (!net_ratelimit()) 45 return; 46 47 va_start(args, fmt); 48 vaf.fmt = fmt; 49 vaf.va = &args; 50 netdev_dbg(wil->main_ndev, "%pV", &vaf); 51 trace_wil6210_log_dbg(&vaf); 52 va_end(args); 53 } 54 55 void __wil_info(struct wil6210_priv *wil, const char *fmt, ...) 56 { 57 struct va_format vaf; 58 va_list args; 59 60 va_start(args, fmt); 61 vaf.fmt = fmt; 62 vaf.va = &args; 63 netdev_info(wil->main_ndev, "%pV", &vaf); 64 trace_wil6210_log_info(&vaf); 65 va_end(args); 66 } 67 68 void wil_dbg_trace(struct wil6210_priv *wil, const char *fmt, ...) 69 { 70 struct va_format vaf; 71 va_list args; 72 73 va_start(args, fmt); 74 vaf.fmt = fmt; 75 vaf.va = &args; 76 trace_wil6210_log_dbg(&vaf); 77 va_end(args); 78 } 79