config ATH_COMMON
	tristate
	depends on m

config WLAN_VENDOR_ATH
	bool "Atheros/Qualcomm devices"
	default y
	---help---
	  If you have a wireless card belonging to this class, say Y.

	  Note that the answer to this question doesn't directly affect the
	  kernel: saying N will just cause the configurator to skip all
	  the questions about  cards. If you say Y, you will be asked for
	  your specific card in the following questions.

	  For more information and documentation on this module you can visit:

	  http://wireless.kernel.org/en/users/Drivers/ath

	  For information on all Atheros wireless drivers visit:

	  http://wireless.kernel.org/en/users/Drivers/Atheros

if WLAN_VENDOR_ATH

config ATH_DEBUG
	bool "Atheros wireless debugging"
	---help---
	  Say Y, if you want to debug atheros wireless drivers.
	  Right now only ath9k makes use of this.

config ATH_TRACEPOINTS
	depends on !KERNEL_3_1
       bool "Atheros wireless tracing"
       depends on ATH_DEBUG
       depends on EVENT_TRACING
       ---help---
         This option enables tracepoints for atheros wireless drivers.
	 Currently, ath9k makes use of this facility.

config ATH_REG_DYNAMIC_USER_REG_HINTS
	bool "Atheros dynamic user regulatory hints"
	depends on CFG80211_CERTIFICATION_ONUS
	default n
	---help---
	  Say N. This should only be enabled in countries where
	  this feature is explicitly allowed and only on cards that
	  specifically have been tested for this.

config ATH_REG_DYNAMIC_USER_CERT_TESTING
	bool "Atheros dynamic user regulatory testing"
	depends on ATH_REG_DYNAMIC_USER_REG_HINTS && CFG80211_CERTIFICATION_ONUS
	default n
	---help---
	  Say N. This should only be enabled on systems
	  undergoing certification testing.

source "drivers/net/wireless/ath/ath5k/Kconfig"
source "drivers/net/wireless/ath/ath9k/Kconfig"
source "drivers/net/wireless/ath/carl9170/Kconfig"
source "drivers/net/wireless/ath/ath6kl/Kconfig"
source "drivers/net/wireless/ath/ar5523/Kconfig"
source "drivers/net/wireless/ath/wil6210/Kconfig"
source "drivers/net/wireless/ath/ath10k/Kconfig"
source "drivers/net/wireless/ath/wcn36xx/Kconfig"

endif
