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