#
# Wireless USB Core configuration
#
config USB_WUSB
	tristate "Enable Wireless USB extensions (EXPERIMENTAL)"
	depends on EXPERIMENTAL
	depends on USB
	depends on PCI
	depends on UWB
        select CRYPTO
        select CRYPTO_BLKCIPHER
        select CRYPTO_CBC
        select CRYPTO_MANAGER
        select CRYPTO_AES
	help
	  Enable the host-side support for Wireless USB.

          To compile this support select Y (built in). It is safe to
	  select even if you don't have the hardware.

config USB_WUSB_CBAF
	tristate "Support WUSB Cable Based Association (CBA)"
	depends on USB
	help
	  Some WUSB devices support Cable Based Association. It's used to
	  enable the secure communication between the host and the
	  device.

	  Enable this option if your WUSB device must to be connected
	  via wired USB before establishing a wireless link.

	  It is safe to select even if you don't have a compatible
	  hardware.

config USB_WUSB_CBAF_DEBUG
	bool "Enable CBA debug messages"
	depends on USB_WUSB_CBAF
	help
	  Say Y here if you want the CBA to produce a bunch of debug messages
	  to the system log. Select this if you are having a problem with
	  CBA support and want to see more of what is going on.

