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