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