[package] mac80211: fix reversed WARN_ON() condition which causes a stray stacktrace...
[openwrt.git] / package / mac80211 / Makefile
1 #
2 # Copyright (C) 2007-2011 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:=2011-11-15
14 PKG_RELEASE:=1
15 PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
16 PKG_MD5SUM:=0bb667c7fecbc244840d806df0604661
17
18 PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2
19 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/compat-wireless-$(PKG_VERSION)
20 PKG_BUILD_PARALLEL:=1
21
22 PKG_DRIVERS = \
23         ath5k libertas-usb libertas-sd p54-common p54-pci p54-usb p54-spi \
24         rt2x00-lib rt2x00-pci rt2x00-usb rt2x00-soc rt2800-lib rt2400-pci \
25         rt2500-pci rt2500-usb rt61-pci rt73-usb rt2800-pci rt2800-usb \
26         rtl8180 rtl8187 zd1211rw mac80211-hwsim carl9170 b43 b43legacy \
27         ath9k-common ath9k ath9k-htc ath net-libipw net-ipw2100 net-ipw2200 \
28         mwl8k net-hermes net-hermes-pci net-hermes-plx net-hermes-pcmcia \
29         iwl-legacy iwl3945 iwl4965 iwlagn lib80211
30
31 PKG_CONFIG_DEPENDS:= \
32         CONFIG_PACKAGE_kmod-mac80211 \
33         $(patsubst %,CONFIG_PACKAGE_kmod-%,$(PKG_DRIVERS)) \
34         CONFIG_PACKAGE_MAC80211_DEBUGFS \
35         CONFIG_PACKAGE_ATH_DEBUG \
36         CONFIG_PACKAGE_B43_DEBUG \
37         CONFIG_PACKAGE_B43_PIO \
38         CONFIG_PACKAGE_B43_N_PHY \
39         CONFIG_ATH_USER_REGD \
40
41 CARL9170_FW_VERSION:=1.9.4
42
43 #QUILT_PATCH_DIR:=patches-openwrt
44
45 include $(INCLUDE_DIR)/package.mk
46
47 WMENU:=Wireless Drivers
48
49 define KernelPackage/mac80211/Default
50   SUBMENU:=$(WMENU)
51   URL:=http://linuxwireless.org/
52   MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
53   DEPENDS:=@(!(TARGET_avr32||TARGET_ep93xx||TARGET_ps3||TARGET_pxcab||LINUX_3_2)||BROKEN)
54 endef
55
56 define KernelPackage/cfg80211
57   $(call KernelPackage/mac80211/Default)
58   TITLE:=cfg80211 - wireless configuration API
59   DEPENDS+= +wireless-tools +iw +crda
60   FILES:= \
61         $(PKG_BUILD_DIR)/compat/compat.ko \
62         $(PKG_BUILD_DIR)/net/wireless/cfg80211.ko
63   AUTOLOAD:=$(call AutoLoad,20,compat cfg80211)
64 endef
65
66 define KernelPackage/cfg80211/description
67 cfg80211 is the Linux wireless LAN (802.11) configuration API.
68 endef
69
70 define KernelPackage/mac80211
71   $(call KernelPackage/mac80211/Default)
72   TITLE:=Linux 802.11 Wireless Networking Stack
73   DEPENDS+= +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-aes +kmod-cfg80211
74   KCONFIG:=\
75         CONFIG_AVERAGE=y
76   FILES:= $(PKG_BUILD_DIR)/net/mac80211/mac80211.ko
77   AUTOLOAD:=$(call AutoLoad,21,mac80211)
78   MENU:=1
79 endef
80
81 define KernelPackage/mac80211/config
82         menu "Configuration"
83                 depends on PACKAGE_kmod-mac80211
84
85         config PACKAGE_MAC80211_DEBUGFS
86                 bool "Export mac80211 internals in DebugFS"
87                 default y
88                 help
89                   Select this to see extensive information about
90                   the internal state of mac80211 in debugfs.
91
92                   Say N unless you know you need this.
93
94         endmenu
95 endef
96
97 define KernelPackage/mac80211/description
98 Generic IEEE 802.11 Networking Stack (mac80211)
99 endef
100
101 PKG_LINUX_FIRMWARE_NAME:=linux-firmware
102 PKG_LINUX_FIRMWARE_VERSION:=d543c1d98fc240267ee59fff93f7a0f36d9e2fc3
103 PKG_LINUX_FIRMWARE_SOURCE:=$(PKG_LINUX_FIRMWARE_NAME)-$(PKG_LINUX_FIRMWARE_VERSION).tar.bz2
104 PKG_LINUX_FIRMWARE_PROTO:=git
105 # PKG_LINUX_FIRMWARE_SOURCE_URL:=git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git
106 PKG_LINUX_FIRMWARE_SOURCE_URL:=git://git.infradead.org/users/dwmw2/linux-firmware.git
107 PKG_LINUX_FIRMWARE_SUBDIR:=$(PKG_LINUX_FIRMWARE_NAME)-$(PKG_LINUX_FIRMWARE_VERSION)
108
109 define Download/linux-firmware
110   FILE:=$(PKG_LINUX_FIRMWARE_SOURCE)
111   URL:=$(PKG_LINUX_FIRMWARE_SOURCE_URL)
112   MD5SUM:=$(PKG_LINUX_FIRMWARE_MD5SUM)
113   PROTO:=$(PKG_LINUX_FIRMWARE_PROTO)
114   VERSION:=$(PKG_LINUX_FIRMWARE_VERSION)
115   SUBDIR:=$(PKG_LINUX_FIRMWARE_SUBDIR)
116 endef
117 $(eval $(call Download,linux-firmware))
118
119 # Prism54 drivers
120 P54PCIFW:=2.13.12.0.arm
121 P54USBFW:=2.13.24.0.lm87.arm
122 P54SPIFW:=2.13.0.0.a.13.14.arm
123 CARL9170_FW:=carl9170-1.fw
124
125 define Download/p54usb
126   FILE:=$(P54USBFW)
127   URL:=http://daemonizer.de/prism54/prism54-fw/fw-usb
128   MD5SUM:=8e8ab005a4f8f0123bcdc51bc25b47f6
129 endef
130 $(eval $(call Download,p54usb))
131
132 define Download/p54pci
133   FILE:=$(P54PCIFW)
134   URL:=http://daemonizer.de/prism54/prism54-fw/fw-softmac
135   MD5SUM:=ff7536af2092b1c4b21315bd103ef4c4
136 endef
137 $(eval $(call Download,p54pci))
138
139 define Download/p54spi
140   FILE:=$(P54SPIFW)
141   URL:=http://daemonizer.de/prism54/prism54-fw/stlc4560
142   MD5SUM:=42661f8ecbadd88012807493f596081d
143 endef
144 $(eval $(call Download,p54spi))
145
146 define Download/carl9170
147   FILE:=$(CARL9170_FW)-$(CARL9170_FW_VERSION)
148   URL:=http://downloads.openwrt.org/sources/
149   MD5SUM:=30e2ae80c33b3008d271556d1a14e3ea
150 endef
151 $(eval $(call Download,carl9170))
152
153 define KernelPackage/p54/Default
154   $(call KernelPackage/mac80211/Default)
155   TITLE:=Prism54 Drivers
156 endef
157
158 define KernelPackage/p54/description
159   Kernel module for Prism54 chipsets (mac80211)
160 endef
161
162 define KernelPackage/p54-common
163   $(call KernelPackage/p54/Default)
164   DEPENDS+= @PCI_SUPPORT||@USB_SUPPORT||@TARGET_omap24xx +kmod-mac80211 +kmod-lib-crc-ccitt
165   TITLE+= (COMMON)
166   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54common.ko
167   AUTOLOAD:=$(call AutoLoad,30,p54common)
168 endef
169
170 define KernelPackage/p54-pci
171   $(call KernelPackage/p54/Default)
172   TITLE+= (PCI)
173   DEPENDS+= @PCI_SUPPORT +kmod-p54-common
174   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54pci.ko
175   AUTOLOAD:=$(call AutoLoad,31,p54pci)
176 endef
177
178 define KernelPackage/p54-usb
179   $(call KernelPackage/p54/Default)
180   TITLE+= (USB)
181   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-p54-common
182   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54usb.ko
183   AUTOLOAD:=$(call AutoLoad,31,p54usb)
184 endef
185
186 define KernelPackage/p54-spi
187   $(call KernelPackage/p54/Default)
188   TITLE+= (SPI)
189   DEPENDS+= @TARGET_omap24xx +kmod-p54-common
190   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54spi.ko
191   AUTOLOAD:=$(call AutoLoad,31,p54spi)
192 endef
193
194 NEED_RT2X00_LIB_CRYPTO:=y
195 NEED_RT2X00_LIB_FIRMWARE:=y
196 NEED_RT2X00_LIB_EEPROM:=y
197 NEED_RT2X00_LIB_HT:=y
198 NEED_RT2X00_LIB_LEDS:=y
199
200 define KernelPackage/rt2x00/Default
201   $(call KernelPackage/mac80211/Default)
202   TITLE:=Ralink Drivers for RT2x00 cards
203 endef
204
205 define KernelPackage/rt2x00-lib
206 $(call KernelPackage/rt2x00/Default)
207   DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-mac80211 +kmod-lib-crc-itu-t
208   TITLE+= (LIB)
209   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00lib.ko
210   AUTOLOAD:=$(call AutoLoad,25,rt2x00lib)
211   MENU:=1
212 endef
213
214 define KernelPackage/rt2x00-lib/config
215         menu "Configuration"
216                 depends PACKAGE_kmod-rt2x00-lib
217
218         config PACKAGE_RT2X00_LIB_DEBUGFS
219                 bool "Enable rt2x00 debugfs support"
220                 depends PACKAGE_MAC80211_DEBUGFS
221                 help
222                   Enable creation of debugfs files for the rt2x00 drivers.
223                   These debugfs files support both reading and writing of the
224                   most important register types of the rt2x00 hardware.
225
226         config PACKAGE_RT2X00_DEBUG
227                 bool "Enable rt2x00 debug output"
228                 help
229                   Enable debugging output for all rt2x00 modules
230
231         endmenu
232 endef
233
234 define KernelPackage/rt2x00-pci
235 $(call KernelPackage/rt2x00/Default)
236   DEPENDS+= @(PCI_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +kmod-eeprom-93cx6
237   TITLE+= (PCI)
238   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00pci.ko
239   AUTOLOAD:=$(call AutoLoad,26,rt2x00pci)
240 endef
241
242 define KernelPackage/rt2x00-usb
243 $(call KernelPackage/rt2x00/Default)
244   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-lib +kmod-usb-core
245   TITLE+= (USB)
246   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00usb.ko
247   AUTOLOAD:=$(call AutoLoad,26,rt2x00usb)
248 endef
249
250 define KernelPackage/rt2x00-soc
251 $(call KernelPackage/rt2x00/Default)
252   DEPENDS+= @TARGET_ramips +kmod-rt2x00-lib
253   TITLE+= (SoC)
254   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00soc.ko
255   AUTOLOAD:=$(call AutoLoad,26,rt2x00soc)
256 endef
257
258 define KernelPackage/rt2800-lib
259 $(call KernelPackage/rt2x00/Default)
260   DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +TARGET_ramips:kmod-rt2x00-soc +@DRIVER_11N_SUPPORT
261   TITLE+= (rt2800 LIB)
262   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800lib.ko
263   AUTOLOAD:=$(call AutoLoad,27,rt2800lib)
264 endef
265
266 define KernelPackage/rt2400-pci
267 $(call KernelPackage/rt2x00/Default)
268   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
269   TITLE+= (RT2400 PCI)
270   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2400pci.ko
271   AUTOLOAD:=$(call AutoLoad,27,rt2400pci)
272 endef
273
274 define KernelPackage/rt2500-pci
275 $(call KernelPackage/rt2x00/Default)
276   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
277   TITLE+= (RT2500 PCI)
278   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500pci.ko
279   AUTOLOAD:=$(call AutoLoad,27,rt2500pci)
280 endef
281
282 define KernelPackage/rt2500-usb
283 $(call KernelPackage/rt2x00/Default)
284   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb
285   TITLE+= (RT2500 USB)
286   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500usb.ko
287   AUTOLOAD:=$(call AutoLoad,27,rt2500usb)
288 endef
289
290 define KernelPackage/rt61-pci
291 $(call KernelPackage/rt2x00/Default)
292   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
293   TITLE+= (RT2x61 PCI)
294   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt61pci.ko
295   AUTOLOAD:=$(call AutoLoad,27,rt61pci)
296 endef
297
298 define KernelPackage/rt73-usb
299   $(call KernelPackage/rt2x00/Default)
300   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb
301   TITLE+= (RT73 USB)
302   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt73usb.ko
303   AUTOLOAD:=$(call AutoLoad,27,rt73usb)
304 endef
305
306 define KernelPackage/rt2800-pci
307 $(call KernelPackage/rt2x00/Default)
308   DEPENDS+= @(PCI_SUPPORT||TARGET_ramips) +kmod-rt2x00-pci +kmod-rt2800-lib +kmod-lib-crc-ccitt +TARGET_ramips:kmod-rt2x00-soc
309   TITLE+= (RT2860 PCI)
310   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800pci.ko
311   AUTOLOAD:=$(call AutoLoad,28,rt2800pci)
312 endef
313
314 define KernelPackage/rt2800-usb
315 $(call KernelPackage/rt2x00/Default)
316   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb +kmod-rt2800-lib +kmod-lib-crc-ccitt
317   TITLE+= (RT2870 USB)
318   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800usb.ko
319   AUTOLOAD:=$(call AutoLoad,28,rt2800usb)
320 endef
321
322 define KernelPackage/rtl818x/Default
323   $(call KernelPackage/mac80211/Default)
324   TITLE:=Realtek Drivers for RTL818x devices
325   URL:=http://wireless.kernel.org/en/users/Drivers/rtl8187
326   DEPENDS+= +kmod-eeprom-93cx6 +kmod-mac80211
327 endef
328
329 define KernelPackage/rtl8180
330   $(call KernelPackage/rtl818x/Default)
331   DEPENDS+= @PCI_SUPPORT
332   TITLE+= (RTL8180 PCI)
333   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8180/rtl8180.ko
334   AUTOLOAD:=$(call AutoLoad,27,rtl8180)
335 endef
336
337 define KernelPackage/rtl8187
338 $(call KernelPackage/rtl818x/Default)
339   DEPENDS+= @USB_SUPPORT +kmod-usb-core
340   TITLE+= (RTL8187 USB)
341   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8187/rtl8187.ko
342   AUTOLOAD:=$(call AutoLoad,27,rtl8187)
343 endef
344
345 ZD1211FW_NAME:=zd1211-firmware
346 ZD1211FW_VERSION:=1.4
347 define Download/zd1211rw
348   FILE:=$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
349   URL:=@SF/zd1211/
350   MD5SUM:=19f28781d76569af8551c9d11294c870
351 endef
352 $(eval $(call Download,zd1211rw))
353
354 define KernelPackage/zd1211rw
355   $(call KernelPackage/mac80211/Default)
356   TITLE:=Zydas ZD1211 support
357   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-mac80211
358   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/zd1211rw/zd1211rw.ko
359   AUTOLOAD:=$(call AutoLoad,60,zd1211rw)
360 endef
361
362 define KernelPackage/ath/config
363         menu "Configuration"
364                 depends on PACKAGE_kmod-ath
365
366         config ATH_USER_REGD
367                 bool "Force Atheros drivers to respect the user's regdomain settings"
368                 help
369                   Atheros' idea of regulatory handling is that the EEPROM of the card defines
370                   the regulatory limits and the user is only allowed to restrict the settings
371                   even further, even if the country allows frequencies or power levels that
372                   are forbidden by the EEPROM settings.
373
374                   Select this option if you want the driver to respect the user's decision about
375                   regulatory settings.
376
377         config PACKAGE_ATH_DEBUG
378                 bool "Atheros wireless debugging"
379                 help
380                   Say Y, if you want to debug atheros wireless drivers.
381                   Right now only ath9k makes use of this.
382
383         endmenu
384 endef
385
386 define KernelPackage/ath
387   $(call KernelPackage/mac80211/Default)
388   TITLE:=Atheros common driver part
389   DEPENDS+= @PCI_SUPPORT||USB_SUPPORT||TARGET_ar71xx +kmod-mac80211
390   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath.ko
391   AUTOLOAD:=$(call AutoLoad,26,ath)
392   MENU:=1
393 endef
394
395 define KernelPackage/ath/description
396  This module contains some common parts needed by Atheros Wireless drivers.
397 endef
398
399 define KernelPackage/ath5k
400   $(call KernelPackage/mac80211/Default)
401   TITLE:=Atheros 5xxx wireless cards support
402   URL:=http://linuxwireless.org/en/users/Drivers/ath5k
403   DEPENDS+= @PCI_SUPPORT||@TARGET_atheros +kmod-ath
404   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath5k/ath5k.ko
405   AUTOLOAD:=$(call AutoLoad,27,ath5k)
406 endef
407
408 define KernelPackage/ath5k/description
409  This module adds support for wireless adapters based on
410  Atheros 5xxx chipset.
411 endef
412
413 define KernelPackage/ath9k-common
414   $(call KernelPackage/mac80211/Default)
415   TITLE:=Atheros 802.11n wireless devices (common code for ath9k and ath9k_htc)
416   URL:=http://linuxwireless.org/en/users/Drivers/ath9k
417   DEPENDS+= @PCI_SUPPORT||USB_SUPPORT||TARGET_ar71xx +kmod-ath +@DRIVER_11N_SUPPORT
418   FILES:= \
419         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_common.ko \
420         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_hw.ko
421   AUTOLOAD:=$(call AutoLoad,27,ath9k_hw ath9k_common)
422 endef
423
424 define KernelPackage/ath9k
425   $(call KernelPackage/mac80211/Default)
426   TITLE:=Atheros 802.11n PCI wireless cards support
427   URL:=http://linuxwireless.org/en/users/Drivers/ath9k
428   DEPENDS+= @PCI_SUPPORT||TARGET_ar71xx +kmod-ath9k-common
429   FILES:= \
430         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k.ko
431   AUTOLOAD:=$(call AutoLoad,28,ath9k)
432 endef
433
434 define KernelPackage/ath9k/description
435 This module adds support for wireless adapters based on
436 Atheros IEEE 802.11n AR5008 and AR9001 family of chipsets.
437 endef
438
439 define KernelPackage/ath9k-htc
440   $(call KernelPackage/mac80211/Default)
441   TITLE:=Atheros 802.11n USB device support
442   URL:=http://linuxwireless.org/en/users/Drivers/ath9k
443   DEPENDS+= @USB_SUPPORT +kmod-ath9k-common +kmod-usb-core
444   FILES:= \
445         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_htc.ko
446   AUTOLOAD:=$(call AutoLoad,55,ath9k_htc)
447 endef
448
449 define KernelPackage/ath9k-htc/description
450 This module adds support for wireless adapters based on
451 Atheros USB AR9271 and AR7010 family of chipsets.
452 endef
453
454 define KernelPackage/carl9170
455   $(call KernelPackage/mac80211/Default)
456   TITLE:=Driver for Atheros AR9170 USB sticks
457   DEPENDS:=@USB_SUPPORT +kmod-mac80211 +kmod-ath +kmod-usb-core +kmod-input-core +@DRIVER_11N_SUPPORT
458   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/carl9170/carl9170.ko
459   AUTOLOAD:=$(call AutoLoad,60,carl9170)
460 endef
461
462 define KernelPackage/carl9170/install
463         $(INSTALL_DIR) $(1)/lib/firmware
464         $(INSTALL_DATA) $(DL_DIR)/$(CARL9170_FW)-$(CARL9170_FW_VERSION) $(1)/lib/firmware/$(CARL9170_FW)
465 endef
466
467 define KernelPackage/lib80211
468   $(call KernelPackage/mac80211/Default)
469   TITLE:=802.11 Networking stack
470   FILES:= \
471         $(PKG_BUILD_DIR)/net/wireless/lib80211.ko \
472         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_wep.ko \
473         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_ccmp.ko \
474         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_tkip.ko
475   AUTOLOAD:=$(call AutoLoad,10, \
476         lib80211 \
477         lib80211_crypt_wep \
478         lib80211_crypt_ccmp \
479         lib80211_crypt_tkip \
480   )
481 endef
482
483 define KernelPackage/lib80211/description
484  Kernel modules for 802.11 Networking stack
485  Includes:
486  - lib80211
487  - lib80211_crypt_wep
488  - lib80211_crypt_tkip
489  - lib80211_crytp_ccmp
490 endef
491
492 define KernelPackage/libertas-usb
493   $(call KernelPackage/mac80211/Default)
494   DEPENDS+= @USB_SUPPORT +kmod-cfg80211 +kmod-usb-core +kmod-lib80211 +@DRIVER_WEXT_SUPPORT
495   TITLE:=Marvell 88W8015 Wireless Driver
496   FILES:= \
497         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.ko \
498         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/usb8xxx.ko
499   AUTOLOAD:=$(call AutoLoad,27,libertas usb8xxx)
500 endef
501
502 define KernelPackage/libertas-sd
503   $(call KernelPackage/mac80211/Default)
504   DEPENDS+= +kmod-cfg80211 +kmod-lib80211 +@DRIVER_WEXT_SUPPORT
505   TITLE:=Marvell 88W8686 Wireless Driver
506   FILES:= \
507         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.ko \
508         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas_sdio.ko
509   AUTOLOAD:=$(call AutoLoad,91,libertas libertas_sdio)
510 endef
511
512 define KernelPackage/mac80211-hwsim
513   $(call KernelPackage/mac80211/Default)
514   TITLE:=mac80211 HW simulation device
515   DEPENDS+= +kmod-mac80211
516   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.ko
517   AUTOLOAD:=$(call AutoLoad,60,mac80211_hwsim)
518 endef
519
520 define KernelPackage/net-libipw
521   $(call KernelPackage/mac80211/Default)
522   TITLE:=libipw for ipw2100 and ipw2200
523   DEPENDS:=@PCI_SUPPORT +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-aes +kmod-crypto-michael-mic +kmod-lib80211 +kmod-cfg80211 +@DRIVER_WEXT_SUPPORT
524   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/libipw.ko
525   AUTOLOAD:=$(call AutoLoad,49,libipw)
526 endef
527
528 define KernelPackage/net-libipw/description
529  Hardware independent IEEE 802.11 networking stack for ipw2100 and ipw2200.
530 endef
531
532 IPW2100_NAME:=ipw2100-fw
533 IPW2100_VERSION:=1.3
534
535 define Download/net-ipw2100
536   URL:=http://bughost.org/firmware/
537   FILE:=$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
538   MD5SUM=46aa75bcda1a00efa841f9707bbbd113
539 endef
540 $(eval $(call Download,net-ipw2100))
541
542 define KernelPackage/net-ipw2100
543   $(call KernelPackage/mac80211/Default)
544   TITLE:=Intel IPW2100 driver
545   DEPENDS:=@PCI_SUPPORT +kmod-net-libipw
546   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/ipw2100.ko
547   AUTOLOAD:=$(call AutoLoad,50,ipw2100)
548 endef
549
550 define KernelPackage/net-ipw2100/description
551  Kernel support for Intel IPW2100
552  Includes:
553  - ipw2100
554 endef
555
556 IPW2200_NAME:=ipw2200-fw
557 IPW2200_VERSION:=3.1
558
559 define Download/net-ipw2200
560   URL:=http://bughost.org/firmware/
561   FILE:=$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
562   MD5SUM=eaba788643c7cc7483dd67ace70f6e99
563 endef
564 $(eval $(call Download,net-ipw2200))
565
566 define KernelPackage/net-ipw2200
567   $(call KernelPackage/mac80211/Default)
568   TITLE:=Intel IPW2200 driver
569   DEPENDS:=@PCI_SUPPORT +kmod-net-libipw
570   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/ipw2200.ko
571   AUTOLOAD:=$(call AutoLoad,50,ipw2200)
572 endef
573
574 define KernelPackage/net-ipw2200/description
575  Kernel support for Intel IPW2200
576  Includes:
577  - ipw2200
578 endef
579
580
581 define KernelPackage/net-hermes
582   $(call KernelPackage/mac80211/Default)
583   TITLE:=Hermes 802.11b chipset support
584   DEPENDS:=@PCI_SUPPORT||PCMCIA_SUPPORT +kmod-cfg80211 +@DRIVER_WEXT_SUPPORT
585   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco.ko
586   AUTOLOAD:=$(call AutoLoad,50,orinoco)
587 endef
588
589 define KernelPackage/net-hermes/description
590  Kernel support for Hermes 802.11b chipsets
591 endef
592
593 define KernelPackage/net-hermes-pci
594   $(call KernelPackage/mac80211/Default)
595   TITLE:=Intersil Prism 2.5 PCI support
596   DEPENDS:=@PCI_SUPPORT +kmod-net-hermes
597   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_pci.ko
598   AUTOLOAD:=$(call AutoLoad,55,orinoco_pci)
599 endef
600
601 define KernelPackage/net-hermes-pci/description
602  Kernel modules for Intersil Prism 2.5 PCI support
603 endef
604
605 define KernelPackage/net-hermes-plx
606   $(call KernelPackage/mac80211/Default)
607   TITLE:=PLX9052 based PCI adaptor
608   DEPENDS:=@PCI_SUPPORT +kmod-net-hermes
609   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_plx.ko
610   AUTOLOAD:=$(call AutoLoad,55,orinoco_plx)
611 endef
612
613 define KernelPackage/net-hermes-plx/description
614  Kernel modules for Hermes in PLX9052 based PCI adaptors
615 endef
616
617 define KernelPackage/net-hermes-pcmcia
618   $(call KernelPackage/mac80211/Default)
619   TITLE:=Hermes based PCMCIA adaptors
620   DEPENDS:=@PCMCIA_SUPPORT +kmod-net-hermes @BROKEN
621   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_cs.ko
622   AUTOLOAD:=$(call AutoLoad,55,orinoco_cs)
623 endef
624
625 define KernelPackage/net-hermes-pcmcia/description
626  Kernel modules for Hermes based PCMCIA adaptors
627 endef
628
629 define KernelPackage/iwlagn
630   $(call KernelPackage/mac80211/Default)
631   DEPENDS:= +kmod-mac80211 @PCI_SUPPORT
632   TITLE:=Intel AGN Wireless support
633   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlwifi/iwlwifi.ko
634   AUTOLOAD:=$(call AutoLoad,60,iwlagn)
635   MENU:=1
636 endef
637
638 define KernelPackage/iwlagn/description
639  iwlagn kernel module for Intel 5000/5150/1000/6000/6050/6005/6030/100 support
640 endef
641
642 define KernelPackage/iwlagn/config
643         menu "Configuration"
644                 depends on PACKAGE_kmod-iwlagn
645
646         config IWL5000_FW
647                 bool "Intel 5000 Firmware"
648                 default y
649                 help
650                   Download and install firmware for:
651                     Intel 5000 wireless card into /lib/firmware.
652
653         config IWL5150_FW
654                 bool "Intel 5150 Firmware"
655                 default y
656                 help
657                   Download and install firmware for:
658                     Intel 5150 wireless card into /lib/firmware.
659
660         config IWL1000_FW
661                 bool "Intel 1000 Firmware"
662                 default y
663                 help
664                   Download and install firmware for:
665                     Intel 1000 wireless card into /lib/firmware.
666
667         config IWL6000_FW
668                 bool "Intel 6000 Firmware"
669                 default y
670                 help
671                   Download and install firmware for:
672                     Intel 6000 wireless card into /lib/firmware.
673
674         config IWL6050_FW
675                 bool "Intel 6050 Firmware"
676                 default y
677                 help
678                   Download and install firmware for:
679                     Intel 6050 wireless card into /lib/firmware.
680
681         config IWL6005_FW
682                 bool "Intel 6005 Firmware"
683                 default y
684                 help
685                   Download and install firmware for:
686                     Intel 6005 wireless card into /lib/firmware.
687
688         config IWL6030_FW
689                 bool "Intel 6030 Firmware"
690                 default y
691                 help
692                   Download and install firmware for:
693                     Intel 6030 wireless card into /lib/firmware.
694
695         config IWL100_FW
696                 bool "Intel 100 Firmware"
697                 default y
698                 help
699                   Download and install firmware for:
700                     Intel 100 wireless card into /lib/firmware.
701
702         endmenu
703 endef
704
705 define KernelPackage/iwl-legacy
706   $(call KernelPackage/mac80211/Default)
707   DEPENDS:= +kmod-mac80211 @PCI_SUPPORT
708   TITLE:=Intel legacy Wireless support
709   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlegacy/iwl-legacy.ko
710   AUTOLOAD:=$(call AutoLoad,60,iwl-legacy)
711 endef
712
713 define KernelPackage/iwl-legacy/description
714  iwl-legacy kernel module for legacy Intel wireless support
715 endef
716
717 define KernelPackage/iwl3945
718   $(call KernelPackage/mac80211/Default)
719   DEPENDS:= +kmod-mac80211 +kmod-iwl-legacy
720   TITLE:=Intel iwl3945 Wireless support
721   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlegacy/iwl3945.ko
722   AUTOLOAD:=$(call AutoLoad,61,iwl3945)
723 endef
724
725 define KernelPackage/iwl3945/description
726  iwl3945 kernel module for Intel 3945 support
727 endef
728
729 define KernelPackage/iwl4965
730   $(call KernelPackage/mac80211/Default)
731   DEPENDS:= +kmod-mac80211 +kmod-iwl-legacy
732   TITLE:=Intel iwl4965 Wireless support
733   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlegacy/iwl4965.ko
734   AUTOLOAD:=$(call AutoLoad,61,iwl4965)
735 endef
736
737 define KernelPackage/iwl4965/description
738  iwl4965 kernel module for Intel 4965 support
739 endef
740
741
742 define KernelPackage/mwl8k
743   $(call KernelPackage/mac80211/Default)
744   TITLE:=Driver for Marvell TOPDOG 802.11 Wireless cards
745   URL:=http://wireless.kernel.org/en/users/Drivers/mwl8k
746   DEPENDS+= @PCI_SUPPORT +kmod-mac80211
747   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mwl8k.ko
748   AUTOLOAD:=$(call AutoLoad,27,mwl8k)
749 endef
750
751 define KernelPackage/mwl8k/description
752  Kernel modules for Marvell TOPDOG 802.11 Wireless cards
753 endef
754
755 #Broadcom firmware
756 ifneq ($(CONFIG_B43_FW_5_10),)
757   PKG_B43_FWV4_NAME:=broadcom-wl
758   PKG_B43_FWV4_VERSION:=5.10.56.27.3
759   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/driver/wl_apsta/wl_prebuilt.o
760   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)_mipsel.tar.bz2
761   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
762   PKG_B43_FWV4_MD5SUM:=3363e3a6b3d9d73c49dea870c7834eac
763 else
764 ifneq ($(CONFIG_B43_FW_4_178),)
765   PKG_B43_FWV4_NAME:=broadcom-wl
766   PKG_B43_FWV4_VERSION:=4.178.10.4
767   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/linux/wl_apsta.o
768   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
769   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
770   PKG_B43_FWV4_MD5SUM:=14477e8cbbb91b11896affac9b219fdb
771 else
772   PKG_B43_FWV4_NAME:=broadcom-wl
773   PKG_B43_FWV4_VERSION:=4.150.10.5
774   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/driver/wl_apsta_mimo.o
775   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
776   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
777   PKG_B43_FWV4_MD5SUM:=0c6ba9687114c6b598e8019e262d9a60
778 endif
779 endif
780 ifneq ($(CONFIG_B43_OPENFIRMWARE),)
781   PKG_B43_FWV4_NAME:=broadcom-wl
782   PKG_B43_FWV4_VERSION:=5.2
783   PKG_B43_FWV4_OBJECT:=openfwwf-$(PKG_B43_FWV4_VERSION)
784   PKG_B43_FWV4_SOURCE:=openfwwf-$(PKG_B43_FWV4_VERSION).tar.gz
785   PKG_B43_FWV4_SOURCE_URL:=http://www.ing.unibs.it/openfwwf/firmware/
786   PKG_B43_FWV4_MD5SUM:=e045a135453274e439ae183f8498b0fa
787 endif
788
789
790 PKG_B43_FWV3_NAME:=wl_apsta
791 PKG_B43_FWV3_VERSION:=3.130.20.0
792 PKG_B43_FWV3_SOURCE:=$(PKG_B43_FWV3_NAME)-$(PKG_B43_FWV3_VERSION).o
793 PKG_B43_FWV3_SOURCE_URL:=http://downloads.openwrt.org/sources/
794 PKG_B43_FWV3_MD5SUM:=e08665c5c5b66beb9c3b2dd54aa80cb3
795
796 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
797   PKG_B43_FWCUTTER_NAME:=b43-fwcutter
798   PKG_B43_FWCUTTER_VERSION:=3e69531aa65b8f664a0ab00dfc3e2eefeb0cb417
799   PKG_B43_FWCUTTER_SOURCE:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION).tar.bz2
800   PKG_B43_FWCUTTER_PROTO:=git
801   PKG_B43_FWCUTTER_SOURCE_URL:=http://git.bu3sch.de/git/b43-tools.git
802   PKG_B43_FWCUTTER_SUBDIR:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)
803   PKG_B43_FWCUTTER_OBJECT:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)/fwcutter/
804 else
805   PKG_B43_FWCUTTER_NAME:=b43-fwcutter
806   PKG_B43_FWCUTTER_VERSION:=014
807   PKG_B43_FWCUTTER_SOURCE:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION).tar.bz2
808   PKG_B43_FWCUTTER_PROTO:=default
809   PKG_B43_FWCUTTER_SOURCE_URL:=http://bu3sch.de/b43/fwcutter/
810   PKG_B43_FWCUTTER_MD5SUM:=dd63f9149510bd6e01b89314e955083b
811   PKG_B43_FWCUTTER_SUBDIR:=b43-fwcutter-$(PKG_B43_FWCUTTER_VERSION)
812   PKG_B43_FWCUTTER_OBJECT:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)/
813 endif
814
815 define Download/b43-common
816   FILE:=$(PKG_B43_FWCUTTER_SOURCE)
817   URL:=$(PKG_B43_FWCUTTER_SOURCE_URL)
818   MD5SUM:=$(PKG_B43_FWCUTTER_MD5SUM)
819   PROTO:=$(PKG_B43_FWCUTTER_PROTO)
820   VERSION:=$(PKG_B43_FWCUTTER_VERSION)
821   SUBDIR:=$(PKG_B43_FWCUTTER_SUBDIR)
822 endef
823 $(eval $(call Download,b43-common))
824
825 define Download/b43
826   FILE:=$(PKG_B43_FWV4_SOURCE)
827   URL:=$(PKG_B43_FWV4_SOURCE_URL)
828   MD5SUM:=$(PKG_B43_FWV4_MD5SUM)
829 endef
830 $(eval $(call Download,b43))
831
832 define Download/b43legacy
833   FILE:=$(PKG_B43_FWV3_SOURCE)
834   URL:=$(PKG_B43_FWV3_SOURCE_URL)
835   MD5SUM:=$(PKG_B43_FWV3_MD5SUM)
836 endef
837 $(eval $(call Download,b43legacy))
838
839 define KernelPackage/b43-common
840   $(call KernelPackage/mac80211/Default)
841   TITLE:=Generic stuff for Broadcom wireless devices
842   URL:=http://linuxwireless.org/en/users/Drivers/b43
843   KCONFIG:= \
844         CONFIG_HW_RANDOM=y
845   DEPENDS+= +kmod-mac80211 +!(TARGET_brcm47xx||TARGET_brcm63xx):kmod-ssb
846 endef
847
848 define KernelPackage/b43
849 $(call KernelPackage/b43-common)
850   DEPENDS+= +@DRIVER_11N_SUPPORT +!TARGET_brcm47xx:kmod-bcma
851   TITLE:=Broadcom 43xx wireless support
852   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43/b43.ko
853   AUTOLOAD:=$(call AutoLoad,30,b43)
854   MENU:=1
855 endef
856
857 define KernelPackage/b43/config
858         menu "Configuration"
859                 depends on PACKAGE_kmod-b43
860
861         choice
862                 prompt "b43 firmware version"
863                 default B43_FW_5_10
864                 help
865                   This option allows you to select the version of the b43 firmware.
866
867         config B43_FW_4_150
868                 bool "Firmware 410.2160 from driver 4.150.10.5 (stable)"
869                 help
870                   Stable firmware for BCM43xx devices.
871
872                   If unsure, select this.
873
874         config B43_FW_4_178
875                 bool "Firmware 478.104 from driver 4.178.10.4"
876                 help
877                   Experimental firmware for BCM43xx devices.
878
879                   This firmware is not tested as much as the "stable" firmware.
880
881                   If unsure, select the "stable" firmware.
882
883         config B43_FW_5_10
884                 bool "Firmware 508.1084 from driver 5.10.56.27"
885                 help
886                   Newer experimental firmware for BCM43xx devices.
887
888                   This firmware is mostly untested. It is needed for some N-PHY devices.
889
890                   If unsure, select the "stable" firmware.
891
892         config B43_OPENFIRMWARE
893                 bool "Open FirmWare for WiFi networks"
894                 help
895                   Opensource firmware for BCM43xx devices.
896
897                   Do _not_ select this, unless you know what you are doing.
898                   The Opensource firmware is not suitable for embedded devices, yet.
899                   It does not support QoS, which is bad for AccessPoints.
900                   It does not support hardware crypto acceleration, which is a showstopper
901                   for embedded devices with low CPU resources.
902
903                   If unsure, select the "stable" firmware.
904
905         endchoice
906
907         config B43_FW_SQUASH
908                 bool "Remove unnecessary firmware files"
909                 depends on !B43_OPENFIRMWARE
910                 default y
911                 help
912                   This options allows you to remove unnecessary b43 firmware files
913                   from the final rootfs image. This can reduce the rootfs size by
914                   up to 200k.
915
916                   If unsure, say Y.
917
918         config B43_FW_SQUASH_COREREVS
919                 string "Core revisions to include"
920                 depends on B43_FW_SQUASH
921                 default "5,6,7,8,9,10,11,13,14,15,16"
922                 help
923                   This is a comma seperated list of core revision numbers.
924
925                   Example (keep files for rev5 only):
926                     5
927
928                   Example (keep files for rev5 and rev11):
929                     5,11
930
931         config B43_FW_SQUASH_PHYTYPES
932                 string "PHY types to include"
933                 depends on B43_FW_SQUASH
934                 default "G,LP,N"
935                 help
936                   This is a comma seperated list of PHY types:
937                     A  => A-PHY
938                     AG => Dual A-PHY G-PHY
939                     G  => G-PHY
940                     LP => LP-PHY
941                     N  => N-PHY
942
943                   Example (keep files for G-PHY only):
944                     G
945
946                   Example (keep files for G-PHY and N-PHY):
947                     G,N
948
949         config PACKAGE_B43_DEBUG
950                 bool "Enable debug output and debugfs for b43"
951                 default n
952                 help
953                   Enable additional debug output and runtime sanity checks for b43
954                   and enables the debugfs interface.
955
956                   If unsure, say N.
957
958         config PACKAGE_B43_PIO
959                 bool "Enable support for PIO transfer mode"
960                 default n
961                 help
962                   Enable support for using PIO instead of DMA. Unless you have DMA
963                   transfer problems you don't need this.
964
965                   If unsure, say N.
966
967         config PACKAGE_B43_PHY_N
968                 bool "Enable support for N-PHYs"
969                 select B43_FW_5_10
970                 default y
971                 help
972                   Enable support for BCM4321 and BCM4322.
973
974                   Currently only 11g speed is available.
975
976                   If unsure, say Y.
977
978         config PACKAGE_B43_PHY_HT
979                 bool "Enable support for HT-PHYs"
980                 depends on BROKEN
981                 select B43_FW_5_10
982                 default n
983                 help
984                   Currently broken.
985
986                   If unsure, say N.
987
988         config PACKAGE_B43_PHY_LCN
989                 bool "Enable support for LCN-PHYs"
990                 depends on BROKEN
991                 select B43_FW_5_10
992                 default n
993                 help
994                   Currently broken.
995
996                   If unsure, say N.
997
998         endmenu
999 endef
1000
1001 define KernelPackage/b43/description
1002 Kernel module for Broadcom 43xx wireless support (mac80211 stack) new
1003 endef
1004
1005 define KernelPackage/b43legacy
1006 $(call KernelPackage/b43-common)
1007   TITLE:=Broadcom 43xx-legacy wireless support
1008   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43legacy/b43legacy.ko
1009   AUTOLOAD:=$(call AutoLoad,30,b43legacy)
1010   MENU:=1
1011 endef
1012
1013 define KernelPackage/b43legacy/config
1014         menu "Configuration"
1015                 depends on PACKAGE_kmod-b43legacy
1016
1017         config B43LEGACY_FW_SQUASH
1018                 bool "Remove unnecessary firmware files"
1019                 default y
1020                 help
1021                   This options allows you to remove unnecessary b43legacy firmware files
1022                   from the final rootfs image. This can reduce the rootfs size by
1023                   up to 50k.
1024
1025                   If unsure, say Y.
1026
1027         config B43LEGACY_FW_SQUASH_COREREVS
1028                 string "Core revisions to include"
1029                 depends on B43LEGACY_FW_SQUASH
1030                 default "1,2,3,4"
1031                 help
1032                   This is a comma seperated list of core revision numbers.
1033
1034                   Example (keep files for rev4 only):
1035                     4
1036
1037                   Example (keep files for rev2 and rev4):
1038                     2,4
1039
1040         endmenu
1041 endef
1042
1043 define KernelPackage/b43legacy/description
1044 Kernel module for Broadcom 43xx-legacy wireless support (mac80211 stack) new
1045 endef
1046
1047 BUILDFLAGS:= \
1048         -I$(PKG_BUILD_DIR)/include \
1049         $(foreach opt,$(CONFOPTS),-DCONFIG_$(opt)) \
1050         $(if $(CONFIG_PCI),-DCONFIG_B43_PCI_AUTOSELECT -DCONFIG_B43_PCICORE_AUTOSELECT) \
1051         $(if $(CONFIG_LEDS_TRIGGERS), -DCONFIG_MAC80211_LEDS -DCONFIG_LEDS_TRIGGERS -DCONFIG_B43_LEDS -DCONFIG_B43LEGACY_LEDS) \
1052         -DCONFIG_B43_HWRNG -DCONFIG_B43LEGACY_HWRNG \
1053         $(if $(CONFIG_PCI),-DCONFIG_ATH9K_PCI) \
1054         $(if $(CONFIG_TARGET_ar71xx),-DCONFIG_ATH9K_AHB) \
1055         $(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS), -DCONFIG_CFG80211_DEBUGFS -DCONFIG_MAC80211_DEBUGFS -DCONFIG_ATH9K_DEBUGFS -DCONFIG_CARL9170_DEBUGFS -DCONFIG_ATH9K_HTC_DEBUGFS -DCONFIG_ATH5K_DEBUG) \
1056         $(if $(CONFIG_PACKAGE_ATH_DEBUG),-DCONFIG_ATH_DEBUG -DCONFIG_ATH9K_PKTLOG) \
1057         -D__CONFIG_MAC80211_RC_DEFAULT=minstrel \
1058         -DCONFIG_MAC80211_RC_MINSTREL_HT \
1059         $(if $(CONFIG_ATH_USER_REGD),-DATH_USER_REGD=1) \
1060         $(if $(CONFIG_PACKAGE_B43_DEBUG),-DCONFIG_B43_DEBUG) \
1061         $(if $(CONFIG_PACKAGE_B43_PIO),-DCONFIG_B43_PIO) \
1062         $(if $(CONFIG_PACKAGE_B43_PIO),-DCONFIG_B43_BCMA_PIO) \
1063         $(if $(CONFIG_PACKAGE_B43_PHY_N),-DCONFIG_B43_PHY_N) \
1064         $(if $(CONFIG_PACKAGE_B43_PHY_HT),-DCONFIG_B43_PHY_HT) \
1065         $(if $(CONFIG_PACKAGE_B43_PHY_LCN),-DCONFIG_B43_PHY_LCN) \
1066         -DCONFIG_B43_BCMA \
1067         -DCONFIG_B43_SSB \
1068         $(if $(CONFIG_PACKAGE_RT2X00_LIB_DEBUGFS),-DCONFIG_RT2X00_LIB_DEBUGFS) \
1069         $(if $(CONFIG_PACKAGE_RT2X00_DEBUG),-DCONFIG_RT2X00_DEBUG) \
1070         $(if $(NEED_RT2X00_LIB_HT),-DCONFIG_RT2X00_LIB_HT) \
1071         $(if $(NEED_RT2X00_LIB_CRYPTO),-DCONFIG_RT2X00_LIB_CRYPTO) \
1072         $(if $(NEED_RT2X00_LIB_FIRMWARE),-DCONFIG_RT2X00_LIB_FIRMWARE) \
1073         $(if $(NEED_RT2X00_LIB_EEPROM),-DCONFIG_RT2X00_LIB_EEPROM) \
1074         $(if $(NEED_RT2X00_LIB_LEDS),-DCONFIG_RT2X00_LIB_LEDS) \
1075         $(if $(CONFIG_PACKAGE_kmod-rt2x00-pci),-DCONFIG_RT2X00_LIB_PCI) \
1076         $(if $(CONFIG_PACKAGE_kmod-rt2x00-usb),-DCONFIG_RT2X00_LIB_USB) \
1077         $(if $(CONFIG_PACKAGE_kmod-rt2x00-soc),-DCONFIG_RT2X00_LIB_SOC) \
1078         $(if $(CONFIG_TARGET_atheros),-DCONFIG_ATH5K_AHB,-DCONFIG_ATH5K_PCI) \
1079         $(if $(CONFIG_PACKAGE_kmod-iwl3945),-DCONFIG_IWL3945) \
1080         $(if $(CONFIG_PACKAGE_kmod-iwl4965),-DCONFIG_COMPAT_IWL4965)
1081
1082 MAKE_OPTS:= \
1083         CROSS_COMPILE="$(KERNEL_CROSS)" \
1084         ARCH="$(LINUX_KARCH)" \
1085         EXTRA_CFLAGS="$(BUILDFLAGS)" \
1086         $(foreach opt,$(CONFOPTS),CONFIG_$(opt)=m) \
1087         CONFIG_CFG80211=$(if $(CONFIG_PACKAGE_kmod-cfg80211),m) \
1088         CONFIG_MAC80211=$(if $(CONFIG_PACKAGE_kmod-mac80211),m) \
1089         CONFIG_MAC80211_RC_MINSTREL=y \
1090         CONFIG_MAC80211_LEDS=$(CONFIG_LEDS_TRIGGERS) \
1091         CONFIG_CFG80211_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1092         CONFIG_MAC80211_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1093         CONFIG_B43_PCMCIA=n CONFIG_B43_PIO=n \
1094         CONFIG_B43_PCI_AUTOSELECT=$(if $(CONFIG_PCI),y) \
1095         CONFIG_B43_PCICORE_AUTOSELECT=$(if $(CONFIG_PCI),y) \
1096         CONFIG_B43LEGACY_LEDS=$(CONFIG_LEDS_TRIGGERS) \
1097         CONFIG_B43_LEDS=$(CONFIG_LEDS_TRIGGERS) \
1098         CONFIG_B43_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \
1099         CONFIG_B43LEGACY_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \
1100         CONFIG_B43=$(if $(CONFIG_PACKAGE_kmod-b43),m) \
1101         CONFIG_B43LEGACY=$(if $(CONFIG_PACKAGE_kmod-b43legacy),m) \
1102         CONFIG_B43_DEBUG=$(if $(CONFIG_PACKAGE_B43_DEBUG),y) \
1103         CONFIG_B43_PIO=$(if $(CONFIG_PACKAGE_B43_PIO),y) \
1104         CONFIG_B43_BCMA_PIO=$(if $(CONFIG_PACKAGE_B43_PIO),y) \
1105         CONFIG_B43_PHY_N=$(if $(CONFIG_PACKAGE_B43_PHY_N),y) \
1106         CONFIG_B43_PHY_HT=$(if $(CONFIG_PACKAGE_B43_PHY_HT),y) \
1107         CONFIG_B43_PHY_LCN=$(if $(CONFIG_PACKAGE_B43_PHY_LCN),y) \
1108         CONFIG_B43_BCMA=y \
1109         CONFIG_B43_SSB=y \
1110         CONFIG_ATH_COMMON=$(if $(CONFIG_PACKAGE_kmod-ath),m) \
1111         CONFIG_ATH_DEBUG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \
1112         CONFIG_ATH9K_PKTLOG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \
1113         CONFIG_ATH5K=$(if $(CONFIG_PACKAGE_kmod-ath5k),m) \
1114         CONFIG_ATH5K_PCI=$(if $(CONFIG_TARGET_atheros),,y) \
1115         CONFIG_ATH5K_AHB=$(if $(CONFIG_TARGET_atheros),y) \
1116         CONFIG_ATH5K_DEBUG=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1117         CONFIG_ATH9K=$(if $(CONFIG_PACKAGE_kmod-ath9k),m) \
1118         CONFIG_ATH9K_PCI=$(CONFIG_PCI) \
1119         CONFIG_ATH9K_AHB=$(if $(CONFIG_TARGET_ar71xx),y) \
1120         CONFIG_ATH9K_HTC=$(if $(CONFIG_PACKAGE_kmod-ath9k-htc),m) \
1121         CONFIG_ATH9K_HTC_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1122         CONFIG_ATH9K_HW=$(if $(CONFIG_PACKAGE_kmod-ath9k-common),m) \
1123         CONFIG_ATH9K_COMMON=$(if $(CONFIG_PACKAGE_kmod-ath9k-common),m) \
1124         CONFIG_ATH9K_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1125         CONFIG_CARL9170=$(if $(CONFIG_PACKAGE_kmod-carl9170),m) \
1126         CONFIG_CARL9170_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1127         CONFIG_COMPAT_ZD1211RW=$(if $(CONFIG_PACKAGE_kmod-zd1211rw),m) \
1128         CONFIG_P54_COMMON=$(if $(CONFIG_PACKAGE_kmod-p54-common),m) \
1129         CONFIG_P54_PCI=$(if $(CONFIG_PACKAGE_kmod-p54-pci),m) \
1130         CONFIG_P54_USB=$(if $(CONFIG_PACKAGE_kmod-p54-usb),m) \
1131         CONFIG_P54_SPI=$(if $(CONFIG_PACKAGE_kmod-p54-spi),m) \
1132         CONFIG_P54_SPI_DEFAULT_EEPROM=n \
1133         CONFIG_RT2X00=$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),m) \
1134         CONFIG_RT2X00_LIB=$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),m) \
1135         CONFIG_RT2X00_LIB_PCI=$(if $(CONFIG_PACKAGE_kmod-rt2x00-pci),m) \
1136         CONFIG_RT2X00_LIB_USB=$(if $(CONFIG_PACKAGE_kmod-rt2x00-usb),m) \
1137         CONFIG_RT2X00_LIB_SOC=$(if $(CONFIG_PACKAGE_kmod-rt2x00-soc),m) \
1138         CONFIG_RT2X00_LIB_DEBUGFS=$(CONFIG_PACKAGE_RT2X00_LIB_DEBUGFS) \
1139         CONFIG_RT2X00_LIB_CRYPTO=$(NEED_RT2X00_LIB_CRYPTO) \
1140         CONFIG_RT2X00_LIB_FIRMWARE=$(NEED_RT2X00_LIB_FIRMWARE) \
1141         CONFIG_RT2X00_LIB_EEPROM=$(NEED_RT2X00_LIB_EEPROM) \
1142         CONFIG_RT2X00_LIB_HT=$(NEED_RT2X00_LIB_HT) \
1143         CONFIG_RT2X00_LIB_LEDS=$(NEED_RT2X00_LIB_LEDS) \
1144         CONFIG_RT2400PCI=$(if $(CONFIG_PACKAGE_kmod-rt2400-pci),m) \
1145         CONFIG_RT2500PCI=$(if $(CONFIG_PACKAGE_kmod-rt2500-pci),m) \
1146         CONFIG_RT2500USB=$(if $(CONFIG_PACKAGE_kmod-rt2500-usb),m) \
1147         CONFIG_RT61PCI=$(if $(CONFIG_PACKAGE_kmod-rt61-pci),m) \
1148         CONFIG_RT73USB=$(if $(CONFIG_PACKAGE_kmod-rt73-usb),m) \
1149         CONFIG_RT2800_LIB=$(if $(CONFIG_PACKAGE_kmod-rt2800-lib),m) \
1150         CONFIG_RT2800PCI=$(if $(CONFIG_PACKAGE_kmod-rt2800-pci),m) \
1151         CONFIG_RT2800USB=$(if $(CONFIG_PACKAGE_kmod-rt2800-usb),m) \
1152         CONFIG_RT2800USB_RT53XX=$(if $(CONFIG_PACKAGE_kmod-rt2800-usb),y) \
1153         CONFIG_RTL8180=$(if $(CONFIG_PACKAGE_kmod-rtl8180),m) \
1154         CONFIG_RTL8187=$(if $(CONFIG_PACKAGE_kmod-rtl8187),m) \
1155         CONFIG_RTL8192CE= \
1156         CONFIG_RTLWIFI= \
1157         CONFIG_MAC80211_HWSIM=$(if $(CONFIG_PACKAGE_kmod-mac80211-hwsim),m) \
1158         CONFIG_PCMCIA= \
1159         CONFIG_LIBIPW=$(if $(CONFIG_PACKAGE_kmod-net-libipw),m) \
1160         CONFIG_LIBERTAS=$(if $(CONFIG_PACKAGE_kmod-libertas-sd)$(CONFIG_PACKAGE_kmod-libertas-usb),m) \
1161         CONFIG_LIBERTAS_CS= \
1162         CONFIG_LIBERTAS_SPI= \
1163         CONFIG_COMPAT_LIBERTAS_SDIO=$(if $(CONFIG_PACKAGE_kmod-libertas-sd),m) \
1164         CONFIG_LIBERTAS_THINFIRM= \
1165         CONFIG_LIBERTAS_USB=$(if $(CONFIG_PACKAGE_kmod-libertas-usb),m) \
1166         CONFIG_IPW2100=$(if $(CONFIG_PACKAGE_kmod-net-ipw2100),m) \
1167         CONFIG_IPW2200=$(if $(CONFIG_PACKAGE_kmod-net-ipw2200),m) \
1168         CONFIG_NL80211=y \
1169         CONFIG_LIB80211=$(if $(CONFIG_PACKAGE_kmod-lib80211),m) \
1170         CONFIG_LIB80211_CRYPT_WEP=$(if $(CONFIG_PACKAGE_kmod-lib80211),m) \
1171         CONFIG_LIB80211_CRYPT_CCMP=$(if $(CONFIG_PACKAGE_kmod-lib80211),m) \
1172         CONFIG_LIB80211_CRYPT_TKIP=$(if $(CONFIG_PACKAGE_kmod-lib80211),m) \
1173         CONFIG_IWLWIFI=$(if $(CONFIG_PACKAGE_kmod-iwlagn),m) \
1174         CONFIG_IWLWIFI_LEGACY=$(if $(CONFIG_PACKAGE_kmod-iwl-legacy),m) \
1175         CONFIG_COMPAT_IWL4965=$(if $(CONFIG_PACKAGE_kmod-iwl4965),m) \
1176         CONFIG_IWL3945=$(if $(CONFIG_PACKAGE_kmod-iwl3945),m) \
1177         CONFIG_MWL8K=$(if $(CONFIG_PACKAGE_kmod-mwl8k),m) \
1178         CONFIG_ATMEL= \
1179         CONFIG_PCMCIA_ATMEL= \
1180         CONFIG_ADM8211= \
1181         CONFIG_USB_NET_RNDIS_HOST= \
1182         CONFIG_USB_NET_RNDIS_WLAN= \
1183         CONFIG_USB_NET_CDCETHER= \
1184         CONFIG_USB_USBNET= \
1185         CONFIG_AT76C50X_USB= \
1186         CONFIG_WL12XX= \
1187         CONFIG_EEPROM_93CX6= \
1188         CONFIG_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes),m) \
1189         CONFIG_HERMES_CACHE_FW_ON_INIT= \
1190         CONFIG_PCI_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes-pci),m) \
1191         CONFIG_PLX_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes-plx),m) \
1192         CONFIG_PCMCIA_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes-pcmcia),m) \
1193         CONFIG_HERMES_PRISM= \
1194         CONFIG_APPLE_AIRPORT= \
1195         CONFIG_TMD_HERMES= \
1196         CONFIG_NORTEL_HERMES= \
1197         CONFIG_PCMCIA_SPECTRUM= \
1198         CONFIG_ORINOCO_USB= \
1199         CONFIG_IWM= \
1200         CONFIG_MWIFIEX= \
1201         CONFIG_MAC80211_RC_MINSTREL_HT=y \
1202         MADWIFI= \
1203         CONFIG_B44= \
1204         CONFIG_ATL1= \
1205         CONFIG_ATL2= \
1206         CONFIG_ATL1E= \
1207         CONFIG_ATL1C= \
1208         CONFIG_BRCMFMAC= \
1209         CONFIG_BRCMUMAC= \
1210         CONFIG_BRCMSMAC= \
1211         KLIB_BUILD="$(LINUX_DIR)" \
1212         MODPROBE=: \
1213         KLIB=$(TARGET_MODULES_DIR) \
1214         KERNEL_SUBLEVEL=$(lastword $(subst ., ,$(KERNEL_PATCHVER))) \
1215         KBUILD_LDFLAGS_MODULE_PREREQ=
1216
1217 ifeq ($(CONFIG_PACKAGE_kmod-libertas-sd)$(CONFIG_PACKAGE_kmod-libertas-usb)$(CONFIG_PACKAGE_kmod-rt2x00-lib),)
1218   MAKE_OPTS += CONFIG_COMPAT_KFIFO=
1219 endif
1220
1221 define Build/Prepare
1222         rm -rf $(PKG_BUILD_DIR)
1223         mkdir -p $(PKG_BUILD_DIR)
1224         $(PKG_UNPACK)
1225         $(Build/Patch)
1226         $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
1227         $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
1228         $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
1229         $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(PKG_LINUX_FIRMWARE_SOURCE)
1230         rm -rf $(PKG_BUILD_DIR)/include/linux/ssb
1231         rm -rf $(PKG_BUILD_DIR)/include/linux/bcma
1232         rm -f $(PKG_BUILD_DIR)/include/net/ieee80211.h
1233 endef
1234
1235 ifneq ($(CONFIG_PACKAGE_kmod-cfg80211)$(CONFIG_PACKAGE_kmod-lib80211),)
1236  define Build/Compile/kmod
1237         rm -rf $(PKG_BUILD_DIR)/modules
1238         $(MAKE) $(PKG_JOBS) -C "$(PKG_BUILD_DIR)" $(MAKE_OPTS) all
1239  endef
1240 endif
1241
1242 define Build/Compile
1243         $(call Build/Compile/kmod)
1244 endef
1245
1246 define Build/InstallDev
1247         mkdir -p \
1248                 $(1)/usr/include/mac80211 \
1249                 $(1)/usr/include/mac80211/ath \
1250                 $(1)/usr/include/net/mac80211
1251         $(CP) $(PKG_BUILD_DIR)/net/mac80211/*.h $(PKG_BUILD_DIR)/include/* $(1)/usr/include/mac80211/
1252         $(CP) $(PKG_BUILD_DIR)/net/mac80211/rate.h $(1)/usr/include/net/mac80211/
1253         $(CP) $(PKG_BUILD_DIR)/drivers/net/wireless/ath/*.h $(1)/usr/include/mac80211/ath/
1254 endef
1255
1256 define KernelPackage/libertas-usb/install
1257         $(INSTALL_DIR) $(1)/lib/firmware
1258         $(INSTALL_DATA) \
1259                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/usb8388_v9.bin \
1260                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/usb8388_v5.bin \
1261                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/usb8682.bin \
1262                 $(1)/lib/firmware/
1263 endef
1264
1265 define KernelPackage/libertas-sd/install
1266         $(INSTALL_DIR) $(1)/lib/firmware/libertas
1267         $(INSTALL_DATA) \
1268                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8385_helper.bin \
1269                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8385.bin \
1270                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8686_v9_helper.bin \
1271                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8686_v9.bin \
1272                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8686_v8_helper.bin \
1273                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8686_v8.bin \
1274                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8688_helper.bin \
1275                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8688.bin \
1276                 $(1)/lib/firmware/libertas
1277 endef
1278
1279 define KernelPackage/cfg80211/install
1280         $(INSTALL_DIR) $(1)/lib/wifi
1281         $(INSTALL_DATA) ./files/lib/wifi/mac80211.sh $(1)/lib/wifi
1282 endef
1283
1284 define KernelPackage/p54-pci/install
1285         $(INSTALL_DIR) $(1)/lib/firmware
1286         $(INSTALL_DATA) $(DL_DIR)/$(P54PCIFW) $(1)/lib/firmware/isl3886pci
1287 endef
1288
1289 define KernelPackage/p54-usb/install
1290         $(INSTALL_DIR) $(1)/lib/firmware
1291         $(INSTALL_DATA) $(DL_DIR)/$(P54USBFW) $(1)/lib/firmware/isl3887usb
1292 endef
1293
1294 define KernelPackage/p54-spi/install
1295         $(INSTALL_DIR) $(1)/lib/firmware
1296         $(INSTALL_DATA) $(DL_DIR)/$(P54SPIFW) $(1)/lib/firmware/3826.arm
1297 endef
1298
1299 define KernelPackage/rt61-pci/install
1300         $(INSTALL_DIR) $(1)/lib/firmware
1301         $(INSTALL_DATA) \
1302                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2561.bin \
1303                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2561s.bin \
1304                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2661.bin \
1305                 $(1)/lib/firmware/
1306 endef
1307
1308 define KernelPackage/rt73-usb/install
1309         $(INSTALL_DIR) $(1)/lib/firmware
1310         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt73.bin $(1)/lib/firmware/
1311 endef
1312
1313 define KernelPackage/rt2800-pci/install
1314         $(INSTALL_DIR) $(1)/lib/firmware
1315         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2860.bin $(1)/lib/firmware/
1316 endef
1317
1318 define KernelPackage/rt2800-usb/install
1319         $(INSTALL_DIR) $(1)/lib/firmware
1320         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2870.bin $(1)/lib/firmware/
1321 endef
1322
1323 define KernelPackage/zd1211rw/install
1324         $(INSTALL_DIR) $(1)/lib/firmware/zd1211
1325         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(ZD1211FW_NAME)/zd1211* $(1)/lib/firmware/zd1211
1326 endef
1327
1328 define KernelPackage/ath9k-htc/install
1329         $(INSTALL_DIR) $(1)/lib/firmware
1330         $(INSTALL_DATA) \
1331                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/htc_9271.fw \
1332                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/htc_7010.fw \
1333                 $(1)/lib/firmware/
1334 endef
1335
1336 define KernelPackage/mwl8k/install
1337         $(INSTALL_DIR) $(1)/lib/firmware
1338         $(INSTALL_DATA) \
1339                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/fmimage_8366_ap-2.fw \
1340                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/fmimage_8366.fw \
1341                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/helper_8366.fw \
1342                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/fmimage_8687.fw \
1343                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/helper_8687.fw \
1344                 $(1)/lib/firmware/
1345 endef
1346
1347 define KernelPackage/net-ipw2100/install
1348         $(INSTALL_DIR) $(1)/lib/firmware
1349         $(INSTALL_DATA) $(PKG_BUILD_DIR)/ipw2100-$(IPW2100_VERSION)*.fw $(1)/lib/firmware
1350 endef
1351
1352 define KernelPackage/net-ipw2200/install
1353         $(INSTALL_DIR) $(1)/lib/firmware
1354         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION)/ipw2200*.fw $(1)/lib/firmware
1355 endef
1356
1357 define KernelPackage/iwlagn/install
1358         $(INSTALL_DIR) $(1)/lib/firmware
1359 ifneq ($(CONFIG_IWL5000_FW),)
1360         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-5000-5.ucode $(1)/lib/firmware
1361 endif
1362 ifneq ($(CONFIG_IWL5150_FW),)
1363         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-5150-2.ucode $(1)/lib/firmware
1364 endif
1365 ifneq ($(CONFIG_IWL1000_FW),)
1366         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-1000-5.ucode $(1)/lib/firmware
1367 endif
1368 ifneq ($(CONFIG_IWL6000_FW),)
1369         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6000-4.ucode $(1)/lib/firmware
1370 endif
1371 ifneq ($(CONFIG_IWL6050_FW),)
1372         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6050-5.ucode $(1)/lib/firmware
1373 endif
1374 ifneq ($(CONFIG_IWL6005_FW),)
1375         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6000g2a-5.ucode $(1)/lib/firmware
1376 endif
1377 ifneq ($(CONFIG_IWL6030_FW),)
1378         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6000g2b-5.ucode $(1)/lib/firmware
1379 endif
1380 ifneq ($(CONFIG_IWL100_FW),)
1381         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-100-5.ucode $(1)/lib/firmware
1382 endif
1383 endef
1384
1385 define KernelPackage/iwl3945/install
1386         $(INSTALL_DIR) $(1)/lib/firmware
1387         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-3945-2.ucode $(1)/lib/firmware
1388 endef
1389
1390 define KernelPackage/iwl4965/install
1391         $(INSTALL_DIR) $(1)/lib/firmware
1392         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-4965-2.ucode $(1)/lib/firmware
1393 endef
1394
1395 define Build/b43-common
1396         tar xjf "$(DL_DIR)/$(PKG_B43_FWCUTTER_SOURCE)" -C "$(PKG_BUILD_DIR)"
1397         patch -p1 -d  "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)" < ./files/b43-fwcutter-fw-dirname.patch
1398         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)" \
1399                 CFLAGS="-I$(STAGING_DIR_HOST)/include -include endian.h" \
1400                 QUIET_SPARSE=:
1401         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)/b43-fwcutter $(STAGING_DIR_HOST)/bin/
1402 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1403         $(INSTALL_DIR) $(STAGING_DIR_HOST)/bin/
1404         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/"
1405         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/b43-asm $(STAGING_DIR_HOST)/bin/
1406         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/b43-asm.bin $(STAGING_DIR_HOST)/bin/
1407 endif
1408         $(INSTALL_BIN) ./files/host_bin/b43-fwsquash.py $(STAGING_DIR_HOST)/bin/
1409 endef
1410
1411 define KernelPackage/b43/install
1412         rm -rf $(1)/lib/firmware/
1413         $(call Build/b43-common)
1414 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1415         tar xzf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
1416 else
1417         tar xjf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
1418 endif
1419         $(INSTALL_DIR) $(1)/lib/firmware/
1420 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1421         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/"
1422         $(INSTALL_DIR) $(1)/lib/firmware/b43-open/
1423         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/ucode5.fw $(1)/lib/firmware/b43-open/ucode5.fw
1424         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0bsinitvals5.fw $(1)/lib/firmware/b43-open/b0g0bsinitvals5.fw
1425         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0initvals5.fw $(1)/lib/firmware/b43-open/b0g0initvals5.fw
1426 else
1427         b43-fwcutter -w $(1)/lib/firmware/ $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)
1428 endif
1429 ifneq ($(CONFIG_B43_FW_SQUASH),)
1430         b43-fwsquash.py "$(CONFIG_B43_FW_SQUASH_PHYTYPES)" "$(CONFIG_B43_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43"
1431 endif
1432 endef
1433
1434 define KernelPackage/b43legacy/install
1435         $(call Build/b43-common)
1436         $(INSTALL_DIR) $(1)/lib/firmware/
1437
1438         b43-fwcutter --unsupported -w $(1)/lib/firmware/ $(DL_DIR)/$(PKG_B43_FWV3_SOURCE)
1439 ifneq ($(CONFIG_B43LEGACY_FW_SQUASH),)
1440         b43-fwsquash.py "G" "$(CONFIG_B43LEGACY_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43legacy"
1441 endif
1442 endef
1443
1444 $(eval $(call KernelPackage,ath5k))
1445 $(eval $(call KernelPackage,lib80211))
1446 $(eval $(call KernelPackage,libertas-usb))
1447 $(eval $(call KernelPackage,libertas-sd))
1448 $(eval $(call KernelPackage,cfg80211))
1449 $(eval $(call KernelPackage,mac80211))
1450 $(eval $(call KernelPackage,p54-common))
1451 $(eval $(call KernelPackage,p54-pci))
1452 $(eval $(call KernelPackage,p54-usb))
1453 $(eval $(call KernelPackage,p54-spi))
1454 $(eval $(call KernelPackage,rt2x00-lib))
1455 $(eval $(call KernelPackage,rt2x00-pci))
1456 $(eval $(call KernelPackage,rt2x00-usb))
1457 $(eval $(call KernelPackage,rt2x00-soc))
1458 $(eval $(call KernelPackage,rt2800-lib))
1459 $(eval $(call KernelPackage,rt2400-pci))
1460 $(eval $(call KernelPackage,rt2500-pci))
1461 $(eval $(call KernelPackage,rt2500-usb))
1462 $(eval $(call KernelPackage,rt61-pci))
1463 $(eval $(call KernelPackage,rt73-usb))
1464 $(eval $(call KernelPackage,rt2800-pci))
1465 $(eval $(call KernelPackage,rt2800-usb))
1466 $(eval $(call KernelPackage,rtl8180))
1467 $(eval $(call KernelPackage,rtl8187))
1468 $(eval $(call KernelPackage,zd1211rw))
1469 $(eval $(call KernelPackage,mac80211-hwsim))
1470 $(eval $(call KernelPackage,ath9k-common))
1471 $(eval $(call KernelPackage,ath9k))
1472 $(eval $(call KernelPackage,ath9k-htc))
1473 $(eval $(call KernelPackage,ath))
1474 $(eval $(call KernelPackage,carl9170))
1475 $(eval $(call KernelPackage,b43))
1476 $(eval $(call KernelPackage,b43legacy))
1477 $(eval $(call KernelPackage,net-libipw))
1478 $(eval $(call KernelPackage,net-ipw2100))
1479 $(eval $(call KernelPackage,net-ipw2200))
1480 $(eval $(call KernelPackage,iwlagn))
1481 $(eval $(call KernelPackage,iwl-legacy))
1482 $(eval $(call KernelPackage,iwl4965))
1483 $(eval $(call KernelPackage,iwl3945))
1484 $(eval $(call KernelPackage,mwl8k))
1485 $(eval $(call KernelPackage,net-hermes))
1486 $(eval $(call KernelPackage,net-hermes-pci))
1487 $(eval $(call KernelPackage,net-hermes-plx))
1488 $(eval $(call KernelPackage,net-hermes-pcmcia))