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