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