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