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