ath9k and ath9k_htc debugging#

This page documents the debugging facilities available for ath9k andath9k_htc

Enabling debug#

If you have issues with ath9k or ath9k_htc you can enable debug. Youwill first need to enable the Kconfig option (CONFIG_ATH_DEBUG):

Device Drivers  --->  [*] Network device support  --->        Wireless LAN  --->          <M>   Atheros Wireless Cards  --->                [*] Atheros wireless debugging

Then you can use the module parameterdebug. We cover below thedifferent available debug levels you can use.

enumATH_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_BTCOEX=0x00001000,ATH_DBG_WMI=0x00002000,ATH_DBG_BSTUCK=0x00004000,ATH_DBG_MCI=0x00008000,ATH_DBG_DFS=0x00010000,ATH_DBG_WOW=0x00020000,ATH_DBG_CHAN_CTX=0x00040000,ATH_DBG_DYNACK=0x00080000,ATH_DBG_ANY=0xffffffff};

If you want to debug calibration (0x00000008) and resets (0x00000001)for example you would use (0x00000008 | 0x00000001) = 0x00000009. Todebug everything just use 0xffffffff. Below is an example of how toenable debug for just configuration changes:

modprobe ath9k debug=0x00000200 (or) modprobe ath9k_htc debug=0x00000200

You can also use modprobe.d configuration files, for example to enableATH_DBG_CONFIG (0x00000200) and ATH_DBG_PS (0x00000800) you would have afile /etc/modprobe.d/atheros.conf with this:

options ath9k debug=0xa00 (or) options ath9k_htc debug=0xa00

Debugfs files#

To get debugfs you will need to mount it first. You can do so asfollows:

mount -t debugfs debugfs /sys/kernel/debug/

Debugfs files for ath9k#

ath9k has several debugfs files which you can query for information andsome which allow you to insert data. This can be enabled as:

Device Drivers  --->  [*] Network device support  --->        Wireless LAN  --->          <M>   Atheros Wireless Cards  --->                [M] Atheros 802.11n wireless cards support                [*]   Atheros ath9k debugging

Once the config options are enabled and debugfs is mounted, these would be seen:

/sys/kernel/debug/ieee80211/phy0/ath9k/btcoex/sys/kernel/debug/ieee80211/phy0/ath9k/diversity/sys/kernel/debug/ieee80211/phy0/ath9k/gpio_val/sys/kernel/debug/ieee80211/phy0/ath9k/gpio_mask/sys/kernel/debug/ieee80211/phy0/ath9k/spectral_fft_period/sys/kernel/debug/ieee80211/phy0/ath9k/spectral_period/sys/kernel/debug/ieee80211/phy0/ath9k/spectral_count/sys/kernel/debug/ieee80211/phy0/ath9k/spectral_short_repeat/sys/kernel/debug/ieee80211/phy0/ath9k/spectral_scan_ctl/sys/kernel/debug/ieee80211/phy0/ath9k/spectral_scan0/sys/kernel/debug/ieee80211/phy0/ath9k/modal_eeprom/sys/kernel/debug/ieee80211/phy0/ath9k/base_eeprom/sys/kernel/debug/ieee80211/phy0/ath9k/dump_nfcal/sys/kernel/debug/ieee80211/phy0/ath9k/regdump/sys/kernel/debug/ieee80211/phy0/ath9k/ignore_extcca/sys/kernel/debug/ieee80211/phy0/ath9k/regval/sys/kernel/debug/ieee80211/phy0/ath9k/regidx/sys/kernel/debug/ieee80211/phy0/ath9k/paprd/sys/kernel/debug/ieee80211/phy0/ath9k/ani/sys/kernel/debug/ieee80211/phy0/ath9k/tx_chainmask/sys/kernel/debug/ieee80211/phy0/ath9k/rx_chainmask/sys/kernel/debug/ieee80211/phy0/ath9k/recv/sys/kernel/debug/ieee80211/phy0/ath9k/reset/sys/kernel/debug/ieee80211/phy0/ath9k/misc/sys/kernel/debug/ieee80211/phy0/ath9k/qlen_vo/sys/kernel/debug/ieee80211/phy0/ath9k/qlen_vi/sys/kernel/debug/ieee80211/phy0/ath9k/qlen_be/sys/kernel/debug/ieee80211/phy0/ath9k/qlen_bk/sys/kernel/debug/ieee80211/phy0/ath9k/queues/sys/kernel/debug/ieee80211/phy0/ath9k/xmit/sys/kernel/debug/ieee80211/phy0/ath9k/interrupt/sys/kernel/debug/ieee80211/phy0/ath9k/dma

Debugfs files for ath9k_htc#

ath9k_htc has a few debugfs files which show driver statistics. Enable it as:

Device Drivers  --->  [*] Network device support  --->        Wireless LAN  --->          <M>   Atheros Wireless Cards  --->                [M] Atheros 802.11n wireless cards support                [*]   Atheros ath9k_htc debugging

Once enabled, these are available:

/sys/kernel/debug/ieee80211/phy1/ath9k_htc/modal_eeprom/sys/kernel/debug/ieee80211/phy1/ath9k_htc/base_eeprom/sys/kernel/debug/ieee80211/phy1/ath9k_htc/debug/sys/kernel/debug/ieee80211/phy1/ath9k_htc/queue/sys/kernel/debug/ieee80211/phy1/ath9k_htc/slot/sys/kernel/debug/ieee80211/phy1/ath9k_htc/recv/sys/kernel/debug/ieee80211/phy1/ath9k_htc/xmit/sys/kernel/debug/ieee80211/phy1/ath9k_htc/tgt_rx_stats/sys/kernel/debug/ieee80211/phy1/ath9k_htc/tgt_tx_stats/sys/kernel/debug/ieee80211/phy1/ath9k_htc/tgt_int_stats