198658095SVladimir Kondratiev /*
298658095SVladimir Kondratiev  * Copyright (c) 2013 Qualcomm Atheros, Inc.
398658095SVladimir Kondratiev  *
498658095SVladimir Kondratiev  * Permission to use, copy, modify, and/or distribute this software for any
598658095SVladimir Kondratiev  * purpose with or without fee is hereby granted, provided that the above
698658095SVladimir Kondratiev  * copyright notice and this permission notice appear in all copies.
798658095SVladimir Kondratiev  *
898658095SVladimir Kondratiev  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
998658095SVladimir Kondratiev  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1098658095SVladimir Kondratiev  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1198658095SVladimir Kondratiev  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1298658095SVladimir Kondratiev  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1398658095SVladimir Kondratiev  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1498658095SVladimir Kondratiev  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1598658095SVladimir Kondratiev  */
1698658095SVladimir Kondratiev 
1798658095SVladimir Kondratiev #include "wil6210.h"
1898658095SVladimir Kondratiev #include "trace.h"
1998658095SVladimir Kondratiev 
20290206faSMaya Erez void __wil_err(struct wil6210_priv *wil, const char *fmt, ...)
2198658095SVladimir Kondratiev {
2298658095SVladimir Kondratiev 	struct net_device *ndev = wil_to_ndev(wil);
2398658095SVladimir Kondratiev 	struct va_format vaf = {
2498658095SVladimir Kondratiev 		.fmt = fmt,
2598658095SVladimir Kondratiev 	};
2698658095SVladimir Kondratiev 	va_list args;
2798658095SVladimir Kondratiev 
2898658095SVladimir Kondratiev 	va_start(args, fmt);
2998658095SVladimir Kondratiev 	vaf.va = &args;
3057219dc7SDavid S. Miller 	netdev_err(ndev, "%pV", &vaf);
3198658095SVladimir Kondratiev 	trace_wil6210_log_err(&vaf);
3298658095SVladimir Kondratiev 	va_end(args);
3398658095SVladimir Kondratiev }
3498658095SVladimir Kondratiev 
35290206faSMaya Erez void __wil_err_ratelimited(struct wil6210_priv *wil, const char *fmt, ...)
3640e391b4SVladimir Kondratiev {
3740e391b4SVladimir Kondratiev 	if (net_ratelimit()) {
3840e391b4SVladimir Kondratiev 		struct net_device *ndev = wil_to_ndev(wil);
3940e391b4SVladimir Kondratiev 		struct va_format vaf = {
4040e391b4SVladimir Kondratiev 			.fmt = fmt,
4140e391b4SVladimir Kondratiev 		};
4240e391b4SVladimir Kondratiev 		va_list args;
4340e391b4SVladimir Kondratiev 
4440e391b4SVladimir Kondratiev 		va_start(args, fmt);
4540e391b4SVladimir Kondratiev 		vaf.va = &args;
4640e391b4SVladimir Kondratiev 		netdev_err(ndev, "%pV", &vaf);
4740e391b4SVladimir Kondratiev 		trace_wil6210_log_err(&vaf);
4840e391b4SVladimir Kondratiev 		va_end(args);
4940e391b4SVladimir Kondratiev 	}
5040e391b4SVladimir Kondratiev }
5140e391b4SVladimir Kondratiev 
52d8ed043aSMaya Erez void wil_dbg_ratelimited(const struct wil6210_priv *wil, const char *fmt, ...)
53d8ed043aSMaya Erez {
54d8ed043aSMaya Erez 	struct va_format vaf;
55d8ed043aSMaya Erez 	va_list args;
56d8ed043aSMaya Erez 
57d8ed043aSMaya Erez 	if (!net_ratelimit())
58d8ed043aSMaya Erez 		return;
59d8ed043aSMaya Erez 
60d8ed043aSMaya Erez 	va_start(args, fmt);
61d8ed043aSMaya Erez 	vaf.fmt = fmt;
62d8ed043aSMaya Erez 	vaf.va = &args;
63d8ed043aSMaya Erez 	netdev_dbg(wil_to_ndev(wil), "%pV", &vaf);
64d8ed043aSMaya Erez 	trace_wil6210_log_dbg(&vaf);
65d8ed043aSMaya Erez 	va_end(args);
66d8ed043aSMaya Erez }
67d8ed043aSMaya Erez 
68290206faSMaya Erez void __wil_info(struct wil6210_priv *wil, const char *fmt, ...)
6998658095SVladimir Kondratiev {
7098658095SVladimir Kondratiev 	struct net_device *ndev = wil_to_ndev(wil);
7198658095SVladimir Kondratiev 	struct va_format vaf = {
7298658095SVladimir Kondratiev 		.fmt = fmt,
7398658095SVladimir Kondratiev 	};
7498658095SVladimir Kondratiev 	va_list args;
7598658095SVladimir Kondratiev 
7698658095SVladimir Kondratiev 	va_start(args, fmt);
7798658095SVladimir Kondratiev 	vaf.va = &args;
7857219dc7SDavid S. Miller 	netdev_info(ndev, "%pV", &vaf);
7998658095SVladimir Kondratiev 	trace_wil6210_log_info(&vaf);
8098658095SVladimir Kondratiev 	va_end(args);
8198658095SVladimir Kondratiev }
8298658095SVladimir Kondratiev 
8357219dc7SDavid S. Miller void wil_dbg_trace(struct wil6210_priv *wil, const char *fmt, ...)
8498658095SVladimir Kondratiev {
8598658095SVladimir Kondratiev 	struct va_format vaf = {
8698658095SVladimir Kondratiev 		.fmt = fmt,
8798658095SVladimir Kondratiev 	};
8898658095SVladimir Kondratiev 	va_list args;
8998658095SVladimir Kondratiev 
9098658095SVladimir Kondratiev 	va_start(args, fmt);
9198658095SVladimir Kondratiev 	vaf.va = &args;
9298658095SVladimir Kondratiev 	trace_wil6210_log_dbg(&vaf);
9398658095SVladimir Kondratiev 	va_end(args);
9498658095SVladimir Kondratiev }
95