menuconfig STAGING
	bool "Staging drivers"
	default n
	---help---
	  This option allows you to select a number of drivers that are
	  not of the "normal" Linux kernel quality level.  These drivers
	  are placed here in order to get a wider audience for use of
	  them.  Please note that these drivers are under heavy
	  development, may or may not work, and may contain userspace
	  interfaces that most likely will be changed in the near
	  future.

	  Using any of these drivers will taint your kernel which might
	  affect support options from both the community, and various
	  commercial support orginizations.

	  If you wish to work on these drivers, to help improve them, or
	  to report problems you have with them, please see the
	  driver_name.README file in the drivers/staging/ directory to
	  see what needs to be worked on, and who to contact.

	  If in doubt, say N here.

if STAGING

source "drivers/staging/et131x/Kconfig"

source "drivers/staging/slicoss/Kconfig"

source "drivers/staging/sxg/Kconfig"

source "drivers/staging/me4000/Kconfig"

source "drivers/staging/go7007/Kconfig"

source "drivers/staging/usbip/Kconfig"

source "drivers/staging/winbond/Kconfig"

source "drivers/staging/wlan-ng/Kconfig"

source "drivers/staging/echo/Kconfig"

source "drivers/staging/at76_usb/Kconfig"

source "drivers/staging/poch/Kconfig"

endif # STAGING
