18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ciconfig B43LEGACY
38c2ecf20Sopenharmony_ci	tristate "Broadcom 43xx-legacy wireless support (mac80211 stack)"
48c2ecf20Sopenharmony_ci	depends on SSB_POSSIBLE && MAC80211 && HAS_DMA
58c2ecf20Sopenharmony_ci	select SSB
68c2ecf20Sopenharmony_ci	select FW_LOADER
78c2ecf20Sopenharmony_ci	help
88c2ecf20Sopenharmony_ci	  b43legacy is a driver for 802.11b devices from Broadcom (BCM4301 and
98c2ecf20Sopenharmony_ci	  BCM4303) and early model 802.11g chips (BCM4306 Ver. 2) used in the
108c2ecf20Sopenharmony_ci	  Linksys WPC54G V1 PCMCIA devices.
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci	  Newer 802.11g and 802.11a devices need b43.
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ci	  It is safe to include both b43 and b43legacy as the underlying glue
158c2ecf20Sopenharmony_ci	  layer will automatically load the correct version for your device.
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci	  This driver uses V3 firmware, which must be installed separately using
188c2ecf20Sopenharmony_ci	  b43-fwcutter.
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci	  This driver can be built as a module (recommended) that will be
218c2ecf20Sopenharmony_ci	  called "b43legacy". If unsure, say M.
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci# Auto-select SSB PCI-HOST support, if possible
248c2ecf20Sopenharmony_ciconfig B43LEGACY_PCI_AUTOSELECT
258c2ecf20Sopenharmony_ci	bool
268c2ecf20Sopenharmony_ci	depends on B43LEGACY && SSB_PCIHOST_POSSIBLE
278c2ecf20Sopenharmony_ci	select SSB_PCIHOST
288c2ecf20Sopenharmony_ci	select SSB_B43_PCI_BRIDGE
298c2ecf20Sopenharmony_ci	default y
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci# Auto-select SSB PCICORE driver, if possible
328c2ecf20Sopenharmony_ciconfig B43LEGACY_PCICORE_AUTOSELECT
338c2ecf20Sopenharmony_ci	bool
348c2ecf20Sopenharmony_ci	depends on B43LEGACY && SSB_DRIVER_PCICORE_POSSIBLE
358c2ecf20Sopenharmony_ci	select SSB_DRIVER_PCICORE
368c2ecf20Sopenharmony_ci	default y
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci# LED support
398c2ecf20Sopenharmony_ci# This config option automatically enables b43legacy LEDS support,
408c2ecf20Sopenharmony_ci# if it's possible.
418c2ecf20Sopenharmony_ciconfig B43LEGACY_LEDS
428c2ecf20Sopenharmony_ci	bool
438c2ecf20Sopenharmony_ci	depends on B43LEGACY && MAC80211_LEDS && (LEDS_CLASS = y || LEDS_CLASS = B43LEGACY)
448c2ecf20Sopenharmony_ci	default y
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci# This config option automatically enables b43 HW-RNG support,
478c2ecf20Sopenharmony_ci# if the HW-RNG core is enabled.
488c2ecf20Sopenharmony_ciconfig B43LEGACY_HWRNG
498c2ecf20Sopenharmony_ci	bool
508c2ecf20Sopenharmony_ci	depends on B43LEGACY && (HW_RANDOM = y || HW_RANDOM = B43LEGACY)
518c2ecf20Sopenharmony_ci	default y
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ciconfig B43LEGACY_DEBUG
548c2ecf20Sopenharmony_ci	bool "Broadcom 43xx-legacy debugging"
558c2ecf20Sopenharmony_ci	depends on B43LEGACY
568c2ecf20Sopenharmony_ci	default y
578c2ecf20Sopenharmony_ci	help
588c2ecf20Sopenharmony_ci	  Say Y, because this information will help you get the driver running.
598c2ecf20Sopenharmony_ci	  This option generates a minimum of log output.
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ciconfig B43LEGACY_DMA
628c2ecf20Sopenharmony_ci	bool
638c2ecf20Sopenharmony_ci	depends on B43LEGACY
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ciconfig B43LEGACY_PIO
668c2ecf20Sopenharmony_ci	bool
678c2ecf20Sopenharmony_ci	depends on B43LEGACY
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_cichoice
708c2ecf20Sopenharmony_ci	prompt "Broadcom 43xx-legacy data transfer mode"
718c2ecf20Sopenharmony_ci	depends on B43LEGACY
728c2ecf20Sopenharmony_ci	default B43LEGACY_DMA_AND_PIO_MODE
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_ciconfig B43LEGACY_DMA_AND_PIO_MODE
758c2ecf20Sopenharmony_ci	bool "DMA + PIO"
768c2ecf20Sopenharmony_ci	select B43LEGACY_DMA
778c2ecf20Sopenharmony_ci	select B43LEGACY_PIO
788c2ecf20Sopenharmony_ci	help
798c2ecf20Sopenharmony_ci	  Include both, Direct Memory Access (DMA) and Programmed I/O (PIO)
808c2ecf20Sopenharmony_ci	  data transfer modes. The mode actually used is selectable through
818c2ecf20Sopenharmony_ci	  the module parameter "pio". With pio=0 as a module parameter, the
828c2ecf20Sopenharmony_ci	  default DMA is used, otherwise PIO is used.
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci	  If unsure, choose this option.
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ciconfig B43LEGACY_DMA_MODE
878c2ecf20Sopenharmony_ci	bool "DMA (Direct Memory Access) only"
888c2ecf20Sopenharmony_ci	select B43LEGACY_DMA
898c2ecf20Sopenharmony_ci	help
908c2ecf20Sopenharmony_ci	  Only include Direct Memory Access (DMA).
918c2ecf20Sopenharmony_ci	  This reduces the size of the driver module, by omitting the PIO code.
928c2ecf20Sopenharmony_ci
938c2ecf20Sopenharmony_ciconfig B43LEGACY_PIO_MODE
948c2ecf20Sopenharmony_ci	bool "PIO (Programmed I/O) only"
958c2ecf20Sopenharmony_ci	select B43LEGACY_PIO
968c2ecf20Sopenharmony_ci	help
978c2ecf20Sopenharmony_ci	  Only include Programmed I/O (PIO).
988c2ecf20Sopenharmony_ci	  This reduces the size of the driver module, by omitting the DMA code.
998c2ecf20Sopenharmony_ci	  Please note that PIO transfers are slow (compared to DMA).
1008c2ecf20Sopenharmony_ci
1018c2ecf20Sopenharmony_ci	  Also note that not all devices of the b43legacy series support PIO.
1028c2ecf20Sopenharmony_ci
1038c2ecf20Sopenharmony_ci	  You should use PIO only if DMA does not work for you.
1048c2ecf20Sopenharmony_ci
1058c2ecf20Sopenharmony_ciendchoice
106