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