mac80211: backport latest changes from trunk
[10.03/openwrt.git] / package / mac80211 / Makefile
1 #
2 # Copyright (C) 2007-2010 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-06-22
14 PKG_RELEASE:=2
15 PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
16 PKG_MD5SUM:=3ffdd5cecedcf4236f599bdbc55ba10d
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) @!LINUX_2_4
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/iwlagn.$(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   TITLE:=Broadcom 43xx wireless support
848   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43/b43.ko
849   AUTOLOAD:=$(call AutoLoad,30,b43)
850   MENU:=1
851 endef
852
853 define KernelPackage/b43/config
854         menu "Configuration"
855                 depends on PACKAGE_kmod-b43
856
857         choice
858                 prompt "b43 firmware version"
859                 default B43_FW_4_150
860                 help
861                   This option allows you to select the version of the b43 firmware.
862
863         config B43_FW_4_150
864                 bool "Firmware 410.2160 from driver 4.150.10.5 (stable)"
865                 help
866                   Stable firmware for BCM43xx devices.
867
868                   If unsure, select this.
869
870         config B43_FW_4_178
871                 bool "Firmware 478.104 from driver 4.178.10.4"
872                 help
873                   Experimental firmware for BCM43xx devices.
874
875                   This firmware is not tested as much as the "stable" firmware.
876
877                   If unsure, select the "stable" firmware.
878
879         config B43_FW_5_10
880                 bool "Firmware 508.1084 from driver 5.10.56.27"
881                 help
882                   Newer experimental firmware for BCM43xx devices.
883
884                   This firmware is mostly untested. It is needed for some N-PHY devices.
885
886                   If unsure, select the "stable" firmware.
887
888         config B43_OPENFIRMWARE
889                 bool "Open FirmWare for WiFi networks"
890                 help
891                   Opensource firmware for BCM43xx devices.
892
893                   Do _not_ select this, unless you know what you are doing.
894                   The Opensource firmware is not suitable for embedded devices, yet.
895                   It does not support QoS, which is bad for AccessPoints.
896                   It does not support hardware crypto acceleration, which is a showstopper
897                   for embedded devices with low CPU resources.
898
899                   If unsure, select the "stable" firmware.
900
901         endchoice
902
903         config B43_FW_SQUASH
904                 bool "Remove unnecessary firmware files"
905                 depends on !B43_OPENFIRMWARE
906                 default y
907                 help
908                   This options allows you to remove unnecessary b43 firmware files
909                   from the final rootfs image. This can reduce the rootfs size by
910                   up to 200k.
911
912                   If unsure, say Y.
913
914         config B43_FW_SQUASH_COREREVS
915                 string "Core revisions to include"
916                 depends on B43_FW_SQUASH
917                 default "5,6,7,8,9,10,11,13,14,15,16" if PACKAGE_B43_PHY_N
918                 default "5,6,7,8,9,10,13,14,15" if !PACKAGE_B43_PHY_N
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" if PACKAGE_B43_PHY_N
932                 default "G,LP" if !PACKAGE_B43_PHY_N
933                 help
934                   This is a comma seperated list of PHY types:
935                     A  => A-PHY
936                     AG => Dual A-PHY G-PHY
937                     G  => G-PHY
938                     LP => LP-PHY
939                     N  => N-PHY
940
941                   Example (keep files for G-PHY only):
942                     G
943
944                   Example (keep files for G-PHY and N-PHY):
945                     G,N
946
947         config PACKAGE_B43_DEBUG
948                 bool "Enable debug output and debugfs for b43"
949                 default n
950                 help
951                   Enable additional debug output and runtime sanity checks for b43
952                   and enables the debugfs interface.
953
954                   If unsure, say N.
955
956         config PACKAGE_B43_PIO
957                 bool "Enable support for PIO transfer mode"
958                 depends BROKEN
959                 default n
960                 help
961                   Enable support for using PIO instead of DMA. Unless you have DMA
962                   transfer problems you don't need this.
963
964                   If unsure, say N.
965
966         config PACKAGE_B43_PHY_N
967                 bool "Enable support for N-PHYs"
968                 select B43_FW_5_10
969                 depends BROKEN
970                 default n
971                 help
972                   Enable support for BCM4321 and BCM4322.
973
974                   Currently only 11g speed is available.
975
976                   If unsure, say N.
977
978         endmenu
979 endef
980
981 define KernelPackage/b43/description
982 Kernel module for Broadcom 43xx wireless support (mac80211 stack) new
983 endef
984
985 define KernelPackage/b43legacy
986 $(call KernelPackage/b43-common)
987   TITLE:=Broadcom 43xx-legacy wireless support
988   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43legacy/b43legacy.ko
989   AUTOLOAD:=$(call AutoLoad,30,b43legacy)
990   MENU:=1
991 endef
992
993 define KernelPackage/b43legacy/config
994         menu "Configuration"
995                 depends on PACKAGE_kmod-b43legacy
996
997         config B43LEGACY_FW_SQUASH
998                 bool "Remove unnecessary firmware files"
999                 default y
1000                 help
1001                   This options allows you to remove unnecessary b43legacy firmware files
1002                   from the final rootfs image. This can reduce the rootfs size by
1003                   up to 50k.
1004
1005                   If unsure, say Y.
1006
1007         config B43LEGACY_FW_SQUASH_COREREVS
1008                 string "Core revisions to include"
1009                 depends on B43LEGACY_FW_SQUASH
1010                 default "1,2,3,4"
1011                 help
1012                   This is a comma seperated list of core revision numbers.
1013
1014                   Example (keep files for rev4 only):
1015                     4
1016
1017                   Example (keep files for rev2 and rev4):
1018                     2,4
1019
1020         endmenu
1021 endef
1022
1023 define KernelPackage/b43legacy/description
1024 Kernel module for Broadcom 43xx-legacy wireless support (mac80211 stack) new
1025 endef
1026
1027 BUILDFLAGS:= \
1028         -I$(PKG_BUILD_DIR)/include \
1029         $(foreach opt,$(CONFOPTS),-DCONFIG_$(opt)) \
1030         $(if $(CONFIG_PCI),-DCONFIG_B43_PCI_AUTOSELECT -DCONFIG_B43_PCICORE_AUTOSELECT) \
1031         $(if $(CONFIG_LEDS_TRIGGERS), -DCONFIG_MAC80211_LEDS -DCONFIG_LEDS_TRIGGERS -DCONFIG_B43_LEDS -DCONFIG_B43LEGACY_LEDS) \
1032         -DCONFIG_B43_HWRNG -DCONFIG_B43LEGACY_HWRNG \
1033         $(if $(CONFIG_PCI),-DCONFIG_ATH9K_PCI) \
1034         $(if $(CONFIG_TARGET_ar71xx),-DCONFIG_ATH9K_AHB) \
1035         $(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS), -DCONFIG_CFG80211_DEBUGFS -DCONFIG_MAC80211_DEBUGFS -DCONFIG_ATH9K_DEBUGFS -DCONFIG_CARL9170_DEBUGFS -DCONFIG_ATH9K_HTC_DEBUGFS -DCONFIG_ATH5K_DEBUG) \
1036         $(if $(CONFIG_PACKAGE_ATH_DEBUG),-DCONFIG_ATH_DEBUG -DCONFIG_ATH9K_PKTLOG) \
1037         -D__CONFIG_MAC80211_RC_DEFAULT=minstrel \
1038         -DCONFIG_MAC80211_RC_MINSTREL_HT \
1039         $(if $(CONFIG_ATH_USER_REGD),-DATH_USER_REGD=1) \
1040         $(if $(CONFIG_PACKAGE_B43_DEBUG),-DCONFIG_B43_DEBUG) \
1041         $(if $(CONFIG_PACKAGE_B43_PIO),-DCONFIG_B43_PIO) \
1042         $(if $(CONFIG_PACKAGE_B43_PHY_N),-DCONFIG_B43_PHY_N) \
1043         $(if $(CONFIG_PACKAGE_RT2X00_LIB_DEBUGFS),-DCONFIG_RT2X00_LIB_DEBUGFS) \
1044         $(if $(CONFIG_PACKAGE_RT2X00_DEBUG),-DCONFIG_RT2X00_DEBUG) \
1045         $(if $(NEED_RT2X00_LIB_HT),-DCONFIG_RT2X00_LIB_HT) \
1046         $(if $(NEED_RT2X00_LIB_CRYPTO),-DCONFIG_RT2X00_LIB_CRYPTO) \
1047         $(if $(NEED_RT2X00_LIB_FIRMWARE),-DCONFIG_RT2X00_LIB_FIRMWARE) \
1048         $(if $(NEED_RT2X00_LIB_EEPROM),-DCONFIG_RT2X00_LIB_EEPROM) \
1049         $(if $(NEED_RT2X00_LIB_LEDS),-DCONFIG_RT2X00_LIB_LEDS) \
1050         $(if $(CONFIG_PACKAGE_kmod-rt2x00-pci),-DCONFIG_RT2X00_LIB_PCI) \
1051         $(if $(CONFIG_PACKAGE_kmod-rt2x00-usb),-DCONFIG_RT2X00_LIB_USB) \
1052         $(if $(CONFIG_PACKAGE_kmod-rt2x00-soc),-DCONFIG_RT2X00_LIB_SOC) \
1053         $(if $(CONFIG_TARGET_atheros),-DCONFIG_ATH5K_AHB,-DCONFIG_ATH5K_PCI) \
1054         $(if $(CONFIG_PACKAGE_kmod-iwl3945),-DCONFIG_IWL3945) \
1055         $(if $(CONFIG_PACKAGE_kmod-iwl4965),-DCONFIG_COMPAT_IWL4965)
1056
1057 MAKE_OPTS:= \
1058         CROSS_COMPILE="$(KERNEL_CROSS)" \
1059         ARCH="$(LINUX_KARCH)" \
1060         EXTRA_CFLAGS="$(BUILDFLAGS)" \
1061         $(foreach opt,$(CONFOPTS),CONFIG_$(opt)=m) \
1062         CONFIG_MAC80211=$(if $(CONFIG_PACKAGE_kmod-mac80211),m) \
1063         CONFIG_MAC80211_RC_MINSTREL=y \
1064         CONFIG_MAC80211_LEDS=$(CONFIG_LEDS_TRIGGERS) \
1065         CONFIG_CFG80211_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1066         CONFIG_MAC80211_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1067         CONFIG_B43_PCMCIA=n CONFIG_B43_PIO=n \
1068         CONFIG_B43_PCI_AUTOSELECT=$(if $(CONFIG_PCI),y) \
1069         CONFIG_B43_PCICORE_AUTOSELECT=$(if $(CONFIG_PCI),y) \
1070         CONFIG_B43LEGACY_LEDS=$(CONFIG_LEDS_TRIGGERS) \
1071         CONFIG_B43_LEDS=$(CONFIG_LEDS_TRIGGERS) \
1072         CONFIG_B43_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \
1073         CONFIG_B43LEGACY_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \
1074         CONFIG_B43=$(if $(CONFIG_PACKAGE_kmod-b43),m) \
1075         CONFIG_B43LEGACY=$(if $(CONFIG_PACKAGE_kmod-b43legacy),m) \
1076         CONFIG_B43_DEBUG=$(if $(CONFIG_PACKAGE_B43_DEBUG),y) \
1077         CONFIG_B43_PIO=$(if $(CONFIG_PACKAGE_B43_PIO),y) \
1078         CONFIG_B43_PHY_N=$(if $(CONFIG_PACKAGE_B43_PHY_N),y) \
1079         CONFIG_ATH_COMMON=$(if $(CONFIG_PACKAGE_kmod-ath),m) \
1080         CONFIG_ATH_DEBUG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \
1081         CONFIG_ATH9K_PKTLOG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \
1082         CONFIG_ATH5K=$(if $(CONFIG_PACKAGE_kmod-ath5k),m) \
1083         CONFIG_ATH5K_PCI=$(if $(CONFIG_TARGET_atheros),,y) \
1084         CONFIG_ATH5K_AHB=$(if $(CONFIG_TARGET_atheros),y) \
1085         CONFIG_ATH5K_DEBUG=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1086         CONFIG_ATH9K=$(if $(CONFIG_PACKAGE_kmod-ath9k),m) \
1087         CONFIG_ATH9K_PCI=$(CONFIG_PCI) \
1088         CONFIG_ATH9K_AHB=$(if $(CONFIG_TARGET_ar71xx),y) \
1089         CONFIG_ATH9K_HTC=$(if $(CONFIG_PACKAGE_kmod-ath9k-htc),m) \
1090         CONFIG_ATH9K_HTC_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1091         CONFIG_ATH9K_HW=$(if $(CONFIG_PACKAGE_kmod-ath9k-common),m) \
1092         CONFIG_ATH9K_COMMON=$(if $(CONFIG_PACKAGE_kmod-ath9k-common),m) \
1093         CONFIG_ATH9K_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1094         CONFIG_CARL9170=$(if $(CONFIG_PACKAGE_kmod-carl9170),m) \
1095         CONFIG_CARL9170_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1096         CONFIG_COMPAT_ZD1211RW=$(if $(CONFIG_PACKAGE_kmod-zd1211rw),m) \
1097         CONFIG_P54_COMMON=$(if $(CONFIG_PACKAGE_kmod-p54-common),m) \
1098         CONFIG_P54_PCI=$(if $(CONFIG_PACKAGE_kmod-p54-pci),m) \
1099         CONFIG_P54_USB=$(if $(CONFIG_PACKAGE_kmod-p54-usb),m) \
1100         CONFIG_P54_SPI=$(if $(CONFIG_PACKAGE_kmod-p54-spi),m) \
1101         CONFIG_P54_SPI_DEFAULT_EEPROM=n \
1102         CONFIG_RT2X00=$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),m) \
1103         CONFIG_RT2X00_LIB=$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),m) \
1104         CONFIG_RT2X00_LIB_PCI=$(if $(CONFIG_PACKAGE_kmod-rt2x00-pci),m) \
1105         CONFIG_RT2X00_LIB_USB=$(if $(CONFIG_PACKAGE_kmod-rt2x00-usb),m) \
1106         CONFIG_RT2X00_LIB_SOC=$(if $(CONFIG_PACKAGE_kmod-rt2x00-soc),m) \
1107         CONFIG_RT2X00_LIB_DEBUGFS=$(CONFIG_PACKAGE_RT2X00_LIB_DEBUGFS) \
1108         CONFIG_RT2X00_LIB_CRYPTO=$(NEED_RT2X00_LIB_CRYPTO) \
1109         CONFIG_RT2X00_LIB_FIRMWARE=$(NEED_RT2X00_LIB_FIRMWARE) \
1110         CONFIG_RT2X00_LIB_EEPROM=$(NEED_RT2X00_LIB_EEPROM) \
1111         CONFIG_RT2X00_LIB_HT=$(NEED_RT2X00_LIB_HT) \
1112         CONFIG_RT2X00_LIB_LEDS=$(NEED_RT2X00_LIB_LEDS) \
1113         CONFIG_RT2400PCI=$(if $(CONFIG_PACKAGE_kmod-rt2400-pci),m) \
1114         CONFIG_RT2500PCI=$(if $(CONFIG_PACKAGE_kmod-rt2500-pci),m) \
1115         CONFIG_RT2500USB=$(if $(CONFIG_PACKAGE_kmod-rt2500-usb),m) \
1116         CONFIG_RT61PCI=$(if $(CONFIG_PACKAGE_kmod-rt61-pci),m) \
1117         CONFIG_RT73USB=$(if $(CONFIG_PACKAGE_kmod-rt73-usb),m) \
1118         CONFIG_RT2800_LIB=$(if $(CONFIG_PACKAGE_kmod-rt2800-lib),m) \
1119         CONFIG_RT2800PCI=$(if $(CONFIG_PACKAGE_kmod-rt2800-pci),m) \
1120         CONFIG_RT2800USB=$(if $(CONFIG_PACKAGE_kmod-rt2800-usb),m) \
1121         CONFIG_RTL8180=$(if $(CONFIG_PACKAGE_kmod-rtl8180),m) \
1122         CONFIG_RTL8187=$(if $(CONFIG_PACKAGE_kmod-rtl8187),m) \
1123         CONFIG_RTL8192CE= \
1124         CONFIG_RTLWIFI= \
1125         CONFIG_MAC80211_HWSIM=$(if $(CONFIG_PACKAGE_kmod-mac80211-hwsim),m) \
1126         CONFIG_PCMCIA= \
1127         CONFIG_LIBIPW=$(if $(CONFIG_PACKAGE_kmod-net-libipw),m) \
1128         CONFIG_LIBERTAS=$(if $(CONFIG_PACKAGE_kmod-libertas-sd)$(CONFIG_PACKAGE_kmod-libertas-usb),m) \
1129         CONFIG_LIBERTAS_CS= \
1130         CONFIG_LIBERTAS_SPI= \
1131         CONFIG_LIBERTAS_SDIO=$(if $(CONFIG_PACKAGE_kmod-libertas-sd),m) \
1132         CONFIG_LIBERTAS_THINFIRM= \
1133         CONFIG_LIBERTAS_USB=$(if $(CONFIG_PACKAGE_kmod-libertas-usb),m) \
1134         CONFIG_IPW2100=$(if $(CONFIG_PACKAGE_kmod-net-ipw2100),m) \
1135         CONFIG_IPW2200=$(if $(CONFIG_PACKAGE_kmod-net-ipw2200),m) \
1136         CONFIG_NL80211=y \
1137         CONFIG_LIB80211=$(if $(CONFIG_PACKAGE_kmod-lib80211),m) \
1138         CONFIG_LIB80211_CRYPT_WEP=$(if $(CONFIG_PACKAGE_kmod-lib80211),m) \
1139         CONFIG_LIB80211_CRYPT_CCMP=$(if $(CONFIG_PACKAGE_kmod-lib80211),m) \
1140         CONFIG_LIB80211_CRYPT_TKIP=$(if $(CONFIG_PACKAGE_kmod-lib80211),m) \
1141         CONFIG_IWLAGN=$(if $(CONFIG_PACKAGE_kmod-iwlagn),m) \
1142         CONFIG_IWLWIFI_LEGACY=$(if $(CONFIG_PACKAGE_kmod-iwl-legacy),m) \
1143         CONFIG_COMPAT_IWL4965=$(if $(CONFIG_PACKAGE_kmod-iwl4965),m) \
1144         CONFIG_IWL3945=$(if $(CONFIG_PACKAGE_kmod-iwl3945),m) \
1145         CONFIG_MWL8K=$(if $(CONFIG_PACKAGE_kmod-mwl8k),m) \
1146         CONFIG_ATMEL= \
1147         CONFIG_PCMCIA_ATMEL= \
1148         CONFIG_ADM8211= \
1149         CONFIG_USB_NET_RNDIS_HOST= \
1150         CONFIG_USB_NET_RNDIS_WLAN= \
1151         CONFIG_USB_NET_CDCETHER= \
1152         CONFIG_USB_USBNET= \
1153         CONFIG_AT76C50X_USB= \
1154         CONFIG_WL12XX= \
1155         CONFIG_EEPROM_93CX6= \
1156         CONFIG_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes),m) \
1157         CONFIG_HERMES_CACHE_FW_ON_INIT= \
1158         CONFIG_PCI_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes-pci),m) \
1159         CONFIG_PLX_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes-plx),m) \
1160         CONFIG_PCMCIA_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes-pcmcia),m) \
1161         CONFIG_HERMES_PRISM= \
1162         CONFIG_APPLE_AIRPORT= \
1163         CONFIG_TMD_HERMES= \
1164         CONFIG_NORTEL_HERMES= \
1165         CONFIG_PCMCIA_SPECTRUM= \
1166         CONFIG_ORINOCO_USB= \
1167         CONFIG_IWM= \
1168         CONFIG_MWIFIEX= \
1169         CONFIG_MAC80211_RC_MINSTREL_HT=y \
1170         MADWIFI= \
1171         CONFIG_B44= \
1172         CONFIG_ATL1= \
1173         CONFIG_ATL2= \
1174         CONFIG_ATL1E= \
1175         CONFIG_ATL1C= \
1176         KLIB_BUILD="$(LINUX_DIR)" \
1177         MODPROBE=: \
1178         KLIB=$(TARGET_MODULES_DIR) \
1179         KERNEL_SUBLEVEL=$(lastword $(subst ., ,$(KERNEL_PATCHVER))) \
1180         KBUILD_LDFLAGS_MODULE_PREREQ=
1181
1182 ifeq ($(CONFIG_PACKAGE_kmod-libertas-sd)$(CONFIG_PACKAGE_kmod-libertas-usb)$(CONFIG_PACKAGE_kmod-rt2x00-lib),)
1183   MAKE_OPTS += CONFIG_COMPAT_KFIFO=
1184 endif
1185
1186 define Build/Prepare
1187         rm -rf $(PKG_BUILD_DIR)
1188         mkdir -p $(PKG_BUILD_DIR)
1189         $(PKG_UNPACK)
1190         $(Build/Patch)
1191         $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
1192         $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
1193         $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
1194         $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(PKG_LINUX_FIRMWARE_SOURCE)
1195         rm -rf $(PKG_BUILD_DIR)/include/linux/ssb
1196         rm -f $(PKG_BUILD_DIR)/include/net/ieee80211.h
1197 endef
1198
1199 ifneq ($(CONFIG_PACKAGE_kmod-cfg80211),)
1200  define Build/Compile/kmod
1201         rm -rf $(PKG_BUILD_DIR)/modules
1202         $(MAKE) $(PKG_JOBS) -C "$(PKG_BUILD_DIR)" $(MAKE_OPTS) all
1203  endef
1204 endif
1205
1206 define Build/Compile
1207         $(call Build/Compile/kmod)
1208 endef
1209
1210 define Build/InstallDev
1211         mkdir -p \
1212                 $(1)/usr/include/mac80211 \
1213                 $(1)/usr/include/mac80211/ath \
1214                 $(1)/usr/include/net/mac80211
1215         $(CP) $(PKG_BUILD_DIR)/net/mac80211/*.h $(PKG_BUILD_DIR)/include/* $(1)/usr/include/mac80211/
1216         $(CP) $(PKG_BUILD_DIR)/net/mac80211/rate.h $(1)/usr/include/net/mac80211/
1217         $(CP) $(PKG_BUILD_DIR)/drivers/net/wireless/ath/*.h $(1)/usr/include/mac80211/ath/
1218 endef
1219
1220 define KernelPackage/libertas-usb/install
1221         $(INSTALL_DIR) $(1)/lib/firmware
1222         $(INSTALL_DATA) \
1223                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/usb8388_v9.bin \
1224                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/usb8388_v5.bin \
1225                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/usb8682.bin \
1226                 $(1)/lib/firmware/
1227 endef
1228
1229 define KernelPackage/libertas-sd/install
1230         $(INSTALL_DIR) $(1)/lib/firmware
1231         $(INSTALL_DATA) \
1232                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8385_helper.bin \
1233                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8385.bin \
1234                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8686_v9_helper.bin \
1235                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8686_v9.bin \
1236                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8686_v8_helper.bin \
1237                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8686_v8.bin \
1238                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8688_helper.bin \
1239                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8688.bin \
1240                 $(1)/lib/firmware/
1241 endef
1242
1243 define KernelPackage/cfg80211/install
1244         $(INSTALL_DIR) $(1)/lib/wifi
1245         $(INSTALL_DATA) ./files/lib/wifi/mac80211.sh $(1)/lib/wifi
1246 endef
1247
1248 define KernelPackage/p54-pci/install
1249         $(INSTALL_DIR) $(1)/lib/firmware
1250         $(INSTALL_DATA) $(DL_DIR)/$(P54PCIFW) $(1)/lib/firmware/isl3886pci
1251 endef
1252
1253 define KernelPackage/p54-usb/install
1254         $(INSTALL_DIR) $(1)/lib/firmware
1255         $(INSTALL_DATA) $(DL_DIR)/$(P54USBFW) $(1)/lib/firmware/isl3887usb
1256 endef
1257
1258 define KernelPackage/p54-spi/install
1259         $(INSTALL_DIR) $(1)/lib/firmware
1260         $(INSTALL_DATA) $(DL_DIR)/$(P54SPIFW) $(1)/lib/firmware/3826.arm
1261 endef
1262
1263 define KernelPackage/rt61-pci/install
1264         $(INSTALL_DIR) $(1)/lib/firmware
1265         $(INSTALL_DATA) \
1266                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2561.bin \
1267                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2561s.bin \
1268                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2661.bin \
1269                 $(1)/lib/firmware/
1270 endef
1271
1272 define KernelPackage/rt73-usb/install
1273         $(INSTALL_DIR) $(1)/lib/firmware
1274         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt73.bin $(1)/lib/firmware/
1275 endef
1276
1277 define KernelPackage/rt2800-pci/install
1278         $(INSTALL_DIR) $(1)/lib/firmware
1279         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2860.bin $(1)/lib/firmware/
1280 endef
1281
1282 define KernelPackage/rt2800-usb/install
1283         $(INSTALL_DIR) $(1)/lib/firmware
1284         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2870.bin $(1)/lib/firmware/
1285 endef
1286
1287 define KernelPackage/zd1211rw/install
1288         $(INSTALL_DIR) $(1)/lib/firmware/zd1211
1289         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(ZD1211FW_NAME)/zd1211* $(1)/lib/firmware/zd1211
1290 endef
1291
1292 define KernelPackage/ath9k-htc/install
1293         $(INSTALL_DIR) $(1)/lib/firmware
1294         $(INSTALL_DATA) \
1295                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/ar9271.fw \
1296                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/ar7010.fw \
1297                 $(1)/lib/firmware/
1298 endef
1299
1300 define KernelPackage/mwl8k/install
1301         $(INSTALL_DIR) $(1)/lib/firmware
1302         $(INSTALL_DATA) \
1303                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/fmimage_8366_ap-2.fw \
1304                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/fmimage_8366.fw \
1305                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/helper_8366.fw \
1306                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/fmimage_8687.fw \
1307                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/helper_8687.fw \
1308                 $(1)/lib/firmware/
1309 endef
1310
1311 define KernelPackage/net-ipw2100/install
1312         $(INSTALL_DIR) $(1)/lib/firmware
1313         $(INSTALL_DATA) $(PKG_BUILD_DIR)/ipw2100-$(IPW2100_VERSION)*.fw $(1)/lib/firmware
1314 endef
1315
1316 define KernelPackage/net-ipw2200/install
1317         $(INSTALL_DIR) $(1)/lib/firmware
1318         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION)/ipw2200*.fw $(1)/lib/firmware
1319 endef
1320
1321 define KernelPackage/iwlagn/install
1322         $(INSTALL_DIR) $(1)/lib/firmware
1323 ifneq ($(CONFIG_IWL5000_FW),)
1324         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-5000-5.ucode $(1)/lib/firmware
1325 endif
1326 ifneq ($(CONFIG_IWL5150_FW),)
1327         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-5150-2.ucode $(1)/lib/firmware
1328 endif
1329 ifneq ($(CONFIG_IWL1000_FW),)
1330         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-1000-5.ucode $(1)/lib/firmware
1331 endif
1332 ifneq ($(CONFIG_IWL6000_FW),)
1333         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6000-4.ucode $(1)/lib/firmware
1334 endif
1335 ifneq ($(CONFIG_IWL6050_FW),)
1336         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6050-5.ucode $(1)/lib/firmware
1337 endif
1338 ifneq ($(CONFIG_IWL6005_FW),)
1339         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6000g2a-5.ucode $(1)/lib/firmware
1340 endif
1341 ifneq ($(CONFIG_IWL6030_FW),)
1342         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6000g2b-5.ucode $(1)/lib/firmware
1343 endif
1344 ifneq ($(CONFIG_IWL100_FW),)
1345         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-100-5.ucode $(1)/lib/firmware
1346 endif
1347 endef
1348
1349 define KernelPackage/iwl3945/install
1350         $(INSTALL_DIR) $(1)/lib/firmware
1351         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-3945-2.ucode $(1)/lib/firmware
1352 endef
1353
1354 define KernelPackage/iwl4965/install
1355         $(INSTALL_DIR) $(1)/lib/firmware
1356         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-4965-2.ucode $(1)/lib/firmware
1357 endef
1358
1359 define Build/b43-common
1360         tar xjf "$(DL_DIR)/$(PKG_B43_FWCUTTER_SOURCE)" -C "$(PKG_BUILD_DIR)"
1361         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)" \
1362                 CFLAGS="-I$(STAGING_DIR_HOST)/include -include endian.h" \
1363                 QUIET_SPARSE=:
1364         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)/b43-fwcutter $(STAGING_DIR_HOST)/bin/
1365 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1366         $(INSTALL_DIR) $(STAGING_DIR_HOST)/bin/
1367         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/"
1368         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/b43-asm $(STAGING_DIR_HOST)/bin/
1369         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/b43-asm.bin $(STAGING_DIR_HOST)/bin/
1370 endif
1371         $(INSTALL_BIN) ./files/host_bin/b43-fwsquash.py $(STAGING_DIR_HOST)/bin/
1372 endef
1373
1374 define KernelPackage/b43/install
1375         rm -rf $(1)/lib/firmware/
1376         $(call Build/b43-common)
1377 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1378         tar xzf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
1379 else
1380         tar xjf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
1381 endif
1382         $(INSTALL_DIR) $(1)/lib/firmware/
1383 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1384         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/"
1385         $(INSTALL_DIR) $(1)/lib/firmware/b43-open/
1386         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/ucode5.fw $(1)/lib/firmware/b43-open/ucode5.fw
1387         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0bsinitvals5.fw $(1)/lib/firmware/b43-open/b0g0bsinitvals5.fw
1388         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0initvals5.fw $(1)/lib/firmware/b43-open/b0g0initvals5.fw
1389 else
1390         b43-fwcutter -w $(1)/lib/firmware/ $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)
1391 endif
1392 ifneq ($(CONFIG_B43_FW_SQUASH),)
1393         b43-fwsquash.py "$(CONFIG_B43_FW_SQUASH_PHYTYPES)" "$(CONFIG_B43_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43"
1394 endif
1395 endef
1396
1397 define KernelPackage/b43legacy/install
1398         $(call Build/b43-common)
1399         $(INSTALL_DIR) $(1)/lib/firmware/
1400
1401         b43-fwcutter --unsupported -w $(1)/lib/firmware/ $(DL_DIR)/$(PKG_B43_FWV3_SOURCE)
1402 ifneq ($(CONFIG_B43LEGACY_FW_SQUASH),)
1403         b43-fwsquash.py "G" "$(CONFIG_B43LEGACY_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43legacy"
1404 endif
1405 endef
1406
1407 $(eval $(call KernelPackage,ath5k))
1408 $(eval $(call KernelPackage,lib80211))
1409 $(eval $(call KernelPackage,libertas-usb))
1410 $(eval $(call KernelPackage,libertas-sd))
1411 $(eval $(call KernelPackage,cfg80211))
1412 $(eval $(call KernelPackage,mac80211))
1413 $(eval $(call KernelPackage,p54-common))
1414 $(eval $(call KernelPackage,p54-pci))
1415 $(eval $(call KernelPackage,p54-usb))
1416 $(eval $(call KernelPackage,p54-spi))
1417 $(eval $(call KernelPackage,rt2x00-lib))
1418 $(eval $(call KernelPackage,rt2x00-pci))
1419 $(eval $(call KernelPackage,rt2x00-usb))
1420 $(eval $(call KernelPackage,rt2x00-soc))
1421 $(eval $(call KernelPackage,rt2800-lib))
1422 $(eval $(call KernelPackage,rt2400-pci))
1423 $(eval $(call KernelPackage,rt2500-pci))
1424 $(eval $(call KernelPackage,rt2500-usb))
1425 $(eval $(call KernelPackage,rt61-pci))
1426 $(eval $(call KernelPackage,rt73-usb))
1427 $(eval $(call KernelPackage,rt2800-pci))
1428 $(eval $(call KernelPackage,rt2800-usb))
1429 $(eval $(call KernelPackage,rtl8180))
1430 $(eval $(call KernelPackage,rtl8187))
1431 $(eval $(call KernelPackage,zd1211rw))
1432 $(eval $(call KernelPackage,mac80211-hwsim))
1433 $(eval $(call KernelPackage,ath9k-common))
1434 $(eval $(call KernelPackage,ath9k))
1435 $(eval $(call KernelPackage,ath9k-htc))
1436 $(eval $(call KernelPackage,ath))
1437 $(eval $(call KernelPackage,carl9170))
1438 $(eval $(call KernelPackage,b43))
1439 $(eval $(call KernelPackage,b43legacy))
1440 $(eval $(call KernelPackage,net-libipw))
1441 $(eval $(call KernelPackage,net-ipw2100))
1442 $(eval $(call KernelPackage,net-ipw2200))
1443 $(eval $(call KernelPackage,iwlagn))
1444 $(eval $(call KernelPackage,iwl-legacy))
1445 $(eval $(call KernelPackage,iwl4965))
1446 $(eval $(call KernelPackage,iwl3945))
1447 $(eval $(call KernelPackage,mwl8k))
1448 $(eval $(call KernelPackage,net-hermes))
1449 $(eval $(call KernelPackage,net-hermes-pci))
1450 $(eval $(call KernelPackage,net-hermes-plx))
1451 $(eval $(call KernelPackage,net-hermes-pcmcia))