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