|
@@ -186,4 +186,107 @@ bool ath_hw_keyreset(struct ath_common *common, u16 entry);
|
|
|
void ath_hw_cycle_counters_update(struct ath_common *common);
|
|
|
int32_t ath_hw_get_listen_time(struct ath_common *common);
|
|
|
|
|
|
+extern __attribute__ ((format (printf, 3, 4))) int
|
|
|
+ath_printk(const char *level, struct ath_common *common, const char *fmt, ...);
|
|
|
+
|
|
|
+#define ath_emerg(common, fmt, ...) \
|
|
|
+ ath_printk(KERN_EMERG, common, fmt, ##__VA_ARGS__)
|
|
|
+#define ath_alert(common, fmt, ...) \
|
|
|
+ ath_printk(KERN_ALERT, common, fmt, ##__VA_ARGS__)
|
|
|
+#define ath_crit(common, fmt, ...) \
|
|
|
+ ath_printk(KERN_CRIT, common, fmt, ##__VA_ARGS__)
|
|
|
+#define ath_err(common, fmt, ...) \
|
|
|
+ ath_printk(KERN_ERR, common, fmt, ##__VA_ARGS__)
|
|
|
+#define ath_warn(common, fmt, ...) \
|
|
|
+ ath_printk(KERN_WARNING, common, fmt, ##__VA_ARGS__)
|
|
|
+#define ath_notice(common, fmt, ...) \
|
|
|
+ ath_printk(KERN_NOTICE, common, fmt, ##__VA_ARGS__)
|
|
|
+#define ath_info(common, fmt, ...) \
|
|
|
+ ath_printk(KERN_INFO, common, fmt, ##__VA_ARGS__)
|
|
|
+
|
|
|
+/**
|
|
|
+ * enum ath_debug_level - atheros wireless debug level
|
|
|
+ *
|
|
|
+ * @ATH_DBG_RESET: reset processing
|
|
|
+ * @ATH_DBG_QUEUE: hardware queue management
|
|
|
+ * @ATH_DBG_EEPROM: eeprom processing
|
|
|
+ * @ATH_DBG_CALIBRATE: periodic calibration
|
|
|
+ * @ATH_DBG_INTERRUPT: interrupt processing
|
|
|
+ * @ATH_DBG_REGULATORY: regulatory processing
|
|
|
+ * @ATH_DBG_ANI: adaptive noise immunitive processing
|
|
|
+ * @ATH_DBG_XMIT: basic xmit operation
|
|
|
+ * @ATH_DBG_BEACON: beacon handling
|
|
|
+ * @ATH_DBG_CONFIG: configuration of the hardware
|
|
|
+ * @ATH_DBG_FATAL: fatal errors, this is the default, DBG_DEFAULT
|
|
|
+ * @ATH_DBG_PS: power save processing
|
|
|
+ * @ATH_DBG_HWTIMER: hardware timer handling
|
|
|
+ * @ATH_DBG_BTCOEX: bluetooth coexistance
|
|
|
+ * @ATH_DBG_BSTUCK: stuck beacons
|
|
|
+ * @ATH_DBG_ANY: enable all debugging
|
|
|
+ *
|
|
|
+ * The debug level is used to control the amount and type of debugging output
|
|
|
+ * we want to see. Each driver has its own method for enabling debugging and
|
|
|
+ * modifying debug level states -- but this is typically done through a
|
|
|
+ * module parameter 'debug' along with a respective 'debug' debugfs file
|
|
|
+ * entry.
|
|
|
+ */
|
|
|
+enum ATH_DEBUG {
|
|
|
+ ATH_DBG_RESET = 0x00000001,
|
|
|
+ ATH_DBG_QUEUE = 0x00000002,
|
|
|
+ ATH_DBG_EEPROM = 0x00000004,
|
|
|
+ ATH_DBG_CALIBRATE = 0x00000008,
|
|
|
+ ATH_DBG_INTERRUPT = 0x00000010,
|
|
|
+ ATH_DBG_REGULATORY = 0x00000020,
|
|
|
+ ATH_DBG_ANI = 0x00000040,
|
|
|
+ ATH_DBG_XMIT = 0x00000080,
|
|
|
+ ATH_DBG_BEACON = 0x00000100,
|
|
|
+ ATH_DBG_CONFIG = 0x00000200,
|
|
|
+ ATH_DBG_FATAL = 0x00000400,
|
|
|
+ ATH_DBG_PS = 0x00000800,
|
|
|
+ ATH_DBG_HWTIMER = 0x00001000,
|
|
|
+ ATH_DBG_BTCOEX = 0x00002000,
|
|
|
+ ATH_DBG_WMI = 0x00004000,
|
|
|
+ ATH_DBG_BSTUCK = 0x00008000,
|
|
|
+ ATH_DBG_ANY = 0xffffffff
|
|
|
+};
|
|
|
+
|
|
|
+#define ATH_DBG_DEFAULT (ATH_DBG_FATAL)
|
|
|
+
|
|
|
+#ifdef CONFIG_ATH_DEBUG
|
|
|
+
|
|
|
+#define ath_dbg(common, dbg_mask, fmt, ...) \
|
|
|
+({ \
|
|
|
+ int rtn; \
|
|
|
+ if ((common)->debug_mask & dbg_mask) \
|
|
|
+ rtn = ath_printk(KERN_DEBUG, common, fmt, \
|
|
|
+ ##__VA_ARGS__); \
|
|
|
+ else \
|
|
|
+ rtn = 0; \
|
|
|
+ \
|
|
|
+ rtn; \
|
|
|
+})
|
|
|
+#define ATH_DBG_WARN(foo, arg...) WARN(foo, arg)
|
|
|
+
|
|
|
+#else
|
|
|
+
|
|
|
+static inline __attribute__ ((format (printf, 3, 4))) int
|
|
|
+ath_dbg(struct ath_common *common, enum ATH_DEBUG dbg_mask,
|
|
|
+ const char *fmt, ...)
|
|
|
+{
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+#define ATH_DBG_WARN(foo, arg...) do {} while (0)
|
|
|
+
|
|
|
+#endif /* CONFIG_ATH_DEBUG */
|
|
|
+
|
|
|
+/** Returns string describing opmode, or NULL if unknown mode. */
|
|
|
+#ifdef CONFIG_ATH_DEBUG
|
|
|
+const char *ath_opmode_to_string(enum nl80211_iftype opmode);
|
|
|
+#else
|
|
|
+static inline const char *ath_opmode_to_string(enum nl80211_iftype opmode)
|
|
|
+{
|
|
|
+ return "UNKNOWN";
|
|
|
+}
|
|
|
+#endif
|
|
|
+
|
|
|
#endif /* ATH_H */
|