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