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