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