| 
									
										
										
										
											2011-07-18 00:22:30 +03:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * Copyright (c) 2011 Atheros Communications Inc. | 
					
						
							| 
									
										
										
										
											2012-02-06 20:15:53 +05:30
										 |  |  |  * Copyright (c) 2011-2012 Qualcomm Atheros, Inc. | 
					
						
							| 
									
										
										
										
											2011-07-18 00:22:30 +03:00
										 |  |  |  * | 
					
						
							|  |  |  |  * 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
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-05 12:23:49 +03:00
										 |  |  | #include "hif.h"
 | 
					
						
							| 
									
										
										
										
											2013-03-18 13:42:22 +02:00
										 |  |  | #include "trace.h"
 | 
					
						
							| 
									
										
										
										
											2011-07-18 00:22:30 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | enum ATH6K_DEBUG_MASK { | 
					
						
							| 
									
										
										
										
											2011-10-24 12:17:59 +03:00
										 |  |  | 	ATH6KL_DBG_CREDIT	= BIT(0), | 
					
						
							| 
									
										
										
										
											2011-10-24 12:17:51 +03:00
										 |  |  | 	/* hole */ | 
					
						
							| 
									
										
										
										
											2011-07-18 00:22:30 +03:00
										 |  |  | 	ATH6KL_DBG_WLAN_TX      = BIT(2),     /* wlan tx */ | 
					
						
							|  |  |  | 	ATH6KL_DBG_WLAN_RX      = BIT(3),     /* wlan rx */ | 
					
						
							|  |  |  | 	ATH6KL_DBG_BMI		= BIT(4),     /* bmi tracing */ | 
					
						
							| 
									
										
										
										
											2011-10-13 15:21:15 +03:00
										 |  |  | 	ATH6KL_DBG_HTC		= BIT(5), | 
					
						
							| 
									
										
										
										
											2011-10-13 15:21:53 +03:00
										 |  |  | 	ATH6KL_DBG_HIF		= BIT(6), | 
					
						
							| 
									
										
										
										
											2011-07-18 00:22:30 +03:00
										 |  |  | 	ATH6KL_DBG_IRQ		= BIT(7),     /* interrupt processing */ | 
					
						
							| 
									
										
										
										
											2011-10-24 12:17:51 +03:00
										 |  |  | 	/* hole */ | 
					
						
							|  |  |  | 	/* hole */ | 
					
						
							| 
									
										
										
										
											2011-07-18 00:22:30 +03:00
										 |  |  | 	ATH6KL_DBG_WMI          = BIT(10),    /* wmi tracing */ | 
					
						
							|  |  |  | 	ATH6KL_DBG_TRC	        = BIT(11),    /* generic func tracing */ | 
					
						
							|  |  |  | 	ATH6KL_DBG_SCATTER	= BIT(12),    /* hif scatter tracing */ | 
					
						
							|  |  |  | 	ATH6KL_DBG_WLAN_CFG     = BIT(13),    /* cfg80211 i/f file tracing */ | 
					
						
							| 
									
										
										
										
											2011-09-27 14:31:21 +03:00
										 |  |  | 	ATH6KL_DBG_RAW_BYTES    = BIT(14),    /* dump tx/rx frames */ | 
					
						
							| 
									
										
										
										
											2011-07-21 10:54:26 +03:00
										 |  |  | 	ATH6KL_DBG_AGGR		= BIT(15),    /* aggregation */ | 
					
						
							| 
									
										
										
										
											2011-09-27 14:30:58 +03:00
										 |  |  | 	ATH6KL_DBG_SDIO		= BIT(16), | 
					
						
							|  |  |  | 	ATH6KL_DBG_SDIO_DUMP	= BIT(17), | 
					
						
							| 
									
										
										
										
											2011-09-27 14:31:11 +03:00
										 |  |  | 	ATH6KL_DBG_BOOT		= BIT(18),    /* driver init and fw boot */ | 
					
						
							| 
									
										
										
										
											2011-09-27 14:31:21 +03:00
										 |  |  | 	ATH6KL_DBG_WMI_DUMP	= BIT(19), | 
					
						
							| 
									
										
										
										
											2011-11-01 08:44:44 +02:00
										 |  |  | 	ATH6KL_DBG_SUSPEND	= BIT(20), | 
					
						
							| 
									
										
										
										
											2012-01-17 20:09:45 +02:00
										 |  |  | 	ATH6KL_DBG_USB		= BIT(21), | 
					
						
							| 
									
										
										
										
											2012-03-25 17:15:29 +03:00
										 |  |  | 	ATH6KL_DBG_USB_BULK	= BIT(22), | 
					
						
							| 
									
										
										
										
											2012-08-29 19:40:26 +05:30
										 |  |  | 	ATH6KL_DBG_RECOVERY	= BIT(23), | 
					
						
							| 
									
										
										
										
											2011-07-18 00:22:30 +03:00
										 |  |  | 	ATH6KL_DBG_ANY	        = 0xffffffff  /* enable all logs */ | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern unsigned int debug_mask; | 
					
						
							| 
									
										
										
										
											2013-09-23 11:37:59 -07:00
										 |  |  | __printf(2, 3) int ath6kl_printk(const char *level, const char *fmt, ...); | 
					
						
							|  |  |  | __printf(1, 2) int ath6kl_info(const char *fmt, ...); | 
					
						
							|  |  |  | __printf(1, 2) int ath6kl_err(const char *fmt, ...); | 
					
						
							|  |  |  | __printf(1, 2) int ath6kl_warn(const char *fmt, ...); | 
					
						
							| 
									
										
										
										
											2011-07-18 00:22:30 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-27 23:33:28 +03:00
										 |  |  | enum ath6kl_war { | 
					
						
							|  |  |  | 	ATH6KL_WAR_INVALID_RATE, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-07-18 00:22:30 +03:00
										 |  |  | #ifdef CONFIG_ATH6KL_DEBUG
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-17 20:09:27 +02:00
										 |  |  | void ath6kl_dbg(enum ATH6K_DEBUG_MASK mask, const char *fmt, ...); | 
					
						
							|  |  |  | void ath6kl_dbg_dump(enum ATH6K_DEBUG_MASK mask, | 
					
						
							|  |  |  | 		     const char *msg, const char *prefix, | 
					
						
							|  |  |  | 		     const void *buf, size_t len); | 
					
						
							| 
									
										
										
										
											2011-07-18 00:22:30 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | void ath6kl_dump_registers(struct ath6kl_device *dev, | 
					
						
							|  |  |  | 			   struct ath6kl_irq_proc_registers *irq_proc_reg, | 
					
						
							|  |  |  | 			   struct ath6kl_irq_enable_reg *irq_en_reg); | 
					
						
							|  |  |  | void dump_cred_dist_stats(struct htc_target *target); | 
					
						
							| 
									
										
										
										
											2011-09-02 10:32:04 +03:00
										 |  |  | void ath6kl_debug_fwlog_event(struct ath6kl *ar, const void *buf, size_t len); | 
					
						
							| 
									
										
										
										
											2011-09-27 23:33:28 +03:00
										 |  |  | void ath6kl_debug_war(struct ath6kl *ar, enum ath6kl_war war); | 
					
						
							| 
									
										
										
										
											2011-10-11 17:31:54 +03:00
										 |  |  | int ath6kl_debug_roam_tbl_event(struct ath6kl *ar, const void *buf, | 
					
						
							|  |  |  | 				size_t len); | 
					
						
							| 
									
										
										
										
											2011-10-11 17:31:56 +03:00
										 |  |  | void ath6kl_debug_set_keepalive(struct ath6kl *ar, u8 keepalive); | 
					
						
							|  |  |  | void ath6kl_debug_set_disconnect_timeout(struct ath6kl *ar, u8 timeout); | 
					
						
							| 
									
										
										
										
											2012-03-06 14:39:40 +05:30
										 |  |  | void ath6kl_debug_init(struct ath6kl *ar); | 
					
						
							|  |  |  | int ath6kl_debug_init_fs(struct ath6kl *ar); | 
					
						
							| 
									
										
										
										
											2011-09-02 10:32:04 +03:00
										 |  |  | void ath6kl_debug_cleanup(struct ath6kl *ar); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-07-18 00:22:30 +03:00
										 |  |  | #else
 | 
					
						
							|  |  |  | static inline int ath6kl_dbg(enum ATH6K_DEBUG_MASK dbg_mask, | 
					
						
							|  |  |  | 			     const char *fmt, ...) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	return 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static inline void ath6kl_dbg_dump(enum ATH6K_DEBUG_MASK mask, | 
					
						
							| 
									
										
										
										
											2011-09-27 14:30:45 +03:00
										 |  |  | 				   const char *msg, const char *prefix, | 
					
						
							|  |  |  | 				   const void *buf, size_t len) | 
					
						
							| 
									
										
										
										
											2011-07-18 00:22:30 +03:00
										 |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static inline void ath6kl_dump_registers(struct ath6kl_device *dev, | 
					
						
							|  |  |  | 		struct ath6kl_irq_proc_registers *irq_proc_reg, | 
					
						
							|  |  |  | 		struct ath6kl_irq_enable_reg *irq_en_reg) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | static inline void dump_cred_dist_stats(struct htc_target *target) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2011-09-02 10:32:04 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-26 14:29:18 +05:30
										 |  |  | static inline void ath6kl_debug_fwlog_event(struct ath6kl *ar, | 
					
						
							|  |  |  | 					    const void *buf, size_t len) | 
					
						
							| 
									
										
										
										
											2011-09-02 10:32:04 +03:00
										 |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-27 23:33:28 +03:00
										 |  |  | static inline void ath6kl_debug_war(struct ath6kl *ar, enum ath6kl_war war) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-11 17:31:54 +03:00
										 |  |  | static inline int ath6kl_debug_roam_tbl_event(struct ath6kl *ar, | 
					
						
							|  |  |  | 					      const void *buf, size_t len) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	return 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-11 17:31:56 +03:00
										 |  |  | static inline void ath6kl_debug_set_keepalive(struct ath6kl *ar, u8 keepalive) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static inline void ath6kl_debug_set_disconnect_timeout(struct ath6kl *ar, | 
					
						
							|  |  |  | 						       u8 timeout) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-03-06 14:39:40 +05:30
										 |  |  | static inline void ath6kl_debug_init(struct ath6kl *ar) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static inline int ath6kl_debug_init_fs(struct ath6kl *ar) | 
					
						
							| 
									
										
										
										
											2011-08-26 13:06:31 +05:30
										 |  |  | { | 
					
						
							|  |  |  | 	return 0; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2011-09-02 10:32:04 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-26 14:29:18 +05:30
										 |  |  | static inline void ath6kl_debug_cleanup(struct ath6kl *ar) | 
					
						
							| 
									
										
										
										
											2011-09-02 10:32:04 +03:00
										 |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-07-18 00:22:30 +03:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | #endif
 |