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