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