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