mac80211: add kernel 4.1 support again
[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-06-22
14 PKG_RELEASE:=1
15 PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
16 PKG_BACKPORT_VERSION:=
17 PKG_MD5SUM:=352b2b46d36a72aadc96161a3cefdb1c
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-crypto-aes +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                   Right now only ath9k makes 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/carl9170
624   $(call KernelPackage/mac80211/Default)
625   TITLE:=Driver for Atheros AR9170 USB sticks
626   DEPENDS:=@USB_SUPPORT +kmod-mac80211 +kmod-ath +kmod-usb-core +kmod-input-core +@DRIVER_11N_SUPPORT
627   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/carl9170/carl9170.ko
628   AUTOLOAD:=$(call AutoProbe,carl9170)
629 endef
630
631 define KernelPackage/lib80211
632   $(call KernelPackage/mac80211/Default)
633   TITLE:=802.11 Networking stack
634   DEPENDS:=+kmod-cfg80211
635   FILES:= \
636         $(PKG_BUILD_DIR)/net/wireless/lib80211.ko \
637         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_wep.ko \
638         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_ccmp.ko \
639         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_tkip.ko
640   AUTOLOAD:=$(call AutoProbe, \
641         lib80211 \
642         lib80211_crypt_wep \
643         lib80211_crypt_ccmp \
644         lib80211_crypt_tkip \
645   )
646 endef
647
648 define KernelPackage/lib80211/description
649  Kernel modules for 802.11 Networking stack
650  Includes:
651  - lib80211
652  - lib80211_crypt_wep
653  - lib80211_crypt_tkip
654  - lib80211_crytp_ccmp
655 endef
656
657 define KernelPackage/libertas-usb
658   $(call KernelPackage/mac80211/Default)
659   DEPENDS+= @USB_SUPPORT +kmod-cfg80211 +kmod-usb-core +kmod-lib80211 +@DRIVER_WEXT_SUPPORT
660   TITLE:=Marvell 88W8015 Wireless Driver
661   FILES:= \
662         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.ko \
663         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/usb8xxx.ko
664   AUTOLOAD:=$(call AutoProbe,libertas usb8xxx)
665 endef
666
667 define KernelPackage/libertas-sdio
668   $(call KernelPackage/mac80211/Default)
669   DEPENDS+= +kmod-cfg80211 +kmod-lib80211 +kmod-mmc +@DRIVER_WEXT_SUPPORT @!TARGET_uml
670   TITLE:=Marvell 88W8686 Wireless Driver
671   FILES:= \
672         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.ko \
673         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas_sdio.ko
674   AUTOLOAD:=$(call AutoProbe,libertas libertas_sdio)
675 endef
676
677 define KernelPackage/mac80211-hwsim
678   $(call KernelPackage/mac80211/Default)
679   TITLE:=mac80211 HW simulation device
680   DEPENDS+= +kmod-mac80211 +@DRIVER_11N_SUPPORT
681   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.ko
682   AUTOLOAD:=$(call AutoProbe,mac80211_hwsim)
683 endef
684
685 define KernelPackage/net-libipw
686   $(call KernelPackage/mac80211/Default)
687   TITLE:=libipw for ipw2100 and ipw2200
688   DEPENDS:=@PCI_SUPPORT +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-aes +kmod-crypto-michael-mic +kmod-lib80211 +kmod-cfg80211 +@DRIVER_WEXT_SUPPORT
689   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/libipw.ko
690   AUTOLOAD:=$(call AutoProbe,libipw)
691 endef
692
693 define KernelPackage/net-libipw/description
694  Hardware independent IEEE 802.11 networking stack for ipw2100 and ipw2200.
695 endef
696
697 IPW2100_NAME:=ipw2100-fw
698 IPW2100_VERSION:=1.3
699
700 define Download/net-ipw2100
701   URL:=http://bughost.org/firmware/
702   FILE:=$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
703   MD5SUM=46aa75bcda1a00efa841f9707bbbd113
704 endef
705 $(eval $(call Download,net-ipw2100))
706
707 define KernelPackage/net-ipw2100
708   $(call KernelPackage/mac80211/Default)
709   TITLE:=Intel IPW2100 driver
710   DEPENDS:=@PCI_SUPPORT +kmod-net-libipw
711   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/ipw2100.ko
712   AUTOLOAD:=$(call AutoProbe,ipw2100)
713 endef
714
715 define KernelPackage/net-ipw2100/description
716  Kernel support for Intel IPW2100
717  Includes:
718  - ipw2100
719 endef
720
721 IPW2200_NAME:=ipw2200-fw
722 IPW2200_VERSION:=3.1
723
724 define Download/net-ipw2200
725   URL:=http://bughost.org/firmware/
726   FILE:=$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
727   MD5SUM=eaba788643c7cc7483dd67ace70f6e99
728 endef
729 $(eval $(call Download,net-ipw2200))
730
731 define KernelPackage/net-ipw2200
732   $(call KernelPackage/mac80211/Default)
733   TITLE:=Intel IPW2200 driver
734   DEPENDS:=@PCI_SUPPORT +kmod-net-libipw
735   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/ipw2200.ko
736   AUTOLOAD:=$(call AutoProbe,ipw2200)
737 endef
738
739 define KernelPackage/net-ipw2200/description
740  Kernel support for Intel IPW2200
741  Includes:
742  - ipw2200
743 endef
744
745
746 define KernelPackage/net-hermes
747   $(call KernelPackage/mac80211/Default)
748   TITLE:=Hermes 802.11b chipset support
749   DEPENDS:=@PCI_SUPPORT||PCMCIA_SUPPORT +kmod-cfg80211 +@DRIVER_WEXT_SUPPORT
750   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco.ko
751   AUTOLOAD:=$(call AutoProbe,orinoco)
752 endef
753
754 define KernelPackage/net-hermes/description
755  Kernel support for Hermes 802.11b chipsets
756 endef
757
758 define KernelPackage/net-hermes-pci
759   $(call KernelPackage/mac80211/Default)
760   TITLE:=Intersil Prism 2.5 PCI support
761   DEPENDS:=@PCI_SUPPORT +kmod-net-hermes
762   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_pci.ko
763   AUTOLOAD:=$(call AutoProbe,orinoco_pci)
764 endef
765
766 define KernelPackage/net-hermes-pci/description
767  Kernel modules for Intersil Prism 2.5 PCI support
768 endef
769
770 define KernelPackage/net-hermes-plx
771   $(call KernelPackage/mac80211/Default)
772   TITLE:=PLX9052 based PCI adaptor
773   DEPENDS:=@PCI_SUPPORT +kmod-net-hermes
774   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_plx.ko
775   AUTOLOAD:=$(call AutoProbe,orinoco_plx)
776 endef
777
778 define KernelPackage/net-hermes-plx/description
779  Kernel modules for Hermes in PLX9052 based PCI adaptors
780 endef
781
782 define KernelPackage/net-hermes-pcmcia
783   $(call KernelPackage/mac80211/Default)
784   TITLE:=Hermes based PCMCIA adaptors
785   DEPENDS:=@PCMCIA_SUPPORT +kmod-net-hermes @BROKEN
786   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_cs.ko
787   AUTOLOAD:=$(call AutoProbe,orinoco_cs)
788 endef
789
790 define KernelPackage/net-hermes-pcmcia/description
791  Kernel modules for Hermes based PCMCIA adaptors
792 endef
793
794 define KernelPackage/iwlagn
795   $(call KernelPackage/mac80211/Default)
796   DEPENDS:= +kmod-mac80211 @PCI_SUPPORT +@DRIVER_11N_SUPPORT
797   TITLE:=Intel AGN Wireless support
798   FILES:= \
799         $(PKG_BUILD_DIR)/drivers/net/wireless/iwlwifi/iwlwifi.ko \
800         $(PKG_BUILD_DIR)/drivers/net/wireless/iwlwifi/dvm/iwldvm.ko
801   AUTOLOAD:=$(call AutoProbe,iwlwifi iwldvm)
802   MENU:=1
803 endef
804
805 define KernelPackage/iwlagn/description
806  iwlagn kernel module for Intel 5000/5150/1000/6000/6050/6005/6030/100 support
807 endef
808
809 define KernelPackage/iwlagn/config
810   if PACKAGE_kmod-iwlagn
811
812         config IWL5000_FW
813                 bool "Intel 5000 Firmware"
814                 default y
815                 help
816                   Download and install firmware for:
817                     Intel Wireless WiFi 5100AGN, 5300AGN, and 5350AGN
818
819         config IWL5150_FW
820                 bool "Intel 5150 Firmware"
821                 default y
822                 help
823                   Download and install firmware for:
824                     Intel Wireless WiFi 5150AGN
825
826         config IWL1000_FW
827                 bool "Intel 1000 Firmware"
828                 default y
829                 help
830                   Download and install firmware for:
831                     Intel Centrino Wireless-N 1000
832
833         config IWL6000_FW
834                 bool "Intel 6000 Firmware"
835                 default y
836                 help
837                   Download and install firmware for:
838                     Intel Centrino Ultimate-N 6300 and Advanced-N 6200
839
840         config IWL6050_FW
841                 bool "Intel 6050 Firmware"
842                 default y
843                 help
844                   Download and install firmware for:
845                     Intel Centrino Advanced-N + WiMAX 6250 and Wireless-N + WiMAX 6150
846
847         config IWL6005_FW
848                 bool "Intel 6005 Firmware"
849                 default y
850                 help
851                   Download and install firmware for:
852                     Intel Centrino Advanced-N 6205
853
854         config IWL6030_FW
855                 bool "Intel 6030 Firmware"
856                 default y
857                 help
858                   Download and install firmware for:
859                     Intel Centrino Advanced-N 6230, Wireless-N 1030, Wireless-N 130 and Advanced-N 6235
860
861         config IWL7260_FW
862                 bool "Intel 7260 Firmware"
863                 default y
864                 help
865                   Download and install firmware for:
866                     Intel Dual Band Wireless-N 7260 and Intel Dual Band Wireless-AC 7260
867
868         config IWL7265_FW
869                 bool "Intel 7265 Firmware"
870                 default y
871                 help
872                   Download and install firmware for:
873                     Intel Wireless 7265
874
875         config IWL100_FW
876                 bool "Intel 100 Firmware"
877                 default y
878                 help
879                   Download and install firmware for:
880                     Intel Centrino Wireless-N 100
881
882         config IWL2000_FW
883                 bool "Intel 2000 Firmware"
884                 default y
885                 help
886                   Download and install firmware for:
887                     Intel Centrino Wireless-N 2200
888
889         config IWL2030_FW
890                 bool "Intel 2030 Firmware"
891                 default y
892                 help
893                   Download and install firmware for:
894                     Intel Centrino Wireless-N 2230
895
896         config IWL105_FW
897                 bool "Intel 105 Firmware"
898                 default y
899                 help
900                   Download and install firmware for:
901                     Intel Centrino Wireless-N 105
902
903         config IWL135_FW
904                 bool "Intel 135 Firmware"
905                 default y
906                 help
907                   Download and install firmware for:
908                     Intel Centrino Wireless-N 135
909
910         config IWL3160_FW
911                 bool "Intel 3160 Firmware"
912                 default y
913                 help
914                   Download and install firmware for:
915                     Intel Wireless 3160
916   endif
917 endef
918
919 define KernelPackage/iwl-legacy
920   $(call KernelPackage/mac80211/Default)
921   DEPENDS:= +kmod-mac80211 @PCI_SUPPORT
922   TITLE:=Intel legacy Wireless support
923   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlegacy/iwlegacy.ko
924   AUTOLOAD:=$(call AutoProbe,iwlegacy)
925 endef
926
927 define KernelPackage/iwl-legacy/description
928  iwl-legacy kernel module for legacy Intel wireless support
929 endef
930
931 define KernelPackage/iwl3945
932   $(call KernelPackage/mac80211/Default)
933   DEPENDS:= +kmod-mac80211 +kmod-iwl-legacy
934   TITLE:=Intel iwl3945 Wireless support
935   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlegacy/iwl3945.ko
936   AUTOLOAD:=$(call AutoProbe,iwl3945)
937 endef
938
939 define KernelPackage/iwl3945/description
940  iwl3945 kernel module for Intel 3945 support
941 endef
942
943 define KernelPackage/iwl4965
944   $(call KernelPackage/mac80211/Default)
945   DEPENDS:= +kmod-mac80211 +kmod-iwl-legacy +@DRIVER_11N_SUPPORT
946   TITLE:=Intel iwl4965 Wireless support
947   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlegacy/iwl4965.ko
948   AUTOLOAD:=$(call AutoProbe,iwl4965)
949 endef
950
951 define KernelPackage/iwl4965/description
952  iwl4965 kernel module for Intel 4965 support
953 endef
954
955
956 define KernelPackage/mwl8k
957   $(call KernelPackage/mac80211/Default)
958   TITLE:=Driver for Marvell TOPDOG 802.11 Wireless cards
959   URL:=http://wireless.kernel.org/en/users/Drivers/mwl8k
960   DEPENDS+= @PCI_SUPPORT +kmod-mac80211 +@DRIVER_11N_SUPPORT
961   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mwl8k.ko
962   AUTOLOAD:=$(call AutoProbe,mwl8k)
963 endef
964
965 define KernelPackage/mwl8k/description
966  Kernel modules for Marvell TOPDOG 802.11 Wireless cards
967 endef
968
969
970 define KernelPackage/mwifiex-pcie
971   $(call KernelPackage/mac80211/Default)
972   TITLE:=Driver for Marvell 802.11n/802.11ac PCIe Wireless cards
973   URL:=http://wireless.kernel.org/en/users/Drivers/mwifiex
974   DEPENDS+= @PCI_SUPPORT +kmod-mac80211 +@DRIVER_11N_SUPPORT
975   FILES:= \
976         $(PKG_BUILD_DIR)/drivers/net/wireless/mwifiex/mwifiex.ko \
977         $(PKG_BUILD_DIR)/drivers/net/wireless/mwifiex/mwifiex_pcie.ko
978   AUTOLOAD:=$(call AutoProbe,mwifiex_pcie)
979 endef
980
981 define KernelPackage/mwifiex-pcie/description
982  Kernel modules for Marvell 802.11n/802.11ac PCIe Wireless cards
983 endef
984
985
986 define KernelPackage/wlcore
987   $(call KernelPackage/mac80211/Default)
988   TITLE:=TI common driver part
989   DEPENDS+= @TARGET_omap +kmod-mac80211 +@DRIVER_11N_SUPPORT
990   FILES:= \
991         $(PKG_BUILD_DIR)/drivers/net/wireless/ti/wlcore/wlcore.ko \
992         $(PKG_BUILD_DIR)/drivers/net/wireless/ti/wlcore/wlcore_sdio.ko
993   AUTOLOAD:=$(call AutoProbe,wlcore wlcore_sdio)
994 endef
995
996 define KernelPackage/wlcore/description
997  This module contains some common parts needed by TI Wireless drivers.
998 endef
999
1000 define KernelPackage/wl12xx
1001   $(call KernelPackage/mac80211/Default)
1002   TITLE:=Driver for TI WL12xx
1003   URL:=http://wireless.kernel.org/en/users/Drivers/wl12xx
1004   DEPENDS+= +kmod-wlcore
1005   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ti/wl12xx/wl12xx.ko
1006   AUTOLOAD:=$(call AutoProbe,wl12xx)
1007 endef
1008
1009 define KernelPackage/wl12xx/description
1010  Kernel modules for TI WL12xx
1011 endef
1012
1013 define KernelPackage/wl18xx
1014   $(call KernelPackage/mac80211/Default)
1015   TITLE:=Driver for TI WL18xx
1016   URL:=http://wireless.kernel.org/en/users/Drivers/wl18xx
1017   DEPENDS+= +kmod-wlcore
1018   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ti/wl18xx/wl18xx.ko
1019   AUTOLOAD:=$(call AutoProbe,wl18xx)
1020 endef
1021
1022 define KernelPackage/wl18xx/description
1023  Kernel modules for TI WL18xx
1024 endef
1025
1026
1027 #Broadcom firmware
1028 ifneq ($(CONFIG_B43_FW_6_30),)
1029   PKG_B43_FWV4_NAME:=broadcom-wl
1030   PKG_B43_FWV4_VERSION:=6.30.163.46
1031   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).wl_apsta.o
1032   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
1033   PKG_B43_FWV4_SOURCE_URL:=http://www.lwfinger.com/b43-firmware/
1034   PKG_B43_FWV4_MD5SUM:=6fe97e9368d25342a1ab943d3cf3496d
1035 else
1036 ifneq ($(CONFIG_B43_FW_5_10),)
1037   PKG_B43_FWV4_NAME:=broadcom-wl
1038   PKG_B43_FWV4_VERSION:=5.10.56.27.3
1039   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/driver/wl_apsta/wl_prebuilt.o
1040   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)_mipsel.tar.bz2
1041   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
1042   PKG_B43_FWV4_MD5SUM:=3363e3a6b3d9d73c49dea870c7834eac
1043 else
1044 ifneq ($(CONFIG_B43_FW_4_178),)
1045   PKG_B43_FWV4_NAME:=broadcom-wl
1046   PKG_B43_FWV4_VERSION:=4.178.10.4
1047   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/linux/wl_apsta.o
1048   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
1049   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
1050   PKG_B43_FWV4_MD5SUM:=14477e8cbbb91b11896affac9b219fdb
1051 else
1052 ifneq ($(CONFIG_B43_FW_5_100_138),)
1053   PKG_B43_FWV4_NAME:=broadcom-wl
1054   PKG_B43_FWV4_VERSION:=5.100.138
1055   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/linux/wl_apsta.o
1056   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
1057   PKG_B43_FWV4_SOURCE_URL:=http://www.lwfinger.com/b43-firmware/
1058   PKG_B43_FWV4_MD5SUM:=f4e357b09eaf5d8b1f1920cf3493a555
1059 else
1060   PKG_B43_FWV4_NAME:=broadcom-wl
1061   PKG_B43_FWV4_VERSION:=4.150.10.5
1062   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/driver/wl_apsta_mimo.o
1063   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
1064   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
1065   PKG_B43_FWV4_MD5SUM:=0c6ba9687114c6b598e8019e262d9a60
1066 endif
1067 endif
1068 endif
1069 endif
1070 ifneq ($(CONFIG_B43_OPENFIRMWARE),)
1071   PKG_B43_FWV4_NAME:=broadcom-wl
1072   PKG_B43_FWV4_VERSION:=5.2
1073   PKG_B43_FWV4_OBJECT:=openfwwf-$(PKG_B43_FWV4_VERSION)
1074   PKG_B43_FWV4_SOURCE:=openfwwf-$(PKG_B43_FWV4_VERSION).tar.gz
1075   PKG_B43_FWV4_SOURCE_URL:=http://www.ing.unibs.it/openfwwf/firmware/
1076   PKG_B43_FWV4_MD5SUM:=e045a135453274e439ae183f8498b0fa
1077 endif
1078
1079
1080 PKG_B43_FWV3_NAME:=wl_apsta
1081 PKG_B43_FWV3_VERSION:=3.130.20.0
1082 PKG_B43_FWV3_SOURCE:=$(PKG_B43_FWV3_NAME)-$(PKG_B43_FWV3_VERSION).o
1083 PKG_B43_FWV3_SOURCE_URL:=http://downloads.openwrt.org/sources/
1084 PKG_B43_FWV3_MD5SUM:=e08665c5c5b66beb9c3b2dd54aa80cb3
1085
1086 define Download/b43
1087   FILE:=$(PKG_B43_FWV4_SOURCE)
1088   URL:=$(PKG_B43_FWV4_SOURCE_URL)
1089   MD5SUM:=$(PKG_B43_FWV4_MD5SUM)
1090 endef
1091 $(eval $(call Download,b43))
1092
1093 define Download/b43legacy
1094   FILE:=$(PKG_B43_FWV3_SOURCE)
1095   URL:=$(PKG_B43_FWV3_SOURCE_URL)
1096   MD5SUM:=$(PKG_B43_FWV3_MD5SUM)
1097 endef
1098 $(eval $(call Download,b43legacy))
1099
1100
1101 define KernelPackage/b43
1102   $(call KernelPackage/mac80211/Default)
1103   TITLE:=Broadcom 43xx wireless support
1104   URL:=https://wireless.wiki.kernel.org/en/users/drivers/b43
1105   KCONFIG:= \
1106         CONFIG_HW_RANDOM=y
1107   # Depend on PCI_SUPPORT to make sure we can select kmod-bcma or kmod-ssb
1108   DEPENDS += \
1109         @PCI_SUPPORT +kmod-mac80211 \
1110         $(if $(CONFIG_PACKAGE_B43_USE_SSB),+kmod-ssb) \
1111         $(if $(CONFIG_PACKAGE_B43_USE_BCMA),+kmod-bcma)
1112   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43/b43.ko
1113   AUTOLOAD:=$(call AutoProbe,b43)
1114   MENU:=1
1115 endef
1116
1117 define KernelPackage/b43/config
1118
1119 config PACKAGE_B43_USE_SSB
1120         select PACKAGE_kmod-ssb
1121         tristate
1122         depends on !TARGET_brcm47xx && !TARGET_brcm63xx
1123         default PACKAGE_kmod-b43 if PACKAGE_B43_BUSES_BCMA_AND_SSB
1124         default PACKAGE_kmod-b43 if PACKAGE_B43_BUSES_SSB
1125
1126 config PACKAGE_B43_USE_BCMA
1127         select PACKAGE_kmod-bcma
1128         tristate
1129         depends on !TARGET_brcm47xx && !TARGET_bcm53xx
1130         default PACKAGE_kmod-b43 if PACKAGE_B43_BUSES_BCMA_AND_SSB
1131         default PACKAGE_kmod-b43 if PACKAGE_B43_BUSES_BCMA
1132
1133   if PACKAGE_kmod-b43
1134
1135         choice
1136                 prompt "b43 firmware version"
1137                 default B43_FW_5_100_138
1138                 help
1139                   This option allows you to select the version of the b43 firmware.
1140
1141         config B43_FW_4_150
1142                 bool "Firmware 410.2160 from driver 4.150.10.5 (old stable)"
1143                 help
1144                   Old stable firmware for BCM43xx devices.
1145
1146                   If unsure, select this.
1147
1148         config B43_FW_4_178
1149                 bool "Firmware 478.104 from driver 4.178.10.4"
1150                 help
1151                   Older firmware for BCM43xx devices.
1152
1153                   If unsure, select the "stable" firmware.
1154
1155         config B43_FW_5_10
1156                 bool "Firmware 508.1084 from driver 5.10.56.27"
1157                 help
1158                   Older firmware for BCM43xx devices.
1159
1160                   If unsure, select the "stable" firmware.
1161
1162         config B43_FW_5_100_138
1163                 bool "Firmware 666.2 from driver 5.100.138 (stable)"
1164                 help
1165                   The currently default firmware for BCM43xx devices.
1166
1167                   This firmware currently gets most of the testing and is needed for some N-PHY devices.
1168
1169                   If unsure, select the this firmware.
1170
1171         config B43_FW_6_30
1172                 bool "Firmware 784.2 from driver 6.30.163.46 (experimental)"
1173                 help
1174                   Newer experimental firmware for BCM43xx devices.
1175
1176                   This firmware is mostly untested.
1177
1178                   If unsure, select the "stable" firmware.
1179
1180         config B43_OPENFIRMWARE
1181                 bool "Open FirmWare for WiFi networks"
1182                 help
1183                   Opensource firmware for BCM43xx devices.
1184
1185                   Do _not_ select this, unless you know what you are doing.
1186                   The Opensource firmware is not suitable for embedded devices, yet.
1187                   It does not support QoS, which is bad for AccessPoints.
1188                   It does not support hardware crypto acceleration, which is a showstopper
1189                   for embedded devices with low CPU resources.
1190
1191                   If unsure, select the "stable" firmware.
1192
1193         endchoice
1194
1195         config B43_FW_SQUASH
1196                 bool "Remove unnecessary firmware files"
1197                 depends on !B43_OPENFIRMWARE
1198                 default y
1199                 help
1200                   This options allows you to remove unnecessary b43 firmware files
1201                   from the final rootfs image. This can reduce the rootfs size by
1202                   up to 200k.
1203
1204                   If unsure, say Y.
1205
1206         config B43_FW_SQUASH_COREREVS
1207                 string "Core revisions to include"
1208                 depends on B43_FW_SQUASH
1209                 default "5,6,7,8,9,10,11,13,15" if TARGET_brcm47xx_legacy
1210                 default "16,28,29,30" if TARGET_brcm47xx_mips74k
1211                 default "5,6,7,8,9,10,11,13,15,16,28,29,30"
1212                 help
1213                   This is a comma seperated list of core revision numbers.
1214
1215                   Example (keep files for rev5 only):
1216                     5
1217
1218                   Example (keep files for rev5 and rev11):
1219                     5,11
1220
1221         config B43_FW_SQUASH_PHYTYPES
1222                 string "PHY types to include"
1223                 depends on B43_FW_SQUASH
1224                 default "G,N,LP" if TARGET_brcm47xx_legacy
1225                 default "N,HT" if TARGET_brcm47xx_mips74k
1226                 default "G,N,LP,HT"
1227                 help
1228                   This is a comma seperated list of PHY types:
1229                     A  => A-PHY
1230                     AG => Dual A-PHY G-PHY
1231                     G  => G-PHY
1232                     LP => LP-PHY
1233                     N  => N-PHY
1234                     HT  => HT-PHY
1235                     LCN  => LCN-PHY
1236                     LCN40  => LCN40-PHY
1237                     AC  => AC-PHY
1238
1239                   Example (keep files for G-PHY only):
1240                     G
1241
1242                   Example (keep files for G-PHY and N-PHY):
1243                     G,N
1244
1245         choice
1246                 prompt "Supported buses"
1247                 default PACKAGE_B43_BUSES_BCMA_AND_SSB
1248                 help
1249                   This allows choosing buses that b43 should support.
1250
1251         config PACKAGE_B43_BUSES_BCMA_AND_SSB
1252                 depends on !TARGET_brcm47xx_legacy && !TARGET_brcm47xx_mips74k && !TARGET_bcm53xx
1253                 bool "BCMA and SSB"
1254
1255         config PACKAGE_B43_BUSES_BCMA
1256                 depends on !TARGET_brcm47xx_legacy
1257                 bool "BCMA only"
1258
1259         config PACKAGE_B43_BUSES_SSB
1260                 depends on !TARGET_brcm47xx_mips74k && !TARGET_bcm53xx
1261                 bool "SSB only"
1262
1263         endchoice
1264
1265         config PACKAGE_B43_DEBUG
1266                 bool "Enable debug output and debugfs for b43"
1267                 default n
1268                 help
1269                   Enable additional debug output and runtime sanity checks for b43
1270                   and enables the debugfs interface.
1271
1272                   If unsure, say N.
1273
1274         config PACKAGE_B43_PIO
1275                 bool "Enable support for PIO transfer mode"
1276                 default n
1277                 help
1278                   Enable support for using PIO instead of DMA. Unless you have DMA
1279                   transfer problems you don't need this.
1280
1281                   If unsure, say N.
1282
1283         config PACKAGE_B43_PHY_G
1284                 bool "Enable support for G-PHYs"
1285                 default n if TARGET_brcm47xx_mips74k
1286                 default y
1287                 help
1288                   Enable support for G-PHY. This includes support for the following devices:
1289                   PCI: BCM4306, BCM4311, BCM4318
1290                   SoC: BCM5352E, BCM4712
1291
1292                   If unsure, say Y.
1293
1294         config PACKAGE_B43_PHY_N
1295                 bool "Enable support for N-PHYs"
1296                 default y
1297                 help
1298                   Enable support for N-PHY. This includes support for the following devices:
1299                   PCI: BCM4321, BCM4322, BCM43222, BCM43224, BCM43225
1300                   SoC: BCM4716, BCM4717, BCM4718
1301
1302                   Currently only 11g speed is available.
1303
1304                   If unsure, say Y.
1305
1306         config PACKAGE_B43_PHY_LP
1307                 bool "Enable support for LP-PHYs"
1308                 default n if TARGET_brcm47xx_mips74k
1309                 default y
1310                 help
1311                   Enable support for LP-PHY. This includes support for the following devices:
1312                   PCI: BCM4312
1313                   SoC: BCM5354
1314
1315                   If unsure, say Y.
1316
1317         config PACKAGE_B43_PHY_HT
1318                 bool "Enable support for HT-PHYs"
1319                 default n if TARGET_brcm47xx_legacy
1320                 default y
1321                 help
1322                   Enable support for HT-PHY. This includes support for the following devices:
1323                   PCI: BCM4331
1324
1325                   Currently only 11g speed is available.
1326
1327                   If unsure, say Y.
1328
1329         config PACKAGE_B43_PHY_LCN
1330                 bool "Enable support for LCN-PHYs"
1331                 depends on BROKEN
1332                 default n
1333                 help
1334                   Currently broken.
1335
1336                   If unsure, say N.
1337
1338   endif
1339 endef
1340
1341 define KernelPackage/b43/description
1342 Kernel module for Broadcom 43xx wireless support (mac80211 stack) new
1343 endef
1344
1345 define KernelPackage/b43legacy
1346   $(call KernelPackage/mac80211/Default)
1347   TITLE:=Broadcom 43xx-legacy wireless support
1348   URL:=https://wireless.wiki.kernel.org/en/users/drivers/b43
1349   KCONFIG:= \
1350         CONFIG_HW_RANDOM=y
1351   DEPENDS+= +kmod-mac80211 +!(TARGET_brcm47xx||TARGET_brcm63xx):kmod-ssb
1352   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43legacy/b43legacy.ko
1353   AUTOLOAD:=$(call AutoProbe,b43legacy)
1354   MENU:=1
1355 endef
1356
1357 define KernelPackage/b43legacy/config
1358   if PACKAGE_kmod-b43legacy
1359
1360         config B43LEGACY_FW_SQUASH
1361                 bool "Remove unnecessary firmware files"
1362                 default y
1363                 help
1364                   This options allows you to remove unnecessary b43legacy firmware files
1365                   from the final rootfs image. This can reduce the rootfs size by
1366                   up to 50k.
1367
1368                   If unsure, say Y.
1369
1370         config B43LEGACY_FW_SQUASH_COREREVS
1371                 string "Core revisions to include"
1372                 depends on B43LEGACY_FW_SQUASH
1373                 default "1,2,3,4"
1374                 help
1375                   This is a comma seperated list of core revision numbers.
1376
1377                   Example (keep files for rev4 only):
1378                     4
1379
1380                   Example (keep files for rev2 and rev4):
1381                     2,4
1382
1383   endif
1384 endef
1385
1386 define KernelPackage/b43legacy/description
1387 Kernel module for Broadcom 43xx-legacy wireless support (mac80211 stack) new
1388 endef
1389
1390
1391 define KernelPackage/brcmutil
1392   $(call KernelPackage/mac80211/Default)
1393   TITLE:=Broadcom IEEE802.11n common driver parts
1394   URL:=https://wireless.wiki.kernel.org/en/users/drivers/brcm80211
1395   DEPENDS+=@PCI_SUPPORT||USB_SUPPORT
1396   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/brcm80211/brcmutil/brcmutil.ko
1397   AUTOLOAD:=$(call AutoProbe,brcmutil)
1398   MENU:=1
1399 endef
1400
1401 define KernelPackage/brcmutil/description
1402  This module contains some common parts needed by Broadcom Wireless drivers brcmsmac and brcmfmac.
1403 endef
1404
1405 define KernelPackage/brcmutil/config
1406   if PACKAGE_kmod-brcmutil
1407
1408         config PACKAGE_BRCM80211_DEBUG
1409                 bool "Broadcom wireless driver debugging"
1410                 help
1411                   Say Y, if you want to debug brcmsmac and brcmfmac wireless driver.
1412
1413   endif
1414 endef
1415
1416 PKG_BRCMSMAC_FW_NAME:=broadcom-wl
1417 PKG_BRCMSMAC_FW_VERSION:=5.100.138
1418 PKG_BRCMSMAC_FW_OBJECT:=$(PKG_BRCMSMAC_FW_NAME)-$(PKG_BRCMSMAC_FW_VERSION)/linux/wl_apsta.o
1419 PKG_BRCMSMAC_FW_SOURCE:=$(PKG_BRCMSMAC_FW_NAME)-$(PKG_BRCMSMAC_FW_VERSION).tar.bz2
1420 PKG_BRCMSMAC_FW_SOURCE_URL:=http://www.lwfinger.com/b43-firmware/
1421 PKG_BRCMSMAC_FW_MD5SUM:=f4e357b09eaf5d8b1f1920cf3493a555
1422
1423 define Download/brcmsmac
1424   FILE:=$(PKG_BRCMSMAC_FW_SOURCE)
1425   URL:=$(PKG_BRCMSMAC_FW_SOURCE_URL)
1426   MD5SUM:=$(PKG_BRCMSMAC_FW_MD5SUM)
1427 endef
1428 $(eval $(call Download,brcmsmac))
1429
1430 define KernelPackage/brcmsmac
1431   $(call KernelPackage/mac80211/Default)
1432   TITLE:=Broadcom IEEE802.11n PCIe SoftMAC WLAN driver
1433   URL:=https://wireless.wiki.kernel.org/en/users/drivers/brcm80211
1434   DEPENDS+= +kmod-mac80211 +@DRIVER_11N_SUPPORT +!TARGET_brcm47xx:kmod-bcma +kmod-lib-cordic +kmod-lib-crc8 +kmod-brcmutil
1435   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/brcm80211/brcmsmac/brcmsmac.ko
1436   AUTOLOAD:=$(call AutoProbe,brcmsmac)
1437   MENU:=1
1438 endef
1439
1440 define KernelPackage/brcmsmac/description
1441  Kernel module for Broadcom IEEE802.11n PCIe Wireless cards
1442 endef
1443
1444 define KernelPackage/brcmsmac/config
1445   if PACKAGE_kmod-brcmsmac
1446
1447         config BRCMSMAC_USE_FW_FROM_WL
1448                 bool "Use firmware extracted from broadcom proprietary driver"
1449                 default y
1450                 help
1451                   Instead of using the official brcmsmac firmware a firmware
1452                   version 666.2 extracted from the proprietary Broadcom driver
1453                   is used. This is needed to get core rev 17 used in bcm4716
1454                   to work.
1455
1456                   If unsure, say Y.
1457
1458   endif
1459 endef
1460
1461
1462 define KernelPackage/brcmfmac
1463   $(call KernelPackage/mac80211/Default)
1464   TITLE:=Broadcom IEEE802.11n USB FullMAC WLAN driver
1465   URL:=https://wireless.wiki.kernel.org/en/users/drivers/brcm80211
1466   DEPENDS+= @USB_SUPPORT +kmod-cfg80211 +@DRIVER_11N_SUPPORT +kmod-brcmutil +BRCMFMAC_SDIO:kmod-mmc +BRCMFMAC_USB:kmod-usb-core
1467   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.ko
1468   AUTOLOAD:=$(call AutoProbe,brcmfmac)
1469 endef
1470
1471 define KernelPackage/brcmfmac/description
1472  Kernel module for Broadcom IEEE802.11n USB Wireless cards
1473 endef
1474
1475 define KernelPackage/brcmfmac/config
1476   if PACKAGE_kmod-brcmfmac
1477
1478         config BRCMFMAC_SDIO
1479                 bool "Enable SDIO bus interface support"
1480                 default n
1481                 help
1482                   Enable support for cards attached to an SDIO bus.
1483                   Select this option only if you are sure that your
1484                   board has a Broadcom wireless chip atacched to
1485                   that bus.
1486
1487         config BRCMFMAC_USB
1488                 bool "Enable USB bus interface support"
1489                 depends on USB_SUPPORT
1490                 default y
1491                 help
1492                   Supported USB connected chipsets:
1493                   BCM43235, BCM43236, BCM43238 (all in revision 3 only)
1494                   BCM43143, BCM43242, BCM43566, BCM43569
1495
1496         config BRCMFMAC_PCIE
1497                 bool "Enable PCIE bus interface support"
1498                 depends on PCI_SUPPORT
1499                 default y
1500                 help
1501                   Supported PCIe connected chipsets:
1502                   BCM4354, BCM4356, BCM43567, BCM43570, BCM43602
1503
1504   endif
1505 endef
1506
1507 config_package=$(if $(CONFIG_PACKAGE_kmod-$(1)),m)
1508
1509 config-y:= \
1510         WLAN \
1511         NL80211_TESTMODE \
1512         CFG80211_WEXT \
1513         CFG80211_INTERNAL_REGDB \
1514         CFG80211_CERTIFICATION_ONUS \
1515         MAC80211_RC_MINSTREL \
1516         MAC80211_RC_MINSTREL_HT \
1517         MAC80211_RC_MINSTREL_VHT \
1518         MAC80211_RC_DEFAULT_MINSTREL \
1519
1520 config-$(call config_package,cfg80211) += CFG80211
1521
1522 config-$(call config_package,mac80211) += MAC80211
1523 config-$(CONFIG_PACKAGE_MAC80211_MESH) += MAC80211_MESH
1524 ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
1525   config-y += \
1526         CFG80211_DEBUGFS \
1527         MAC80211_DEBUGFS \
1528         ATH9K_DEBUGFS \
1529         ATH9K_HTC_DEBUGFS \
1530         ATH10K_DEBUGFS \
1531         CARL9170_DEBUGFS \
1532         ATH5K_DEBUG
1533 endif
1534
1535 config-$(call config_package,lib80211) += LIB80211 LIB80211_CRYPT_WEP LIB80211_CRYPT_CCMP LIB80211_CRYPT_TKIP
1536
1537 config-$(call config_package,ath) += ATH_CARDS ATH_COMMON
1538 config-$(CONFIG_PACKAGE_ATH_DEBUG) += ATH_DEBUG ATH10K_DEBUG
1539 config-$(CONFIG_PACKAGE_ATH_DFS) += ATH9K_DFS_CERTIFIED ATH10K_DFS_CERTIFIED
1540
1541 config-$(call config_package,ath9k) += ATH9K
1542 config-$(call config_package,ath9k-common) += ATH9K_COMMON
1543 config-$(CONFIG_TARGET_ar71xx) += ATH9K_AHB
1544 config-$(CONFIG_PCI) += ATH9K_PCI
1545 config-$(CONFIG_ATH_USER_REGD) += ATH_USER_REGD
1546 config-$(CONFIG_ATH9K_SUPPORT_PCOEM) += ATH9K_PCOEM
1547
1548 config-$(call config_package,ath9k-htc) += ATH9K_HTC
1549 config-$(call config_package,ath10k) += ATH10K ATH10K_PCI
1550
1551 config-$(call config_package,ath5k) += ATH5K
1552 ifdef CONFIG_TARGET_ath25
1553   config-y += ATH5K_AHB
1554 else
1555   config-y += ATH5K_PCI
1556 endif
1557
1558 config-$(call config_package,carl9170) += CARL9170
1559
1560 config-$(call config_package,b43) += B43
1561 config-$(CONFIG_PACKAGE_B43_BUSES_BCMA_AND_SSB) += B43_BUSES_BCMA_AND_SSB
1562 config-$(CONFIG_PACKAGE_B43_BUSES_BCMA) += B43_BUSES_BCMA
1563 config-$(CONFIG_PACKAGE_B43_BUSES_SSB) += B43_BUSES_SSB
1564 config-$(CONFIG_PACKAGE_B43_PHY_G) += B43_PHY_G
1565 config-$(CONFIG_PACKAGE_B43_PHY_N) += B43_PHY_N
1566 config-$(CONFIG_PACKAGE_B43_PHY_LP) += B43_PHY_LP
1567 config-$(CONFIG_PACKAGE_B43_PHY_HT) += B43_PHY_HT
1568 config-$(CONFIG_PACKAGE_B43_PIO) += B43_PIO
1569 config-$(CONFIG_PACKAGE_B43_DEBUG) += B43_DEBUG
1570
1571 config-$(call config_package,b43legacy) += B43LEGACY
1572 config-y += B43LEGACY_DMA_MODE
1573
1574 config-$(call config_package,brcmutil) += BRCMUTIL
1575 config-$(call config_package,brcmsmac) += BRCMSMAC
1576 config-$(call config_package,brcmfmac) += BRCMFMAC
1577 config-$(CONFIG_BRCMFMAC_SDIO) += BRCMFMAC_SDIO
1578 config-$(CONFIG_BRCMFMAC_USB) += BRCMFMAC_USB
1579 config-$(CONFIG_BRCMFMAC_PCIE) += BRCMFMAC_PCIE
1580 config-$(CONFIG_PACKAGE_BRCM80211_DEBUG) += BRCMDBG
1581
1582 config-$(call config_package,mac80211-hwsim) += MAC80211_HWSIM
1583
1584 config-$(call config_package,rt2x00-lib) += RT2X00 RT2X00_LIB
1585 config-$(call config_package,rt2x00-pci) += RT2X00_LIB_PCI
1586 config-$(call config_package,rt2x00-mmio) += RT2X00_LIB_MMIO
1587 config-$(call config_package,rt2x00-usb) += RT2X00_LIB_USB
1588 config-$(CONFIG_PACKAGE_RT2X00_LIB_DEBUGFS) += RT2X00_LIB_DEBUGFS
1589 config-$(CONFIG_PACKAGE_RT2X00_DEBUG) += RT2X00_DEBUG
1590
1591 config-$(call config_package,rt2400-pci) += RT2400PCI
1592 config-$(call config_package,rt2500-pci) += RT2500PCI
1593 config-$(call config_package,rt2500-usb) += RT2500USB
1594 config-$(call config_package,rt61-pci) += RT61PCI
1595 config-$(call config_package,rt73-usb) += RT73USB
1596
1597 config-$(call config_package,rt2800-lib) += RT2800_LIB
1598
1599 config-$(call config_package,rt2800-soc) += RT2800SOC
1600 config-$(call config_package,rt2800-pci) += RT2800PCI
1601 config-y += RT2800PCI_RT33XX RT2800PCI_RT35XX RT2800PCI_RT53XX RT2800PCI_RT3290
1602
1603 config-$(call config_package,rt2800-usb) += RT2800USB
1604 config-y += RT2800USB_RT33XX RT2800USB_RT35XX RT2800USB_RT3573 RT2800USB_RT53XX RT2800USB_RT55XX
1605
1606 config-$(call config_package,iwl-legacy) += IWLEGACY
1607 config-$(call config_package,iwl3945) += IWL3945
1608 config-$(call config_package,iwl4965) += IWL4965
1609 config-$(call config_package,iwlagn) += IWLWIFI IWLDVM
1610
1611 config-$(call config_package,net-libipw) += LIBIPW
1612 config-$(call config_package,net-ipw2100) += IPW2100
1613 config-$(call config_package,net-ipw2200) += IPW2200
1614
1615 config-$(call config_package,p54-common) += P54_COMMON
1616 config-$(call config_package,p54-pci) += P54_PCI
1617 config-$(call config_package,p54-usb) += P54_USB
1618 config-$(call config_package,p54-spi) += P54_SPI
1619
1620 config-$(call config_package,net-hermes) += HERMES
1621 config-$(call config_package,net-hermes-pci) += PCI_HERMES
1622 config-$(call config_package,net-hermes-plx) += PLX_HERMES
1623 config-$(call config_package,net-hermes-pcmcia) += PCMCIA_HERMES
1624 config-y += HERMES_PRISM
1625
1626 config-$(call config_package,adm8211) += ADM8211
1627 config-$(call config_package,libertas-sdio) += LIBERTAS LIBERTAS_SDIO
1628 config-$(call config_package,libertas-usb) += LIBERTAS LIBERTAS_USB
1629 config-$(call config_package,mwl8k) += MWL8K
1630 config-$(call config_package,mwifiex-pcie) += MWIFIEX MWIFIEX_PCIE
1631 config-$(call config_package,rtl8180) += RTL8180
1632 config-$(call config_package,rtl8187) += RTL8187
1633 config-$(call config_package,wlcore) += WLCORE WLCORE_SDIO
1634 config-$(call config_package,wl12xx) += WL12XX
1635 config-$(call config_package,wl18xx) += WL18XX
1636 config-y += WL_TI WILINK_PLATFORM_DATA
1637 config-$(call config_package,zd1211rw) += ZD1211RW
1638
1639 config-$(call config_package,rtlwifi) += RTL_CARDS RTLWIFI
1640 config-$(call config_package,rtlwifi-pci) += RTLWIFI_PCI
1641 config-$(call config_package,rtlwifi-usb) += RTLWIFI_USB
1642 config-$(call config_package,rtl8192c-common) += RTL8192C_COMMON
1643 config-$(call config_package,rtl8192ce) += RTL8192CE
1644 config-$(call config_package,rtl8192se) += RTL8192SE
1645 config-$(call config_package,rtl8192de) += RTL8192DE
1646 config-$(call config_package,rtl8192cu) += RTL8192CU
1647 config-$(CONFIG_PACKAGE_RTLWIFI_DEBUG) += RTLWIFI_DEBUG
1648
1649 config-$(CONFIG_LEDS_TRIGGERS) += MAC80211_LEDS B43_LEDS B43LEGACY_LEDS
1650
1651 MAKE_OPTS:= -C "$(PKG_BUILD_DIR)" \
1652         CROSS_COMPILE="$(KERNEL_CROSS)" \
1653         ARCH="$(LINUX_KARCH)" \
1654         EXTRA_CFLAGS="-I$(PKG_BUILD_DIR)/include" \
1655         KLIB_BUILD="$(LINUX_DIR)" \
1656         MODPROBE=true \
1657         KLIB=$(TARGET_MODULES_DIR) \
1658         KERNEL_SUBLEVEL=$(lastword $(subst ., ,$(KERNEL_PATCHVER))) \
1659         KBUILD_LDFLAGS_MODULE_PREREQ=
1660
1661 ifneq ($(findstring c,$(OPENWRT_VERBOSE)),)
1662   MAKE_OPTS += V=1
1663 endif
1664
1665 define ConfigVars
1666 $(subst $(space),,$(foreach opt,$(config-$(1)),CPTCFG_$(opt)=$(1)
1667 ))
1668 endef
1669
1670 define mac80211_config
1671 $(call ConfigVars,m)$(call ConfigVars,y)
1672 endef
1673 $(eval $(call shexport,mac80211_config))
1674
1675 define Build/Prepare
1676         rm -rf $(PKG_BUILD_DIR)
1677         mkdir -p $(PKG_BUILD_DIR)
1678         $(PKG_UNPACK)
1679         $(Build/Patch)
1680         $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
1681         $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
1682         $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
1683         $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(PKG_LINUX_FIRMWARE_SOURCE)
1684         $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(PKG_ATH10K_LINUX_FIRMWARE_SOURCE)
1685         rm -rf \
1686                 $(PKG_BUILD_DIR)/include/linux/ssb \
1687                 $(PKG_BUILD_DIR)/include/linux/bcma \
1688                 $(PKG_BUILD_DIR)/include/net/bluetooth
1689
1690         rm -f \
1691                 $(PKG_BUILD_DIR)/include/linux/cordic.h \
1692                 $(PKG_BUILD_DIR)/include/linux/crc8.h \
1693                 $(PKG_BUILD_DIR)/include/linux/eeprom_93cx6.h \
1694                 $(PKG_BUILD_DIR)/include/linux/wl12xx.h \
1695                 $(PKG_BUILD_DIR)/include/linux/spi/libertas_spi.h \
1696                 $(PKG_BUILD_DIR)/include/net/ieee80211.h
1697
1698         echo 'compat-wireless-$(PKG_VERSION)-$(PKG_RELEASE)-$(REVISION)' > $(PKG_BUILD_DIR)/compat_version
1699         $(CP) ./files/regdb.txt $(PKG_BUILD_DIR)/net/wireless/db.txt
1700 endef
1701
1702 ifneq ($(CONFIG_PACKAGE_kmod-cfg80211)$(CONFIG_PACKAGE_kmod-lib80211),)
1703  define Build/Compile/kmod
1704         rm -rf $(PKG_BUILD_DIR)/modules
1705         +$(MAKE) $(PKG_JOBS) $(MAKE_OPTS) modules
1706  endef
1707 endif
1708
1709 define Build/Configure
1710         cmp $(PKG_BUILD_DIR)/include/linux/ath9k_platform.h $(LINUX_DIR)/include/linux/ath9k_platform.h
1711         cmp $(PKG_BUILD_DIR)/include/linux/ath5k_platform.h $(LINUX_DIR)/include/linux/ath5k_platform.h
1712         cmp $(PKG_BUILD_DIR)/include/linux/rt2x00_platform.h $(LINUX_DIR)/include/linux/rt2x00_platform.h
1713 endef
1714
1715 define Build/Compile
1716         $(SH_FUNC) var2file "$(call shvar,mac80211_config)" $(PKG_BUILD_DIR)/.config
1717         $(MAKE) $(MAKE_OPTS) allnoconfig
1718         $(call Build/Compile/kmod)
1719 endef
1720
1721 define Build/InstallDev
1722         mkdir -p \
1723                 $(1)/usr/include/mac80211 \
1724                 $(1)/usr/include/mac80211-backport \
1725                 $(1)/usr/include/mac80211/ath \
1726                 $(1)/usr/include/net/mac80211
1727         $(CP) $(PKG_BUILD_DIR)/net/mac80211/*.h $(PKG_BUILD_DIR)/include/* $(1)/usr/include/mac80211/
1728         $(CP) $(PKG_BUILD_DIR)/backport-include/* $(1)/usr/include/mac80211-backport/
1729         $(CP) $(PKG_BUILD_DIR)/net/mac80211/rate.h $(1)/usr/include/net/mac80211/
1730         $(CP) $(PKG_BUILD_DIR)/drivers/net/wireless/ath/*.h $(1)/usr/include/mac80211/ath/
1731         rm -f $(1)/usr/include/mac80211-backport/linux/module.h
1732 endef
1733
1734 define KernelPackage/libertas-usb/install
1735         $(INSTALL_DIR) $(1)/lib/firmware/libertas
1736         $(INSTALL_DATA) \
1737                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/usb8388_v9.bin \
1738                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/usb8682.bin \
1739                 $(1)/lib/firmware/libertas/
1740 endef
1741
1742 define KernelPackage/libertas-sdio/install
1743         $(INSTALL_DIR) $(1)/lib/firmware/libertas
1744         $(INSTALL_DATA) \
1745                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8385_helper.bin \
1746                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8385.bin \
1747                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8686_v9_helper.bin \
1748                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8686_v9.bin \
1749                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8688_helper.bin \
1750                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8688.bin \
1751                 $(1)/lib/firmware/libertas
1752 endef
1753
1754 define KernelPackage/cfg80211/install
1755         $(INSTALL_DIR) $(1)/lib/wifi $(1)/lib/netifd/wireless
1756         $(INSTALL_DATA) ./files/lib/wifi/mac80211.sh $(1)/lib/wifi
1757         $(INSTALL_BIN) ./files/lib/netifd/wireless/mac80211.sh $(1)/lib/netifd/wireless
1758 endef
1759
1760 define KernelPackage/p54-pci/install
1761         $(INSTALL_DIR) $(1)/lib/firmware
1762         $(INSTALL_DATA) $(DL_DIR)/$(P54PCIFW) $(1)/lib/firmware/isl3886pci
1763 endef
1764
1765 define KernelPackage/p54-usb/install
1766         $(INSTALL_DIR) $(1)/lib/firmware
1767         $(INSTALL_DATA) $(DL_DIR)/$(P54USBFW) $(1)/lib/firmware/isl3887usb
1768 endef
1769
1770 define KernelPackage/p54-spi/install
1771         $(INSTALL_DIR) $(1)/lib/firmware
1772         $(INSTALL_DATA) $(DL_DIR)/$(P54SPIFW) $(1)/lib/firmware/3826.arm
1773 endef
1774
1775 define KernelPackage/rt61-pci/install
1776         $(INSTALL_DIR) $(1)/lib/firmware
1777         $(INSTALL_DATA) \
1778                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2561.bin \
1779                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2561s.bin \
1780                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2661.bin \
1781                 $(1)/lib/firmware/
1782 endef
1783
1784 define KernelPackage/rt73-usb/install
1785         $(INSTALL_DIR) $(1)/lib/firmware
1786         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt73.bin $(1)/lib/firmware/
1787 endef
1788
1789 define KernelPackage/rt2800-pci/install
1790         $(INSTALL_DIR) $(1)/lib/firmware
1791         $(INSTALL_DATA) \
1792                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2860.bin \
1793                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt3290.bin \
1794                 $(1)/lib/firmware
1795 endef
1796
1797 define KernelPackage/rt2800-usb/install
1798         $(INSTALL_DIR) $(1)/lib/firmware
1799         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2870.bin $(1)/lib/firmware/
1800 endef
1801
1802 define KernelPackage/wl12xx/install
1803         $(INSTALL_DIR) $(1)/lib/firmware/ti-connectivity
1804         $(INSTALL_DATA) \
1805                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/ti-connectivity/wl127x-fw-5-mr.bin \
1806                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/ti-connectivity/wl127x-fw-5-plt.bin \
1807                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/ti-connectivity/wl127x-fw-5-sr.bin \
1808                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/ti-connectivity/wl1271-nvs.bin \
1809                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/ti-connectivity/wl128x-fw-5-mr.bin \
1810                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/ti-connectivity/wl128x-fw-5-plt.bin \
1811                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/ti-connectivity/wl128x-fw-5-sr.bin \
1812                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/ti-connectivity/wl128x-nvs.bin \
1813                 $(1)/lib/firmware/ti-connectivity
1814 endef
1815
1816 define KernelPackage/wl18xx/install
1817         $(INSTALL_DIR) $(1)/lib/firmware/ti-connectivity
1818         $(INSTALL_DATA) \
1819                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/ti-connectivity/wl18xx-conf.bin \
1820                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/ti-connectivity/wl18xx-fw-3.bin \
1821                 $(1)/lib/firmware/ti-connectivity
1822 endef
1823
1824 define KernelPackage/zd1211rw/install
1825         $(INSTALL_DIR) $(1)/lib/firmware/zd1211
1826         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(ZD1211FW_NAME)/zd1211* $(1)/lib/firmware/zd1211
1827 endef
1828
1829 define KernelPackage/carl9170/install
1830         $(INSTALL_DIR) $(1)/lib/firmware
1831         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/carl9170-1.fw $(1)/lib/firmware
1832 endef
1833
1834 define KernelPackage/ath9k-htc/install
1835         $(INSTALL_DIR) $(1)/lib/firmware
1836         $(INSTALL_DATA) \
1837                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/htc_9271.fw \
1838                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/htc_7010.fw \
1839                 $(1)/lib/firmware/
1840 endef
1841
1842 define KernelPackage/ath10k/install
1843         $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0
1844         $(INSTALL_DATA) \
1845                 $(PKG_BUILD_DIR)/$(PKG_ATH10K_LINUX_FIRMWARE_SUBDIR)/ath10k/QCA988X/hw2.0/board.bin \
1846                 $(1)/lib/firmware/ath10k/QCA988X/hw2.0/
1847         $(INSTALL_DATA) \
1848                 $(PKG_BUILD_DIR)/$(PKG_ATH10K_LINUX_FIRMWARE_SUBDIR)/10.2.4/untested/firmware-5.bin_10.2.4.70-2 \
1849                 $(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-5.bin
1850 endef
1851
1852 define KernelPackage/mwl8k/install
1853         $(INSTALL_DIR) $(1)/lib/firmware/mwl8k
1854         $(INSTALL_DATA) \
1855                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/fmimage_8366_ap-3.fw \
1856                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/fmimage_8366.fw \
1857                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/helper_8366.fw \
1858                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/fmimage_8687.fw \
1859                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/helper_8687.fw \
1860                 $(1)/lib/firmware/mwl8k/
1861 endef
1862
1863 define KernelPackage/mwifiex-pcie/install
1864         $(INSTALL_DIR) $(1)/lib/firmware/mrvl
1865         $(INSTALL_DATA) \
1866                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mrvl/pcie8897_uapsta.bin \
1867                 $(1)/lib/firmware/mrvl/
1868 endef
1869
1870 define KernelPackage/net-ipw2100/install
1871         $(INSTALL_DIR) $(1)/lib/firmware
1872         $(INSTALL_DATA) $(PKG_BUILD_DIR)/ipw2100-$(IPW2100_VERSION)*.fw $(1)/lib/firmware
1873 endef
1874
1875 define KernelPackage/net-ipw2200/install
1876         $(INSTALL_DIR) $(1)/lib/firmware
1877         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION)/ipw2200*.fw $(1)/lib/firmware
1878 endef
1879
1880 define KernelPackage/iwlagn/install
1881         $(INSTALL_DIR) $(1)/lib/firmware
1882 ifneq ($(CONFIG_IWL5000_FW),)
1883         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-5000-5.ucode $(1)/lib/firmware
1884 endif
1885 ifneq ($(CONFIG_IWL5150_FW),)
1886         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-5150-2.ucode $(1)/lib/firmware
1887 endif
1888 ifneq ($(CONFIG_IWL1000_FW),)
1889         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-1000-5.ucode $(1)/lib/firmware
1890 endif
1891 ifneq ($(CONFIG_IWL6000_FW),)
1892         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6000-4.ucode $(1)/lib/firmware
1893 endif
1894 ifneq ($(CONFIG_IWL6050_FW),)
1895         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6050-5.ucode $(1)/lib/firmware
1896 endif
1897 ifneq ($(CONFIG_IWL6005_FW),)
1898         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6000g2a-6.ucode $(1)/lib/firmware
1899 endif
1900 ifneq ($(CONFIG_IWL6030_FW),)
1901         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6000g2b-6.ucode $(1)/lib/firmware
1902 endif
1903 ifneq ($(CONFIG_IWL7260_FW),)
1904         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-7260-9.ucode $(1)/lib/firmware
1905 endif
1906 ifneq ($(CONFIG_IWL7265_FW),)
1907         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-7265-9.ucode $(1)/lib/firmware
1908 endif
1909 ifneq ($(CONFIG_IWL100_FW),)
1910         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-100-5.ucode $(1)/lib/firmware
1911 endif
1912 ifneq ($(CONFIG_IWL2000_FW),)
1913         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-2000-6.ucode $(1)/lib/firmware
1914 endif
1915 ifneq ($(CONFIG_IWL2030_FW),)
1916         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-2030-6.ucode $(1)/lib/firmware
1917 endif
1918 ifneq ($(CONFIG_IWL105_FW),)
1919         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-105-6.ucode $(1)/lib/firmware
1920 endif
1921 ifneq ($(CONFIG_IWL135_FW),)
1922         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-135-6.ucode $(1)/lib/firmware
1923 endif
1924 ifneq ($(CONFIG_IWL3160_FW),)
1925         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-3160-9.ucode $(1)/lib/firmware
1926 endif
1927 endef
1928
1929 define KernelPackage/iwl3945/install
1930         $(INSTALL_DIR) $(1)/lib/firmware
1931         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-3945-2.ucode $(1)/lib/firmware
1932 endef
1933
1934 define KernelPackage/iwl4965/install
1935         $(INSTALL_DIR) $(1)/lib/firmware
1936         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-4965-2.ucode $(1)/lib/firmware
1937 endef
1938
1939 define KernelPackage/b43/install
1940         rm -rf $(1)/lib/firmware/
1941 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1942         tar xzf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
1943 else
1944         tar xjf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
1945 endif
1946         $(INSTALL_DIR) $(1)/lib/firmware/
1947 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1948         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/"
1949         $(INSTALL_DIR) $(1)/lib/firmware/b43-open/
1950         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/ucode5.fw $(1)/lib/firmware/b43-open/ucode5.fw
1951         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0bsinitvals5.fw $(1)/lib/firmware/b43-open/b0g0bsinitvals5.fw
1952         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0initvals5.fw $(1)/lib/firmware/b43-open/b0g0initvals5.fw
1953 else
1954         b43-fwcutter -w $(1)/lib/firmware/ $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)
1955 endif
1956 ifneq ($(CONFIG_B43_FW_SQUASH),)
1957         b43-fwsquash.py "$(CONFIG_B43_FW_SQUASH_PHYTYPES)" "$(CONFIG_B43_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43"
1958 endif
1959 endef
1960
1961 define KernelPackage/b43legacy/install
1962         $(INSTALL_DIR) $(1)/lib/firmware/
1963         b43-fwcutter --unsupported -w $(1)/lib/firmware/ $(DL_DIR)/$(PKG_B43_FWV3_SOURCE)
1964 ifneq ($(CONFIG_B43LEGACY_FW_SQUASH),)
1965         b43-fwsquash.py "G" "$(CONFIG_B43LEGACY_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43legacy"
1966 endif
1967 endef
1968
1969 define KernelPackage/brcmsmac/install
1970         $(INSTALL_DIR) $(1)/lib/firmware/brcm
1971 ifeq ($(CONFIG_BRCMSMAC_USE_FW_FROM_WL),y)
1972         tar xjf "$(DL_DIR)/$(PKG_BRCMSMAC_FW_SOURCE)" -C "$(PKG_BUILD_DIR)"
1973         b43-fwcutter --brcmsmac -w $(1)/lib/firmware/ $(PKG_BUILD_DIR)/$(PKG_BRCMSMAC_FW_OBJECT)
1974 else
1975         $(INSTALL_DATA) \
1976                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/bcm43xx-0.fw \
1977                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/bcm43xx_hdr-0.fw \
1978                 $(1)/lib/firmware/brcm/
1979 endif
1980 endef
1981
1982 define KernelPackage/brcmfmac/install
1983         $(INSTALL_DIR) $(1)/lib/firmware/brcm
1984 ifneq ($(CONFIG_BRCMFMAC_USB),)
1985         $(INSTALL_DATA) \
1986                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43236b.bin \
1987                 $(1)/lib/firmware/brcm/
1988         $(INSTALL_DATA) \
1989                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43143.bin \
1990                 $(1)/lib/firmware/brcm/
1991 endif
1992 ifneq ($(CONFIG_BRCMFMAC_PCIE),)
1993         $(INSTALL_DATA) \
1994                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43602-pcie.ap.bin \
1995                 $(1)/lib/firmware/brcm/brcmfmac43602-pcie.bin
1996 endif
1997 endef
1998
1999 $(eval $(call KernelPackage,adm8211))
2000 $(eval $(call KernelPackage,ath5k))
2001 $(eval $(call KernelPackage,lib80211))
2002 $(eval $(call KernelPackage,libertas-usb))
2003 $(eval $(call KernelPackage,libertas-sdio))
2004 $(eval $(call KernelPackage,cfg80211))
2005 $(eval $(call KernelPackage,mac80211))
2006 $(eval $(call KernelPackage,p54-common))
2007 $(eval $(call KernelPackage,p54-pci))
2008 $(eval $(call KernelPackage,p54-usb))
2009 $(eval $(call KernelPackage,p54-spi))
2010 $(eval $(call KernelPackage,rt2x00-lib))
2011 $(eval $(call KernelPackage,rt2x00-mmio))
2012 $(eval $(call KernelPackage,rt2x00-pci))
2013 $(eval $(call KernelPackage,rt2x00-usb))
2014 $(eval $(call KernelPackage,rt2800-lib))
2015 $(eval $(call KernelPackage,rt2400-pci))
2016 $(eval $(call KernelPackage,rt2500-pci))
2017 $(eval $(call KernelPackage,rt2500-usb))
2018 $(eval $(call KernelPackage,rt61-pci))
2019 $(eval $(call KernelPackage,rt73-usb))
2020 $(eval $(call KernelPackage,rt2800-mmio))
2021 $(eval $(call KernelPackage,rt2800-soc))
2022 $(eval $(call KernelPackage,rt2800-pci))
2023 $(eval $(call KernelPackage,rt2800-usb))
2024 $(eval $(call KernelPackage,rtl8180))
2025 $(eval $(call KernelPackage,rtl8187))
2026 $(eval $(call KernelPackage,rtlwifi))
2027 $(eval $(call KernelPackage,rtlwifi-pci))
2028 $(eval $(call KernelPackage,rtlwifi-usb))
2029 $(eval $(call KernelPackage,rtl8192c-common))
2030 $(eval $(call KernelPackage,rtl8192ce))
2031 $(eval $(call KernelPackage,rtl8192se))
2032 $(eval $(call KernelPackage,rtl8192de))
2033 $(eval $(call KernelPackage,rtl8192cu))
2034 $(eval $(call KernelPackage,zd1211rw))
2035 $(eval $(call KernelPackage,mac80211-hwsim))
2036 $(eval $(call KernelPackage,ath9k-common))
2037 $(eval $(call KernelPackage,ath9k))
2038 $(eval $(call KernelPackage,ath9k-htc))
2039 $(eval $(call KernelPackage,ath10k))
2040 $(eval $(call KernelPackage,ath))
2041 $(eval $(call KernelPackage,carl9170))
2042 $(eval $(call KernelPackage,b43))
2043 $(eval $(call KernelPackage,b43legacy))
2044 $(eval $(call KernelPackage,brcmutil))
2045 $(eval $(call KernelPackage,brcmsmac))
2046 $(eval $(call KernelPackage,brcmfmac))
2047 $(eval $(call KernelPackage,net-libipw))
2048 $(eval $(call KernelPackage,net-ipw2100))
2049 $(eval $(call KernelPackage,net-ipw2200))
2050 $(eval $(call KernelPackage,iwlagn))
2051 $(eval $(call KernelPackage,iwl-legacy))
2052 $(eval $(call KernelPackage,iwl4965))
2053 $(eval $(call KernelPackage,iwl3945))
2054 $(eval $(call KernelPackage,mwl8k))
2055 $(eval $(call KernelPackage,mwifiex-pcie))
2056 $(eval $(call KernelPackage,net-hermes))
2057 $(eval $(call KernelPackage,net-hermes-pci))
2058 $(eval $(call KernelPackage,net-hermes-plx))
2059 $(eval $(call KernelPackage,net-hermes-pcmcia))
2060 $(eval $(call KernelPackage,wlcore))
2061 $(eval $(call KernelPackage,wl12xx))
2062 $(eval $(call KernelPackage,wl18xx))