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