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