1# SPDX-License-Identifier: GPL-2.0-only
2config B43LEGACY
3	tristate "Broadcom 43xx-legacy wireless support (mac80211 stack)"
4	depends on SSB_POSSIBLE && MAC80211 && HAS_DMA
5	select SSB
6	select FW_LOADER
7	help
8	  b43legacy is a driver for 802.11b devices from Broadcom (BCM4301 and
9	  BCM4303) and early model 802.11g chips (BCM4306 Ver. 2) used in the
10	  Linksys WPC54G V1 PCMCIA devices.
11
12	  Newer 802.11g and 802.11a devices need b43.
13
14	  It is safe to include both b43 and b43legacy as the underlying glue
15	  layer will automatically load the correct version for your device.
16
17	  This driver uses V3 firmware, which must be installed separately using
18	  b43-fwcutter.
19
20	  This driver can be built as a module (recommended) that will be
21	  called "b43legacy". If unsure, say M.
22
23# Auto-select SSB PCI-HOST support, if possible
24config B43LEGACY_PCI_AUTOSELECT
25	bool
26	depends on B43LEGACY && SSB_PCIHOST_POSSIBLE
27	select SSB_PCIHOST
28	select SSB_B43_PCI_BRIDGE
29	default y
30
31# Auto-select SSB PCICORE driver, if possible
32config B43LEGACY_PCICORE_AUTOSELECT
33	bool
34	depends on B43LEGACY && SSB_DRIVER_PCICORE_POSSIBLE
35	select SSB_DRIVER_PCICORE
36	default y
37
38# LED support
39# This config option automatically enables b43legacy LEDS support,
40# if it's possible.
41config B43LEGACY_LEDS
42	bool
43	depends on B43LEGACY && MAC80211_LEDS && (LEDS_CLASS = y || LEDS_CLASS = B43LEGACY)
44	default y
45
46# This config option automatically enables b43 HW-RNG support,
47# if the HW-RNG core is enabled.
48config B43LEGACY_HWRNG
49	bool
50	depends on B43LEGACY && (HW_RANDOM = y || HW_RANDOM = B43LEGACY)
51	default y
52
53config B43LEGACY_DEBUG
54	bool "Broadcom 43xx-legacy debugging"
55	depends on B43LEGACY
56	default y
57	help
58	  Say Y, because this information will help you get the driver running.
59	  This option generates a minimum of log output.
60
61config B43LEGACY_DMA
62	bool
63	depends on B43LEGACY
64
65config B43LEGACY_PIO
66	bool
67	depends on B43LEGACY
68
69choice
70	prompt "Broadcom 43xx-legacy data transfer mode"
71	depends on B43LEGACY
72	default B43LEGACY_DMA_AND_PIO_MODE
73
74config B43LEGACY_DMA_AND_PIO_MODE
75	bool "DMA + PIO"
76	select B43LEGACY_DMA
77	select B43LEGACY_PIO
78	help
79	  Include both, Direct Memory Access (DMA) and Programmed I/O (PIO)
80	  data transfer modes. The mode actually used is selectable through
81	  the module parameter "pio". With pio=0 as a module parameter, the
82	  default DMA is used, otherwise PIO is used.
83
84	  If unsure, choose this option.
85
86config B43LEGACY_DMA_MODE
87	bool "DMA (Direct Memory Access) only"
88	select B43LEGACY_DMA
89	help
90	  Only include Direct Memory Access (DMA).
91	  This reduces the size of the driver module, by omitting the PIO code.
92
93config B43LEGACY_PIO_MODE
94	bool "PIO (Programmed I/O) only"
95	select B43LEGACY_PIO
96	help
97	  Only include Programmed I/O (PIO).
98	  This reduces the size of the driver module, by omitting the DMA code.
99	  Please note that PIO transfers are slow (compared to DMA).
100
101	  Also note that not all devices of the b43legacy series support PIO.
102
103	  You should use PIO only if DMA does not work for you.
104
105endchoice
106