| /****************************************************************************** | |
| * | |
| * Copyright(c) 2009-2012 Realtek Corporation. | |
| * | |
| * This program is free software; you can redistribute it and/or modify it | |
| * under the terms of version 2 of the GNU General Public License as | |
| * published by the Free Software Foundation. | |
| * | |
| * This program is distributed in the hope that it will be useful, but WITHOUT | |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
| * more details. | |
| * | |
| * The full GNU General Public License is included in this distribution in the | |
| * file called LICENSE. | |
| * | |
| * Contact Information: | |
| * wlanfae <wlanfae@realtek.com> | |
| * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, | |
| * Hsinchu 300, Taiwan. | |
| * | |
| * Larry Finger <Larry.Finger@lwfinger.net> | |
| *****************************************************************************/ | |
| #include "wifi.h" | |
| #include <linux/moduleparam.h> | |
| #ifdef CONFIG_RTLWIFI_DEBUG | |
| void _rtl_dbg_trace(struct rtl_priv *rtlpriv, u64 comp, int level, | |
| const char *fmt, ...) | |
| { | |
| if (unlikely((comp & rtlpriv->cfg->mod_params->debug_mask) && | |
| (level <= rtlpriv->cfg->mod_params->debug_level))) { | |
| struct va_format vaf; | |
| va_list args; | |
| va_start(args, fmt); | |
| vaf.fmt = fmt; | |
| vaf.va = &args; | |
| pr_info(":<%lx> %pV", in_interrupt(), &vaf); | |
| va_end(args); | |
| } | |
| } | |
| EXPORT_SYMBOL_GPL(_rtl_dbg_trace); | |
| void _rtl_dbg_print(struct rtl_priv *rtlpriv, u64 comp, int level, | |
| const char *fmt, ...) | |
| { | |
| if (unlikely((comp & rtlpriv->cfg->mod_params->debug_mask) && | |
| (level <= rtlpriv->cfg->mod_params->debug_level))) { | |
| struct va_format vaf; | |
| va_list args; | |
| va_start(args, fmt); | |
| vaf.fmt = fmt; | |
| vaf.va = &args; | |
| pr_info("%pV", &vaf); | |
| va_end(args); | |
| } | |
| } | |
| EXPORT_SYMBOL_GPL(_rtl_dbg_print); | |
| void _rtl_dbg_print_data(struct rtl_priv *rtlpriv, u64 comp, int level, | |
| const char *titlestring, | |
| const void *hexdata, int hexdatalen) | |
| { | |
| if (unlikely(((comp) & rtlpriv->cfg->mod_params->debug_mask) && | |
| ((level) <= rtlpriv->cfg->mod_params->debug_level))) { | |
| pr_info("In process \"%s\" (pid %i): %s\n", | |
| current->comm, current->pid, titlestring); | |
| print_hex_dump_bytes("", DUMP_PREFIX_NONE, | |
| hexdata, hexdatalen); | |
| } | |
| } | |
| EXPORT_SYMBOL_GPL(_rtl_dbg_print_data); | |
| #endif |