2013-06-12 21:52:10 +04: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 18:55:38 +04:00
ATH10K_DBG_BOOT = 0x00000020 ,
2013-06-12 21:52:10 +04:00
ATH10K_DBG_PCI_DUMP = 0x00000040 ,
ATH10K_DBG_HTT_DUMP = 0x00000080 ,
ATH10K_DBG_MGMT = 0x00000100 ,
ATH10K_DBG_DATA = 0x00000200 ,
2013-09-08 18:55:32 +04:00
ATH10K_DBG_BMI = 0x00000400 ,
2013-11-20 11:59:41 +04:00
ATH10K_DBG_REGULATORY = 0x00000800 ,
2013-06-12 21:52:10 +04:00
ATH10K_DBG_ANY = 0xffffffff ,
} ;
extern unsigned int ath10k_debug_mask ;
2014-08-25 14:09:38 +04:00
__printf ( 2 , 3 ) int ath10k_info ( struct ath10k * ar , const char * fmt , . . . ) ;
__printf ( 2 , 3 ) int ath10k_err ( struct ath10k * ar , const char * fmt , . . . ) ;
__printf ( 2 , 3 ) int ath10k_warn ( struct ath10k * ar , const char * fmt , . . . ) ;
2014-08-25 09:37:45 +04:00
void ath10k_print_driver_info ( struct ath10k * ar ) ;
2013-06-12 21:52:10 +04:00
# ifdef CONFIG_ATH10K_DEBUGFS
2013-09-03 12:44:03 +04:00
int ath10k_debug_start ( struct ath10k * ar ) ;
void ath10k_debug_stop ( struct ath10k * ar ) ;
2013-06-12 21:52:10 +04:00
int ath10k_debug_create ( struct ath10k * ar ) ;
2013-10-08 22:45:25 +04:00
void ath10k_debug_destroy ( struct ath10k * ar ) ;
2014-09-04 11:13:08 +04:00
int ath10k_debug_register ( struct ath10k * ar ) ;
void ath10k_debug_unregister ( struct ath10k * ar ) ;
2013-06-12 21:52:10 +04:00
void ath10k_debug_read_service_map ( struct ath10k * ar ,
void * service_map ,
size_t map_size ) ;
void ath10k_debug_read_target_stats ( struct ath10k * ar ,
struct wmi_stats_event * ev ) ;
2014-08-25 09:37:32 +04: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-06-12 21:52:10 +04:00
2013-11-20 11:59:41 +04:00
# define ATH10K_DFS_STAT_INC(ar, c) (ar->debug.dfs_stats.c++)
2013-06-12 21:52:10 +04:00
# else
2013-09-09 19:50:45 +04:00
static inline int ath10k_debug_start ( struct ath10k * ar )
2013-09-03 12:44:03 +04:00
{
return 0 ;
}
2013-09-09 19:50:45 +04:00
static inline void ath10k_debug_stop ( struct ath10k * ar )
2013-09-03 12:44:03 +04:00
{
}
2013-06-12 21:52:10 +04:00
static inline int ath10k_debug_create ( struct ath10k * ar )
{
return 0 ;
}
2013-10-08 22:45:25 +04:00
static inline void ath10k_debug_destroy ( struct ath10k * ar )
{
}
2014-09-04 11:13:08 +04:00
static inline int ath10k_debug_register ( struct ath10k * ar )
{
return 0 ;
}
static inline void ath10k_debug_unregister ( struct ath10k * ar )
{
}
2013-06-12 21:52:10 +04:00
static inline void ath10k_debug_read_service_map ( struct ath10k * ar ,
void * service_map ,
size_t map_size )
{
}
static inline void ath10k_debug_read_target_stats ( struct ath10k * ar ,
struct wmi_stats_event * ev )
{
}
2013-11-20 11:59:41 +04:00
2014-08-25 09:37:32 +04: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 11:59:41 +04:00
# define ATH10K_DFS_STAT_INC(ar, c) do { } while (0)
2013-06-12 21:52:10 +04:00
# endif /* CONFIG_ATH10K_DEBUGFS */
# ifdef CONFIG_ATH10K_DEBUG
2014-08-25 14:09:38 +04:00
__printf ( 3 , 4 ) void ath10k_dbg ( struct ath10k * ar ,
enum ath10k_debug_mask mask ,
2014-02-13 20:13:12 +04:00
const char * fmt , . . . ) ;
2014-08-25 14:09:38 +04:00
void ath10k_dbg_dump ( struct ath10k * ar ,
enum ath10k_debug_mask mask ,
2013-06-12 21:52:10 +04:00
const char * msg , const char * prefix ,
const void * buf , size_t len ) ;
# else /* CONFIG_ATH10K_DEBUG */
2014-08-25 14:09:38 +04:00
static inline int ath10k_dbg ( struct ath10k * ar ,
enum ath10k_debug_mask dbg_mask ,
2013-06-12 21:52:10 +04:00
const char * fmt , . . . )
{
return 0 ;
}
2014-08-25 14:09:38 +04:00
static inline void ath10k_dbg_dump ( struct ath10k * ar ,
enum ath10k_debug_mask mask ,
2013-06-12 21:52:10 +04:00
const char * msg , const char * prefix ,
const void * buf , size_t len )
{
}
# endif /* CONFIG_ATH10K_DEBUG */
# endif /* _DEBUG_H_ */