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