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