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