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.


config STAGING_EXCLUDE_BUILD
	bool "Exclude Staging drivers from being built" if STAGING
	default y
	---help---
	  Are you sure you really want to build the staging drivers?
	  They taint your kernel, don't live up to the normal Linux
	  kernel quality standards, are a bit crufty around the edges,
	  and might go off and kick your dog when you aren't paying
	  attention.

	  Say N here to be able to select and build the Staging drivers.
	  This option is primarily here to prevent them from being built
	  when selecting 'make allyesconfg' and 'make allmodconfig' so
	  don't be all that put off, your dog will be just fine.

if !STAGING_EXCLUDE_BUILD

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_EXCLUDE_BUILD
