menuconfig RTL_CARDS
	tristate "Realtek rtlwifi family of devices"
	depends on m
	depends on MAC80211 && (PCI || USB)
	default y
	---help---
	  This option will enable support for the Realtek mac80211-based
	  wireless drivers. Drivers rtl8192ce, rtl8192cu, rtl8192se, rtl8192de,
	  rtl8723eu, and rtl8188eu share some common code.

if RTL_CARDS

config RTL8192CE
	tristate "Realtek RTL8192CE/RTL8188CE Wireless Network Adapter"
	depends on m
	depends on PCI
	select RTL8192C_COMMON
	select RTLWIFI
	select RTLWIFI_PCI
	---help---
	This is the driver for Realtek RTL8192CE/RTL8188CE 802.11n PCIe
	wireless network adapters.

	If you choose to build it as a module, it will be called rtl8192ce

config RTL8192SE
	tristate "Realtek RTL8192SE/RTL8191SE PCIe Wireless Network Adapter"
	depends on m
	depends on PCI
	select RTLWIFI
	select RTLWIFI_PCI
	---help---
	This is the driver for Realtek RTL8192SE/RTL8191SE 802.11n PCIe
	wireless network adapters.

	If you choose to build it as a module, it will be called rtl8192se

config RTL8192DE
	tristate "Realtek RTL8192DE/RTL8188DE PCIe Wireless Network Adapter"
	depends on m
	depends on PCI
	select RTLWIFI
	select RTLWIFI_PCI
	---help---
	This is the driver for Realtek RTL8192DE/RTL8188DE 802.11n PCIe
	wireless network adapters.

	If you choose to build it as a module, it will be called rtl8192de

config RTL8723AE
	tristate "Realtek RTL8723AE PCIe Wireless Network Adapter"
	depends on m
	depends on PCI
	select RTLWIFI
	select RTLWIFI_PCI
	---help---
	This is the driver for Realtek RTL8723AE 802.11n PCIe
	wireless network adapters.

	If you choose to build it as a module, it will be called rtl8723ae

config RTL8188EE
	tristate "Realtek RTL8188EE Wireless Network Adapter"
	depends on m
	depends on PCI
	select RTLWIFI
	select RTLWIFI_PCI
	---help---
	This is the driver for Realtek RTL8188EE 802.11n PCIe
	wireless network adapters.

	If you choose to build it as a module, it will be called rtl8188ee

config RTL8192CU
	tristate "Realtek RTL8192CU/RTL8188CU USB Wireless Network Adapter"
	depends on m
	depends on USB
	select RTLWIFI
	select RTLWIFI_USB
	select RTL8192C_COMMON
	---help---
	This is the driver for Realtek RTL8192CU/RTL8188CU 802.11n USB
	wireless network adapters.

	If you choose to build it as a module, it will be called rtl8192cu

config RTLWIFI
	tristate
	depends on m
	select BACKPORT_FW_LOADER

config RTLWIFI_PCI
	tristate
	depends on m

config RTLWIFI_USB
	tristate
	depends on m

config RTLWIFI_DEBUG
	bool "Debugging output for rtlwifi driver family"
	depends on RTLWIFI
	default y
	---help---
	To use the module option that sets the dynamic-debugging level for,
	the front-end driver, this parameter must be "Y". For memory-limited
	systems, choose "N". If in doubt, choose "Y".

config RTL8192C_COMMON
	tristate
	depends on m
	depends on RTL8192CE || RTL8192CU
	default y

endif
