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