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 to make 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 organizations.

	  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/serial/Kconfig"

source "drivers/staging/et131x/Kconfig"

source "drivers/staging/slicoss/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/comedi/Kconfig"

source "drivers/staging/olpc_dcon/Kconfig"

source "drivers/staging/asus_oled/Kconfig"

source "drivers/staging/panel/Kconfig"

source "drivers/staging/rtl8187se/Kconfig"

source "drivers/staging/rtl8192u/Kconfig"

source "drivers/staging/rtl8192e/Kconfig"

source "drivers/staging/rtl8712/Kconfig"

source "drivers/staging/rts_pstor/Kconfig"

source "drivers/staging/rts5139/Kconfig"

source "drivers/staging/frontier/Kconfig"

source "drivers/staging/pohmelfs/Kconfig"

source "drivers/staging/phison/Kconfig"

source "drivers/staging/line6/Kconfig"

source "drivers/staging/lttng/Kconfig"

source "drivers/gpu/drm/nouveau/Kconfig"

source "drivers/staging/octeon/Kconfig"

source "drivers/staging/serqt_usb2/Kconfig"

source "drivers/staging/quatech_usb2/Kconfig"

source "drivers/staging/vt6655/Kconfig"

source "drivers/staging/vt6656/Kconfig"

source "drivers/staging/hv/Kconfig"

source "drivers/staging/vme/Kconfig"

source "drivers/staging/sep/Kconfig"

source "drivers/staging/iio/Kconfig"

source "drivers/staging/zram/Kconfig"

source "drivers/staging/zcache/Kconfig"

source "drivers/staging/wlags49_h2/Kconfig"

source "drivers/staging/wlags49_h25/Kconfig"

source "drivers/staging/sm7xx/Kconfig"

source "drivers/staging/crystalhd/Kconfig"

source "drivers/staging/cxt1e1/Kconfig"

source "drivers/staging/xgifb/Kconfig"

source "drivers/staging/tidspbridge/Kconfig"

source "drivers/staging/quickstart/Kconfig"

source "drivers/staging/sbe-2t3e3/Kconfig"

source "drivers/staging/keucr/Kconfig"

source "drivers/staging/bcm/Kconfig"

source "drivers/staging/ft1000/Kconfig"

source "drivers/staging/intel_sst/Kconfig"

source "drivers/staging/speakup/Kconfig"

source "drivers/staging/cptm1217/Kconfig"

source "drivers/staging/ste_rmi4/Kconfig"

source "drivers/staging/gma500/Kconfig"

source "drivers/staging/mei/Kconfig"

source "drivers/staging/nvec/Kconfig"

source "drivers/staging/media/Kconfig"

source "drivers/staging/omapdrm/Kconfig"

endif # STAGING
