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