linux-firmware: separate packages for Broadcom FullMAC SDIO firmwares
[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-4329-sdio \
686         +BRCMFMAC_SDIO:brcmfmac-firmware-43362-sdio \
687         +BRCMFMAC_USB:kmod-usb-core +BRCMFMAC_USB:brcmfmac-firmware-usb
688   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
689   AUTOLOAD:=$(call AutoProbe,brcmfmac)
690 endef
691
692 define KernelPackage/brcmfmac/description
693  Kernel module for Broadcom IEEE802.11n USB Wireless cards
694 endef
695
696 define KernelPackage/brcmfmac/config
697   if PACKAGE_kmod-brcmfmac
698
699         config BRCMFMAC_SDIO
700                 bool "Enable SDIO bus interface support"
701                 default y if TARGET_brcm2708
702                 default n
703                 help
704                   Enable support for cards attached to an SDIO bus.
705                   Select this option only if you are sure that your
706                   board has a Broadcom wireless chip atacched to
707                   that bus.
708
709         config BRCMFMAC_USB
710                 bool "Enable USB bus interface support"
711                 depends on USB_SUPPORT
712                 default y
713                 help
714                   Supported USB connected chipsets:
715                   BCM43235, BCM43236, BCM43238 (all in revision 3 only)
716                   BCM43143, BCM43242, BCM43566, BCM43569
717
718         config BRCMFMAC_PCIE
719                 bool "Enable PCIE bus interface support"
720                 depends on PCI_SUPPORT
721                 default y
722                 help
723                   Supported PCIe connected chipsets:
724                   BCM4354, BCM4356, BCM43567, BCM43570, BCM43602
725
726   endif
727 endef
728
729
730 define KernelPackage/carl9170
731   $(call KernelPackage/mac80211/Default)
732   TITLE:=Driver for Atheros AR9170 USB sticks
733   DEPENDS:=@USB_SUPPORT +kmod-mac80211 +kmod-ath +kmod-usb-core +kmod-input-core +@DRIVER_11N_SUPPORT +carl9170-firmware
734   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/carl9170/carl9170.ko
735   AUTOLOAD:=$(call AutoProbe,carl9170)
736 endef
737
738
739 define KernelPackage/hermes
740   $(call KernelPackage/mac80211/Default)
741   TITLE:=Hermes 802.11b chipset support
742   DEPENDS:=@PCI_SUPPORT||PCMCIA_SUPPORT +kmod-cfg80211 +@DRIVER_WEXT_SUPPORT +kmod-crypto-michael-mic
743   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/orinoco/orinoco.ko
744   AUTOLOAD:=$(call AutoProbe,orinoco)
745 endef
746
747 define KernelPackage/hermes/description
748  Kernel support for Hermes 802.11b chipsets
749 endef
750
751 define KernelPackage/hermes-pci
752   $(call KernelPackage/mac80211/Default)
753   TITLE:=Intersil Prism 2.5 PCI support
754   DEPENDS:=@PCI_SUPPORT +kmod-hermes
755   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/orinoco/orinoco_pci.ko
756   AUTOLOAD:=$(call AutoProbe,orinoco_pci)
757 endef
758
759 define KernelPackage/hermes-pci/description
760  Kernel modules for Intersil Prism 2.5 PCI support
761 endef
762
763 define KernelPackage/hermes-plx
764   $(call KernelPackage/mac80211/Default)
765   TITLE:=PLX9052 based PCI adaptor
766   DEPENDS:=@PCI_SUPPORT +kmod-hermes
767   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/orinoco/orinoco_plx.ko
768   AUTOLOAD:=$(call AutoProbe,orinoco_plx)
769 endef
770
771 define KernelPackage/hermes-plx/description
772  Kernel modules for Hermes in PLX9052 based PCI adaptors
773 endef
774
775 define KernelPackage/hermes-pcmcia
776   $(call KernelPackage/mac80211/Default)
777   TITLE:=Hermes based PCMCIA adaptors
778   DEPENDS:=@PCMCIA_SUPPORT +kmod-hermes @BROKEN
779   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/orinoco/orinoco_cs.ko
780   AUTOLOAD:=$(call AutoProbe,orinoco_cs)
781 endef
782
783 define KernelPackage/hermes-pcmcia/description
784  Kernel modules for Hermes based PCMCIA adaptors
785 endef
786
787
788 define KernelPackage/iwlwifi
789   $(call KernelPackage/mac80211/Default)
790   DEPENDS:= +kmod-mac80211 @PCI_SUPPORT +@DRIVER_11N_SUPPORT +iwlwifi-firmware @!LINUX_3_18
791   TITLE:=Intel AGN Wireless support
792   FILES:= \
793         $(PKG_BUILD_DIR)/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko \
794         $(PKG_BUILD_DIR)/drivers/net/wireless/intel/iwlwifi/dvm/iwldvm.ko \
795         $(PKG_BUILD_DIR)/drivers/net/wireless/intel/iwlwifi/mvm/iwlmvm.ko
796   AUTOLOAD:=$(call AutoProbe,iwlwifi iwldvm iwlmvm)
797   MENU:=1
798 endef
799
800 define KernelPackage/iwlwifi/description
801  iwlwifi kernel module for
802  Intel Wireless WiFi Link 6250AGN Adapter
803  Intel 6000 Series Wi-Fi Adapters (6200AGN and 6300AGN)
804  Intel WiFi Link 1000BGN
805  Intel Wireless WiFi 5150AGN
806  Intel Wireless WiFi 5100AGN, 5300AGN, and 5350AGN
807  Intel 6005 Series Wi-Fi Adapters
808  Intel 6030 Series Wi-Fi Adapters
809  Intel Wireless WiFi Link 6150BGN 2 Adapter
810  Intel 100 Series Wi-Fi Adapters (100BGN and 130BGN)
811  Intel 2000 Series Wi-Fi Adapters
812  Intel 7260 Wi-Fi Adapter
813  Intel 3160 Wi-Fi Adapter
814  Intel 7265 Wi-Fi Adapter
815  Intel 8260 Wi-Fi Adapter
816  Intel 3165 Wi-Fi Adapter
817 endef
818
819 define KernelPackage/iwlwifi/config
820   if PACKAGE_kmod-iwlwifi
821
822         config PACKAGE_IWLWIFI_DEBUG
823                 bool "Enable full debugging output in the iwlwifi driver"
824                 default n
825                 help
826                   This option will enable debug tracing output for the iwlwifi drivers
827
828                   This will result in the kernel module being ~100k larger.  You can
829                   control which debug output is sent to the kernel log by setting the
830                   value in
831
832                         /sys/module/iwlwifi/parameters/debug
833
834                   This entry will only exist if this option is enabled.
835
836                   To set a value, simply echo an 8-byte hex value to the same file:
837
838                           % echo 0x43fff > /sys/module/iwlwifi/parameters/debug
839
840                   You can find the list of debug mask values in:
841                           drivers/net/wireless/intel/iwlwifi/iwl-debug.h
842
843                   If this is your first time using this driver, you should say Y here
844                   as the debug information can assist others in helping you resolve
845                   any problems you may encounter.
846
847         config PACKAGE_IWLWIFI_DEBUGFS
848                 bool "iwlwifi debugfs support"
849                 depends on PACKAGE_MAC80211_DEBUGFS
850                 default n
851                 help
852                   Enable creation of debugfs files for the iwlwifi drivers. This
853                   is a low-impact option that allows getting insight into the
854                   driver's state at runtime.
855
856   endif
857 endef
858
859 define KernelPackage/iwl-legacy
860   $(call KernelPackage/mac80211/Default)
861   DEPENDS:= +kmod-mac80211 @PCI_SUPPORT
862   TITLE:=Intel legacy Wireless support
863   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intel/iwlegacy/iwlegacy.ko
864   AUTOLOAD:=$(call AutoProbe,iwlegacy)
865 endef
866
867 define KernelPackage/iwl-legacy/description
868  iwl-legacy kernel module for legacy Intel wireless support
869 endef
870
871 define KernelPackage/iwl3945
872   $(call KernelPackage/mac80211/Default)
873   DEPENDS:= +kmod-mac80211 +kmod-iwl-legacy +iwl3945-firmware
874   TITLE:=Intel iwl3945 Wireless support
875   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intel/iwlegacy/iwl3945.ko
876   AUTOLOAD:=$(call AutoProbe,iwl3945)
877 endef
878
879 define KernelPackage/iwl3945/description
880  iwl3945 kernel module for Intel 3945 support
881 endef
882
883 define KernelPackage/iwl4965
884   $(call KernelPackage/mac80211/Default)
885   DEPENDS:= +kmod-mac80211 +kmod-iwl-legacy +@DRIVER_11N_SUPPORT +iwl4965-firmware
886   TITLE:=Intel iwl4965 Wireless support
887   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intel/iwlegacy/iwl4965.ko
888   AUTOLOAD:=$(call AutoProbe,iwl4965)
889 endef
890
891 define KernelPackage/iwl4965/description
892  iwl4965 kernel module for Intel 4965 support
893 endef
894
895
896 define KernelPackage/lib80211
897   $(call KernelPackage/mac80211/Default)
898   TITLE:=802.11 Networking stack
899   DEPENDS:=+kmod-cfg80211 +kmod-crypto-hash
900   FILES:= \
901         $(PKG_BUILD_DIR)/net/wireless/lib80211.ko \
902         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_wep.ko \
903         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_ccmp.ko \
904         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_tkip.ko
905   AUTOLOAD:=$(call AutoProbe, \
906         lib80211 \
907         lib80211_crypt_wep \
908         lib80211_crypt_ccmp \
909         lib80211_crypt_tkip \
910   )
911 endef
912
913 define KernelPackage/lib80211/description
914  Kernel modules for 802.11 Networking stack
915  Includes:
916  - lib80211
917  - lib80211_crypt_wep
918  - lib80211_crypt_tkip
919  - lib80211_crytp_ccmp
920 endef
921
922
923 define KernelPackage/libipw
924   $(call KernelPackage/mac80211/Default)
925   TITLE:=libipw for ipw2100 and ipw2200
926   DEPENDS:=@PCI_SUPPORT +kmod-crypto-michael-mic +kmod-lib80211 +kmod-cfg80211 +@DRIVER_WEXT_SUPPORT @!BIG_ENDIAN
927   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intel/ipw2x00/libipw.ko
928   AUTOLOAD:=$(call AutoProbe,libipw)
929 endef
930
931 define KernelPackage/libipw/description
932  Hardware independent IEEE 802.11 networking stack for ipw2100 and ipw2200.
933 endef
934
935 IPW2100_NAME:=ipw2100-fw
936 IPW2100_VERSION:=1.3
937
938 define Download/ipw2100
939   URL:=http://bughost.org/firmware/
940   FILE:=$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
941   MD5SUM=46aa75bcda1a00efa841f9707bbbd113
942 endef
943 $(eval $(call Download,ipw2100))
944
945 define KernelPackage/ipw2100
946   $(call KernelPackage/mac80211/Default)
947   TITLE:=Intel IPW2100 driver
948   DEPENDS:=@PCI_SUPPORT +kmod-libipw
949   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intel/ipw2x00/ipw2100.ko
950   AUTOLOAD:=$(call AutoProbe,ipw2100)
951 endef
952
953 define KernelPackage/ipw2100/description
954  Kernel support for Intel IPW2100
955  Includes:
956  - ipw2100
957 endef
958
959 IPW2200_NAME:=ipw2200-fw
960 IPW2200_VERSION:=3.1
961
962 define Download/ipw2200
963   URL:=http://bughost.org/firmware/
964   FILE:=$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
965   MD5SUM=eaba788643c7cc7483dd67ace70f6e99
966 endef
967 $(eval $(call Download,ipw2200))
968
969 define KernelPackage/ipw2200
970   $(call KernelPackage/mac80211/Default)
971   TITLE:=Intel IPW2200 driver
972   DEPENDS:=@PCI_SUPPORT +kmod-libipw
973   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intel/ipw2x00/ipw2200.ko
974   AUTOLOAD:=$(call AutoProbe,ipw2200)
975 endef
976
977 define KernelPackage/ipw2200/description
978  Kernel support for Intel IPW2200
979  Includes:
980  - ipw2200
981 endef
982
983
984 define KernelPackage/libertas-usb
985   $(call KernelPackage/mac80211/Default)
986   DEPENDS+= @USB_SUPPORT +kmod-cfg80211 +kmod-usb-core +kmod-lib80211 +@DRIVER_WEXT_SUPPORT +libertas-usb-firmware
987   TITLE:=Marvell 88W8015 Wireless Driver
988   FILES:= \
989         $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/libertas.ko \
990         $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/usb8xxx.ko
991   AUTOLOAD:=$(call AutoProbe,libertas usb8xxx)
992 endef
993
994 define KernelPackage/libertas-sdio
995   $(call KernelPackage/mac80211/Default)
996   DEPENDS+= +kmod-cfg80211 +kmod-lib80211 +kmod-mmc +@DRIVER_WEXT_SUPPORT @!TARGET_uml +libertas-sdio-firmware
997   TITLE:=Marvell 88W8686 Wireless Driver
998   FILES:= \
999         $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/libertas.ko \
1000         $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/libertas_sdio.ko
1001   AUTOLOAD:=$(call AutoProbe,libertas libertas_sdio)
1002 endef
1003
1004 define KernelPackage/libertas-spi
1005   $(call KernelPackage/mac80211/Default)
1006   SUBMENU:=Wireless Drivers
1007   DEPENDS+= +kmod-cfg80211 +kmod-lib80211 +@DRIVER_WEXT_SUPPORT @!TARGET_uml +libertas-spi-firmware
1008   KCONFIG := \
1009         CONFIG_SPI=y \
1010         CONFIG_SPI_MASTER=y
1011   TITLE:=Marvell 88W8686 SPI Wireless Driver
1012   FILES:= \
1013         $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/libertas.ko \
1014         $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/libertas_spi.ko
1015   AUTOLOAD:=$(call AutoProbe,libertas libertas_spi)
1016 endef
1017
1018 define KernelPackage/mac80211-hwsim
1019   $(call KernelPackage/mac80211/Default)
1020   TITLE:=mac80211 HW simulation device
1021   DEPENDS+= +kmod-mac80211 +@DRIVER_11N_SUPPORT
1022   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.ko
1023   AUTOLOAD:=$(call AutoProbe,mac80211_hwsim)
1024 endef
1025
1026
1027 define KernelPackage/mt7601u
1028   $(call KernelPackage/mac80211/Default)
1029   TITLE:=MT7601U-based USB dongles Wireless Driver
1030   DEPENDS+= +kmod-mac80211 +@DRIVER_11N_SUPPORT @USB_SUPPORT +kmod-usb-core +mt7601u-firmware
1031   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mediatek/mt7601u/mt7601u.ko
1032   AUTOLOAD:=$(call AutoProbe,mt7601u)
1033 endef
1034
1035
1036 define KernelPackage/mwl8k
1037   $(call KernelPackage/mac80211/Default)
1038   TITLE:=Driver for Marvell TOPDOG 802.11 Wireless cards
1039   URL:=http://wireless.kernel.org/en/users/Drivers/mwl8k
1040   DEPENDS+= @PCI_SUPPORT +kmod-mac80211 +@DRIVER_11N_SUPPORT +mwl8k-firmware
1041   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/marvell/mwl8k.ko
1042   AUTOLOAD:=$(call AutoProbe,mwl8k)
1043 endef
1044
1045 define KernelPackage/mwl8k/description
1046  Kernel modules for Marvell TOPDOG 802.11 Wireless cards
1047 endef
1048
1049
1050 define KernelPackage/mwifiex-pcie
1051   $(call KernelPackage/mac80211/Default)
1052   TITLE:=Driver for Marvell 802.11n/802.11ac PCIe Wireless cards
1053   URL:=http://wireless.kernel.org/en/users/Drivers/mwifiex
1054   DEPENDS+= @PCI_SUPPORT +kmod-mac80211 +@DRIVER_11N_SUPPORT +mwifiex-pcie-firmware
1055   FILES:= \
1056         $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/mwifiex/mwifiex.ko \
1057         $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/mwifiex/mwifiex_pcie.ko
1058   AUTOLOAD:=$(call AutoProbe,mwifiex_pcie)
1059 endef
1060
1061 define KernelPackage/mwifiex-pcie/description
1062  Kernel modules for Marvell 802.11n/802.11ac PCIe Wireless cards
1063 endef
1064
1065 define KernelPackage/p54/Default
1066   $(call KernelPackage/mac80211/Default)
1067   TITLE:=Prism54 Drivers
1068 endef
1069
1070 define KernelPackage/p54/description
1071   Kernel module for Prism54 chipsets (mac80211)
1072 endef
1073
1074 define KernelPackage/p54-common
1075   $(call KernelPackage/p54/Default)
1076   DEPENDS+= @PCI_SUPPORT||@USB_SUPPORT||@TARGET_omap24xx +kmod-mac80211 +kmod-lib-crc-ccitt
1077   TITLE+= (COMMON)
1078   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/p54/p54common.ko
1079 endef
1080
1081 define KernelPackage/p54-pci
1082   $(call KernelPackage/p54/Default)
1083   TITLE+= (PCI)
1084   DEPENDS+= @PCI_SUPPORT +kmod-p54-common +p54-pci-firmware
1085   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/p54/p54pci.ko
1086   AUTOLOAD:=$(call AutoProbe,p54pci)
1087 endef
1088
1089 define KernelPackage/p54-usb
1090   $(call KernelPackage/p54/Default)
1091   TITLE+= (USB)
1092   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-p54-common +p54-usb-firmware
1093   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/p54/p54usb.ko
1094   AUTOLOAD:=$(call AutoProbe,p54usb)
1095 endef
1096
1097 define KernelPackage/p54-spi
1098   $(call KernelPackage/p54/Default)
1099   TITLE+= (SPI)
1100   DEPENDS+= @TARGET_omap24xx +kmod-p54-common +p54-spi-firmware
1101   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/p54/p54spi.ko
1102   AUTOLOAD:=$(call AutoProbe,p54spi)
1103 endef
1104
1105 define KernelPackage/rt2x00/Default
1106   $(call KernelPackage/mac80211/Default)
1107   TITLE:=Ralink Drivers for RT2x00 cards
1108 endef
1109
1110 define KernelPackage/rt2x00-lib
1111 $(call KernelPackage/rt2x00/Default)
1112   DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-mac80211 +kmod-lib-crc-itu-t
1113   TITLE+= (LIB)
1114   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2x00lib.ko
1115   MENU:=1
1116 endef
1117
1118 define KernelPackage/rt2x00-lib/config
1119   if PACKAGE_kmod-rt2x00-lib
1120
1121         config PACKAGE_RT2X00_LIB_DEBUGFS
1122                 bool "Enable rt2x00 debugfs support"
1123                 depends on PACKAGE_MAC80211_DEBUGFS
1124                 help
1125                   Enable creation of debugfs files for the rt2x00 drivers.
1126                   These debugfs files support both reading and writing of the
1127                   most important register types of the rt2x00 hardware.
1128
1129         config PACKAGE_RT2X00_DEBUG
1130                 bool "Enable rt2x00 debug output"
1131                 help
1132                   Enable debugging output for all rt2x00 modules
1133
1134   endif
1135 endef
1136
1137 define KernelPackage/rt2x00-mmio
1138 $(call KernelPackage/rt2x00/Default)
1139   DEPENDS+= @(PCI_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +kmod-eeprom-93cx6
1140   HIDDEN:=1
1141   TITLE+= (MMIO)
1142   FILES:= $(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2x00mmio.ko
1143 endef
1144
1145 define KernelPackage/rt2x00-pci
1146 $(call KernelPackage/rt2x00/Default)
1147   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-mmio +kmod-rt2x00-lib
1148   HIDDEN:=1
1149   TITLE+= (PCI)
1150   FILES:= $(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2x00pci.ko
1151   AUTOLOAD:=$(call AutoProbe,rt2x00pci)
1152 endef
1153
1154 define KernelPackage/rt2x00-usb
1155 $(call KernelPackage/rt2x00/Default)
1156   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-lib +kmod-usb-core
1157   HIDDEN:=1
1158   TITLE+= (USB)
1159   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2x00usb.ko
1160   AUTOLOAD:=$(call AutoProbe,rt2x00usb)
1161 endef
1162
1163 define KernelPackage/rt2800-lib
1164 $(call KernelPackage/rt2x00/Default)
1165   DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +kmod-lib-crc-ccitt +@DRIVER_11N_SUPPORT
1166   HIDDEN:=1
1167   TITLE+= (rt2800 LIB)
1168   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2800lib.ko
1169 endef
1170
1171 define KernelPackage/rt2400-pci
1172 $(call KernelPackage/rt2x00/Default)
1173   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
1174   TITLE+= (RT2400 PCI)
1175   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2400pci.ko
1176   AUTOLOAD:=$(call AutoProbe,rt2400pci)
1177 endef
1178
1179 define KernelPackage/rt2500-pci
1180 $(call KernelPackage/rt2x00/Default)
1181   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
1182   TITLE+= (RT2500 PCI)
1183   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2500pci.ko
1184   AUTOLOAD:=$(call AutoProbe,rt2500pci)
1185 endef
1186
1187 define KernelPackage/rt2500-usb
1188 $(call KernelPackage/rt2x00/Default)
1189   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb
1190   TITLE+= (RT2500 USB)
1191   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2500usb.ko
1192   AUTOLOAD:=$(call AutoProbe,rt2500usb)
1193 endef
1194
1195 define KernelPackage/rt2800-mmio
1196 $(call KernelPackage/rt2x00/Default)
1197   TITLE += (RT28xx/RT3xxx MMIO)
1198   DEPENDS += +kmod-rt2800-lib +kmod-rt2x00-mmio
1199   HIDDEN:=1
1200   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2800mmio.ko
1201 endef
1202
1203 define KernelPackage/rt2800-soc
1204 $(call KernelPackage/rt2x00/Default)
1205   DEPENDS += @(TARGET_ramips_rt288x||TARGET_ramips_rt305x||TARGET_ramips_rt3883||TARGET_ramips_mt7620) +kmod-rt2800-mmio +kmod-rt2800-lib
1206   TITLE += (RT28xx/RT3xxx SoC)
1207   FILES := \
1208         $(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2x00soc.ko \
1209         $(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2800soc.ko
1210   AUTOLOAD:=$(call AutoProbe,rt2800soc)
1211 endef
1212
1213 define KernelPackage/rt2800-pci
1214 $(call KernelPackage/rt2x00/Default)
1215   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci +kmod-rt2800-lib +kmod-rt2800-mmio +rt2800-pci-firmware
1216   TITLE+= (RT2860 PCI)
1217   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2800pci.ko
1218   AUTOLOAD:=$(call AutoProbe,rt2800pci)
1219 endef
1220
1221 define KernelPackage/rt2800-usb
1222 $(call KernelPackage/rt2x00/Default)
1223   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb +kmod-rt2800-lib +kmod-lib-crc-ccitt +rt2800-usb-firmware
1224   TITLE+= (RT2870 USB)
1225   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt2800usb.ko
1226   AUTOLOAD:=$(call AutoProbe,rt2800usb)
1227 endef
1228
1229
1230 define KernelPackage/rt61-pci
1231 $(call KernelPackage/rt2x00/Default)
1232   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci +rt61-pci-firmware
1233   TITLE+= (RT2x61 PCI)
1234   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt61pci.ko
1235   AUTOLOAD:=$(call AutoProbe,rt61pci)
1236 endef
1237
1238 define KernelPackage/rt73-usb
1239   $(call KernelPackage/rt2x00/Default)
1240   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb +rt73-usb-firmware
1241   TITLE+= (RT73 USB)
1242   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ralink/rt2x00/rt73usb.ko
1243   AUTOLOAD:=$(call AutoProbe,rt73usb)
1244 endef
1245
1246
1247 define KernelPackage/rtl818x/Default
1248   $(call KernelPackage/mac80211/Default)
1249   TITLE:=Realtek Drivers for RTL818x devices
1250   URL:=http://wireless.kernel.org/en/users/Drivers/rtl8187
1251   DEPENDS+= +kmod-eeprom-93cx6 +kmod-mac80211
1252 endef
1253
1254 define KernelPackage/rtl8180
1255   $(call KernelPackage/rtl818x/Default)
1256   DEPENDS+= @PCI_SUPPORT
1257   TITLE+= (RTL8180 PCI)
1258   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtl818x/rtl8180/rtl818x_pci.ko
1259   AUTOLOAD:=$(call AutoProbe,rtl818x_pci)
1260 endef
1261
1262 define KernelPackage/rtl8187
1263 $(call KernelPackage/rtl818x/Default)
1264   DEPENDS+= @USB_SUPPORT +kmod-usb-core
1265   TITLE+= (RTL8187 USB)
1266   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8187.ko
1267   AUTOLOAD:=$(call AutoProbe,rtl8187)
1268 endef
1269
1270 define KernelPackage/rtlwifi/config
1271         config PACKAGE_RTLWIFI_DEBUG
1272                 bool "Realtek wireless debugging"
1273                 depends on PACKAGE_kmod-rtlwifi
1274                 help
1275                   Say Y, if you want to debug realtek wireless drivers.
1276
1277 endef
1278
1279 define KernelPackage/rtlwifi
1280   $(call KernelPackage/mac80211/Default)
1281   TITLE:=Realtek common driver part
1282   DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT) +kmod-mac80211 +@DRIVER_11N_SUPPORT
1283   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtlwifi/rtlwifi.ko
1284   HIDDEN:=1
1285 endef
1286
1287 define KernelPackage/rtlwifi-pci
1288   $(call KernelPackage/mac80211/Default)
1289   TITLE:=Realtek common driver part (PCI support)
1290   DEPENDS+= @PCI_SUPPORT +kmod-rtlwifi
1291   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtlwifi/rtl_pci.ko
1292   AUTOLOAD:=$(call AutoProbe,rtl_pci)
1293   HIDDEN:=1
1294 endef
1295
1296 define KernelPackage/rtlwifi-usb
1297   $(call KernelPackage/mac80211/Default)
1298   TITLE:=Realtek common driver part (USB support)
1299   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-rtlwifi
1300   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtlwifi/rtl_usb.ko
1301   AUTOLOAD:=$(call AutoProbe,rtl_usb)
1302   HIDDEN:=1
1303 endef
1304
1305 define KernelPackage/rtl8192c-common
1306   $(call KernelPackage/mac80211/Default)
1307   TITLE:=Realtek RTL8192CE/RTL8192CU common support module
1308   DEPENDS+= +kmod-rtlwifi
1309   FILES:= $(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common.ko
1310   HIDDEN:=1
1311 endef
1312
1313 define KernelPackage/rtl8192ce
1314   $(call KernelPackage/mac80211/Default)
1315   TITLE:=Realtek RTL8192CE/RTL8188CE support
1316   DEPENDS+= +kmod-rtlwifi-pci +kmod-rtl8192c-common +rtl8192ce-firmware
1317   FILES:= $(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/rtl8192ce.ko
1318   AUTOLOAD:=$(call AutoProbe,rtl8192ce)
1319 endef
1320
1321 define KernelPackage/rtl8192se
1322   $(call KernelPackage/mac80211/Default)
1323   TITLE:=Realtek RTL8192SE/RTL8191SE support
1324   DEPENDS+= +kmod-rtlwifi-pci +rtl8192se-firmware
1325   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtlwifi/rtl8192se/rtl8192se.ko
1326   AUTOLOAD:=$(call AutoProbe,rtl8192se)
1327 endef
1328
1329 define KernelPackage/rtl8192de
1330   $(call KernelPackage/mac80211/Default)
1331   TITLE:=Realtek RTL8192DE/RTL8188DE support
1332   DEPENDS+= +kmod-rtlwifi-pci +rtl8192de-firmware
1333   FILES:= $(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtlwifi/rtl8192de/rtl8192de.ko
1334   AUTOLOAD:=$(call AutoProbe,rtl8192de)
1335 endef
1336
1337 define KernelPackage/rtl8192cu
1338   $(call KernelPackage/mac80211/Default)
1339   TITLE:=Realtek RTL8192CU/RTL8188CU support
1340   DEPENDS+= +kmod-rtlwifi-usb +kmod-rtl8192c-common +rtl8192cu-firmware
1341   FILES:= $(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/rtl8192cu.ko
1342   AUTOLOAD:=$(call AutoProbe,rtl8192cu)
1343 endef
1344
1345
1346 define KernelPackage/rtl8xxxu
1347   $(call KernelPackage/mac80211/Default)
1348   TITLE:=alternative Realtek RTL8XXXU support
1349   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-mac80211
1350   FILES:= $(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.ko
1351   AUTOLOAD:=$(call AutoProbe,rtl8xxxu)
1352 endef
1353
1354 define KernelPackage/rtl8xxxu/description
1355   This is an alternative driver for various Realtek RTL8XXX
1356   parts written to utilize the Linux mac80211 stack.
1357   The driver is known to work with a number of RTL8723AU,
1358   RL8188CU, RTL8188RU, RTL8191CU, and RTL8192CU devices
1359
1360   This driver is under development and has a limited feature
1361   set. In particular it does not yet support 40MHz channels
1362   and power management. However it should have a smaller
1363   memory footprint than the vendor drivers and benetifs
1364   from the in kernel mac80211 stack.
1365
1366   It can coexist with drivers from drivers/staging/rtl8723au,
1367   drivers/staging/rtl8192u, and drivers/net/wireless/rtlwifi,
1368   but you will need to control which module you wish to load.
1369
1370   RTL8XXXU_UNTESTED is enabled
1371   This option enables detection of Realtek 8723/8188/8191/8192 WiFi
1372   USB devices which have not been tested directly by the driver
1373   author or reported to be working by third parties.
1374
1375   Please report your results!
1376 endef
1377
1378
1379 define KernelPackage/wlcore
1380   $(call KernelPackage/mac80211/Default)
1381   TITLE:=TI common driver part
1382   DEPENDS+= @TARGET_omap +kmod-mac80211 +@DRIVER_11N_SUPPORT
1383   FILES:= \
1384         $(PKG_BUILD_DIR)/drivers/net/wireless/ti/wlcore/wlcore.ko \
1385         $(PKG_BUILD_DIR)/drivers/net/wireless/ti/wlcore/wlcore_sdio.ko
1386   AUTOLOAD:=$(call AutoProbe,wlcore wlcore_sdio)
1387 endef
1388
1389 define KernelPackage/wlcore/description
1390  This module contains some common parts needed by TI Wireless drivers.
1391 endef
1392
1393 define KernelPackage/wl12xx
1394   $(call KernelPackage/mac80211/Default)
1395   TITLE:=Driver for TI WL12xx
1396   URL:=http://wireless.kernel.org/en/users/Drivers/wl12xx
1397   DEPENDS+= +kmod-wlcore +wl12xx-firmware
1398   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ti/wl12xx/wl12xx.ko
1399   AUTOLOAD:=$(call AutoProbe,wl12xx)
1400 endef
1401
1402 define KernelPackage/wl12xx/description
1403  Kernel modules for TI WL12xx
1404 endef
1405
1406 define KernelPackage/wl18xx
1407   $(call KernelPackage/mac80211/Default)
1408   TITLE:=Driver for TI WL18xx
1409   URL:=http://wireless.kernel.org/en/users/Drivers/wl18xx
1410   DEPENDS+= +kmod-wlcore +wl18xx-firmware
1411   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ti/wl18xx/wl18xx.ko
1412   AUTOLOAD:=$(call AutoProbe,wl18xx)
1413 endef
1414
1415 define KernelPackage/wl18xx/description
1416  Kernel modules for TI WL18xx
1417 endef
1418
1419
1420 ZD1211FW_NAME:=zd1211-firmware
1421 ZD1211FW_VERSION:=1.4
1422 define Download/zd1211rw
1423   FILE:=$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
1424   URL:=@SF/zd1211/
1425   MD5SUM:=19f28781d76569af8551c9d11294c870
1426 endef
1427 $(eval $(call Download,zd1211rw))
1428
1429 define KernelPackage/zd1211rw
1430   $(call KernelPackage/mac80211/Default)
1431   TITLE:=Zydas ZD1211 support
1432   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-mac80211
1433   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/zydas/zd1211rw/zd1211rw.ko
1434   AUTOLOAD:=$(call AutoProbe,zd1211rw)
1435 endef
1436
1437
1438
1439 config_package=$(if $(CONFIG_PACKAGE_kmod-$(1)),m)
1440
1441 config-y:= \
1442         WLAN \
1443         NL80211_TESTMODE \
1444         CFG80211_WEXT \
1445         CFG80211_INTERNAL_REGDB \
1446         CFG80211_CERTIFICATION_ONUS \
1447         MAC80211_RC_MINSTREL \
1448         MAC80211_RC_MINSTREL_HT \
1449         MAC80211_RC_MINSTREL_VHT \
1450         MAC80211_RC_DEFAULT_MINSTREL \
1451         WLAN_VENDOR_ADMTEK \
1452         WLAN_VENDOR_ATH \
1453         WLAN_VENDOR_ATMEL \
1454         WLAN_VENDOR_BROADCOM \
1455         WLAN_VENDOR_CISCO \
1456         WLAN_VENDOR_INTEL \
1457         WLAN_VENDOR_INTERSIL \
1458         WLAN_VENDOR_MARVELL \
1459         WLAN_VENDOR_MEDIATEK \
1460         WLAN_VENDOR_RALINK \
1461         WLAN_VENDOR_REALTEK \
1462         WLAN_VENDOR_RSI \
1463         WLAN_VENDOR_ST \
1464         WLAN_VENDOR_TI \
1465         WLAN_VENDOR_ZYDAS \
1466
1467 config-$(call config_package,cfg80211) += CFG80211
1468
1469 config-$(call config_package,mac80211) += MAC80211
1470 config-$(CONFIG_PACKAGE_MAC80211_MESH) += MAC80211_MESH
1471 ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
1472   config-y += \
1473         CFG80211_DEBUGFS \
1474         MAC80211_DEBUGFS \
1475         ATH9K_DEBUGFS \
1476         ATH9K_HTC_DEBUGFS \
1477         ATH10K_DEBUGFS \
1478         CARL9170_DEBUGFS \
1479         ATH5K_DEBUG
1480 endif
1481
1482 ifdef CONFIG_PACKAGE_MAC80211_TRACING
1483   config-y += \
1484         ATH10K_TRACING \
1485         ATH6KL_TRACING \
1486         ATH_TRACEPOINTS \
1487         WIL6210_TRACING \
1488         ATH5K_TRACER \
1489         IWLWIFI_DEVICE_TRACING
1490 endif
1491
1492 config-$(call config_package,lib80211) += LIB80211 LIB80211_CRYPT_WEP LIB80211_CRYPT_CCMP LIB80211_CRYPT_TKIP
1493
1494 config-$(call config_package,airo) += AIRO
1495
1496 config-$(call config_package,ath) += ATH_CARDS ATH_COMMON
1497 config-$(CONFIG_PACKAGE_ATH_DEBUG) += ATH_DEBUG ATH10K_DEBUG ATH9K_STATION_STATISTICS
1498 config-$(CONFIG_PACKAGE_ATH_DFS) += ATH9K_DFS_CERTIFIED ATH10K_DFS_CERTIFIED
1499
1500 config-$(call config_package,ath9k) += ATH9K
1501 config-$(call config_package,ath9k-common) += ATH9K_COMMON
1502 config-$(CONFIG_TARGET_ar71xx) += ATH9K_AHB
1503 config-$(CONFIG_PCI) += ATH9K_PCI
1504 config-$(CONFIG_ATH_USER_REGD) += ATH_USER_REGD
1505 config-$(CONFIG_ATH9K_SUPPORT_PCOEM) += ATH9K_PCOEM
1506 config-$(CONFIG_ATH9K_TX99) += ATH9K_TX99
1507
1508 config-$(call config_package,ath9k-htc) += ATH9K_HTC
1509 config-$(call config_package,ath10k) += ATH10K ATH10K_PCI
1510
1511 config-$(call config_package,ath5k) += ATH5K
1512 ifdef CONFIG_TARGET_ath25
1513   config-y += ATH5K_AHB
1514 else
1515   config-y += ATH5K_PCI
1516 endif
1517
1518 config-$(call config_package,carl9170) += CARL9170
1519
1520 config-$(call config_package,b43) += B43
1521 config-$(CONFIG_PACKAGE_B43_BUSES_BCMA_AND_SSB) += B43_BUSES_BCMA_AND_SSB
1522 config-$(CONFIG_PACKAGE_B43_BUSES_BCMA) += B43_BUSES_BCMA
1523 config-$(CONFIG_PACKAGE_B43_BUSES_SSB) += B43_BUSES_SSB
1524 config-$(CONFIG_PACKAGE_B43_PHY_G) += B43_PHY_G
1525 config-$(CONFIG_PACKAGE_B43_PHY_N) += B43_PHY_N
1526 config-$(CONFIG_PACKAGE_B43_PHY_LP) += B43_PHY_LP
1527 config-$(CONFIG_PACKAGE_B43_PHY_HT) += B43_PHY_HT
1528 config-$(CONFIG_PACKAGE_B43_PIO) += B43_PIO
1529 config-$(CONFIG_PACKAGE_B43_DEBUG) += B43_DEBUG
1530
1531 config-$(call config_package,b43legacy) += B43LEGACY
1532 config-y += B43LEGACY_DMA_MODE
1533
1534 config-$(call config_package,brcmutil) += BRCMUTIL
1535 config-$(call config_package,brcmsmac) += BRCMSMAC
1536 config-$(call config_package,brcmfmac) += BRCMFMAC
1537 config-$(CONFIG_BRCMFMAC_SDIO) += BRCMFMAC_SDIO
1538 config-$(CONFIG_BRCMFMAC_USB) += BRCMFMAC_USB
1539 config-$(CONFIG_BRCMFMAC_PCIE) += BRCMFMAC_PCIE
1540 config-$(CONFIG_PACKAGE_BRCM80211_DEBUG) += BRCMDBG
1541
1542 config-$(call config_package,mac80211-hwsim) += MAC80211_HWSIM
1543 config-$(call config_package,mt7601u) += MT7601U
1544 config-y += WL_MEDIATEK
1545
1546 config-$(call config_package,rt2x00-lib) += RT2X00 RT2X00_LIB
1547 config-$(call config_package,rt2x00-pci) += RT2X00_LIB_PCI
1548 config-$(call config_package,rt2x00-mmio) += RT2X00_LIB_MMIO
1549 config-$(call config_package,rt2x00-usb) += RT2X00_LIB_USB
1550 config-$(CONFIG_PACKAGE_RT2X00_LIB_DEBUGFS) += RT2X00_LIB_DEBUGFS
1551 config-$(CONFIG_PACKAGE_RT2X00_DEBUG) += RT2X00_DEBUG
1552
1553 config-$(call config_package,rt2400-pci) += RT2400PCI
1554 config-$(call config_package,rt2500-pci) += RT2500PCI
1555 config-$(call config_package,rt2500-usb) += RT2500USB
1556 config-$(call config_package,rt61-pci) += RT61PCI
1557 config-$(call config_package,rt73-usb) += RT73USB
1558
1559 config-$(call config_package,rt2800-lib) += RT2800_LIB
1560
1561 config-$(call config_package,rt2800-soc) += RT2800SOC
1562 config-$(call config_package,rt2800-pci) += RT2800PCI
1563 config-y += RT2800PCI_RT33XX RT2800PCI_RT35XX RT2800PCI_RT53XX RT2800PCI_RT3290
1564
1565 config-$(call config_package,rt2800-usb) += RT2800USB
1566 config-y += RT2800USB_RT33XX RT2800USB_RT35XX RT2800USB_RT3573 RT2800USB_RT53XX RT2800USB_RT55XX RT2800USB_UNKNOWN
1567
1568 config-$(call config_package,iwl-legacy) += IWLEGACY
1569 config-$(call config_package,iwl3945) += IWL3945
1570 config-$(call config_package,iwl4965) += IWL4965
1571 config-$(call config_package,iwlwifi) += IWLWIFI IWLDVM IWLMVM
1572 config-$(CONFIG_PACKAGE_IWLWIFI_DEBUG)+= IWLWIFI_DEBUG
1573 config-$(CONFIG_PACKAGE_IWLWIFI_DEBUGFS)+= IWLWIFI_DEBUGFS
1574
1575 config-$(call config_package,libipw) += LIBIPW
1576 config-$(call config_package,ipw2100) += IPW2100
1577 config-$(call config_package,ipw2200) += IPW2200
1578
1579 config-$(call config_package,p54-common) += P54_COMMON
1580 config-$(call config_package,p54-pci) += P54_PCI
1581 config-$(call config_package,p54-usb) += P54_USB
1582 config-$(call config_package,p54-spi) += P54_SPI
1583
1584 config-$(call config_package,hermes) += HERMES
1585 config-$(call config_package,hermes-pci) += PCI_HERMES
1586 config-$(call config_package,hermes-plx) += PLX_HERMES
1587 config-$(call config_package,hermes-pcmcia) += PCMCIA_HERMES
1588 config-y += HERMES_PRISM
1589
1590 config-$(call config_package,adm8211) += ADM8211
1591 config-$(call config_package,libertas-sdio) += LIBERTAS LIBERTAS_SDIO
1592 config-$(call config_package,libertas-usb) += LIBERTAS LIBERTAS_USB
1593 config-$(call config_package,libertas-spi) += LIBERTAS LIBERTAS_SPI
1594 config-$(call config_package,mwl8k) += MWL8K
1595 config-$(call config_package,mwifiex-pcie) += MWIFIEX MWIFIEX_PCIE
1596 config-$(call config_package,rtl8180) += RTL8180
1597 config-$(call config_package,rtl8187) += RTL8187
1598 config-$(call config_package,wlcore) += WLCORE WLCORE_SDIO
1599 config-$(call config_package,wl12xx) += WL12XX
1600 config-$(call config_package,wl18xx) += WL18XX
1601 config-y += WL_TI WILINK_PLATFORM_DATA
1602 config-$(call config_package,zd1211rw) += ZD1211RW
1603
1604 config-$(call config_package,rtlwifi) += RTL_CARDS RTLWIFI
1605 config-$(call config_package,rtlwifi-pci) += RTLWIFI_PCI
1606 config-$(call config_package,rtlwifi-usb) += RTLWIFI_USB
1607 config-$(call config_package,rtl8192c-common) += RTL8192C_COMMON
1608 config-$(call config_package,rtl8192ce) += RTL8192CE
1609 config-$(call config_package,rtl8192se) += RTL8192SE
1610 config-$(call config_package,rtl8192de) += RTL8192DE
1611 config-$(call config_package,rtl8192cu) += RTL8192CU
1612 config-$(CONFIG_PACKAGE_RTLWIFI_DEBUG) += RTLWIFI_DEBUG
1613
1614 config-$(call config_package,rtl8xxxu) += RTL8XXXU
1615 config-y += RTL8XXXU_UNTESTED
1616
1617 config-$(CONFIG_LEDS_TRIGGERS) += MAC80211_LEDS B43_LEDS B43LEGACY_LEDS
1618
1619 MAKE_OPTS:= -C "$(PKG_BUILD_DIR)" \
1620         CROSS_COMPILE="$(KERNEL_CROSS)" \
1621         ARCH="$(LINUX_KARCH)" \
1622         EXTRA_CFLAGS="-I$(PKG_BUILD_DIR)/include $(IREMAP_CFLAGS)" \
1623         KLIB_BUILD="$(LINUX_DIR)" \
1624         MODPROBE=true \
1625         KLIB=$(TARGET_MODULES_DIR) \
1626         KERNEL_SUBLEVEL=$(lastword $(subst ., ,$(KERNEL_PATCHVER))) \
1627         KBUILD_LDFLAGS_MODULE_PREREQ=
1628
1629 ifneq ($(findstring c,$(OPENWRT_VERBOSE)),)
1630   MAKE_OPTS += V=1
1631 endif
1632
1633 define ConfigVars
1634 $(subst $(space),,$(foreach opt,$(config-$(1)),CPTCFG_$(opt)=$(1)
1635 ))
1636 endef
1637
1638 define mac80211_config
1639 $(call ConfigVars,m)$(call ConfigVars,y)
1640 endef
1641 $(eval $(call shexport,mac80211_config))
1642
1643 define Build/Prepare
1644         rm -rf $(PKG_BUILD_DIR)
1645         mkdir -p $(PKG_BUILD_DIR)
1646         $(PKG_UNPACK)
1647         $(Build/Patch)
1648         $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
1649         $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
1650         $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
1651         rm -rf \
1652                 $(PKG_BUILD_DIR)/include/linux/ssb \
1653                 $(PKG_BUILD_DIR)/include/linux/bcma \
1654                 $(PKG_BUILD_DIR)/include/net/bluetooth
1655
1656         rm -f \
1657                 $(PKG_BUILD_DIR)/include/linux/cordic.h \
1658                 $(PKG_BUILD_DIR)/include/linux/crc8.h \
1659                 $(PKG_BUILD_DIR)/include/linux/eeprom_93cx6.h \
1660                 $(PKG_BUILD_DIR)/include/linux/wl12xx.h \
1661                 $(PKG_BUILD_DIR)/include/linux/spi/libertas_spi.h \
1662                 $(PKG_BUILD_DIR)/include/net/ieee80211.h \
1663                 $(PKG_BUILD_DIR)/backport-include/linux/bcm47xx_nvram.h
1664
1665         echo 'compat-wireless-$(PKG_VERSION)-$(PKG_RELEASE)-$(REVISION)' > $(PKG_BUILD_DIR)/compat_version
1666         $(CP) ./files/regdb.txt $(PKG_BUILD_DIR)/net/wireless/db.txt
1667 endef
1668
1669 ifneq ($(CONFIG_PACKAGE_kmod-cfg80211)$(CONFIG_PACKAGE_kmod-lib80211),)
1670  define Build/Compile/kmod
1671         rm -rf $(PKG_BUILD_DIR)/modules
1672         +$(MAKE) $(PKG_JOBS) $(MAKE_OPTS) modules
1673  endef
1674 endif
1675
1676 define Build/Configure
1677         cmp $(PKG_BUILD_DIR)/include/linux/ath9k_platform.h $(LINUX_DIR)/include/linux/ath9k_platform.h
1678         cmp $(PKG_BUILD_DIR)/include/linux/ath5k_platform.h $(LINUX_DIR)/include/linux/ath5k_platform.h
1679         cmp $(PKG_BUILD_DIR)/include/linux/rt2x00_platform.h $(LINUX_DIR)/include/linux/rt2x00_platform.h
1680 endef
1681
1682 define Build/Compile
1683         $(SH_FUNC) var2file "$(call shvar,mac80211_config)" $(PKG_BUILD_DIR)/.config
1684         $(MAKE) $(MAKE_OPTS) allnoconfig
1685         $(call Build/Compile/kmod)
1686 endef
1687
1688 define Build/InstallDev
1689         mkdir -p \
1690                 $(1)/usr/include/mac80211 \
1691                 $(1)/usr/include/mac80211-backport \
1692                 $(1)/usr/include/mac80211/ath \
1693                 $(1)/usr/include/net/mac80211
1694         $(CP) $(PKG_BUILD_DIR)/net/mac80211/*.h $(PKG_BUILD_DIR)/include/* $(1)/usr/include/mac80211/
1695         $(CP) $(PKG_BUILD_DIR)/backport-include/* $(1)/usr/include/mac80211-backport/
1696         $(CP) $(PKG_BUILD_DIR)/net/mac80211/rate.h $(1)/usr/include/net/mac80211/
1697         $(CP) $(PKG_BUILD_DIR)/drivers/net/wireless/ath/*.h $(1)/usr/include/mac80211/ath/
1698         rm -f $(1)/usr/include/mac80211-backport/linux/module.h
1699 endef
1700
1701
1702 define KernelPackage/b43/install
1703         rm -rf $(1)/lib/firmware/
1704 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1705         tar xzf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
1706 else
1707         tar xjf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
1708 endif
1709         $(INSTALL_DIR) $(1)/lib/firmware/
1710 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1711         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/"
1712         $(INSTALL_DIR) $(1)/lib/firmware/b43-open/
1713         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/ucode5.fw $(1)/lib/firmware/b43-open/ucode5.fw
1714         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0bsinitvals5.fw $(1)/lib/firmware/b43-open/b0g0bsinitvals5.fw
1715         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0initvals5.fw $(1)/lib/firmware/b43-open/b0g0initvals5.fw
1716 else
1717         b43-fwcutter -w $(1)/lib/firmware/ $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)
1718 endif
1719 ifneq ($(CONFIG_B43_FW_SQUASH),)
1720         b43-fwsquash.py "$(CONFIG_B43_FW_SQUASH_PHYTYPES)" "$(CONFIG_B43_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43"
1721 endif
1722 endef
1723
1724 define KernelPackage/brcmsmac/install
1725         $(INSTALL_DIR) $(1)/lib/firmware/brcm
1726 ifeq ($(CONFIG_BRCMSMAC_USE_FW_FROM_WL),y)
1727         tar xjf "$(DL_DIR)/$(PKG_BRCMSMAC_FW_SOURCE)" -C "$(PKG_BUILD_DIR)"
1728         b43-fwcutter --brcmsmac -w $(1)/lib/firmware/ $(PKG_BUILD_DIR)/$(PKG_BRCMSMAC_FW_OBJECT)
1729 endif
1730 endef
1731
1732 define KernelPackage/cfg80211/install
1733         $(INSTALL_DIR) $(1)/lib/wifi $(1)/lib/netifd/wireless
1734         $(INSTALL_DATA) ./files/lib/wifi/mac80211.sh $(1)/lib/wifi
1735         $(INSTALL_BIN) ./files/lib/netifd/wireless/mac80211.sh $(1)/lib/netifd/wireless
1736 endef
1737
1738 define KernelPackage/ipw2100/install
1739         $(INSTALL_DIR) $(1)/lib/firmware
1740         $(INSTALL_DATA) $(PKG_BUILD_DIR)/ipw2100-$(IPW2100_VERSION)*.fw $(1)/lib/firmware
1741 endef
1742
1743 define KernelPackage/ipw2200/install
1744         $(INSTALL_DIR) $(1)/lib/firmware
1745         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION)/ipw2200*.fw $(1)/lib/firmware
1746 endef
1747
1748 define KernelPackage/zd1211rw/install
1749         $(INSTALL_DIR) $(1)/lib/firmware/zd1211
1750         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(ZD1211FW_NAME)/zd1211* $(1)/lib/firmware/zd1211
1751 endef
1752
1753
1754 $(eval $(call KernelPackage,adm8211))
1755 $(eval $(call KernelPackage,airo))
1756 $(eval $(call KernelPackage,ath))
1757 $(eval $(call KernelPackage,ath10k))
1758 $(eval $(call KernelPackage,ath5k))
1759 $(eval $(call KernelPackage,ath9k))
1760 $(eval $(call KernelPackage,ath9k-common))
1761 $(eval $(call KernelPackage,ath9k-htc))
1762 $(eval $(call KernelPackage,b43))
1763 $(eval $(call KernelPackage,b43legacy))
1764 $(eval $(call KernelPackage,brcmsmac))
1765 $(eval $(call KernelPackage,brcmfmac))
1766 $(eval $(call KernelPackage,brcmutil))
1767 $(eval $(call KernelPackage,carl9170))
1768 $(eval $(call KernelPackage,cfg80211))
1769 $(eval $(call KernelPackage,hermes))
1770 $(eval $(call KernelPackage,hermes-pci))
1771 $(eval $(call KernelPackage,hermes-plx))
1772 $(eval $(call KernelPackage,hermes-pcmcia))
1773 $(eval $(call KernelPackage,iwlwifi))
1774 $(eval $(call KernelPackage,iwl-legacy))
1775 $(eval $(call KernelPackage,iwl4965))
1776 $(eval $(call KernelPackage,iwl3945))
1777 $(eval $(call KernelPackage,lib80211))
1778 $(eval $(call KernelPackage,libertas-usb))
1779 $(eval $(call KernelPackage,libertas-sdio))
1780 $(eval $(call KernelPackage,libertas-spi))
1781 $(eval $(call KernelPackage,libipw))
1782 $(eval $(call KernelPackage,ipw2100))
1783 $(eval $(call KernelPackage,ipw2200))
1784 $(eval $(call KernelPackage,mac80211))
1785 $(eval $(call KernelPackage,mac80211-hwsim))
1786 $(eval $(call KernelPackage,mt7601u))
1787 $(eval $(call KernelPackage,mwl8k))
1788 $(eval $(call KernelPackage,mwifiex-pcie))
1789 $(eval $(call KernelPackage,p54-common))
1790 $(eval $(call KernelPackage,p54-pci))
1791 $(eval $(call KernelPackage,p54-usb))
1792 $(eval $(call KernelPackage,p54-spi))
1793 $(eval $(call KernelPackage,rt2x00-lib))
1794 $(eval $(call KernelPackage,rt2x00-mmio))
1795 $(eval $(call KernelPackage,rt2x00-pci))
1796 $(eval $(call KernelPackage,rt2x00-usb))
1797 $(eval $(call KernelPackage,rt2800-lib))
1798 $(eval $(call KernelPackage,rt2400-pci))
1799 $(eval $(call KernelPackage,rt2500-pci))
1800 $(eval $(call KernelPackage,rt2500-usb))
1801 $(eval $(call KernelPackage,rt2800-mmio))
1802 $(eval $(call KernelPackage,rt2800-soc))
1803 $(eval $(call KernelPackage,rt2800-pci))
1804 $(eval $(call KernelPackage,rt2800-usb))
1805 $(eval $(call KernelPackage,rt61-pci))
1806 $(eval $(call KernelPackage,rt73-usb))
1807 $(eval $(call KernelPackage,rtl8180))
1808 $(eval $(call KernelPackage,rtl8187))
1809 $(eval $(call KernelPackage,rtlwifi))
1810 $(eval $(call KernelPackage,rtlwifi-pci))
1811 $(eval $(call KernelPackage,rtlwifi-usb))
1812 $(eval $(call KernelPackage,rtl8192c-common))
1813 $(eval $(call KernelPackage,rtl8192ce))
1814 $(eval $(call KernelPackage,rtl8192se))
1815 $(eval $(call KernelPackage,rtl8192de))
1816 $(eval $(call KernelPackage,rtl8192cu))
1817 $(eval $(call KernelPackage,rtl8xxxu))
1818 $(eval $(call KernelPackage,wlcore))
1819 $(eval $(call KernelPackage,wl12xx))
1820 $(eval $(call KernelPackage,wl18xx))
1821 $(eval $(call KernelPackage,zd1211rw))