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