1 /* 2 * Copyright (c) 2013,2016 Qualcomm Atheros, Inc. 3 * Copyright (c) 2018, The Linux Foundation. All rights reserved. 4 * 5 * Permission to use, copy, modify, and/or distribute this software for any 6 * purpose with or without fee is hereby granted, provided that the above 7 * copyright notice and this permission notice appear in all copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 */ 17 18 #include "wil6210.h" 19 #include "trace.h" 20 21 void __wil_err(struct wil6210_priv *wil, const char *fmt, ...) 22 { 23 struct va_format vaf; 24 va_list args; 25 26 va_start(args, fmt); 27 vaf.fmt = fmt; 28 vaf.va = &args; 29 netdev_err(wil->main_ndev, "%pV", &vaf); 30 trace_wil6210_log_err(&vaf); 31 va_end(args); 32 } 33 34 void __wil_err_ratelimited(struct wil6210_priv *wil, const char *fmt, ...) 35 { 36 struct va_format vaf; 37 va_list args; 38 39 if (!net_ratelimit()) 40 return; 41 42 va_start(args, fmt); 43 vaf.fmt = fmt; 44 vaf.va = &args; 45 netdev_err(wil->main_ndev, "%pV", &vaf); 46 trace_wil6210_log_err(&vaf); 47 va_end(args); 48 } 49 50 void wil_dbg_ratelimited(const struct wil6210_priv *wil, const char *fmt, ...) 51 { 52 struct va_format vaf; 53 va_list args; 54 55 if (!net_ratelimit()) 56 return; 57 58 va_start(args, fmt); 59 vaf.fmt = fmt; 60 vaf.va = &args; 61 netdev_dbg(wil->main_ndev, "%pV", &vaf); 62 trace_wil6210_log_dbg(&vaf); 63 va_end(args); 64 } 65 66 void __wil_info(struct wil6210_priv *wil, const char *fmt, ...) 67 { 68 struct va_format vaf; 69 va_list args; 70 71 va_start(args, fmt); 72 vaf.fmt = fmt; 73 vaf.va = &args; 74 netdev_info(wil->main_ndev, "%pV", &vaf); 75 trace_wil6210_log_info(&vaf); 76 va_end(args); 77 } 78 79 void wil_dbg_trace(struct wil6210_priv *wil, const char *fmt, ...) 80 { 81 struct va_format vaf; 82 va_list args; 83 84 va_start(args, fmt); 85 vaf.fmt = fmt; 86 vaf.va = &args; 87 trace_wil6210_log_dbg(&vaf); 88 va_end(args); 89 } 90