# SPDX-License-Identifier: ISC
config ATH_COMMON
	tristate

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 these 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
       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
