config B43LEGACY
	tristate "Broadcom 43xx-legacy wireless support (mac80211 stack)"
	depends on m
	depends on SSB_POSSIBLE && MAC80211 && HAS_DMA
	select SSB
	select BACKPORT_FW_LOADER
	---help---
	  b43legacy is a driver for 802.11b devices from Broadcom (BCM4301 and
	  BCM4303) and early model 802.11g chips (BCM4306 Ver. 2) used in the
	  Linksys WPC54G V1 PCMCIA devices.

	  Newer 802.11g and 802.11a devices need b43.

	  It is safe to include both b43 and b43legacy as the underlying glue
	  layer will automatically load the correct version for your device.

	  This driver uses V3 firmware, which must be installed separately using
	  b43-fwcutter.

	  This driver can be built as a module (recommended) that will be
	  called "b43legacy". If unsure, say M.

# Auto-select SSB PCI-HOST support, if possible
config B43LEGACY_PCI_AUTOSELECT
	bool
	depends on B43LEGACY && SSB_PCIHOST_POSSIBLE
	select SSB_PCIHOST
	select SSB_B43_PCI_BRIDGE
	default y

# Auto-select SSB PCICORE driver, if possible
config B43LEGACY_PCICORE_AUTOSELECT
	bool
	depends on B43LEGACY && SSB_DRIVER_PCICORE_POSSIBLE
	select SSB_DRIVER_PCICORE
	default y

# LED support
# This config option automatically enables b43legacy LEDS support,
# if it's possible.
config B43LEGACY_LEDS
	bool
	depends on B43LEGACY && MAC80211_LEDS && (LEDS_CLASS = y || LEDS_CLASS = B43LEGACY)
	default y

# This config option automatically enables b43 HW-RNG support,
# if the HW-RNG core is enabled.
config B43LEGACY_HWRNG
	bool
	depends on B43LEGACY && (HW_RANDOM = y || HW_RANDOM = B43LEGACY)
	default y

config B43LEGACY_DEBUG
	bool "Broadcom 43xx-legacy debugging"
	depends on B43LEGACY
	default y
	---help---
	  Say Y, because this information will help you get the driver running.
	  This option generates a minimum of log output.

config B43LEGACY_DMA
	bool
	depends on B43LEGACY

config B43LEGACY_PIO
	bool
	depends on B43LEGACY

choice
	prompt "Broadcom 43xx-legacy data transfer mode"
	depends on B43LEGACY
	default B43LEGACY_DMA_AND_PIO_MODE

config B43LEGACY_DMA_AND_PIO_MODE
	bool "DMA + PIO"
	select B43LEGACY_DMA
	select B43LEGACY_PIO
	---help---
	  Include both, Direct Memory Access (DMA) and Programmed I/O (PIO)
	  data transfer modes. The mode actually used is selectable through
	  the module parameter "pio". With pio=0 as a module parameter, the
	  default DMA is used, otherwise PIO is used.

	  If unsure, choose this option.

config B43LEGACY_DMA_MODE
	bool "DMA (Direct Memory Access) only"
	select B43LEGACY_DMA
	---help---
	  Only include Direct Memory Access (DMA).
	  This reduces the size of the driver module, by omitting the PIO code.

config B43LEGACY_PIO_MODE
	bool "PIO (Programmed I/O) only"
	select B43LEGACY_PIO
	---help---
	  Only include Programmed I/O (PIO).
	  This reduces the size of the driver module, by omitting the DMA code.
	  Please note that PIO transfers are slow (compared to DMA).

	  Also note that not all devices of the b43legacy series support PIO.

	  You should use PIO only if DMA does not work for you.

endchoice
