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