1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2423e3ce3SKalle Valoconfig B43LEGACY
3423e3ce3SKalle Valo	tristate "Broadcom 43xx-legacy wireless support (mac80211 stack)"
4423e3ce3SKalle Valo	depends on SSB_POSSIBLE && MAC80211 && HAS_DMA
5423e3ce3SKalle Valo	select SSB
6423e3ce3SKalle Valo	select FW_LOADER
7a7f7f624SMasahiro Yamada	help
8423e3ce3SKalle Valo	  b43legacy is a driver for 802.11b devices from Broadcom (BCM4301 and
9423e3ce3SKalle Valo	  BCM4303) and early model 802.11g chips (BCM4306 Ver. 2) used in the
10423e3ce3SKalle Valo	  Linksys WPC54G V1 PCMCIA devices.
11423e3ce3SKalle Valo
12423e3ce3SKalle Valo	  Newer 802.11g and 802.11a devices need b43.
13423e3ce3SKalle Valo
14423e3ce3SKalle Valo	  It is safe to include both b43 and b43legacy as the underlying glue
15423e3ce3SKalle Valo	  layer will automatically load the correct version for your device.
16423e3ce3SKalle Valo
17423e3ce3SKalle Valo	  This driver uses V3 firmware, which must be installed separately using
18423e3ce3SKalle Valo	  b43-fwcutter.
19423e3ce3SKalle Valo
20423e3ce3SKalle Valo	  This driver can be built as a module (recommended) that will be
21423e3ce3SKalle Valo	  called "b43legacy". If unsure, say M.
22423e3ce3SKalle Valo
23423e3ce3SKalle Valo# Auto-select SSB PCI-HOST support, if possible
24423e3ce3SKalle Valoconfig B43LEGACY_PCI_AUTOSELECT
25423e3ce3SKalle Valo	bool
26423e3ce3SKalle Valo	depends on B43LEGACY && SSB_PCIHOST_POSSIBLE
27423e3ce3SKalle Valo	select SSB_PCIHOST
28423e3ce3SKalle Valo	select SSB_B43_PCI_BRIDGE
29423e3ce3SKalle Valo	default y
30423e3ce3SKalle Valo
31423e3ce3SKalle Valo# Auto-select SSB PCICORE driver, if possible
32423e3ce3SKalle Valoconfig B43LEGACY_PCICORE_AUTOSELECT
33423e3ce3SKalle Valo	bool
34423e3ce3SKalle Valo	depends on B43LEGACY && SSB_DRIVER_PCICORE_POSSIBLE
35423e3ce3SKalle Valo	select SSB_DRIVER_PCICORE
36423e3ce3SKalle Valo	default y
37423e3ce3SKalle Valo
38423e3ce3SKalle Valo# LED support
39423e3ce3SKalle Valo# This config option automatically enables b43legacy LEDS support,
40423e3ce3SKalle Valo# if it's possible.
41423e3ce3SKalle Valoconfig B43LEGACY_LEDS
42423e3ce3SKalle Valo	bool
43423e3ce3SKalle Valo	depends on B43LEGACY && MAC80211_LEDS && (LEDS_CLASS = y || LEDS_CLASS = B43LEGACY)
44423e3ce3SKalle Valo	default y
45423e3ce3SKalle Valo
46423e3ce3SKalle Valo# This config option automatically enables b43 HW-RNG support,
47423e3ce3SKalle Valo# if the HW-RNG core is enabled.
48423e3ce3SKalle Valoconfig B43LEGACY_HWRNG
49423e3ce3SKalle Valo	bool
50423e3ce3SKalle Valo	depends on B43LEGACY && (HW_RANDOM = y || HW_RANDOM = B43LEGACY)
51423e3ce3SKalle Valo	default y
52423e3ce3SKalle Valo
53423e3ce3SKalle Valoconfig B43LEGACY_DEBUG
54423e3ce3SKalle Valo	bool "Broadcom 43xx-legacy debugging"
55423e3ce3SKalle Valo	depends on B43LEGACY
56423e3ce3SKalle Valo	default y
57a7f7f624SMasahiro Yamada	help
58423e3ce3SKalle Valo	  Say Y, because this information will help you get the driver running.
59423e3ce3SKalle Valo	  This option generates a minimum of log output.
60423e3ce3SKalle Valo
61423e3ce3SKalle Valoconfig B43LEGACY_DMA
62423e3ce3SKalle Valo	bool
63423e3ce3SKalle Valo	depends on B43LEGACY
64423e3ce3SKalle Valo
65423e3ce3SKalle Valoconfig B43LEGACY_PIO
66423e3ce3SKalle Valo	bool
67423e3ce3SKalle Valo	depends on B43LEGACY
68423e3ce3SKalle Valo
69423e3ce3SKalle Valochoice
70423e3ce3SKalle Valo	prompt "Broadcom 43xx-legacy data transfer mode"
71423e3ce3SKalle Valo	depends on B43LEGACY
72423e3ce3SKalle Valo	default B43LEGACY_DMA_AND_PIO_MODE
73423e3ce3SKalle Valo
74423e3ce3SKalle Valoconfig B43LEGACY_DMA_AND_PIO_MODE
75423e3ce3SKalle Valo	bool "DMA + PIO"
76423e3ce3SKalle Valo	select B43LEGACY_DMA
77423e3ce3SKalle Valo	select B43LEGACY_PIO
78a7f7f624SMasahiro Yamada	help
79423e3ce3SKalle Valo	  Include both, Direct Memory Access (DMA) and Programmed I/O (PIO)
80423e3ce3SKalle Valo	  data transfer modes. The mode actually used is selectable through
81423e3ce3SKalle Valo	  the module parameter "pio". With pio=0 as a module parameter, the
82423e3ce3SKalle Valo	  default DMA is used, otherwise PIO is used.
83423e3ce3SKalle Valo
84423e3ce3SKalle Valo	  If unsure, choose this option.
85423e3ce3SKalle Valo
86423e3ce3SKalle Valoconfig B43LEGACY_DMA_MODE
87423e3ce3SKalle Valo	bool "DMA (Direct Memory Access) only"
88423e3ce3SKalle Valo	select B43LEGACY_DMA
89a7f7f624SMasahiro Yamada	help
90423e3ce3SKalle Valo	  Only include Direct Memory Access (DMA).
91423e3ce3SKalle Valo	  This reduces the size of the driver module, by omitting the PIO code.
92423e3ce3SKalle Valo
93423e3ce3SKalle Valoconfig B43LEGACY_PIO_MODE
94423e3ce3SKalle Valo	bool "PIO (Programmed I/O) only"
95423e3ce3SKalle Valo	select B43LEGACY_PIO
96a7f7f624SMasahiro Yamada	help
97423e3ce3SKalle Valo	  Only include Programmed I/O (PIO).
98423e3ce3SKalle Valo	  This reduces the size of the driver module, by omitting the DMA code.
99423e3ce3SKalle Valo	  Please note that PIO transfers are slow (compared to DMA).
100423e3ce3SKalle Valo
101423e3ce3SKalle Valo	  Also note that not all devices of the b43legacy series support PIO.
102423e3ce3SKalle Valo
103423e3ce3SKalle Valo	  You should use PIO only if DMA does not work for you.
104423e3ce3SKalle Valo
105423e3ce3SKalle Valoendchoice
106