71aae893608eb48303ca556b110c377d3c345718
[oweals/openwrt.git] / package / kernel / mac80211 / Makefile
1 #
2 # Copyright (C) 2007-2015 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9 include $(INCLUDE_DIR)/kernel.mk
10
11 PKG_NAME:=mac80211
12
13 PKG_VERSION:=2017-01-31
14 PKG_RELEASE:=2
15 PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
16 PKG_BACKPORT_VERSION:=
17 PKG_HASH:=75e6d39e34cf156212a2509172a4a62b673b69eb4a1d9aaa565f7fa719fa2317
18
19 PKG_SOURCE:=compat-wireless-$(PKG_VERSION)$(PKG_BACKPORT_VERSION).tar.xz
20 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/compat-wireless-$(PKG_VERSION)
21 PKG_BUILD_PARALLEL:=1
22
23 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
24
25 PKG_DRIVERS = \
26         adm8211 \
27         airo \
28         ath ath5k ath9k ath9k-common ath9k-htc ath10k \
29         b43 b43legacy \
30         carl9170 \
31         hermes hermes-pci hermes-pcmcia hermes-plx\
32         iwl-legacy iwl3945 iwl4965 iwlwifi \
33         lib80211 \
34         libipw ipw2100 ipw2200 \
35         libertas-sdio libertas-usb libertas-spi \
36         mac80211-hwsim \
37         mt7601u \
38         mwl8k mwifiex-pcie mwifiex-sdio \
39         p54-common p54-pci p54-spi p54-usb \
40         rt2x00-lib rt2x00-pci rt2x00-usb \
41         rt2400-pci rt2500-pci rt2500-usb \
42         rt2800-lib rt2800-mmio rt2800-pci rt2800-soc rt2800-usb \
43         rt61-pci rt73-usb \
44         rtl8180 rtl8187 \
45         rtlwifi rtlwifi-pci rtlwifi-btcoexist rtlwifi-usb rtl8192c-common \
46         rtl8192ce rtl8192se rtl8192de rtl8192cu rtl8821ae \
47         rtl8xxxu \
48         wlcore wl12xx wl18xx \
49         zd1211rw
50
51 PKG_CONFIG_DEPENDS:= \
52         CONFIG_PACKAGE_kmod-mac80211 \
53         $(patsubst %,CONFIG_PACKAGE_kmod-%,$(PKG_DRIVERS)) \
54         CONFIG_PACKAGE_MAC80211_DEBUGFS \
55         CONFIG_PACKAGE_MAC80211_MESH \
56         CONFIG_PACKAGE_MAC80211_TRACING \
57         CONFIG_PACKAGE_ATH_DEBUG \
58         CONFIG_PACKAGE_ATH_DFS \
59         CONFIG_PACKAGE_B43_DEBUG \
60         CONFIG_PACKAGE_B43_PIO \
61         CONFIG_PACKAGE_B43_PHY_G \
62         CONFIG_PACKAGE_B43_PHY_N \
63         CONFIG_PACKAGE_B43_PHY_LP \
64         CONFIG_PACKAGE_B43_PHY_HT \
65         CONFIG_PACKAGE_B43_BUSES_BCMA_AND_SSB \
66         CONFIG_PACKAGE_B43_BUSES_BCMA \
67         CONFIG_PACKAGE_B43_BUSES_SSB \
68         CONFIG_PACKAGE_BRCM80211_DEBUG \
69         CONFIG_PACKAGE_IWLWIFI_DEBUG \
70         CONFIG_PACKAGE_IWLWIFI_DEBUGFS \
71         CONFIG_PACKAGE_RT2X00_LIB_DEBUGFS \
72         CONFIG_PACKAGE_RT2X00_DEBUG \
73         CONFIG_PACKAGE_RTLWIFI_DEBUG \
74         CONFIG_ATH9K_SUPPORT_PCOEM \
75         CONFIG_ATH9K_TX99 \
76         CONFIG_ATH_USER_REGD \
77
78 include $(INCLUDE_DIR)/package.mk
79
80 WMENU:=Wireless Drivers
81
82 define KernelPackage/mac80211/Default
83   SUBMENU:=$(WMENU)
84   URL:=https://wireless.wiki.kernel.org/
85   MAINTAINER:=Felix Fietkau <nbd@nbd.name>
86 endef
87
88 define KernelPackage/cfg80211
89   $(call KernelPackage/mac80211/Default)
90   TITLE:=cfg80211 - wireless configuration API
91   DEPENDS+= +iw
92   FILES:= \
93         $(PKG_BUILD_DIR)/compat/compat.ko \
94         $(PKG_BUILD_DIR)/net/wireless/cfg80211.ko
95 endef
96
97 define KernelPackage/cfg80211/description
98 cfg80211 is the Linux wireless LAN (802.11) configuration API.
99 endef
100
101 define KernelPackage/mac80211
102   $(call KernelPackage/mac80211/Default)
103   TITLE:=Linux 802.11 Wireless Networking Stack
104   DEPENDS+= +kmod-cfg80211 +hostapd-common
105   KCONFIG:=\
106         CONFIG_AVERAGE=y
107   FILES:= $(PKG_BUILD_DIR)/net/mac80211/mac80211.ko
108   MENU:=1
109 endef
110
111 define KernelPackage/mac80211/config
112   if PACKAGE_kmod-mac80211
113
114         config PACKAGE_MAC80211_DEBUGFS
115                 bool "Export mac80211 internals in DebugFS"
116                 select KERNEL_DEBUG_FS
117                 default y
118                 help
119                   Select this to see extensive information about
120                   the internal state of mac80211 in debugfs.
121
122         config PACKAGE_MAC80211_TRACING
123                 bool "Enable tracing (mac80211 and supported drivers)"
124                 select KERNEL_FTRACE
125                 select KERNEL_ENABLE_DEFAULT_TRACERS
126                 default n
127                 help
128                   Select this to enable tracing of mac80211 and
129                   related wifi drivers (using trace-cmd).
130
131         config PACKAGE_MAC80211_MESH
132                 bool "Enable 802.11s mesh support"
133                 default y
134
135   endif
136 endef
137
138 define KernelPackage/mac80211/description
139 Generic IEEE 802.11 Networking Stack (mac80211)
140 endef
141
142 define KernelPackage/adm8211
143   $(call KernelPackage/mac80211/Default)
144   TITLE:=ADMTek 8211 support
145   DEPENDS+=@PCI_SUPPORT +kmod-mac80211 +kmod-eeprom-93cx6
146   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/admtek/adm8211.ko
147   AUTOLOAD:=$(call AutoProbe,adm8211)
148 endef
149
150 define KernelPackage/airo
151   $(call KernelPackage/mac80211/Default)
152   TITLE:=Cisco Aironet driver
153   DEPENDS+=@PCI_SUPPORT +@DRIVER_WEXT_SUPPORT +kmod-cfg80211 @TARGET_x86
154   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/cisco/airo.ko
155   AUTOLOAD:=$(call AutoProbe,airo)
156 endef
157
158 define KernelPackage/airo/description
159  Kernel support for Cisco Aironet cards
160 endef
161
162 define KernelPackage/ath/config
163   if PACKAGE_kmod-ath
164         config ATH_USER_REGD
165                 bool "Force Atheros drivers to respect the user's regdomain settings"
166                 default y
167                 help
168                   Atheros' idea of regulatory handling is that the EEPROM of the card defines
169                   the regulatory limits and the user is only allowed to restrict the settings
170                   even further, even if the country allows frequencies or power levels that
171                   are forbidden by the EEPROM settings.
172
173                   Select this option if you want the driver to respect the user's decision about
174                   regulatory settings.
175
176         config PACKAGE_ATH_DEBUG
177                 bool "Atheros wireless debugging"
178                 help
179                   Say Y, if you want to debug atheros wireless drivers.
180                   Only ath9k & ath10k make use of this.
181
182         config PACKAGE_ATH_DFS
183                 bool "Enable DFS support"
184                 default y
185                 help
186                   Dynamic frequency selection (DFS) is required for most of the 5 GHz band
187                   channels in Europe, US, and Japan.
188
189                   Select this option if you want to use such channels.
190
191   endif
192 endef
193
194 define KernelPackage/ath
195   $(call KernelPackage/mac80211/Default)
196   TITLE:=Atheros common driver part
197   DEPENDS+= @PCI_SUPPORT||USB_SUPPORT||TARGET_ar71xx||TARGET_ath25 +kmod-mac80211
198   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath.ko
199   MENU:=1
200 endef
201
202 define KernelPackage/ath/description
203  This module contains some common parts needed by Atheros Wireless drivers.
204 endef
205
206 define KernelPackage/ath5k
207   $(call KernelPackage/mac80211/Default)
208   TITLE:=Atheros 5xxx wireless cards support
209   URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath5k
210   DEPENDS+= @PCI_SUPPORT||@TARGET_ath25 +kmod-ath +@DRIVER_11W_SUPPORT
211   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath5k/ath5k.ko
212   AUTOLOAD:=$(call AutoProbe,ath5k)
213 endef
214
215 define KernelPackage/ath5k/description
216  This module adds support for wireless adapters based on
217  Atheros 5xxx chipset.
218 endef
219
220 define KernelPackage/ath9k-common
221   $(call KernelPackage/mac80211/Default)
222   TITLE:=Atheros 802.11n wireless devices (common code for ath9k and ath9k_htc)
223   URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath9k
224   HIDDEN:=1
225   DEPENDS+= @PCI_SUPPORT||USB_SUPPORT||TARGET_ar71xx +kmod-ath +@DRIVER_11N_SUPPORT +@DRIVER_11W_SUPPORT +@KERNEL_RELAY
226   FILES:= \
227         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_common.ko \
228         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_hw.ko
229 endef
230
231 define KernelPackage/ath9k
232   $(call KernelPackage/mac80211/Default)
233   TITLE:=Atheros 802.11n PCI wireless cards support
234   URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath9k
235   DEPENDS+= @PCI_SUPPORT||TARGET_ar71xx +kmod-ath9k-common
236   FILES:= \
237         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k.ko
238   AUTOLOAD:=$(call AutoProbe,ath9k)
239 endef
240
241 define KernelPackage/ath9k/description
242 This module adds support for wireless adapters based on
243 Atheros IEEE 802.11n AR5008 and AR9001 family of chipsets.
244 endef
245
246 define KernelPackage/ath9k/config
247
248         config ATH9K_SUPPORT_PCOEM
249                 bool "Support chips used in PC OEM cards"
250                 depends on PACKAGE_kmod-ath9k
251
252        config ATH9K_TX99
253                bool "Enable TX99 support (WARNING: testing only, breaks normal operation!)"
254                depends on PACKAGE_kmod-ath9k
255
256         config ATH9K_UBNTHSR
257                 bool "Support for Ubiquiti UniFi Outdoor+ access point"
258                 depends on PACKAGE_kmod-ath9k && TARGET_ar71xx_generic
259                 default y
260
261 endef
262
263 define KernelPackage/ath9k-htc
264   $(call KernelPackage/mac80211/Default)
265   TITLE:=Atheros 802.11n USB device support
266   URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath9k
267   DEPENDS+= @USB_SUPPORT +kmod-ath9k-common +kmod-usb-core +ath9k-htc-firmware
268   FILES:= \
269         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_htc.ko
270   AUTOLOAD:=$(call AutoProbe,ath9k_htc)
271 endef
272
273 define KernelPackage/ath9k-htc/description
274 This module adds support for wireless adapters based on
275 Atheros USB AR9271 and AR7010 family of chipsets.
276 endef
277
278 define KernelPackage/ath10k
279   $(call KernelPackage/mac80211/Default)
280   TITLE:=Atheros 802.11ac wireless cards support
281   URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath10k
282   DEPENDS+= @PCI_SUPPORT +kmod-ath +@DRIVER_11N_SUPPORT +@DRIVER_11AC_SUPPORT +@DRIVER_11W_SUPPORT +@KERNEL_RELAY
283   FILES:= \
284         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath10k/ath10k_core.ko \
285         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath10k/ath10k_pci.ko
286   AUTOLOAD:=$(call AutoLoad,55,ath10k_core ath10k_pci)
287 endef
288
289 define KernelPackage/ath10k/description
290 This module adds support for wireless adapters based on
291 Atheros IEEE 802.11ac family of chipsets. For now only
292 PCI is supported.
293 endef
294
295 #Broadcom firmware
296 ifneq ($(CONFIG_B43_FW_6_30),)
297   PKG_B43_FWV4_NAME:=broadcom-wl
298   PKG_B43_FWV4_VERSION:=6.30.163.46
299   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).wl_apsta.o
300   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
301   PKG_B43_FWV4_SOURCE_URL:=http://www.lwfinger.com/b43-firmware/
302   PKG_B43_FWV4_HASH:=a07c3b6b277833c7dbe61daa511f908cd66c5e2763eb7a0859abc36cd9335c2d
303 else
304 ifneq ($(CONFIG_B43_FW_5_10),)
305   PKG_B43_FWV4_NAME:=broadcom-wl
306   PKG_B43_FWV4_VERSION:=5.10.56.27.3
307   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/driver/wl_apsta/wl_prebuilt.o
308   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)_mipsel.tar.bz2
309   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
310   PKG_B43_FWV4_HASH:=26a8c370f48fc129d0731cfd751c36cae1419b0bc8ca35781126744e60eae009
311 else
312 ifneq ($(CONFIG_B43_FW_4_178),)
313   PKG_B43_FWV4_NAME:=broadcom-wl
314   PKG_B43_FWV4_VERSION:=4.178.10.4
315   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/linux/wl_apsta.o
316   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
317   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
318   PKG_B43_FWV4_HASH:=32f6ad98facbb9045646fdc8b54bb03086d204153253f9c65d0234a5d90ae53f
319 else
320 ifneq ($(CONFIG_B43_FW_5_100_138),)
321   PKG_B43_FWV4_NAME:=broadcom-wl
322   PKG_B43_FWV4_VERSION:=5.100.138
323   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/linux/wl_apsta.o
324   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
325   PKG_B43_FWV4_SOURCE_URL:=http://www.lwfinger.com/b43-firmware/
326   PKG_B43_FWV4_HASH:=f1e7067aac5b62b67b8b6e4c517990277804339ac16065eb13c731ff909ae46f
327 else
328   PKG_B43_FWV4_NAME:=broadcom-wl
329   PKG_B43_FWV4_VERSION:=4.150.10.5
330   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/driver/wl_apsta_mimo.o
331   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
332   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
333   PKG_B43_FWV4_HASH:=a9f4e276a4d8d3a1cd0f2eb87080ae89b77f0a7140f06d4e9e2135fc44fdd533
334 endif
335 endif
336 endif
337 endif
338 ifneq ($(CONFIG_B43_OPENFIRMWARE),)
339   PKG_B43_FWV4_NAME:=broadcom-wl
340   PKG_B43_FWV4_VERSION:=5.2
341   PKG_B43_FWV4_OBJECT:=openfwwf-$(PKG_B43_FWV4_VERSION)
342   PKG_B43_FWV4_SOURCE:=openfwwf-$(PKG_B43_FWV4_VERSION).tar.gz
343   PKG_B43_FWV4_SOURCE_URL:=http://netweb.ing.unibs.it/~openfwwf/firmware
344   PKG_B43_FWV4_HASH:=9de03320083201080b2e94b81637ac07a159cf4e6f3481383e1a217e627bc0dc
345 endif
346
347
348 define Download/b43
349   FILE:=$(PKG_B43_FWV4_SOURCE)
350   URL:=$(PKG_B43_FWV4_SOURCE_URL)
351   HASH:=$(PKG_B43_FWV4_HASH)
352 endef
353 $(eval $(call Download,b43))
354
355 define KernelPackage/b43
356   $(call KernelPackage/mac80211/Default)
357   TITLE:=Broadcom 43xx wireless support
358   URL:=https://wireless.wiki.kernel.org/en/users/drivers/b43
359   KCONFIG:= \
360         CONFIG_HW_RANDOM=y
361   # Depend on PCI_SUPPORT to make sure we can select kmod-bcma or kmod-ssb
362   DEPENDS += \
363         @PCI_SUPPORT +kmod-mac80211 \
364         $(if $(CONFIG_PACKAGE_B43_USE_SSB),+kmod-ssb) \
365         $(if $(CONFIG_PACKAGE_B43_USE_BCMA),+kmod-bcma)
366   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/broadcom/b43/b43.ko
367   AUTOLOAD:=$(call AutoProbe,b43)
368   MENU:=1
369 endef
370
371 define KernelPackage/b43/config
372
373 config PACKAGE_B43_USE_SSB
374         select PACKAGE_kmod-ssb
375         tristate
376         depends on !TARGET_brcm47xx && !TARGET_brcm63xx
377         default PACKAGE_kmod-b43 if PACKAGE_B43_BUSES_BCMA_AND_SSB
378         default PACKAGE_kmod-b43 if PACKAGE_B43_BUSES_SSB
379
380 config PACKAGE_B43_USE_BCMA
381         select PACKAGE_kmod-bcma
382         tristate
383         depends on !TARGET_brcm47xx && !TARGET_bcm53xx
384         default PACKAGE_kmod-b43 if PACKAGE_B43_BUSES_BCMA_AND_SSB
385         default PACKAGE_kmod-b43 if PACKAGE_B43_BUSES_BCMA
386
387   if PACKAGE_kmod-b43
388
389         choice
390                 prompt "b43 firmware version"
391                 default B43_FW_5_100_138
392                 help
393                   This option allows you to select the version of the b43 firmware.
394
395         config B43_FW_4_150
396                 bool "Firmware 410.2160 from driver 4.150.10.5 (old stable)"
397                 help
398                   Old stable firmware for BCM43xx devices.
399
400                   If unsure, select this.
401
402         config B43_FW_4_178
403                 bool "Firmware 478.104 from driver 4.178.10.4"
404                 help
405                   Older firmware for BCM43xx devices.
406
407                   If unsure, select the "stable" firmware.
408
409         config B43_FW_5_10
410                 bool "Firmware 508.1084 from driver 5.10.56.27"
411                 help
412                   Older firmware for BCM43xx devices.
413
414                   If unsure, select the "stable" firmware.
415
416         config B43_FW_5_100_138
417                 bool "Firmware 666.2 from driver 5.100.138 (stable)"
418                 help
419                   The currently default firmware for BCM43xx devices.
420
421                   This firmware currently gets most of the testing and is needed for some N-PHY devices.
422
423                   If unsure, select the this firmware.
424
425         config B43_FW_6_30
426                 bool "Firmware 784.2 from driver 6.30.163.46 (experimental)"
427                 help
428                   Newer experimental firmware for BCM43xx devices.
429
430                   This firmware is mostly untested.
431
432                   If unsure, select the "stable" firmware.
433
434         config B43_OPENFIRMWARE
435                 bool "Open FirmWare for WiFi networks"
436                 help
437                   Opensource firmware for BCM43xx devices.
438
439                   Do _not_ select this, unless you know what you are doing.
440                   The Opensource firmware is not suitable for embedded devices, yet.
441                   It does not support QoS, which is bad for AccessPoints.
442                   It does not support hardware crypto acceleration, which is a showstopper
443                   for embedded devices with low CPU resources.
444
445                   If unsure, select the "stable" firmware.
446
447         endchoice
448
449         config B43_FW_SQUASH
450                 bool "Remove unnecessary firmware files"
451                 depends on !B43_OPENFIRMWARE
452                 default y
453                 help
454                   This options allows you to remove unnecessary b43 firmware files
455                   from the final rootfs image. This can reduce the rootfs size by
456                   up to 200k.
457
458                   If unsure, say Y.
459
460         config B43_FW_SQUASH_COREREVS
461                 string "Core revisions to include"
462                 depends on B43_FW_SQUASH
463                 default "5,6,7,8,9,10,11,13,15" if TARGET_brcm47xx_legacy
464                 default "16,28,29,30" if TARGET_brcm47xx_mips74k
465                 default "5,6,7,8,9,10,11,13,15,16,28,29,30"
466                 help
467                   This is a comma seperated list of core revision numbers.
468
469                   Example (keep files for rev5 only):
470                     5
471
472                   Example (keep files for rev5 and rev11):
473                     5,11
474
475         config B43_FW_SQUASH_PHYTYPES
476                 string "PHY types to include"
477                 depends on B43_FW_SQUASH
478                 default "G,N,LP" if TARGET_brcm47xx_legacy
479                 default "N,HT" if TARGET_brcm47xx_mips74k
480                 default "G,N,LP,HT"
481                 help
482                   This is a comma seperated list of PHY types:
483                     A  => A-PHY
484                     AG => Dual A-PHY G-PHY
485                     G  => G-PHY
486                     LP => LP-PHY
487                     N  => N-PHY
488                     HT  => HT-PHY
489                     LCN  => LCN-PHY
490                     LCN40  => LCN40-PHY
491                     AC  => AC-PHY
492
493                   Example (keep files for G-PHY only):
494                     G
495
496                   Example (keep files for G-PHY and N-PHY):
497                     G,N
498
499         choice
500                 prompt "Supported buses"
501                 default PACKAGE_B43_BUSES_BCMA_AND_SSB
502                 help
503                   This allows choosing buses that b43 should support.
504
505         config PACKAGE_B43_BUSES_BCMA_AND_SSB
506                 depends on !TARGET_brcm47xx_legacy && !TARGET_brcm47xx_mips74k && !TARGET_bcm53xx
507                 bool "BCMA and SSB"
508
509         config PACKAGE_B43_BUSES_BCMA
510                 depends on !TARGET_brcm47xx_legacy
511                 bool "BCMA only"
512
513         config PACKAGE_B43_BUSES_SSB
514                 depends on !TARGET_brcm47xx_mips74k && !TARGET_bcm53xx
515                 bool "SSB only"
516
517         endchoice
518
519         config PACKAGE_B43_DEBUG
520                 bool "Enable debug output and debugfs for b43"
521                 default n
522                 help
523                   Enable additional debug output and runtime sanity checks for b43
524                   and enables the debugfs interface.
525
526                   If unsure, say N.
527
528         config PACKAGE_B43_PIO
529                 bool "Enable support for PIO transfer mode"
530                 default n
531                 help
532                   Enable support for using PIO instead of DMA. Unless you have DMA
533                   transfer problems you don't need this.
534
535                   If unsure, say N.
536
537         config PACKAGE_B43_PHY_G
538                 bool "Enable support for G-PHYs"
539                 default n if TARGET_brcm47xx_mips74k
540                 default y
541                 help
542                   Enable support for G-PHY. This includes support for the following devices:
543                   PCI: BCM4306, BCM4311, BCM4318
544                   SoC: BCM5352E, BCM4712
545
546                   If unsure, say Y.
547
548         config PACKAGE_B43_PHY_N
549                 bool "Enable support for N-PHYs"
550                 default y
551                 help
552                   Enable support for N-PHY. This includes support for the following devices:
553                   PCI: BCM4321, BCM4322, BCM43222, BCM43224, BCM43225
554                   SoC: BCM4716, BCM4717, BCM4718
555
556                   Currently only 11g speed is available.
557
558                   If unsure, say Y.
559
560         config PACKAGE_B43_PHY_LP
561                 bool "Enable support for LP-PHYs"
562                 default n if TARGET_brcm47xx_mips74k
563                 default y
564                 help
565                   Enable support for LP-PHY. This includes support for the following devices:
566                   PCI: BCM4312
567                   SoC: BCM5354
568
569                   If unsure, say Y.
570
571         config PACKAGE_B43_PHY_HT
572                 bool "Enable support for HT-PHYs"
573                 default n if TARGET_brcm47xx_legacy
574                 default y
575                 help
576                   Enable support for HT-PHY. This includes support for the following devices:
577                   PCI: BCM4331
578
579                   Currently only 11g speed is available.
580
581                   If unsure, say Y.
582
583         config PACKAGE_B43_PHY_LCN
584                 bool "Enable support for LCN-PHYs"
585                 depends on BROKEN
586                 default n
587                 help
588                   Currently broken.
589
590                   If unsure, say N.
591
592   endif
593 endef
594
595 define KernelPackage/b43/description
596 Kernel module for Broadcom 43xx wireless support (mac80211 stack) new
597 endef
598
599 define KernelPackage/b43legacy
600   $(call KernelPackage/mac80211/Default)
601   TITLE:=Broadcom 43xx-legacy wireless support
602   URL:=https://wireless.wiki.kernel.org/en/users/drivers/b43
603   KCONFIG:= \
604         CONFIG_HW_RANDOM=y
605   DEPENDS+= +kmod-mac80211 +!(TARGET_brcm47xx||TARGET_brcm63xx):kmod-ssb +b43legacy-firmware
606   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/broadcom/b43legacy/b43legacy.ko
607   AUTOLOAD:=$(call AutoProbe,b43legacy)
608   MENU:=1
609 endef
610
611 define KernelPackage/b43legacy/description
612 Kernel module for Broadcom 43xx-legacy wireless support (mac80211 stack) new
613 endef
614
615
616 define KernelPackage/brcmutil
617   $(call KernelPackage/mac80211/Default)
618   TITLE:=Broadcom IEEE802.11n common driver parts
619   URL:=https://wireless.wiki.kernel.org/en/users/drivers/brcm80211
620   DEPENDS+=@PCI_SUPPORT||USB_SUPPORT
621   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil.ko
622   AUTOLOAD:=$(call AutoProbe,brcmutil)
623   MENU:=1
624 endef
625
626 define KernelPackage/brcmutil/description
627  This module contains some common parts needed by Broadcom Wireless drivers brcmsmac and brcmfmac.
628 endef
629
630 define KernelPackage/brcmutil/config
631   if PACKAGE_kmod-brcmutil
632
633         config PACKAGE_BRCM80211_DEBUG
634                 bool "Broadcom wireless driver debugging"
635                 help
636                   Say Y, if you want to debug brcmsmac and brcmfmac wireless driver.
637
638   endif
639 endef
640
641 PKG_BRCMSMAC_FW_NAME:=broadcom-wl
642 PKG_BRCMSMAC_FW_VERSION:=5.100.138
643 PKG_BRCMSMAC_FW_OBJECT:=$(PKG_BRCMSMAC_FW_NAME)-$(PKG_BRCMSMAC_FW_VERSION)/linux/wl_apsta.o
644 PKG_BRCMSMAC_FW_SOURCE:=$(PKG_BRCMSMAC_FW_NAME)-$(PKG_BRCMSMAC_FW_VERSION).tar.bz2
645 PKG_BRCMSMAC_FW_SOURCE_URL:=http://www.lwfinger.com/b43-firmware/
646 PKG_BRCMSMAC_FW_HASH:=f1e7067aac5b62b67b8b6e4c517990277804339ac16065eb13c731ff909ae46f
647
648 define Download/brcmsmac
649   FILE:=$(PKG_BRCMSMAC_FW_SOURCE)
650   URL:=$(PKG_BRCMSMAC_FW_SOURCE_URL)
651   HASH:=$(PKG_BRCMSMAC_FW_HASH)
652 endef
653 $(eval $(call Download,brcmsmac))
654
655 define KernelPackage/brcmsmac
656   $(call KernelPackage/mac80211/Default)
657   TITLE:=Broadcom IEEE802.11n PCIe SoftMAC WLAN driver
658   URL:=https://wireless.wiki.kernel.org/en/users/drivers/brcm80211
659   DEPENDS+= +kmod-mac80211 +@DRIVER_11N_SUPPORT +!TARGET_brcm47xx:kmod-bcma +kmod-lib-cordic +kmod-lib-crc8 +kmod-brcmutil +!BRCMSMAC_USE_FW_FROM_WL:brcmsmac-firmware
660   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcmsmac.ko
661   AUTOLOAD:=$(call AutoProbe,brcmsmac)
662   MENU:=1
663 endef
664
665 define KernelPackage/brcmsmac/description
666  Kernel module for Broadcom IEEE802.11n PCIe Wireless cards
667 endef
668
669 define KernelPackage/brcmsmac/config
670   if PACKAGE_kmod-brcmsmac
671
672         config BRCMSMAC_USE_FW_FROM_WL
673                 bool "Use firmware extracted from broadcom proprietary driver"
674                 default y
675                 help
676                   Instead of using the official brcmsmac firmware a firmware
677                   version 666.2 extracted from the proprietary Broadcom driver
678                   is used. This is needed to get core rev 17 used in bcm4716
679                   to work.
680
681                   If unsure, say Y.
682
683   endif
684 endef
685
686
687 define KernelPackage/brcmfmac
688   $(call KernelPackage/mac80211/Default)
689   TITLE:=Broadcom IEEE802.11n USB FullMAC WLAN driver
690   URL:=https://wireless.wiki.kernel.org/en/users/drivers/brcm80211
691   DEPENDS+= @USB_SUPPORT +kmod-cfg80211 +@DRIVER_11N_SUPPORT +@DRIVER_11AC_SUPPORT +kmod-brcmutil \
692         +BRCMFMAC_SDIO:kmod-mmc @!TARGET_uml \
693         +BRCMFMAC_USB:kmod-usb-core +BRCMFMAC_USB:brcmfmac-firmware-usb
694   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
695   AUTOLOAD:=$(call AutoProbe,brcmfmac)
696 endef
697
698 define KernelPackage/brcmfmac/description
699  Kernel module for Broadcom IEEE802.11n USB Wireless cards
700 endef
701
702 define KernelPackage/brcmfmac/config
703   if PACKAGE_kmod-brcmfmac
704
705         config BRCMFMAC_SDIO
706                 bool "Enable SDIO bus interface support"
707                 default y if TARGET_brcm2708
708                 default n
709                 help
710                   Enable support for cards attached to an SDIO bus.
711                   Select this option only if you are sure that your
712                   board has a Broadcom wireless chip atacched to
713                   that bus.
714
715         config BRCMFMAC_USB
716                 bool "Enable USB bus interface support"
717                 depends on USB_SUPPORT
718                 default y
719                 help
720                   Supported USB connected chipsets:
721                   BCM43235, BCM43236, BCM43238 (all in revision 3 only)
722                   BCM43143, BCM43242, BCM43566, BCM43569
723
724         config BRCMFMAC_PCIE
725                 bool "Enable PCIE bus interface support"
726                 depends on PCI_SUPPORT
727                 default y
728                 help
729                   Supported PCIe connected chipsets:
730                   BCM4354, BCM4356, BCM43567, BCM43570, BCM43602
731
732   endif
733 endef
734
735
736 define KernelPackage/carl9170
737   $(call KernelPackage/mac80211/Default)
738   TITLE:=Driver for Atheros AR9170 USB sticks
739   DEPENDS:=@USB_SUPPORT +kmod-mac80211 +kmod-ath +kmod-usb-core +kmod-input-core +@DRIVER_11N_SUPPORT +carl9170-firmware
740   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/carl9170/carl9170.ko
741   AUTOLOAD:=$(call AutoProbe,carl9170)
742 endef
743
744
745 define KernelPackage/hermes
746   $(call KernelPackage/mac80211/Default)
747   TITLE:=Hermes 802.11b chipset support
748   DEPENDS:=@PCI_SUPPORT||PCMCIA_SUPPORT +kmod-cfg80211 +@DRIVER_WEXT_SUPPORT +kmod-crypto-michael-mic
749   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/orinoco/orinoco.ko
750   AUTOLOAD:=$(call AutoProbe,orinoco)
751 endef
752
753 define KernelPackage/hermes/description
754  Kernel support for Hermes 802.11b chipsets
755 endef
756
757 define KernelPackage/hermes-pci
758   $(call KernelPackage/mac80211/Default)
759   TITLE:=Intersil Prism 2.5 PCI support
760   DEPENDS:=@PCI_SUPPORT +kmod-hermes
761   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/orinoco/orinoco_pci.ko
762   AUTOLOAD:=$(call AutoProbe,orinoco_pci)
763 endef
764
765 define KernelPackage/hermes-pci/description
766  Kernel modules for Intersil Prism 2.5 PCI support
767 endef
768
769 define KernelPackage/hermes-plx
770   $(call KernelPackage/mac80211/Default)
771   TITLE:=PLX9052 based PCI adaptor
772   DEPENDS:=@PCI_SUPPORT +kmod-hermes
773   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/orinoco/orinoco_plx.ko
774   AUTOLOAD:=$(call AutoProbe,orinoco_plx)
775 endef
776
777 define KernelPackage/hermes-plx/description
778  Kernel modules for Hermes in PLX9052 based PCI adaptors
779 endef
780
781 define KernelPackage/hermes-pcmcia
782   $(call KernelPackage/mac80211/Default)
783   TITLE:=Hermes based PCMCIA adaptors
784   DEPENDS:=@PCMCIA_SUPPORT +kmod-hermes @BROKEN
785   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/orinoco/orinoco_cs.ko
786   AUTOLOAD:=$(call AutoProbe,orinoco_cs)
787 endef
788
789 define KernelPackage/hermes-pcmcia/description
790  Kernel modules for Hermes based PCMCIA adaptors
791 endef
792
793
794 define KernelPackage/iwlwifi
795   $(call KernelPackage/mac80211/Default)
796   DEPENDS:= +kmod-mac80211 @PCI_SUPPORT +@DRIVER_11N_SUPPORT +iwlwifi-firmware @!LINUX_3_18
797   TITLE:=Intel AGN Wireless support
798   FILES:= \
799         $(PKG_BUILD_DIR)/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko \
800         $(PKG_BUILD_DIR)/drivers/net/wireless/intel/iwlwifi/dvm/iwldvm.ko \
801         $(PKG_BUILD_DIR)/drivers/net/wireless/intel/iwlwifi/mvm/iwlmvm.ko
802   AUTOLOAD:=$(call AutoProbe,iwlwifi iwldvm iwlmvm)
803   MENU:=1
804 endef
805
806 define KernelPackage/iwlwifi/description
807  iwlwifi kernel module for
808  Intel Wireless WiFi Link 6250AGN Adapter
809  Intel 6000 Series Wi-Fi Adapters (6200AGN and 6300AGN)
810  Intel WiFi Link 1000BGN
811  Intel Wireless WiFi 5150AGN
812  Intel Wireless WiFi 5100AGN, 5300AGN, and 5350AGN
813  Intel 6005 Series Wi-Fi Adapters
814  Intel 6030 Series Wi-Fi Adapters
815  Intel Wireless WiFi Link 6150BGN 2 Adapter
816  Intel 100 Series Wi-Fi Adapters (100BGN and 130BGN)
817  Intel 2000 Series Wi-Fi Adapters
818  Intel 7260 Wi-Fi Adapter
819  Intel 3160 Wi-Fi Adapter
820  Intel 7265 Wi-Fi Adapter
821  Intel 8260 Wi-Fi Adapter
822  Intel 3165 Wi-Fi Adapter
823 endef
824
825 define KernelPackage/iwlwifi/config
826   if PACKAGE_kmod-iwlwifi
827
828         config PACKAGE_IWLWIFI_DEBUG
829                 bool "Enable full debugging output in the iwlwifi driver"
830                 default n
831                 help
832                   This option will enable debug tracing output for the iwlwifi drivers
833
834                   This will result in the kernel module being ~100k larger.  You can
835                   control which debug output is sent to the kernel log by setting the
836                   value in
837
838                         /sys/module/iwlwifi/parameters/debug
839
840                   This entry will only exist if this option is enabled.
841
842                   To set a value, simply echo an 8-byte hex value to the same file:
843
844                           % echo 0x43fff > /sys/module/iwlwifi/parameters/debug
845
846                   You can find the list of debug mask values in:
847                           drivers/net/wireless/intel/iwlwifi/iwl-debug.h
848
849                   If this is your first time using this driver, you should say Y here
850                   as the debug information can assist others in helping you resolve
851                   any problems you may encounter.
852
853         config PACKAGE_IWLWIFI_DEBUGFS
854                 bool "iwlwifi debugfs support"
855                 depends on PACKAGE_MAC80211_DEBUGFS
856                 default n
857                 help
858                   Enable creation of debugfs files for the iwlwifi drivers. This
859                   is a low-impact option that allows getting insight into the
860                   driver's state at runtime.
861
862   endif
863 endef
864
865 define KernelPackage/iwl-legacy
866   $(call KernelPackage/mac80211/Default)
867   DEPENDS:= +kmod-mac80211 @PCI_SUPPORT
868   TITLE:=Intel legacy Wireless support
869   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intel/iwlegacy/iwlegacy.ko
870   AUTOLOAD:=$(call AutoProbe,iwlegacy)
871 endef
872
873 define KernelPackage/iwl-legacy/description
874  iwl-legacy kernel module for legacy Intel wireless support
875 endef
876
877 define KernelPackage/iwl3945
878   $(call KernelPackage/mac80211/Default)
879   DEPENDS:= +kmod-mac80211 +kmod-iwl-legacy +iwl3945-firmware
880   TITLE:=Intel iwl3945 Wireless support
881   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intel/iwlegacy/iwl3945.ko
882   AUTOLOAD:=$(call AutoProbe,iwl3945)
883 endef
884
885 define KernelPackage/iwl3945/description
886  iwl3945 kernel module for Intel 3945 support
887 endef
888
889 define KernelPackage/iwl4965
890   $(call KernelPackage/mac80211/Default)
891   DEPENDS:= +kmod-mac80211 +kmod-iwl-legacy +@DRIVER_11N_SUPPORT +iwl4965-firmware
892   TITLE:=Intel iwl4965 Wireless support
893   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intel/iwlegacy/iwl4965.ko
894   AUTOLOAD:=$(call AutoProbe,iwl4965)
895 endef
896
897 define KernelPackage/iwl4965/description
898  iwl4965 kernel module for Intel 4965 support
899 endef
900
901
902 define KernelPackage/lib80211
903   $(call KernelPackage/mac80211/Default)
904   TITLE:=802.11 Networking stack
905   DEPENDS:=+kmod-cfg80211 +kmod-crypto-hash
906   FILES:= \
907         $(PKG_BUILD_DIR)/net/wireless/lib80211.ko \
908         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_wep.ko \
909         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_ccmp.ko \
910         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_tkip.ko
911   AUTOLOAD:=$(call AutoProbe, \
912         lib80211 \
913         lib80211_crypt_wep \
914         lib80211_crypt_ccmp \
915         lib80211_crypt_tkip \
916   )
917 endef
918
919 define KernelPackage/lib80211/description
920  Kernel modules for 802.11 Networking stack
921  Includes:
922  - lib80211
923  - lib80211_crypt_wep
924  - lib80211_crypt_tkip
925  - lib80211_crytp_ccmp
926 endef
927
928
929 define KernelPackage/libipw
930   $(call KernelPackage/mac80211/Default)
931   TITLE:=libipw for ipw2100 and ipw2200
932   DEPENDS:=@PCI_SUPPORT +kmod-crypto-michael-mic +kmod-lib80211 +kmod-cfg80211 +@DRIVER_WEXT_SUPPORT @!BIG_ENDIAN
933   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intel/ipw2x00/libipw.ko
934   AUTOLOAD:=$(call AutoProbe,libipw)
935 endef
936
937 define KernelPackage/libipw/description
938  Hardware independent IEEE 802.11 networking stack for ipw2100 and ipw2200.
939 endef
940
941 IPW2100_NAME:=ipw2100-fw
942 IPW2100_VERSION:=1.3
943
944 define Download/ipw2100
945   URL:=http://bughost.org/firmware/
946   FILE:=$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
947   HASH:=e1107c455e48d324a616b47a622593bc8413dcce72026f72731c0b03dae3a7a2
948 endef
949 $(eval $(call Download,ipw2100))
950
951 define KernelPackage/ipw2100
952   $(call KernelPackage/mac80211/Default)
953   TITLE:=Intel IPW2100 driver
954   DEPENDS:=@PCI_SUPPORT +kmod-libipw
955   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intel/ipw2x00/ipw2100.ko
956   AUTOLOAD:=$(call AutoProbe,ipw2100)
957 endef
958
959 define KernelPackage/ipw2100/description
960  Kernel support for Intel IPW2100
961  Includes:
962  - ipw2100
963 endef
964
965 IPW2200_NAME:=ipw2200-fw
966 IPW2200_VERSION:=3.1
967
968 define Download/ipw2200
969   URL:=http://bughost.org/firmware/
970   FILE:=$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
971   HASH:=c6818c11c18cc030d55ff83f64b2bad8feef485e7742f84f94a61d811a6258bd
972 endef
973 $(eval $(call Download,ipw2200))
974
975 define KernelPackage/ipw2200
976   $(call KernelPackage/mac80211/Default)
977   TITLE:=Intel IPW2200 driver
978   DEPENDS:=@PCI_SUPPORT +kmod-libipw
979   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intel/ipw2x00/ipw2200.ko
980   AUTOLOAD:=$(call AutoProbe,ipw2200)
981 endef
982
983 define KernelPackage/ipw2200/description
984  Kernel support for Intel IPW2200
985  Includes:
986  - ipw2200
987 endef
988
989
990 define KernelPackage/libertas-usb
991   $(call KernelPackage/mac80211/Default)
992   DEPENDS+= @USB_SUPPORT +kmod-cfg80211 +kmod-usb-core +kmod-lib80211 +@DRIVER_WEXT_SUPPORT +libertas-usb-firmware
993   TITLE:=Marvell 88W8015 Wireless Driver
994   FILES:= \
995         $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/libertas.ko \
996         $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/usb8xxx.ko
997   AUTOLOAD:=$(call AutoProbe,libertas usb8xxx)
998 endef
999
1000 define KernelPackage/libertas-sdio
1001   $(call KernelPackage/mac80211/Default)
1002   DEPENDS+= +kmod-cfg80211 +kmod-lib80211 +kmod-mmc +@DRIVER_WEXT_SUPPORT @!TARGET_uml +libertas-sdio-firmware
1003   TITLE:=Marvell 88W8686 Wireless Driver
1004   FILES:= \
1005         $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/libertas.ko \
1006         $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/libertas_sdio.ko
1007   AUTOLOAD:=$(call AutoProbe,libertas libertas_sdio)
1008 endef
1009
1010 define KernelPackage/libertas-spi
1011   $(call KernelPackage/mac80211/Default)
1012   SUBMENU:=Wireless Drivers
1013   DEPENDS+= +kmod-cfg80211 +kmod-lib80211 +@DRIVER_WEXT_SUPPORT @!TARGET_uml +libertas-spi-firmware
1014   KCONFIG := \
1015         CONFIG_SPI=y \
1016         CONFIG_SPI_MASTER=y
1017   TITLE:=Marvell 88W8686 SPI Wireless Driver
1018   FILES:= \
1019         $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/libertas.ko \
1020         $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/libertas_spi.ko
1021   AUTOLOAD:=$(call AutoProbe,libertas libertas_spi)
1022 endef
1023
1024 define KernelPackage/mac80211-hwsim
1025   $(call KernelPackage/mac80211/Default)
1026   TITLE:=mac80211 HW simulation device
1027   DEPENDS+= +kmod-mac80211 +@DRIVER_11AC_SUPPORT +@DRIVER_11N_SUPPORT +@DRIVER_11W_SUPPORT
1028   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.ko
1029   AUTOLOAD:=$(call AutoProbe,mac80211_hwsim)
1030 endef
1031
1032
1033 define KernelPackage/mt7601u
1034   $(call KernelPackage/mac80211/Default)
1035   TITLE:=MT7601U-based USB dongles Wireless Driver
1036   DEPENDS+= +kmod-mac80211 +@DRIVER_11N_SUPPORT @USB_SUPPORT +kmod-usb-core +mt7601u-firmware
1037   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mediatek/mt7601u/mt7601u.ko
1038   AUTOLOAD:=$(call AutoProbe,mt7601u)
1039 endef
1040
1041
1042 define KernelPackage/mwl8k
1043   $(call KernelPackage/mac80211/Default)
1044   TITLE:=Driver for Marvell TOPDOG 802.11 Wireless cards
1045   URL:=https://wireless.wiki.kernel.org/en/users/drivers/mwl8k
1046   DEPENDS+= @PCI_SUPPORT +kmod-mac80211 +@DRIVER_11N_SUPPORT +mwl8k-firmware
1047   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/marvell/mwl8k.ko
1048   AUTOLOAD:=$(call AutoProbe,mwl8k)
1049 endef
1050
1051 define KernelPackage/mwl8k/description
1052  Kernel modules for Marvell TOPDOG 802.11 Wireless cards
1053 endef
1054
1055
1056 define KernelPackage/mwifiex-pcie
1057   $(call KernelPackage/mac80211/Default)
1058   TITLE:=Driver for Marvell 802.11n/802.11ac PCIe Wireless cards
1059   URL:=https://wireless.wiki.kernel.org/en/users/drivers/mwifiex
1060   DEPENDS+= @PCI_SUPPORT +kmod-mac80211 +@DRIVER_11N_SUPPORT +@DRIVER_11AC_SUPPORT +mwifiex-pcie-firmware
1061   FILES:= \
1062         $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/mwifiex/mwifiex.ko \
1063         $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/mwifiex/mwifiex_pcie.ko
1064   AUTOLOAD:=$(call AutoProbe,mwifiex_pcie)
1065 endef
1066
1067 define KernelPackage/mwifiex-pcie/description
1068  Kernel modules for Marvell 802.11n/802.11ac PCIe Wireless cards
1069 endef
1070
1071 define KernelPackage/mwifiex-sdio
1072   $(call KernelPackage/mac80211/Default)
1073   TITLE:=Driver for Marvell 802.11n/802.11ac SDIO Wireless cards
1074   URL:=https://wireless.wiki.kernel.org/en/users/drivers/mwifiex
1075   DEPENDS+= +kmod-mmc +kmod-mac80211 +@DRIVER_11N_SUPPORT +@DRIVER_11AC_SUPPORT +mwifiex-sdio-firmware
1076   FILES:= \
1077         $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/mwifiex/mwifiex.ko \
1078         $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/mwifiex/mwifiex_sdio.ko
1079   AUTOLOAD:=$(call AutoProbe,mwifiex_sdio)
1080 endef
1081
1082 define KernelPackage/mwifiex-sdio/description
1083  Kernel modules for Marvell 802.11n/802.11ac SDIO Wireless cards
1084 endef
1085
1086 define KernelPackage/p54/Default
1087   $(call KernelPackage/mac80211/Default)
1088   TITLE:=Prism54 Drivers
1089 endef
1090
1091 define KernelPackage/p54/description
1092   Kernel module for Prism54 chipsets (mac80211)
1093 endef
1094
1095 define KernelPackage/p54-common
1096   $(call KernelPackage/p54/Default)
1097   DEPENDS+= @PCI_SUPPORT||@USB_SUPPORT||@TARGET_omap24xx +kmod-mac80211 +kmod-lib-crc-ccitt
1098   TITLE+= (COMMON)
1099   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/p54/p54common.ko
1100 endef
1101
1102 define KernelPackage/p54-pci
1103   $(call KernelPackage/p54/Default)
1104   TITLE+= (PCI)
1105   DEPENDS+= @PCI_SUPPORT +kmod-p54-common +p54-pci-firmware
1106   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/p54/p54pci.ko
1107   AUTOLOAD:=$(call AutoProbe,p54pci)
1108 endef
1109
1110 define KernelPackage/p54-usb
1111   $(call KernelPackage/p54/Default)
1112   TITLE+= (USB)
1113   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-p54-common +p54-usb-firmware
1114   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/p54/p54usb.ko
1115   AUTOLOAD:=$(call AutoProbe,p54usb)
1116 endef
1117
1118 define KernelPackage/p54-spi
1119   $(call KernelPackage/p54/Default)
1120   TITLE+= (SPI)
1121   DEPENDS+= @TARGET_omap24xx +kmod-p54-common +p54-spi-firmware
1122   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/p54/p54spi.ko
1123   AUTOLOAD:=$(call AutoProbe,p54spi)
1124 endef
1125
1126 define KernelPackage/rt2x00/Default
1127   $(call KernelPackage/mac80211/Default)
1128   TITLE:=Ralink Drivers for RT2x00 cards
1129 endef
1130
1131 define KernelPackage/rt2x00-lib
1132 $(call KernelPackage/rt2x00/Default)
1133   DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-mac80211 +kmod-lib-crc-itu-t
1134   TITLE+= (LIB)
1135   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2x00lib.ko
1136   MENU:=1
1137 endef
1138
1139 define KernelPackage/rt2x00-lib/config
1140   if PACKAGE_kmod-rt2x00-lib
1141
1142         config PACKAGE_RT2X00_LIB_DEBUGFS
1143                 bool "Enable rt2x00 debugfs support"
1144                 depends on PACKAGE_MAC80211_DEBUGFS
1145                 help
1146                   Enable creation of debugfs files for the rt2x00 drivers.
1147                   These debugfs files support both reading and writing of the
1148                   most important register types of the rt2x00 hardware.
1149
1150         config PACKAGE_RT2X00_DEBUG
1151                 bool "Enable rt2x00 debug output"
1152                 help
1153                   Enable debugging output for all rt2x00 modules
1154
1155   endif
1156 endef
1157
1158 define KernelPackage/rt2x00-mmio
1159 $(call KernelPackage/rt2x00/Default)
1160   DEPENDS+= @(PCI_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +kmod-eeprom-93cx6
1161   HIDDEN:=1
1162   TITLE+= (MMIO)
1163   FILES:= $(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2x00mmio.ko
1164 endef
1165
1166 define KernelPackage/rt2x00-pci
1167 $(call KernelPackage/rt2x00/Default)
1168   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-mmio +kmod-rt2x00-lib
1169   HIDDEN:=1
1170   TITLE+= (PCI)
1171   FILES:= $(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2x00pci.ko
1172   AUTOLOAD:=$(call AutoProbe,rt2x00pci)
1173 endef
1174
1175 define KernelPackage/rt2x00-usb
1176 $(call KernelPackage/rt2x00/Default)
1177   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-lib +kmod-usb-core
1178   HIDDEN:=1
1179   TITLE+= (USB)
1180   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2x00usb.ko
1181   AUTOLOAD:=$(call AutoProbe,rt2x00usb)
1182 endef
1183
1184 define KernelPackage/rt2800-lib
1185 $(call KernelPackage/rt2x00/Default)
1186   DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +kmod-lib-crc-ccitt +@DRIVER_11N_SUPPORT
1187   HIDDEN:=1
1188   TITLE+= (rt2800 LIB)
1189   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2800lib.ko
1190 endef
1191
1192 define KernelPackage/rt2400-pci
1193 $(call KernelPackage/rt2x00/Default)
1194   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
1195   TITLE+= (RT2400 PCI)
1196   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2400pci.ko
1197   AUTOLOAD:=$(call AutoProbe,rt2400pci)
1198 endef
1199
1200 define KernelPackage/rt2500-pci
1201 $(call KernelPackage/rt2x00/Default)
1202   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
1203   TITLE+= (RT2500 PCI)
1204   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2500pci.ko
1205   AUTOLOAD:=$(call AutoProbe,rt2500pci)
1206 endef
1207
1208 define KernelPackage/rt2500-usb
1209 $(call KernelPackage/rt2x00/Default)
1210   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb
1211   TITLE+= (RT2500 USB)
1212   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2500usb.ko
1213   AUTOLOAD:=$(call AutoProbe,rt2500usb)
1214 endef
1215
1216 define KernelPackage/rt2800-mmio
1217 $(call KernelPackage/rt2x00/Default)
1218   TITLE += (RT28xx/RT3xxx MMIO)
1219   DEPENDS += +kmod-rt2800-lib +kmod-rt2x00-mmio
1220   HIDDEN:=1
1221   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2800mmio.ko
1222 endef
1223
1224 define KernelPackage/rt2800-soc
1225 $(call KernelPackage/rt2x00/Default)
1226   DEPENDS += @(TARGET_ramips_rt288x||TARGET_ramips_rt305x||TARGET_ramips_rt3883||TARGET_ramips_mt7620) +kmod-rt2800-mmio +kmod-rt2800-lib
1227   TITLE += (RT28xx/RT3xxx SoC)
1228   FILES := \
1229         $(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2x00soc.ko \
1230         $(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2800soc.ko
1231   AUTOLOAD:=$(call AutoProbe,rt2800soc)
1232 endef
1233
1234 define KernelPackage/rt2800-pci
1235 $(call KernelPackage/rt2x00/Default)
1236   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci +kmod-rt2800-lib +kmod-rt2800-mmio +rt2800-pci-firmware
1237   TITLE+= (RT2860 PCI)
1238   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2800pci.ko
1239   AUTOLOAD:=$(call AutoProbe,rt2800pci)
1240 endef
1241
1242 define KernelPackage/rt2800-usb
1243 $(call KernelPackage/rt2x00/Default)
1244   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb +kmod-rt2800-lib +kmod-lib-crc-ccitt +rt2800-usb-firmware
1245   TITLE+= (RT2870 USB)
1246   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2800usb.ko
1247   AUTOLOAD:=$(call AutoProbe,rt2800usb)
1248 endef
1249
1250
1251 define KernelPackage/rt61-pci
1252 $(call KernelPackage/rt2x00/Default)
1253   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci +rt61-pci-firmware
1254   TITLE+= (RT2x61 PCI)
1255   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt61pci.ko
1256   AUTOLOAD:=$(call AutoProbe,rt61pci)
1257 endef
1258
1259 define KernelPackage/rt73-usb
1260   $(call KernelPackage/rt2x00/Default)
1261   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb +rt73-usb-firmware
1262   TITLE+= (RT73 USB)
1263   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt73usb.ko
1264   AUTOLOAD:=$(call AutoProbe,rt73usb)
1265 endef
1266
1267
1268 define KernelPackage/rtl818x/Default
1269   $(call KernelPackage/mac80211/Default)
1270   TITLE:=Realtek Drivers for RTL818x devices
1271   URL:=https://wireless.wiki.kernel.org/en/users/drivers/rtl8187
1272   DEPENDS+= +kmod-eeprom-93cx6 +kmod-mac80211
1273 endef
1274
1275 define KernelPackage/rtl8180
1276   $(call KernelPackage/rtl818x/Default)
1277   DEPENDS+= @PCI_SUPPORT
1278   TITLE+= (RTL8180 PCI)
1279   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtl818x/rtl8180/rtl818x_pci.ko
1280   AUTOLOAD:=$(call AutoProbe,rtl818x_pci)
1281 endef
1282
1283 define KernelPackage/rtl8187
1284 $(call KernelPackage/rtl818x/Default)
1285   DEPENDS+= @USB_SUPPORT +kmod-usb-core
1286   TITLE+= (RTL8187 USB)
1287   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8187.ko
1288   AUTOLOAD:=$(call AutoProbe,rtl8187)
1289 endef
1290
1291 define KernelPackage/rtlwifi/config
1292         config PACKAGE_RTLWIFI_DEBUG
1293                 bool "Realtek wireless debugging"
1294                 depends on PACKAGE_kmod-rtlwifi
1295                 help
1296                   Say Y, if you want to debug realtek wireless drivers.
1297
1298 endef
1299
1300 define KernelPackage/rtlwifi
1301   $(call KernelPackage/mac80211/Default)
1302   TITLE:=Realtek common driver part
1303   DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT) +kmod-mac80211 +@DRIVER_11N_SUPPORT
1304   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtlwifi/rtlwifi.ko
1305   HIDDEN:=1
1306 endef
1307
1308 define KernelPackage/rtlwifi-pci
1309   $(call KernelPackage/mac80211/Default)
1310   TITLE:=Realtek common driver part (PCI support)
1311   DEPENDS+= @PCI_SUPPORT +kmod-rtlwifi
1312   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtlwifi/rtl_pci.ko
1313   AUTOLOAD:=$(call AutoProbe,rtl_pci)
1314   HIDDEN:=1
1315 endef
1316
1317 define KernelPackage/rtlwifi-btcoexist
1318   $(call KernelPackage/mac80211/Default)
1319   TITLE:=Realtek BT coexist support
1320   DEPENDS+= +kmod-rtlwifi
1321   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist.ko
1322   AUTOLOAD:=$(call AutoProbe,btcoexist)
1323   HIDDEN:=1
1324 endef
1325
1326 define KernelPackage/rtlwifi-usb
1327   $(call KernelPackage/mac80211/Default)
1328   TITLE:=Realtek common driver part (USB support)
1329   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-rtlwifi
1330   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtlwifi/rtl_usb.ko
1331   AUTOLOAD:=$(call AutoProbe,rtl_usb)
1332   HIDDEN:=1
1333 endef
1334
1335 define KernelPackage/rtl8192c-common
1336   $(call KernelPackage/mac80211/Default)
1337   TITLE:=Realtek RTL8192CE/RTL8192CU common support module
1338   DEPENDS+= +kmod-rtlwifi
1339   FILES:= $(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common.ko
1340   HIDDEN:=1
1341 endef
1342
1343 define KernelPackage/rtl8192ce
1344   $(call KernelPackage/mac80211/Default)
1345   TITLE:=Realtek RTL8192CE/RTL8188CE support
1346   DEPENDS+= +kmod-rtlwifi-pci +kmod-rtl8192c-common +rtl8192ce-firmware
1347   FILES:= $(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/rtl8192ce.ko
1348   AUTOLOAD:=$(call AutoProbe,rtl8192ce)
1349 endef
1350
1351 define KernelPackage/rtl8192se
1352   $(call KernelPackage/mac80211/Default)
1353   TITLE:=Realtek RTL8192SE/RTL8191SE support
1354   DEPENDS+= +kmod-rtlwifi-pci +rtl8192se-firmware
1355   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtlwifi/rtl8192se/rtl8192se.ko
1356   AUTOLOAD:=$(call AutoProbe,rtl8192se)
1357 endef
1358
1359 define KernelPackage/rtl8192de
1360   $(call KernelPackage/mac80211/Default)
1361   TITLE:=Realtek RTL8192DE/RTL8188DE support
1362   DEPENDS+= +kmod-rtlwifi-pci +rtl8192de-firmware
1363   FILES:= $(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtlwifi/rtl8192de/rtl8192de.ko
1364   AUTOLOAD:=$(call AutoProbe,rtl8192de)
1365 endef
1366
1367 define KernelPackage/rtl8192cu
1368   $(call KernelPackage/mac80211/Default)
1369   TITLE:=Realtek RTL8192CU/RTL8188CU support
1370   DEPENDS+= +kmod-rtlwifi-usb +kmod-rtl8192c-common +rtl8192cu-firmware
1371   FILES:= $(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/rtl8192cu.ko
1372   AUTOLOAD:=$(call AutoProbe,rtl8192cu)
1373 endef
1374
1375 define KernelPackage/rtl8821ae
1376   $(call KernelPackage/mac80211/Default)
1377   TITLE:=Realtek RTL8821AE support
1378   DEPENDS+= +kmod-rtlwifi-btcoexist +kmod-rtlwifi-pci +rtl8821ae-firmware
1379   FILES:= $(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/rtl8821ae.ko
1380   AUTOLOAD:=$(call AutoProbe,rtl8821ae)
1381 endef
1382
1383 define KernelPackage/rtl8xxxu
1384   $(call KernelPackage/mac80211/Default)
1385   TITLE:=alternative Realtek RTL8XXXU support
1386   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-mac80211
1387   FILES:= $(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.ko
1388   AUTOLOAD:=$(call AutoProbe,rtl8xxxu)
1389 endef
1390
1391 define KernelPackage/rtl8xxxu/description
1392   This is an alternative driver for various Realtek RTL8XXX
1393   parts written to utilize the Linux mac80211 stack.
1394   The driver is known to work with a number of RTL8723AU,
1395   RL8188CU, RTL8188RU, RTL8191CU, and RTL8192CU devices
1396
1397   This driver is under development and has a limited feature
1398   set. In particular it does not yet support 40MHz channels
1399   and power management. However it should have a smaller
1400   memory footprint than the vendor drivers and benetifs
1401   from the in kernel mac80211 stack.
1402
1403   It can coexist with drivers from drivers/staging/rtl8723au,
1404   drivers/staging/rtl8192u, and drivers/net/wireless/rtlwifi,
1405   but you will need to control which module you wish to load.
1406
1407   RTL8XXXU_UNTESTED is enabled
1408   This option enables detection of Realtek 8723/8188/8191/8192 WiFi
1409   USB devices which have not been tested directly by the driver
1410   author or reported to be working by third parties.
1411
1412   Please report your results!
1413 endef
1414
1415
1416 define KernelPackage/wlcore
1417   $(call KernelPackage/mac80211/Default)
1418   TITLE:=TI common driver part
1419   DEPENDS+= +kmod-mmc +kmod-mac80211 +@DRIVER_11N_SUPPORT
1420   FILES:= \
1421         $(PKG_BUILD_DIR)/drivers/net/wireless/ti/wlcore/wlcore.ko \
1422         $(PKG_BUILD_DIR)/drivers/net/wireless/ti/wlcore/wlcore_sdio.ko
1423   AUTOLOAD:=$(call AutoProbe,wlcore wlcore_sdio)
1424 endef
1425
1426 define KernelPackage/wlcore/description
1427  This module contains some common parts needed by TI Wireless drivers.
1428 endef
1429
1430 define KernelPackage/wl12xx
1431   $(call KernelPackage/mac80211/Default)
1432   TITLE:=Driver for TI WL12xx
1433   URL:=https://wireless.wiki.kernel.org/en/users/drivers/wl12xx
1434   DEPENDS+= +kmod-wlcore +wl12xx-firmware
1435   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ti/wl12xx/wl12xx.ko
1436   AUTOLOAD:=$(call AutoProbe,wl12xx)
1437 endef
1438
1439 define KernelPackage/wl12xx/description
1440  Kernel modules for TI WL12xx
1441 endef
1442
1443 define KernelPackage/wl18xx
1444   $(call KernelPackage/mac80211/Default)
1445   TITLE:=Driver for TI WL18xx
1446   URL:=https://wireless.wiki.kernel.org/en/users/drivers/wl18xx
1447   DEPENDS+= +kmod-wlcore +wl18xx-firmware
1448   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ti/wl18xx/wl18xx.ko
1449   AUTOLOAD:=$(call AutoProbe,wl18xx)
1450 endef
1451
1452 define KernelPackage/wl18xx/description
1453  Kernel modules for TI WL18xx
1454 endef
1455
1456
1457 ZD1211FW_NAME:=zd1211-firmware
1458 ZD1211FW_VERSION:=1.4
1459 define Download/zd1211rw
1460   FILE:=$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
1461   URL:=@SF/zd1211/
1462   HASH:=866308f6f59f7075f075d4959dff2ede47735c751251fecd1496df1ba4d338e1
1463 endef
1464 $(eval $(call Download,zd1211rw))
1465
1466 define KernelPackage/zd1211rw
1467   $(call KernelPackage/mac80211/Default)
1468   TITLE:=Zydas ZD1211 support
1469   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-mac80211
1470   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/zydas/zd1211rw/zd1211rw.ko
1471   AUTOLOAD:=$(call AutoProbe,zd1211rw)
1472 endef
1473
1474
1475
1476 config_package=$(if $(CONFIG_PACKAGE_kmod-$(1)),m)
1477
1478 config-y:= \
1479         WLAN \
1480         NL80211_TESTMODE \
1481         CFG80211_WEXT \
1482         CFG80211_INTERNAL_REGDB \
1483         CFG80211_CERTIFICATION_ONUS \
1484         MAC80211_RC_MINSTREL \
1485         MAC80211_RC_MINSTREL_HT \
1486         MAC80211_RC_MINSTREL_VHT \
1487         MAC80211_RC_DEFAULT_MINSTREL \
1488         WLAN_VENDOR_ADMTEK \
1489         WLAN_VENDOR_ATH \
1490         WLAN_VENDOR_ATMEL \
1491         WLAN_VENDOR_BROADCOM \
1492         WLAN_VENDOR_CISCO \
1493         WLAN_VENDOR_INTEL \
1494         WLAN_VENDOR_INTERSIL \
1495         WLAN_VENDOR_MARVELL \
1496         WLAN_VENDOR_MEDIATEK \
1497         WLAN_VENDOR_RALINK \
1498         WLAN_VENDOR_REALTEK \
1499         WLAN_VENDOR_RSI \
1500         WLAN_VENDOR_ST \
1501         WLAN_VENDOR_TI \
1502         WLAN_VENDOR_ZYDAS \
1503
1504 config-$(call config_package,cfg80211) += CFG80211
1505
1506 config-$(call config_package,mac80211) += MAC80211
1507 config-$(CONFIG_PACKAGE_MAC80211_MESH) += MAC80211_MESH
1508 ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
1509   config-y += \
1510         CFG80211_DEBUGFS \
1511         MAC80211_DEBUGFS \
1512         ATH9K_DEBUGFS \
1513         ATH9K_HTC_DEBUGFS \
1514         ATH10K_DEBUGFS \
1515         CARL9170_DEBUGFS \
1516         ATH5K_DEBUG
1517 endif
1518
1519 ifdef CONFIG_PACKAGE_MAC80211_TRACING
1520   config-y += \
1521         ATH10K_TRACING \
1522         ATH6KL_TRACING \
1523         ATH_TRACEPOINTS \
1524         WIL6210_TRACING \
1525         ATH5K_TRACER \
1526         IWLWIFI_DEVICE_TRACING
1527 endif
1528
1529 config-$(call config_package,lib80211) += LIB80211 LIB80211_CRYPT_WEP LIB80211_CRYPT_CCMP LIB80211_CRYPT_TKIP
1530
1531 config-$(call config_package,airo) += AIRO
1532
1533 config-$(call config_package,ath) += ATH_CARDS ATH_COMMON
1534 config-$(CONFIG_PACKAGE_ATH_DEBUG) += ATH_DEBUG ATH10K_DEBUG ATH9K_STATION_STATISTICS
1535 config-$(CONFIG_PACKAGE_ATH_DFS) += ATH9K_DFS_CERTIFIED ATH10K_DFS_CERTIFIED
1536
1537 config-$(call config_package,ath9k) += ATH9K
1538 config-$(call config_package,ath9k-common) += ATH9K_COMMON
1539 config-$(CONFIG_TARGET_ar71xx) += ATH9K_AHB
1540 config-$(CONFIG_TARGET_ipq806x) += ATH10K_AHB
1541 config-$(CONFIG_PCI) += ATH9K_PCI
1542 config-$(CONFIG_ATH_USER_REGD) += ATH_USER_REGD
1543 config-$(CONFIG_ATH9K_SUPPORT_PCOEM) += ATH9K_PCOEM
1544 config-$(CONFIG_ATH9K_TX99) += ATH9K_TX99
1545 config-$(CONFIG_ATH9K_UBNTHSR) += ATH9K_UBNTHSR
1546
1547 config-$(call config_package,ath9k-htc) += ATH9K_HTC
1548 config-$(call config_package,ath10k) += ATH10K ATH10K_PCI
1549
1550 config-$(call config_package,ath5k) += ATH5K
1551 ifdef CONFIG_TARGET_ath25
1552   config-y += ATH5K_AHB
1553 else
1554   config-y += ATH5K_PCI
1555 endif
1556
1557 config-$(call config_package,carl9170) += CARL9170
1558
1559 config-$(call config_package,b43) += B43
1560 config-$(CONFIG_PACKAGE_B43_BUSES_BCMA_AND_SSB) += B43_BUSES_BCMA_AND_SSB
1561 config-$(CONFIG_PACKAGE_B43_BUSES_BCMA) += B43_BUSES_BCMA
1562 config-$(CONFIG_PACKAGE_B43_BUSES_SSB) += B43_BUSES_SSB
1563 config-$(CONFIG_PACKAGE_B43_PHY_G) += B43_PHY_G
1564 config-$(CONFIG_PACKAGE_B43_PHY_N) += B43_PHY_N
1565 config-$(CONFIG_PACKAGE_B43_PHY_LP) += B43_PHY_LP
1566 config-$(CONFIG_PACKAGE_B43_PHY_HT) += B43_PHY_HT
1567 config-$(CONFIG_PACKAGE_B43_PIO) += B43_PIO
1568 config-$(CONFIG_PACKAGE_B43_DEBUG) += B43_DEBUG
1569
1570 config-$(call config_package,b43legacy) += B43LEGACY
1571 config-y += B43LEGACY_DMA_MODE
1572
1573 config-$(call config_package,brcmutil) += BRCMUTIL
1574 config-$(call config_package,brcmsmac) += BRCMSMAC
1575 config-$(call config_package,brcmfmac) += BRCMFMAC
1576 config-$(CONFIG_BRCMFMAC_SDIO) += BRCMFMAC_SDIO
1577 config-$(CONFIG_BRCMFMAC_USB) += BRCMFMAC_USB
1578 config-$(CONFIG_BRCMFMAC_PCIE) += BRCMFMAC_PCIE
1579 config-$(CONFIG_PACKAGE_BRCM80211_DEBUG) += BRCMDBG
1580
1581 config-$(call config_package,mac80211-hwsim) += MAC80211_HWSIM
1582 config-$(call config_package,mt7601u) += MT7601U
1583 config-y += WL_MEDIATEK
1584
1585 config-$(call config_package,rt2x00-lib) += RT2X00 RT2X00_LIB
1586 config-$(call config_package,rt2x00-pci) += RT2X00_LIB_PCI
1587 config-$(call config_package,rt2x00-mmio) += RT2X00_LIB_MMIO
1588 config-$(call config_package,rt2x00-usb) += RT2X00_LIB_USB
1589 config-$(CONFIG_PACKAGE_RT2X00_LIB_DEBUGFS) += RT2X00_LIB_DEBUGFS
1590 config-$(CONFIG_PACKAGE_RT2X00_DEBUG) += RT2X00_DEBUG
1591
1592 config-$(call config_package,rt2400-pci) += RT2400PCI
1593 config-$(call config_package,rt2500-pci) += RT2500PCI
1594 config-$(call config_package,rt2500-usb) += RT2500USB
1595 config-$(call config_package,rt61-pci) += RT61PCI
1596 config-$(call config_package,rt73-usb) += RT73USB
1597
1598 config-$(call config_package,rt2800-lib) += RT2800_LIB
1599
1600 config-$(call config_package,rt2800-soc) += RT2800SOC
1601 config-$(call config_package,rt2800-pci) += RT2800PCI
1602 config-y += RT2800PCI_RT33XX RT2800PCI_RT35XX RT2800PCI_RT53XX RT2800PCI_RT3290
1603
1604 config-$(call config_package,rt2800-usb) += RT2800USB
1605 config-y += RT2800USB_RT33XX RT2800USB_RT35XX RT2800USB_RT3573 RT2800USB_RT53XX RT2800USB_RT55XX RT2800USB_UNKNOWN
1606
1607 config-$(call config_package,iwl-legacy) += IWLEGACY
1608 config-$(call config_package,iwl3945) += IWL3945
1609 config-$(call config_package,iwl4965) += IWL4965
1610 config-$(call config_package,iwlwifi) += IWLWIFI IWLDVM IWLMVM
1611 config-$(CONFIG_PACKAGE_IWLWIFI_DEBUG)+= IWLWIFI_DEBUG
1612 config-$(CONFIG_PACKAGE_IWLWIFI_DEBUGFS)+= IWLWIFI_DEBUGFS
1613
1614 config-$(call config_package,libipw) += LIBIPW
1615 config-$(call config_package,ipw2100) += IPW2100
1616 config-$(call config_package,ipw2200) += IPW2200
1617
1618 config-$(call config_package,p54-common) += P54_COMMON
1619 config-$(call config_package,p54-pci) += P54_PCI
1620 config-$(call config_package,p54-usb) += P54_USB
1621 config-$(call config_package,p54-spi) += P54_SPI
1622
1623 config-$(call config_package,hermes) += HERMES
1624 config-$(call config_package,hermes-pci) += PCI_HERMES
1625 config-$(call config_package,hermes-plx) += PLX_HERMES
1626 config-$(call config_package,hermes-pcmcia) += PCMCIA_HERMES
1627 config-y += HERMES_PRISM
1628
1629 config-$(call config_package,adm8211) += ADM8211
1630 config-$(call config_package,libertas-sdio) += LIBERTAS LIBERTAS_SDIO
1631 config-$(call config_package,libertas-usb) += LIBERTAS LIBERTAS_USB
1632 config-$(call config_package,libertas-spi) += LIBERTAS LIBERTAS_SPI
1633 config-$(call config_package,mwl8k) += MWL8K
1634 config-$(call config_package,mwifiex-pcie) += MWIFIEX MWIFIEX_PCIE
1635 config-$(call config_package,mwifiex-sdio) += MWIFIEX MWIFIEX_SDIO
1636 config-$(call config_package,rtl8180) += RTL8180
1637 config-$(call config_package,rtl8187) += RTL8187
1638 config-$(call config_package,wlcore) += WLCORE WLCORE_SDIO
1639 config-$(call config_package,wl12xx) += WL12XX
1640 config-$(call config_package,wl18xx) += WL18XX
1641 config-y += WL_TI WILINK_PLATFORM_DATA
1642 config-$(call config_package,zd1211rw) += ZD1211RW
1643
1644 config-$(call config_package,rtlwifi) += RTL_CARDS RTLWIFI
1645 config-$(call config_package,rtlwifi-pci) += RTLWIFI_PCI
1646 config-$(call config_package,rtlwifi-btcoexist) += RTLBTCOEXIST
1647 config-$(call config_package,rtlwifi-usb) += RTLWIFI_USB
1648 config-$(call config_package,rtl8192c-common) += RTL8192C_COMMON
1649 config-$(call config_package,rtl8192ce) += RTL8192CE
1650 config-$(call config_package,rtl8192se) += RTL8192SE
1651 config-$(call config_package,rtl8192de) += RTL8192DE
1652 config-$(call config_package,rtl8192cu) += RTL8192CU
1653 config-$(call config_package,rtl8821ae) += RTL8821AE
1654 config-$(CONFIG_PACKAGE_RTLWIFI_DEBUG) += RTLWIFI_DEBUG
1655
1656 config-$(call config_package,rtl8xxxu) += RTL8XXXU
1657 config-y += RTL8XXXU_UNTESTED
1658
1659 config-$(CONFIG_LEDS_TRIGGERS) += MAC80211_LEDS B43_LEDS B43LEGACY_LEDS
1660
1661 MAKE_OPTS:= -C "$(PKG_BUILD_DIR)" \
1662         CROSS_COMPILE="$(KERNEL_CROSS)" \
1663         ARCH="$(LINUX_KARCH)" \
1664         EXTRA_CFLAGS="-I$(PKG_BUILD_DIR)/include $(IREMAP_CFLAGS)" \
1665         KLIB_BUILD="$(LINUX_DIR)" \
1666         MODPROBE=true \
1667         KLIB=$(TARGET_MODULES_DIR) \
1668         KERNEL_SUBLEVEL=$(lastword $(subst ., ,$(KERNEL_PATCHVER))) \
1669         KBUILD_LDFLAGS_MODULE_PREREQ=
1670
1671 ifneq ($(findstring c,$(OPENWRT_VERBOSE)),)
1672   MAKE_OPTS += V=1
1673 endif
1674
1675 define ConfigVars
1676 $(subst $(space),,$(foreach opt,$(config-$(1)),CPTCFG_$(opt)=$(1)
1677 ))
1678 endef
1679
1680 define mac80211_config
1681 $(call ConfigVars,m)$(call ConfigVars,y)
1682 endef
1683 $(eval $(call shexport,mac80211_config))
1684
1685 define Build/Prepare
1686         rm -rf $(PKG_BUILD_DIR)
1687         mkdir -p $(PKG_BUILD_DIR)
1688         $(PKG_UNPACK)
1689         $(Build/Patch)
1690         $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
1691         $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
1692         $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
1693         rm -rf \
1694                 $(PKG_BUILD_DIR)/include/linux/ssb \
1695                 $(PKG_BUILD_DIR)/include/linux/bcma \
1696                 $(PKG_BUILD_DIR)/include/net/bluetooth
1697
1698         rm -f \
1699                 $(PKG_BUILD_DIR)/include/linux/cordic.h \
1700                 $(PKG_BUILD_DIR)/include/linux/crc8.h \
1701                 $(PKG_BUILD_DIR)/include/linux/eeprom_93cx6.h \
1702                 $(PKG_BUILD_DIR)/include/linux/wl12xx.h \
1703                 $(PKG_BUILD_DIR)/include/linux/spi/libertas_spi.h \
1704                 $(PKG_BUILD_DIR)/include/net/ieee80211.h \
1705                 $(PKG_BUILD_DIR)/backport-include/linux/bcm47xx_nvram.h
1706
1707         echo 'compat-wireless-$(PKG_VERSION)-$(PKG_RELEASE)-$(REVISION)' > $(PKG_BUILD_DIR)/compat_version
1708         $(CP) ./files/regdb.txt $(PKG_BUILD_DIR)/net/wireless/db.txt
1709 endef
1710
1711 ifneq ($(CONFIG_PACKAGE_kmod-cfg80211)$(CONFIG_PACKAGE_kmod-lib80211),)
1712  define Build/Compile/kmod
1713         rm -rf $(PKG_BUILD_DIR)/modules
1714         +$(MAKE) $(PKG_JOBS) $(MAKE_OPTS) modules
1715  endef
1716 endif
1717
1718 define Build/Configure
1719         cmp $(PKG_BUILD_DIR)/include/linux/ath9k_platform.h $(LINUX_DIR)/include/linux/ath9k_platform.h
1720         cmp $(PKG_BUILD_DIR)/include/linux/ath5k_platform.h $(LINUX_DIR)/include/linux/ath5k_platform.h
1721         cmp $(PKG_BUILD_DIR)/include/linux/rt2x00_platform.h $(LINUX_DIR)/include/linux/rt2x00_platform.h
1722 endef
1723
1724 define Build/Compile
1725         $(SH_FUNC) var2file "$(call shvar,mac80211_config)" $(PKG_BUILD_DIR)/.config
1726         $(MAKE) $(MAKE_OPTS) allnoconfig
1727         $(call Build/Compile/kmod)
1728 endef
1729
1730 define Build/InstallDev
1731         mkdir -p \
1732                 $(1)/usr/include/mac80211 \
1733                 $(1)/usr/include/mac80211-backport \
1734                 $(1)/usr/include/mac80211/ath \
1735                 $(1)/usr/include/net/mac80211
1736         $(CP) $(PKG_BUILD_DIR)/net/mac80211/*.h $(PKG_BUILD_DIR)/include/* $(1)/usr/include/mac80211/
1737         $(CP) $(PKG_BUILD_DIR)/backport-include/* $(1)/usr/include/mac80211-backport/
1738         $(CP) $(PKG_BUILD_DIR)/net/mac80211/rate.h $(1)/usr/include/net/mac80211/
1739         $(CP) $(PKG_BUILD_DIR)/drivers/net/wireless/ath/*.h $(1)/usr/include/mac80211/ath/
1740         rm -f $(1)/usr/include/mac80211-backport/linux/module.h
1741 endef
1742
1743
1744 define KernelPackage/b43/install
1745         rm -rf $(1)/lib/firmware/
1746 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1747         tar xzf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
1748 else
1749         tar xjf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
1750 endif
1751         $(INSTALL_DIR) $(1)/lib/firmware/
1752 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1753         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/"
1754         $(INSTALL_DIR) $(1)/lib/firmware/b43-open/
1755         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/ucode5.fw $(1)/lib/firmware/b43-open/ucode5.fw
1756         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0bsinitvals5.fw $(1)/lib/firmware/b43-open/b0g0bsinitvals5.fw
1757         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0initvals5.fw $(1)/lib/firmware/b43-open/b0g0initvals5.fw
1758 else
1759         b43-fwcutter -w $(1)/lib/firmware/ $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)
1760 endif
1761 ifneq ($(CONFIG_B43_FW_SQUASH),)
1762         b43-fwsquash.py "$(CONFIG_B43_FW_SQUASH_PHYTYPES)" "$(CONFIG_B43_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43"
1763 endif
1764 endef
1765
1766 define KernelPackage/brcmsmac/install
1767         $(INSTALL_DIR) $(1)/lib/firmware/brcm
1768 ifeq ($(CONFIG_BRCMSMAC_USE_FW_FROM_WL),y)
1769         tar xjf "$(DL_DIR)/$(PKG_BRCMSMAC_FW_SOURCE)" -C "$(PKG_BUILD_DIR)"
1770         b43-fwcutter --brcmsmac -w $(1)/lib/firmware/ $(PKG_BUILD_DIR)/$(PKG_BRCMSMAC_FW_OBJECT)
1771 endif
1772 endef
1773
1774 define KernelPackage/cfg80211/install
1775         $(INSTALL_DIR) $(1)/lib/wifi $(1)/lib/netifd/wireless
1776         $(INSTALL_DATA) ./files/lib/wifi/mac80211.sh $(1)/lib/wifi
1777         $(INSTALL_BIN) ./files/lib/netifd/wireless/mac80211.sh $(1)/lib/netifd/wireless
1778         $(INSTALL_DIR) $(1)/etc/hotplug.d/ieee80211
1779         $(INSTALL_DATA) ./files/mac80211.hotplug $(1)/etc/hotplug.d/ieee80211/00-wifi-detect
1780 endef
1781
1782 define KernelPackage/ipw2100/install
1783         $(INSTALL_DIR) $(1)/lib/firmware
1784         $(INSTALL_DATA) $(PKG_BUILD_DIR)/ipw2100-$(IPW2100_VERSION)*.fw $(1)/lib/firmware
1785 endef
1786
1787 define KernelPackage/ipw2200/install
1788         $(INSTALL_DIR) $(1)/lib/firmware
1789         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION)/ipw2200*.fw $(1)/lib/firmware
1790 endef
1791
1792 define KernelPackage/zd1211rw/install
1793         $(INSTALL_DIR) $(1)/lib/firmware/zd1211
1794         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(ZD1211FW_NAME)/zd1211* $(1)/lib/firmware/zd1211
1795 endef
1796
1797
1798 $(eval $(call KernelPackage,adm8211))
1799 $(eval $(call KernelPackage,airo))
1800 $(eval $(call KernelPackage,ath))
1801 $(eval $(call KernelPackage,ath10k))
1802 $(eval $(call KernelPackage,ath5k))
1803 $(eval $(call KernelPackage,ath9k))
1804 $(eval $(call KernelPackage,ath9k-common))
1805 $(eval $(call KernelPackage,ath9k-htc))
1806 $(eval $(call KernelPackage,b43))
1807 $(eval $(call KernelPackage,b43legacy))
1808 $(eval $(call KernelPackage,brcmsmac))
1809 $(eval $(call KernelPackage,brcmfmac))
1810 $(eval $(call KernelPackage,brcmutil))
1811 $(eval $(call KernelPackage,carl9170))
1812 $(eval $(call KernelPackage,cfg80211))
1813 $(eval $(call KernelPackage,hermes))
1814 $(eval $(call KernelPackage,hermes-pci))
1815 $(eval $(call KernelPackage,hermes-plx))
1816 $(eval $(call KernelPackage,hermes-pcmcia))
1817 $(eval $(call KernelPackage,iwlwifi))
1818 $(eval $(call KernelPackage,iwl-legacy))
1819 $(eval $(call KernelPackage,iwl4965))
1820 $(eval $(call KernelPackage,iwl3945))
1821 $(eval $(call KernelPackage,lib80211))
1822 $(eval $(call KernelPackage,libertas-usb))
1823 $(eval $(call KernelPackage,libertas-sdio))
1824 $(eval $(call KernelPackage,libertas-spi))
1825 $(eval $(call KernelPackage,libipw))
1826 $(eval $(call KernelPackage,ipw2100))
1827 $(eval $(call KernelPackage,ipw2200))
1828 $(eval $(call KernelPackage,mac80211))
1829 $(eval $(call KernelPackage,mac80211-hwsim))
1830 $(eval $(call KernelPackage,mt7601u))
1831 $(eval $(call KernelPackage,mwl8k))
1832 $(eval $(call KernelPackage,mwifiex-pcie))
1833 $(eval $(call KernelPackage,mwifiex-sdio))
1834 $(eval $(call KernelPackage,p54-common))
1835 $(eval $(call KernelPackage,p54-pci))
1836 $(eval $(call KernelPackage,p54-usb))
1837 $(eval $(call KernelPackage,p54-spi))
1838 $(eval $(call KernelPackage,rt2x00-lib))
1839 $(eval $(call KernelPackage,rt2x00-mmio))
1840 $(eval $(call KernelPackage,rt2x00-pci))
1841 $(eval $(call KernelPackage,rt2x00-usb))
1842 $(eval $(call KernelPackage,rt2800-lib))
1843 $(eval $(call KernelPackage,rt2400-pci))
1844 $(eval $(call KernelPackage,rt2500-pci))
1845 $(eval $(call KernelPackage,rt2500-usb))
1846 $(eval $(call KernelPackage,rt2800-mmio))
1847 $(eval $(call KernelPackage,rt2800-soc))
1848 $(eval $(call KernelPackage,rt2800-pci))
1849 $(eval $(call KernelPackage,rt2800-usb))
1850 $(eval $(call KernelPackage,rt61-pci))
1851 $(eval $(call KernelPackage,rt73-usb))
1852 $(eval $(call KernelPackage,rtl8180))
1853 $(eval $(call KernelPackage,rtl8187))
1854 $(eval $(call KernelPackage,rtlwifi))
1855 $(eval $(call KernelPackage,rtlwifi-pci))
1856 $(eval $(call KernelPackage,rtlwifi-btcoexist))
1857 $(eval $(call KernelPackage,rtlwifi-usb))
1858 $(eval $(call KernelPackage,rtl8192c-common))
1859 $(eval $(call KernelPackage,rtl8192ce))
1860 $(eval $(call KernelPackage,rtl8192se))
1861 $(eval $(call KernelPackage,rtl8192de))
1862 $(eval $(call KernelPackage,rtl8192cu))
1863 $(eval $(call KernelPackage,rtl8821ae))
1864 $(eval $(call KernelPackage,rtl8xxxu))
1865 $(eval $(call KernelPackage,wlcore))
1866 $(eval $(call KernelPackage,wl12xx))
1867 $(eval $(call KernelPackage,wl18xx))
1868 $(eval $(call KernelPackage,zd1211rw))