mac80211: update to wireless-testing 2010-11-16
[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:=2010-11-16
14 PKG_RELEASE:=1
15 PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
16 #       http://www.orbit-lab.org/kernel/compat-wireless-2.6/2010/11 \
17 #       http://wireless.kernel.org/download/compat-wireless-2.6
18 PKG_MD5SUM:=eb996cb637326203544753d3a05a3979
19
20 PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2
21 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/compat-wireless-$(PKG_VERSION)
22 PKG_BUILD_PARALLEL:=1
23
24 PKG_CONFIG_DEPENDS:= \
25         CONFIG_PACKAGE_kmod-mac80211 \
26         CONFIG_PACKAGE_MAC80211_DEBUGFS \
27         CONFIG_PACKAGE_ATH_DEBUG \
28         CONFIG_ATH_USER_REGD \
29
30 CARL9170_FW_VERSION:=1.8.8.2
31
32 include $(INCLUDE_DIR)/package.mk
33
34 WMENU:=Wireless Drivers
35
36 define KernelPackage/mac80211/Default
37   SUBMENU:=$(WMENU)
38   URL:=http://linuxwireless.org/
39   MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
40   DEPENDS:=@(!(TARGET_avr32||TARGET_ep93xx||TARGET_ps3||TARGET_pxcab)||BROKEN)
41 endef
42
43 define KernelPackage/cfg80211
44   $(call KernelPackage/mac80211/Default)
45   TITLE:=cfg80211 - wireless configuration API
46   DEPENDS+= +wireless-tools +iw @!LINUX_2_6_25 +crda
47 ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,2.6.33)),1)
48   FILES:= \
49         $(PKG_BUILD_DIR)/compat/compat.ko \
50         $(PKG_BUILD_DIR)/net/wireless/cfg80211.ko
51   AUTOLOAD:=$(call AutoLoad,20,compat cfg80211)
52 else
53   FILES:= \
54         $(PKG_BUILD_DIR)/compat/compat.ko \
55         $(PKG_BUILD_DIR)/compat/compat_firmware_class.ko \
56         $(PKG_BUILD_DIR)/net/wireless/cfg80211.ko
57   AUTOLOAD:=$(call AutoLoad,20,compat compat_firmware_class cfg80211)
58 endif
59 endef
60
61 define KernelPackage/cfg80211/description
62 cfg80211 is the Linux wireless LAN (802.11) configuration API.
63 endef
64
65 define KernelPackage/mac80211
66   $(call KernelPackage/mac80211/Default)
67   TITLE:=Linux 802.11 Wireless Networking Stack
68   DEPENDS+= +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-aes +kmod-cfg80211
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)
123   URL:=http://www.kernel.org/pub/linux/kernel/people/chr/carl9170/fw/$(CARL9170_FW_VERSION)
124   MD5SUM:=114c43846ed1d2f89cc92bd0e2ec0589
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
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.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.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 +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+= +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
431   $(call KernelPackage/mac80211/Default)
432   TITLE:=Atheros 802.11n wireless cards support
433   URL:=http://linuxwireless.org/en/users/Drivers/ath9k
434   DEPENDS+= +kmod-ath
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         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k.ko
439   AUTOLOAD:=$(call AutoLoad,27,ath9k_hw ath9k_common ath9k)
440   MENU:=1
441 endef
442
443 define KernelPackage/ath9k/description
444 This module adds support for wireless adapters based on
445 Atheros IEEE 802.11n AR5008 and AR9001 family of chipsets.
446 endef
447
448 define KernelPackage/carl9170
449   $(call KernelPackage/mac80211/Default)
450   TITLE:=Driver for Atheros AR9170 USB sticks
451   DEPENDS:=@USB_SUPPORT +kmod-mac80211 +kmod-ath +kmod-usb-core
452   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/carl9170/carl9170.ko
453   AUTOLOAD:=$(call AutoLoad,60,carl9170)
454 endef
455
456 define KernelPackage/carl9170/install
457         $(INSTALL_DIR) $(1)/lib/firmware
458         $(INSTALL_DATA) $(DL_DIR)/$(CARL9170_FW) $(1)/lib/firmware/
459 endef
460
461
462 USB8388FW_NAME:=usb8388
463 USB8388FW_VERSION:=5.110.22.p23
464
465 define Download/usb8388
466   URL:=http://dev.laptop.org/pub/firmware/libertas/
467   FILE:=$(USB8388FW_NAME)-$(USB8388FW_VERSION).bin
468   MD5SUM=5e38f55719df3d0c58dd3bd02575a09c
469 endef
470 $(eval $(call Download,usb8388))
471
472 SD8686FW_NAME:=sd8686
473 SD8686FW_VERSION:=9.70.7.p0
474
475 define Download/sd8686
476   URL:=http://dev.laptop.org/pub/firmware/libertas/
477   FILE:=$(SD8686FW_NAME)-$(SD8686FW_VERSION).bin
478   MD5SUM=b4f8be61e19780a14836f146c538c5dd
479 endef
480 $(eval $(call Download,sd8686))
481
482 SD8686HELPER_NAME:=sd8686_helper
483
484 define Download/sd8686_helper
485   URL:=http://dev.laptop.org/pub/firmware/libertas/
486   FILE:=$(SD8686HELPER_NAME).bin
487   MD5SUM=2a4d8f4df198ce949c350df5674f4ac6
488 endef
489 $(eval $(call Download,sd8686_helper))
490
491 define KernelPackage/libertas-usb
492   $(call KernelPackage/mac80211/Default)
493   DEPENDS+= @USB_SUPPORT +kmod-mac80211 +kmod-usb-core +kmod-lib80211
494   TITLE:=Marvell 88W8015 Wireless Driver
495   FILES:= \
496         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.ko \
497         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/usb8xxx.ko
498   AUTOLOAD:=$(call AutoLoad,27,libertas usb8xxx)
499 endef
500
501 define KernelPackage/libertas-sd
502   $(call KernelPackage/mac80211/Default)
503   DEPENDS+= +kmod-mac80211 +kmod-lib80211
504   TITLE:=Marvell 88W8686 Wireless Driver
505   FILES:= \
506         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.ko \
507         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas_sdio.ko
508   AUTOLOAD:=$(call AutoLoad,27,libertas libertas_sdio)
509 endef
510
511 define KernelPackage/mac80211-hwsim
512   $(call KernelPackage/mac80211/Default)
513   TITLE:=mac80211 HW simulation device
514   DEPENDS+= +kmod-mac80211
515   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.ko
516   AUTOLOAD:=$(call AutoLoad,60,mac80211_hwsim)
517 endef
518
519 define KernelPackage/net-libipw
520   $(call KernelPackage/mac80211/Default)
521   TITLE:=libipw for ipw2100 and ipw2200
522   DEPENDS:=@PCI_SUPPORT +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-aes +kmod-crypto-michael-mic +kmod-lib80211 +kmod-cfg80211
523   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/libipw.ko
524   AUTOLOAD:=$(call AutoLoad,49,libipw)
525 endef
526
527 define KernelPackage/net-libipw/description
528  Hardware independent IEEE 802.11 networking stack for ipw2100 and ipw2200.
529 endef
530
531 IPW2100_NAME:=ipw2100-fw
532 IPW2100_VERSION:=1.3
533
534 define Download/net-ipw2100
535   URL:=http://bughost.org/firmware/
536   FILE:=$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
537   MD5SUM=46aa75bcda1a00efa841f9707bbbd113
538 endef
539 $(eval $(call Download,net-ipw2100))
540
541 define KernelPackage/net-ipw2100
542   $(call KernelPackage/mac80211/Default)
543   TITLE:=Intel IPW2100 driver
544   DEPENDS:=@PCI_SUPPORT +kmod-net-libipw
545   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/ipw2100.ko
546   AUTOLOAD:=$(call AutoLoad,50,ipw2100)
547 endef
548
549 define KernelPackage/net-ipw2100/description
550  Kernel support for Intel IPW2100
551  Includes:
552  - ipw2100
553 endef
554
555 IPW2200_NAME:=ipw2200-fw
556 IPW2200_VERSION:=3.1
557
558 define Download/net-ipw2200
559   URL:=http://bughost.org/firmware/
560   FILE:=$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
561   MD5SUM=eaba788643c7cc7483dd67ace70f6e99
562 endef
563 $(eval $(call Download,net-ipw2200))
564
565 define KernelPackage/net-ipw2200
566   $(call KernelPackage/mac80211/Default)
567   TITLE:=Intel IPW2200 driver
568   DEPENDS:=@PCI_SUPPORT +kmod-net-libipw
569   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/ipw2200.ko
570   AUTOLOAD:=$(call AutoLoad,50,ipw2200)
571 endef
572
573 define KernelPackage/net-ipw2200/description
574  Kernel support for Intel IPW2200
575  Includes:
576  - ipw2200
577 endef
578
579
580 define KernelPackage/net-hermes
581   $(call KernelPackage/mac80211/Default)
582   TITLE:=Hermes 802.11b chipset support
583   DEPENDS:=@PCI_SUPPORT||PCMCIA_SUPPORT +kmod-cfg80211
584   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco.ko
585   AUTOLOAD:=$(call AutoLoad,50,orinoco)
586 endef
587
588 define KernelPackage/net-hermes/description
589  Kernel support for Hermes 802.11b chipsets
590 endef
591
592 define KernelPackage/net-hermes-pci
593   $(call KernelPackage/mac80211/Default)
594   TITLE:=Intersil Prism 2.5 PCI support
595   DEPENDS:=@PCI_SUPPORT +kmod-net-hermes +kmod-cfg80211
596   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_pci.ko
597   AUTOLOAD:=$(call AutoLoad,55,orinoco_pci)
598 endef
599
600 define KernelPackage/net-hermes-pci/description
601  Kernel modules for Intersil Prism 2.5 PCI support
602 endef
603
604 define KernelPackage/net-hermes-plx
605   $(call KernelPackage/mac80211/Default)
606   TITLE:=PLX9052 based PCI adaptor
607   DEPENDS:=@PCI_SUPPORT +kmod-net-hermes +kmod-cfg80211
608   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_plx.ko
609   AUTOLOAD:=$(call AutoLoad,55,orinoco_plx)
610 endef
611
612 define KernelPackage/net-hermes-plx/description
613  Kernel modules for Hermes in PLX9052 based PCI adaptors
614 endef
615
616 define KernelPackage/net-hermes-pcmcia
617   $(call KernelPackage/mac80211/Default)
618   TITLE:=Hermes based PCMCIA adaptors
619   DEPENDS:=@PCMCIA_SUPPORT +kmod-net-hermes +kmod-cfg80211 @BROKEN
620   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_cs.ko
621   AUTOLOAD:=$(call AutoLoad,55,orinoco_cs)
622 endef
623
624 define KernelPackage/net-hermes-pcmcia/description
625  Kernel modules for Hermes based PCMCIA adaptors
626 endef
627
628
629 define KernelPackage/mwl8k
630   $(call KernelPackage/mac80211/Default)
631   TITLE:=Driver for Marvell TOPDOG 802.11 Wireless cards
632   URL:=http://wireless.kernel.org/en/users/Drivers/mwl8k
633   DEPENDS+= @PCI_SUPPORT +kmod-mac80211
634   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mwl8k.ko
635   AUTOLOAD:=$(call AutoLoad,27,mwl8k)
636 endef
637
638 define KernelPackage/mwl8k/description
639  Kernel modules for Marvell TOPDOG 802.11 Wireless cards
640 endef
641
642 #Broadcom firmware
643 ifneq ($(CONFIG_B43_EXPERIMENTAL),)
644   PKG_B43_FWV4_NAME:=broadcom-wl
645   PKG_B43_FWV4_VERSION:=4.178.10.4
646   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/linux/wl_apsta.o
647   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
648   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
649   PKG_B43_FWV4_MD5SUM:=14477e8cbbb91b11896affac9b219fdb
650 else
651   PKG_B43_FWV4_NAME:=broadcom-wl
652   PKG_B43_FWV4_VERSION:=4.150.10.5
653   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/driver/wl_apsta_mimo.o
654   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
655   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
656   PKG_B43_FWV4_MD5SUM:=0c6ba9687114c6b598e8019e262d9a60
657 endif
658 ifneq ($(CONFIG_B43_OPENFIRMWARE),)
659   PKG_B43_FWV4_NAME:=broadcom-wl
660   PKG_B43_FWV4_VERSION:=5.2
661   PKG_B43_FWV4_OBJECT:=openfwwf-$(PKG_B43_FWV4_VERSION)
662   PKG_B43_FWV4_SOURCE:=openfwwf-$(PKG_B43_FWV4_VERSION).tar.gz
663   PKG_B43_FWV4_SOURCE_URL:=http://www.ing.unibs.it/openfwwf/firmware/
664   PKG_B43_FWV4_MD5SUM:=e045a135453274e439ae183f8498b0fa
665 endif
666
667
668 PKG_B43_FWV3_NAME:=wl_apsta
669 PKG_B43_FWV3_VERSION:=3.130.20.0
670 PKG_B43_FWV3_SOURCE:=$(PKG_B43_FWV3_NAME)-$(PKG_B43_FWV3_VERSION).o
671 PKG_B43_FWV3_SOURCE_URL:=http://downloads.openwrt.org/sources/
672 PKG_B43_FWV3_MD5SUM:=e08665c5c5b66beb9c3b2dd54aa80cb3
673
674 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
675   PKG_B43_FWCUTTER_NAME:=b43-fwcutter
676   PKG_B43_FWCUTTER_VERSION:=3e69531aa65b8f664a0ab00dfc3e2eefeb0cb417
677   PKG_B43_FWCUTTER_SOURCE:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION).tar.bz2
678   PKG_B43_FWCUTTER_PROTO:=git
679   PKG_B43_FWCUTTER_SOURCE_URL:=http://git.bu3sch.de/git/b43-tools.git
680   PKG_B43_FWCUTTER_SUBDIR:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)
681   PKG_B43_FWCUTTER_OBJECT:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)/fwcutter/
682 else
683   PKG_B43_FWCUTTER_NAME:=b43-fwcutter
684   PKG_B43_FWCUTTER_VERSION:=013
685   PKG_B43_FWCUTTER_SOURCE:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION).tar.bz2
686   PKG_B43_FWCUTTER_PROTO:=default
687   PKG_B43_FWCUTTER_SOURCE_URL:=http://bu3sch.de/b43/fwcutter/
688   PKG_B43_FWCUTTER_MD5SUM:=3547ec6c474ac1bc2c4a5bb765b791a4
689   PKG_B43_FWCUTTER_SUBDIR:=b43-fwcutter-$(PKG_B43_FWCUTTER_VERSION)
690   PKG_B43_FWCUTTER_OBJECT:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)/
691 endif
692
693 define Download/b43-common
694   FILE:=$(PKG_B43_FWCUTTER_SOURCE)
695   URL:=$(PKG_B43_FWCUTTER_SOURCE_URL)
696   MD5SUM:=$(PKG_B43_FWCUTTER_MD5SUM)
697   PROTO:=$(PKG_B43_FWCUTTER_PROTO)
698   VERSION:=$(PKG_B43_FWCUTTER_VERSION)
699   SUBDIR:=$(PKG_B43_FWCUTTER_SUBDIR)
700 endef
701 $(eval $(call Download,b43-common))
702
703 define Download/b43
704   FILE:=$(PKG_B43_FWV4_SOURCE)
705   URL:=$(PKG_B43_FWV4_SOURCE_URL)
706   MD5SUM:=$(PKG_B43_FWV4_MD5SUM)
707 endef
708 $(eval $(call Download,b43))
709
710 define Download/b43legacy
711   FILE:=$(PKG_B43_FWV3_SOURCE)
712   URL:=$(PKG_B43_FWV3_SOURCE_URL)
713   MD5SUM:=$(PKG_B43_FWV3_MD5SUM)
714 endef
715 $(eval $(call Download,b43legacy))
716
717 define KernelPackage/b43-common
718   $(call KernelPackage/mac80211/Default)
719   TITLE:=Generic stuff for Broadcom wireless devices
720   URL:=http://linuxwireless.org/en/users/Drivers/b43
721   KCONFIG:= \
722         CONFIG_HW_RANDOM=y
723   DEPENDS+= +kmod-mac80211 +!(TARGET_brcm47xx||TARGET_brcm63xx):kmod-ssb
724 endef
725
726 define KernelPackage/b43
727 $(call KernelPackage/b43-common)
728   TITLE:=Broadcom 43xx wireless support
729   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43/b43.ko
730   AUTOLOAD:=$(call AutoLoad,30,b43)
731   MENU:=1
732 endef
733
734 define KernelPackage/b43/config
735         menu "Configuration"
736                 depends on PACKAGE_kmod-b43
737
738         choice
739                 prompt "b43 firmware version"
740                 default B43_STABLE
741                 help
742                   This option allows you to select the version of the b43 firmware.
743
744         config B43_STABLE
745                 bool "4.150.10.5 (stable)"
746                 help
747                   Stable firmware for BCM43xx devices.
748
749                   If unsure, select this.
750
751         config B43_EXPERIMENTAL
752                 bool "4.178.10.4 (experimental)"
753                 help
754                   Experimental firmware for BCM43xx devices.
755
756                   This firmware is not tested as much as the "stable" firmware.
757
758                   If unsure, select the "stable" firmware.
759
760         config B43_OPENFIRMWARE
761                 bool "Open FirmWare for WiFi networks"
762                 help
763                   Opensource firmware for BCM43xx devices.
764
765                   Do _not_ select this, unless you know what you are doing.
766                   The Opensource firmware is not suitable for embedded devices, yet.
767                   It does not support QoS, which is bad for AccessPoints.
768                   It does not support hardware crypto acceleration, which is a showstopper
769                   for embedded devices with low CPU resources.
770
771                   If unsure, select the "stable" firmware.
772
773         endchoice
774
775         config B43_FW_SQUASH
776                 bool "Remove unnecessary firmware files"
777                 depends on !B43_OPENFIRMWARE
778                 default y
779                 help
780                   This options allows you to remove unnecessary b43 firmware files
781                   from the final rootfs image. This can reduce the rootfs size by
782                   up to 200k.
783
784                   If unsure, say Y.
785
786         config B43_FW_SQUASH_COREREVS
787                 string "Core revisions to include"
788                 depends on B43_FW_SQUASH
789                 default "5,6,7,8,9,10,13,14,15"
790                 help
791                   This is a comma seperated list of core revision numbers.
792
793                   Example (keep files for rev5 only):
794                     5
795
796                   Example (keep files for rev5 and rev11):
797                     5,11
798
799         config B43_FW_SQUASH_PHYTYPES
800                 string "PHY types to include"
801                 depends on B43_FW_SQUASH
802                 default "G,LP"
803                 help
804                   This is a comma seperated list of PHY types:
805                     A  => A-PHY
806                     AG => Dual A-PHY G-PHY
807                     G  => G-PHY
808                     LP => LP-PHY
809                     N  => N-PHY
810
811                   Example (keep files for G-PHY only):
812                     G
813
814                   Example (keep files for G-PHY and N-PHY):
815                     G,N
816
817         endmenu
818 endef
819
820 define KernelPackage/b43/description
821 Kernel module for Broadcom 43xx wireless support (mac80211 stack) new
822 endef
823
824 define KernelPackage/b43legacy
825 $(call KernelPackage/b43-common)
826   TITLE:=Broadcom 43xx-legacy wireless support
827   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43legacy/b43legacy.ko
828   AUTOLOAD:=$(call AutoLoad,30,b43legacy)
829   MENU:=1
830 endef
831
832 define KernelPackage/b43legacy/config
833         menu "Configuration"
834                 depends on PACKAGE_kmod-b43legacy
835
836         config B43LEGACY_FW_SQUASH
837                 bool "Remove unnecessary firmware files"
838                 default y
839                 help
840                   This options allows you to remove unnecessary b43legacy firmware files
841                   from the final rootfs image. This can reduce the rootfs size by
842                   up to 50k.
843
844                   If unsure, say Y.
845
846         config B43LEGACY_FW_SQUASH_COREREVS
847                 string "Core revisions to include"
848                 depends on B43LEGACY_FW_SQUASH
849                 default "1,2,3,4"
850                 help
851                   This is a comma seperated list of core revision numbers.
852
853                   Example (keep files for rev4 only):
854                     4
855
856                   Example (keep files for rev2 and rev4):
857                     2,4
858
859         endmenu
860 endef
861
862 define KernelPackage/b43legacy/description
863 Kernel module for Broadcom 43xx-legacy wireless support (mac80211 stack) new
864 endef
865
866 BUILDFLAGS:= \
867         -I$(PKG_BUILD_DIR)/include \
868         $(foreach opt,$(CONFOPTS),-DCONFIG_$(opt)) \
869         $(if $(CONFIG_PCI),-DCONFIG_B43_PCI_AUTOSELECT -DCONFIG_B43_PCICORE_AUTOSELECT) \
870         $(if $(CONFIG_LEDS_TRIGGERS), -DCONFIG_MAC80211_LEDS -DCONFIG_LEDS_TRIGGERS -DCONFIG_B43_LEDS -DCONFIG_B43LEGACY_LEDS -DCONFIG_AR9170_LEDS) \
871         -DCONFIG_B43_HWRNG -DCONFIG_B43LEGACY_HWRNG \
872         $(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),-DCONFIG_MAC80211_DEBUGFS -DCONFIG_ATH9K_DEBUGFS -DCONFIG_CARL9170_DEBUGFS) \
873         $(if $(CONFIG_PACKAGE_ATH_DEBUG),-DCONFIG_ATH_DEBUG -DCONFIG_ATH9K_PKTLOG) \
874         -D__CONFIG_MAC80211_RC_DEFAULT=minstrel \
875         -DCONFIG_MAC80211_RC_MINSTREL_HT \
876         $(if $(CONFIG_ATH_USER_REGD),-DATH_USER_REGD=1) \
877         $(if $(CONFIG_PACKAGE_RT2X00_LIB_DEBUGFS),-DCONFIG_RT2X00_LIB_DEBUGFS) \
878         $(if $(CONFIG_PACKAGE_RT2X00_DEBUG),-DCONFIG_RT2X00_DEBUG) \
879         $(if $(NEED_RT2X00_LIB_HT),-DCONFIG_RT2X00_LIB_HT) \
880         $(if $(NEED_RT2X00_LIB_CRYPTO),-DCONFIG_RT2X00_LIB_CRYPTO) \
881         $(if $(NEED_RT2X00_LIB_FIRMWARE),-DCONFIG_RT2X00_LIB_FIRMWARE) \
882         $(if $(NEED_RT2X00_LIB_LEDS),-DCONFIG_RT2X00_LIB_LEDS) \
883         $(if $(CONFIG_PACKAGE_kmod-rt2x00-pci),-DCONFIG_RT2X00_LIB_PCI) \
884         $(if $(CONFIG_PACKAGE_kmod-rt2x00-usb),-DCONFIG_RT2X00_LIB_USB) \
885         $(if $(CONFIG_PACKAGE_kmod-rt2x00-soc),-DCONFIG_RT2X00_LIB_SOC) \
886         $(if $(CONFIG_PCI_SUPPORT),-DCONFIG_RT2800PCI_PCI) \
887         $(if $(CONFIG_TARGET_ramips),-DCONFIG_RT2800PCI_SOC) \
888         -DCONFIG_P54_SPI_DEFAULT_EEPROM
889
890 MAKE_OPTS:= \
891         CROSS_COMPILE="$(KERNEL_CROSS)" \
892         ARCH="$(LINUX_KARCH)" \
893         EXTRA_CFLAGS="$(BUILDFLAGS)" \
894         $(foreach opt,$(CONFOPTS),CONFIG_$(opt)=m) \
895         CONFIG_MAC80211=$(if $(CONFIG_PACKAGE_kmod-mac80211),m) \
896         CONFIG_MAC80211_RC_MINSTREL=y \
897         CONFIG_MAC80211_LEDS=$(CONFIG_LEDS_TRIGGERS) \
898         CONFIG_MAC80211_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
899         CONFIG_B43_PCMCIA=n CONFIG_B43_PIO=n \
900         CONFIG_B43_PCI_AUTOSELECT=$(if $(CONFIG_PCI),y) \
901         CONFIG_B43_PCICORE_AUTOSELECT=$(if $(CONFIG_PCI),y) \
902         CONFIG_B43LEGACY_LEDS=$(CONFIG_LEDS_TRIGGERS) \
903         CONFIG_B43_LEDS=$(CONFIG_LEDS_TRIGGERS) \
904         CONFIG_B43_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \
905         CONFIG_B43LEGACY_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \
906         CONFIG_B43=$(if $(CONFIG_PACKAGE_kmod-b43),m) \
907         CONFIG_B43LEGACY=$(if $(CONFIG_PACKAGE_kmod-b43legacy),m) \
908         CONFIG_ATH_COMMON=$(if $(CONFIG_PACKAGE_kmod-ath),m) \
909         CONFIG_ATH_DEBUG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \
910         CONFIG_ATH9K_PKTLOG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \
911         CONFIG_ATH5K=$(if $(CONFIG_PACKAGE_kmod-ath5k),m) \
912         CONFIG_ATH9K=$(if $(CONFIG_PACKAGE_kmod-ath9k),m) \
913         CONFIG_ATH9K_HW=$(if $(CONFIG_PACKAGE_kmod-ath9k),m) \
914         CONFIG_ATH9K_COMMON=$(if $(CONFIG_PACKAGE_kmod-ath9k),m) \
915         CONFIG_ATH9K_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
916         CONFIG_CARL9170=$(if $(CONFIG_PACKAGE_kmod-carl9170),m) \
917         CONFIG_CARL9170_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
918         CONFIG_ZD1211RW=$(if $(CONFIG_PACKAGE_kmod-zd1211rw),m) \
919         CONFIG_P54_COMMON=$(if $(CONFIG_PACKAGE_kmod-p54-common),m) \
920         CONFIG_P54_PCI=$(if $(CONFIG_PACKAGE_kmod-p54-pci),m) \
921         CONFIG_P54_USB=$(if $(CONFIG_PACKAGE_kmod-p54-usb),m) \
922         CONFIG_P54_SPI=$(if $(CONFIG_PACKAGE_kmod-p54-spi),m) \
923         CONFIG_P54_SPI_DEFAULT_EEPROM=y \
924         CONFIG_RT2X00=$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),m) \
925         CONFIG_RT2X00_LIB=$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),m) \
926         CONFIG_RT2X00_LIB_PCI=$(if $(CONFIG_PACKAGE_kmod-rt2x00-pci),m) \
927         CONFIG_RT2X00_LIB_USB=$(if $(CONFIG_PACKAGE_kmod-rt2x00-usb),m) \
928         CONFIG_RT2X00_LIB_SOC=$(if $(CONFIG_PACKAGE_kmod-rt2x00-soc),m) \
929         CONFIG_RT2X00_LIB_DEBUGFS=$(CONFIG_PACKAGE_RT2X00_LIB_DEBUGFS) \
930         CONFIG_RT2X00_LIB_CRYPTO=$(NEED_RT2X00_LIB_CRYPTO) \
931         CONFIG_RT2X00_LIB_FIRMWARE=$(NEED_RT2X00_LIB_FIRMWARE) \
932         CONFIG_RT2X00_LIB_HT=$(NEED_RT2X00_LIB_HT) \
933         CONFIG_RT2X00_LIB_LEDS=$(NEED_RT2X00_LIB_LEDS) \
934         CONFIG_RT2400PCI=$(if $(CONFIG_PACKAGE_kmod-rt2400-pci),m) \
935         CONFIG_RT2500PCI=$(if $(CONFIG_PACKAGE_kmod-rt2500-pci),m) \
936         CONFIG_RT2500USB=$(if $(CONFIG_PACKAGE_kmod-rt2500-usb),m) \
937         CONFIG_RT61PCI=$(if $(CONFIG_PACKAGE_kmod-rt61-pci),m) \
938         CONFIG_RT73USB=$(if $(CONFIG_PACKAGE_kmod-rt73-usb),m) \
939         CONFIG_RT2800_LIB=$(if $(CONFIG_PACKAGE_kmod-rt2800-lib),m) \
940         CONFIG_RT2800PCI=$(if $(CONFIG_PACKAGE_kmod-rt2800-pci),m) \
941         CONFIG_RT2800PCI_PCI=$(if $(CONFIG_PCI_SUPPORT),y) \
942         CONFIG_RT2800PCI_SOC=$(if $(CONFIG_TARGET_ramips),y) \
943         CONFIG_RT2800USB=$(if $(CONFIG_PACKAGE_kmod-rt2800-usb),m) \
944         CONFIG_RTL8180=$(if $(CONFIG_PACKAGE_kmod-rtl8180),m) \
945         CONFIG_RTL8187=$(if $(CONFIG_PACKAGE_kmod-rtl8187),m) \
946         CONFIG_MAC80211_HWSIM=$(if $(CONFIG_PACKAGE_kmod-mac80211-hwsim),m) \
947         CONFIG_PCMCIA= \
948         CONFIG_LIBIPW=$(if $(CONFIG_PACKAGE_kmod-net-libipw),m) \
949         CONFIG_LIBERTAS=$(if $(CONFIG_PACKAGE_kmod-libertas-sd)$(CONFIG_PACKAGE_kmod-libertas-usb),m) \
950         CONFIG_LIBERTAS_CS= \
951         CONFIG_LIBERTAS_SPI= \
952         CONFIG_LIBERTAS_SDIO=$(if $(CONFIG_PACKAGE_kmod-libertas-sd),m) \
953         CONFIG_LIBERTAS_THINFIRM= \
954         CONFIG_LIBERTAS_USB=$(if $(CONFIG_PACKAGE_kmod-libertas-usb),m) \
955         CONFIG_IPW2100=$(if $(CONFIG_PACKAGE_kmod-net-ipw2100),m) \
956         CONFIG_IPW2200=$(if $(CONFIG_PACKAGE_kmod-net-ipw2200),m) \
957         CONFIG_NL80211=y \
958         CONFIG_LIB80211= \
959         CONFIG_LIB80211_CRYPT_WEP= \
960         CONFIG_LIB80211_CRYPT_CCMP= \
961         CONFIG_LIB80211_CRYPT_TKIP= \
962         CONFIG_IWLWIFI= \
963         CONFIG_COMPAT_IWLWIFI= \
964         CONFIG_IWLAGN= \
965         CONFIG_MWL8K=$(if $(CONFIG_PACKAGE_kmod-mwl8k),m) \
966         CONFIG_ATMEL= \
967         CONFIG_PCMCIA_ATMEL= \
968         CONFIG_ADM8211= \
969         CONFIG_USB_NET_RNDIS_HOST= \
970         CONFIG_USB_NET_RNDIS_WLAN= \
971         CONFIG_USB_NET_CDCETHER= \
972         CONFIG_USB_USBNET= \
973         CONFIG_AT76C50X_USB= \
974         CONFIG_WL12XX= \
975         CONFIG_EEPROM_93CX6= \
976         CONFIG_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes),m) \
977         CONFIG_HERMES_CACHE_FW_ON_INIT= \
978         CONFIG_PCI_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes-pci),m) \
979         CONFIG_PLX_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes-plx),m) \
980         CONFIG_PCMCIA_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes-pcmcia),m) \
981         CONFIG_HERMES_PRISM= \
982         CONFIG_APPLE_AIRPORT= \
983         CONFIG_TMD_HERMES= \
984         CONFIG_NORTEL_HERMES= \
985         CONFIG_PCMCIA_SPECTRUM= \
986         CONFIG_ORINOCO_USB= \
987         CONFIG_AR9170_USB=$(if $(CONFIG_PACKAGE_kmod-ar9170),m) \
988         CONFIG_AR9170_LEDS=$(CONFIG_LEDS_TRIGGERS) \
989         CONFIG_IWM= \
990         CONFIG_ATH9K_HTC= \
991         CONFIG_MAC80211_RC_MINSTREL_HT=y \
992         MADWIFI= \
993         OLD_IWL= \
994         KLIB_BUILD="$(LINUX_DIR)" \
995         MODPROBE=: \
996         KLIB=$(TARGET_MODULES_DIR) \
997         KERNEL_SUBLEVEL=$(lastword $(subst ., ,$(KERNEL_PATCHVER)))
998
999 define Build/Prepare
1000         rm -rf $(PKG_BUILD_DIR)
1001         mkdir -p $(PKG_BUILD_DIR)
1002         $(PKG_UNPACK)
1003         $(Build/Patch)
1004         unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT61FW)
1005         unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT71FW)
1006         -unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT2860FW)
1007         -unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT2870FW)
1008         $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
1009         $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
1010         $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
1011         rm -rf $(PKG_BUILD_DIR)/include/linux/ssb
1012         rm -f $(PKG_BUILD_DIR)/include/net/ieee80211.h
1013         rm $(PKG_BUILD_DIR)/include/linux/eeprom_93cx6.h
1014 endef
1015
1016 ifneq ($(CONFIG_PACKAGE_kmod-cfg80211),)
1017  define Build/Compile/kmod
1018         rm -rf $(PKG_BUILD_DIR)/modules
1019         $(MAKE) $(PKG_JOBS) -C "$(PKG_BUILD_DIR)" $(MAKE_OPTS) all
1020  endef
1021 endif
1022
1023 define Build/Compile
1024         $(call Build/Compile/kmod)
1025 endef
1026
1027 define Build/InstallDev
1028         mkdir -p \
1029                 $(1)/usr/include/mac80211 \
1030                 $(1)/usr/include/mac80211/ath \
1031                 $(1)/usr/include/net/mac80211
1032         $(CP) $(PKG_BUILD_DIR)/net/mac80211/*.h $(PKG_BUILD_DIR)/include/* $(1)/usr/include/mac80211/
1033         $(CP) $(PKG_BUILD_DIR)/net/mac80211/rate.h $(1)/usr/include/net/mac80211/
1034         $(CP) $(PKG_BUILD_DIR)/drivers/net/wireless/ath/*.h $(1)/usr/include/mac80211/ath/
1035 endef
1036
1037 define KernelPackage/libertas-usb/install
1038         $(INSTALL_DIR) $(1)/lib/firmware
1039         $(INSTALL_DATA) $(DL_DIR)/$(USB8388FW_NAME)-$(USB8388FW_VERSION).bin $(1)/lib/firmware/$(USB8388FW_NAME).bin
1040 endef
1041
1042 define KernelPackage/libertas-sd/install
1043         echo "Libertas install: $(CONFIG_PACKAGE_kmod-libertas-sd)"
1044         $(INSTALL_DIR) $(1)/lib/firmware
1045         $(INSTALL_DATA) $(DL_DIR)/$(SD8686FW_NAME)-$(SD8686FW_VERSION).bin $(1)/lib/firmware/$(SD8686FW_NAME).bin
1046         $(INSTALL_DATA) $(DL_DIR)/$(SD8686HELPER_NAME).bin $(1)/lib/firmware/$(SD8686HELPER_NAME).bin
1047 endef
1048
1049 define KernelPackage/cfg80211/install
1050         $(INSTALL_DIR) $(1)/lib/wifi
1051         $(INSTALL_DATA) ./files/lib/wifi/mac80211.sh $(1)/lib/wifi
1052 endef
1053
1054 define KernelPackage/p54-pci/install
1055         $(INSTALL_DIR) $(1)/lib/firmware
1056         $(INSTALL_DATA) $(DL_DIR)/$(P54PCIFW) $(1)/lib/firmware/isl3886pci
1057 endef
1058
1059 define KernelPackage/p54-usb/install
1060         $(INSTALL_DIR) $(1)/lib/firmware
1061         $(INSTALL_DATA) $(DL_DIR)/$(P54USBFW) $(1)/lib/firmware/isl3887usb
1062 endef
1063
1064 define KernelPackage/p54-spi/install
1065         $(INSTALL_DIR) $(1)/lib/firmware
1066         $(INSTALL_DATA) $(DL_DIR)/$(P54SPIFW) $(1)/lib/firmware/3826.arm
1067 endef
1068
1069 define KernelPackage/rt61-pci/install
1070         $(INSTALL_DIR) $(1)/lib/firmware
1071         $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt2?61*.bin $(1)/lib/firmware/
1072 endef
1073
1074 define KernelPackage/rt73-usb/install
1075         $(INSTALL_DIR) $(1)/lib/firmware
1076         $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt73.bin $(1)/lib/firmware/
1077 endef
1078
1079 define KernelPackage/rt2800-pci/install
1080         $(INSTALL_DIR) $(1)/lib/firmware
1081         $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt2860.bin $(1)/lib/firmware/
1082 endef
1083
1084 define KernelPackage/rt2800-usb/install
1085         $(INSTALL_DIR) $(1)/lib/firmware
1086         $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt2870.bin $(1)/lib/firmware/
1087 endef
1088
1089 define KernelPackage/zd1211rw/install
1090         $(INSTALL_DIR) $(1)/lib/firmware/zd1211
1091         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(ZD1211FW_NAME)/zd1211* $(1)/lib/firmware/zd1211
1092 endef
1093
1094 define KernelPackage/ar9170/install
1095         $(INSTALL_DIR) $(1)/lib/firmware
1096         $(INSTALL_DATA) $(DL_DIR)/$(AR9170FW) $(1)/lib/firmware/
1097 endef
1098
1099 define KernelPackage/net-ipw2100/install
1100         $(INSTALL_DIR) $(1)/lib/firmware
1101         $(INSTALL_DATA) $(PKG_BUILD_DIR)/ipw2100-$(IPW2100_VERSION)*.fw $(1)/lib/firmware
1102 endef
1103
1104 define KernelPackage/net-ipw2200/install
1105         $(INSTALL_DIR) $(1)/lib/firmware
1106         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION)/ipw2200*.fw $(1)/lib/firmware
1107 endef
1108
1109 define Build/b43-common
1110         tar xjf "$(DL_DIR)/$(PKG_B43_FWCUTTER_SOURCE)" -C "$(PKG_BUILD_DIR)"
1111         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)" \
1112                 CFLAGS="-I$(STAGING_DIR_HOST)/include -include endian.h" \
1113                 QUIET_SPARSE=:
1114         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)/b43-fwcutter $(STAGING_DIR_HOST)/bin/
1115 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1116         $(INSTALL_DIR) $(STAGING_DIR_HOST)/bin/
1117         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/"
1118         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/b43-asm $(STAGING_DIR_HOST)/bin/
1119         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/b43-asm.bin $(STAGING_DIR_HOST)/bin/
1120 endif
1121         $(INSTALL_BIN) ./files/host_bin/b43-fwsquash.py $(STAGING_DIR_HOST)/bin/
1122 endef
1123
1124 define KernelPackage/b43/install
1125         rm -rf $(1)/lib/firmware/
1126         $(call Build/b43-common)
1127 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1128         tar xzf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
1129 else
1130         tar xjf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
1131 endif
1132         $(INSTALL_DIR) $(1)/lib/firmware/
1133 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1134         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/"
1135         $(INSTALL_DIR) $(1)/lib/firmware/b43-open/
1136         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/ucode5.fw $(1)/lib/firmware/b43-open/ucode5.fw
1137         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0bsinitvals5.fw $(1)/lib/firmware/b43-open/b0g0bsinitvals5.fw
1138         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0initvals5.fw $(1)/lib/firmware/b43-open/b0g0initvals5.fw
1139 else
1140         b43-fwcutter -w $(1)/lib/firmware/ $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)
1141 endif
1142 ifneq ($(CONFIG_B43_FW_SQUASH),)
1143         b43-fwsquash.py "$(CONFIG_B43_FW_SQUASH_PHYTYPES)" "$(CONFIG_B43_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43"
1144 endif
1145 endef
1146
1147 define KernelPackage/b43legacy/install
1148         $(call Build/b43-common)
1149         $(INSTALL_DIR) $(1)/lib/firmware/
1150
1151         b43-fwcutter --unsupported -w $(1)/lib/firmware/ $(DL_DIR)/$(PKG_B43_FWV3_SOURCE)
1152 ifneq ($(CONFIG_B43LEGACY_FW_SQUASH),)
1153         b43-fwsquash.py "G" "$(CONFIG_B43LEGACY_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43legacy"
1154 endif
1155 endef
1156
1157 $(eval $(call KernelPackage,ath5k))
1158 $(eval $(call KernelPackage,libertas-usb))
1159 $(eval $(call KernelPackage,libertas-sd))
1160 $(eval $(call KernelPackage,cfg80211))
1161 $(eval $(call KernelPackage,mac80211))
1162 $(eval $(call KernelPackage,p54-common))
1163 $(eval $(call KernelPackage,p54-pci))
1164 $(eval $(call KernelPackage,p54-usb))
1165 $(eval $(call KernelPackage,p54-spi))
1166 $(eval $(call KernelPackage,rt2x00-lib))
1167 $(eval $(call KernelPackage,rt2x00-pci))
1168 $(eval $(call KernelPackage,rt2x00-usb))
1169 $(eval $(call KernelPackage,rt2x00-soc))
1170 $(eval $(call KernelPackage,rt2800-lib))
1171 $(eval $(call KernelPackage,rt2400-pci))
1172 $(eval $(call KernelPackage,rt2500-pci))
1173 $(eval $(call KernelPackage,rt2500-usb))
1174 $(eval $(call KernelPackage,rt61-pci))
1175 $(eval $(call KernelPackage,rt73-usb))
1176 $(eval $(call KernelPackage,rt2800-pci))
1177 $(eval $(call KernelPackage,rt2800-usb))
1178 $(eval $(call KernelPackage,rtl8180))
1179 $(eval $(call KernelPackage,rtl8187))
1180 $(eval $(call KernelPackage,zd1211rw))
1181 $(eval $(call KernelPackage,mac80211-hwsim))
1182 $(eval $(call KernelPackage,ath9k))
1183 $(eval $(call KernelPackage,ath))
1184 $(eval $(call KernelPackage,carl9170))
1185 $(eval $(call KernelPackage,b43))
1186 $(eval $(call KernelPackage,b43legacy))
1187 $(eval $(call KernelPackage,net-libipw))
1188 $(eval $(call KernelPackage,net-ipw2100))
1189 $(eval $(call KernelPackage,net-ipw2200))
1190 $(eval $(call KernelPackage,mwl8k))
1191 $(eval $(call KernelPackage,net-hermes))
1192 $(eval $(call KernelPackage,net-hermes-pci))
1193 $(eval $(call KernelPackage,net-hermes-plx))
1194 $(eval $(call KernelPackage,net-hermes-pcmcia))