2013-06-12 20:52:10 +03:00
/*
* Copyright ( c ) 2005 - 2011 Atheros Communications Inc .
* Copyright ( c ) 2011 - 2013 Qualcomm Atheros , Inc .
*
* Permission to use , copy , modify , and / or distribute this software for any
* purpose with or without fee is hereby granted , provided that the above
* copyright notice and this permission notice appear in all copies .
*
* THE SOFTWARE IS PROVIDED " AS IS " AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS . IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL , DIRECT , INDIRECT , OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE , DATA OR PROFITS , WHETHER IN AN
* ACTION OF CONTRACT , NEGLIGENCE OR OTHER TORTIOUS ACTION , ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE .
*/
# ifndef _DEBUG_H_
# define _DEBUG_H_
# include <linux/types.h>
# include "trace.h"
enum ath10k_debug_mask {
ATH10K_DBG_PCI = 0x00000001 ,
ATH10K_DBG_WMI = 0x00000002 ,
ATH10K_DBG_HTC = 0x00000004 ,
ATH10K_DBG_HTT = 0x00000008 ,
ATH10K_DBG_MAC = 0x00000010 ,
2013-09-08 17:55:38 +03:00
ATH10K_DBG_BOOT = 0x00000020 ,
2013-06-12 20:52:10 +03:00
ATH10K_DBG_PCI_DUMP = 0x00000040 ,
ATH10K_DBG_HTT_DUMP = 0x00000080 ,
ATH10K_DBG_MGMT = 0x00000100 ,
ATH10K_DBG_DATA = 0x00000200 ,
2013-09-08 17:55:32 +03:00
ATH10K_DBG_BMI = 0x00000400 ,
2013-11-20 09:59:41 +02:00
ATH10K_DBG_REGULATORY = 0x00000800 ,
2014-09-10 18:23:30 +03:00
ATH10K_DBG_TESTMODE = 0x00001000 ,
2014-09-23 14:17:19 -07:00
ATH10K_DBG_WMI_PRINT = 0x00002000 ,
2013-06-12 20:52:10 +03:00
ATH10K_DBG_ANY = 0xffffffff ,
} ;
2014-10-03 08:02:33 +03:00
enum ath10k_pktlog_filter {
ATH10K_PKTLOG_RX = 0x000000001 ,
ATH10K_PKTLOG_TX = 0x000000002 ,
ATH10K_PKTLOG_RCFIND = 0x000000004 ,
ATH10K_PKTLOG_RCUPDATE = 0x000000008 ,
ATH10K_PKTLOG_DBG_PRINT = 0x000000010 ,
ATH10K_PKTLOG_ANY = 0x00000001f ,
} ;
2015-01-12 14:07:27 +02:00
enum ath10k_dbg_aggr_mode {
ATH10K_DBG_AGGR_MODE_AUTO ,
ATH10K_DBG_AGGR_MODE_MANUAL ,
ATH10K_DBG_AGGR_MODE_MAX ,
} ;
2013-06-12 20:52:10 +03:00
extern unsigned int ath10k_debug_mask ;
2014-09-22 10:35:34 -07:00
__printf ( 2 , 3 ) void ath10k_info ( struct ath10k * ar , const char * fmt , . . . ) ;
__printf ( 2 , 3 ) void ath10k_err ( struct ath10k * ar , const char * fmt , . . . ) ;
__printf ( 2 , 3 ) void ath10k_warn ( struct ath10k * ar , const char * fmt , . . . ) ;
2014-08-25 08:37:45 +03:00
void ath10k_print_driver_info ( struct ath10k * ar ) ;
2013-06-12 20:52:10 +03:00
# ifdef CONFIG_ATH10K_DEBUGFS
2013-09-03 11:44:03 +03:00
int ath10k_debug_start ( struct ath10k * ar ) ;
void ath10k_debug_stop ( struct ath10k * ar ) ;
2013-06-12 20:52:10 +03:00
int ath10k_debug_create ( struct ath10k * ar ) ;
2013-10-08 21:45:25 +03:00
void ath10k_debug_destroy ( struct ath10k * ar ) ;
2014-09-04 09:13:08 +02:00
int ath10k_debug_register ( struct ath10k * ar ) ;
void ath10k_debug_unregister ( struct ath10k * ar ) ;
2014-09-25 12:33:48 +02:00
void ath10k_debug_fw_stats_process ( struct ath10k * ar , struct sk_buff * skb ) ;
2014-08-25 08:37:32 +03:00
struct ath10k_fw_crash_data *
ath10k_debug_get_new_fw_crash_data ( struct ath10k * ar ) ;
void ath10k_debug_dbglog_add ( struct ath10k * ar , u8 * buffer , int len ) ;
2013-11-20 09:59:41 +02:00
# define ATH10K_DFS_STAT_INC(ar, c) (ar->debug.dfs_stats.c++)
2014-09-29 14:41:46 +03:00
void ath10k_debug_get_et_strings ( struct ieee80211_hw * hw ,
struct ieee80211_vif * vif ,
u32 sset , u8 * data ) ;
int ath10k_debug_get_et_sset_count ( struct ieee80211_hw * hw ,
struct ieee80211_vif * vif , int sset ) ;
void ath10k_debug_get_et_stats ( struct ieee80211_hw * hw ,
struct ieee80211_vif * vif ,
struct ethtool_stats * stats , u64 * data ) ;
2013-06-12 20:52:10 +03:00
# else
2013-09-09 17:50:45 +02:00
static inline int ath10k_debug_start ( struct ath10k * ar )
2013-09-03 11:44:03 +03:00
{
return 0 ;
}
2013-09-09 17:50:45 +02:00
static inline void ath10k_debug_stop ( struct ath10k * ar )
2013-09-03 11:44:03 +03:00
{
}
2013-06-12 20:52:10 +03:00
static inline int ath10k_debug_create ( struct ath10k * ar )
{
return 0 ;
}
2013-10-08 21:45:25 +03:00
static inline void ath10k_debug_destroy ( struct ath10k * ar )
{
}
2014-09-04 09:13:08 +02:00
static inline int ath10k_debug_register ( struct ath10k * ar )
{
return 0 ;
}
static inline void ath10k_debug_unregister ( struct ath10k * ar )
{
}
2014-09-25 12:33:48 +02:00
static inline void ath10k_debug_fw_stats_process ( struct ath10k * ar ,
struct sk_buff * skb )
2013-06-12 20:52:10 +03:00
{
}
2013-11-20 09:59:41 +02:00
2014-08-25 08:37:32 +03:00
static inline void ath10k_debug_dbglog_add ( struct ath10k * ar , u8 * buffer ,
int len )
{
}
static inline struct ath10k_fw_crash_data *
ath10k_debug_get_new_fw_crash_data ( struct ath10k * ar )
{
return NULL ;
}
2013-11-20 09:59:41 +02:00
# define ATH10K_DFS_STAT_INC(ar, c) do { } while (0)
2014-09-29 14:41:46 +03:00
# define ath10k_debug_get_et_strings NULL
# define ath10k_debug_get_et_sset_count NULL
# define ath10k_debug_get_et_stats NULL
2013-06-12 20:52:10 +03:00
# endif /* CONFIG_ATH10K_DEBUGFS */
2015-01-12 14:07:27 +02:00
# ifdef CONFIG_MAC80211_DEBUGFS
void ath10k_sta_add_debugfs ( struct ieee80211_hw * hw , struct ieee80211_vif * vif ,
struct ieee80211_sta * sta , struct dentry * dir ) ;
# endif /* CONFIG_MAC80211_DEBUGFS */
2013-06-12 20:52:10 +03:00
# ifdef CONFIG_ATH10K_DEBUG
2014-08-25 12:09:38 +02:00
__printf ( 3 , 4 ) void ath10k_dbg ( struct ath10k * ar ,
enum ath10k_debug_mask mask ,
2014-02-13 18:13:12 +02:00
const char * fmt , . . . ) ;
2014-08-25 12:09:38 +02:00
void ath10k_dbg_dump ( struct ath10k * ar ,
enum ath10k_debug_mask mask ,
2013-06-12 20:52:10 +03:00
const char * msg , const char * prefix ,
const void * buf , size_t len ) ;
# else /* CONFIG_ATH10K_DEBUG */
2014-08-25 12:09:38 +02:00
static inline int ath10k_dbg ( struct ath10k * ar ,
enum ath10k_debug_mask dbg_mask ,
2013-06-12 20:52:10 +03:00
const char * fmt , . . . )
{
return 0 ;
}
2014-08-25 12:09:38 +02:00
static inline void ath10k_dbg_dump ( struct ath10k * ar ,
enum ath10k_debug_mask mask ,
2013-06-12 20:52:10 +03:00
const char * msg , const char * prefix ,
const void * buf , size_t len )
{
}
# endif /* CONFIG_ATH10K_DEBUG */
# endif /* _DEBUG_H_ */