mac80211: upgrade to a new unofficial snapshot based on wireless-testing+wireless-2.6
[openwrt.git] / package / mac80211 / Makefile
1 #
2 # Copyright (C) 2007-2009 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-01-11
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:=78a36bb7d28be7028f640a10eaa4692b
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_ATH_DEBUG \
27         CONFIG_ATH_USER_REGD \
28
29 include $(INCLUDE_DIR)/package.mk
30
31 WMENU:=Wireless Drivers
32
33 define KernelPackage/mac80211/Default
34   SUBMENU:=$(WMENU)
35   URL:=http://linuxwireless.org/
36   DEPENDS:=@LINUX_2_6 @!TARGET_avr32 @(!(TARGET_ep93xx||TARGET_ps3||TARGET_pxcab)||BROKEN)
37 endef
38
39 define KernelPackage/mac80211
40   $(call KernelPackage/mac80211/Default)
41   TITLE:=Linux 802.11 Wireless Networking Stack
42   DEPENDS+= +kmod-crypto-arc4 +kmod-crypto-aes +wireless-tools +iw @!LINUX_2_6_21 @!LINUX_2_6_25
43   FILES:= \
44         $(PKG_BUILD_DIR)/compat/compat.$(LINUX_KMOD_SUFFIX) \
45         $(PKG_BUILD_DIR)/net/mac80211/mac80211.$(LINUX_KMOD_SUFFIX) \
46         $(PKG_BUILD_DIR)/net/wireless/cfg80211.$(LINUX_KMOD_SUFFIX)
47   AUTOLOAD:=$(call AutoLoad,20,compat cfg80211 mac80211)
48 endef
49
50 define KernelPackage/mac80211/config
51         source "$(SOURCE)/Config.in"
52 endef
53
54 define KernelPackage/mac80211/description
55 Linux 802.11 Wireless Networking Stack
56 endef
57
58 # Prism54 drivers
59 P54PCIFW:=2.13.12.0.arm
60 P54USBFW:=2.13.24.0.lm87.arm
61
62 define Download/p54usb
63   FILE:=$(P54USBFW)
64   URL:=http://daemonizer.de/prism54/prism54-fw/fw-usb
65   MD5SUM:=8e8ab005a4f8f0123bcdc51bc25b47f6
66 endef
67 $(eval $(call Download,p54usb))
68
69 define Download/p54pci
70   FILE:=$(P54PCIFW)
71   URL:=http://daemonizer.de/prism54/prism54-fw/fw-softmac
72   MD5SUM:=ff7536af2092b1c4b21315bd103ef4c4
73 endef
74 $(eval $(call Download,p54pci))
75
76 define KernelPackage/p54/Default
77   $(call KernelPackage/mac80211/Default)
78   TITLE:=Prism54 Drivers
79 endef
80
81 define KernelPackage/p54/description
82   Kernel module for Prism54 chipsets (mac80211)
83 endef
84
85 define KernelPackage/p54-common
86   $(call KernelPackage/p54/Default)
87   DEPENDS+= @PCI_SUPPORT||@USB_SUPPORT +kmod-mac80211
88   TITLE+= (COMMON)
89   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54common.$(LINUX_KMOD_SUFFIX)
90   AUTOLOAD:=$(call AutoLoad,30,p54common)
91 endef
92
93 define KernelPackage/p54-pci
94   $(call KernelPackage/p54/Default)
95   TITLE+= (PCI)
96   DEPENDS+= @PCI_SUPPORT +kmod-p54-common
97   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54pci.$(LINUX_KMOD_SUFFIX)
98   AUTOLOAD:=$(call AutoLoad,31,p54pci)
99 endef
100
101 define KernelPackage/p54-usb
102   $(call KernelPackage/p54/Default)
103   TITLE+= (USB)
104   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-p54-common
105   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54usb.$(LINUX_KMOD_SUFFIX)
106   AUTOLOAD:=$(call AutoLoad,31,p54usb)
107 endef
108
109 # Ralink rt2x00 drivers
110 RT61FW:=RT61_Firmware_V1.2.zip
111 RT71FW:=RT71W_Firmware_V1.8.zip
112 RT2860FW:=RT2860_Firmware_V11.zip
113 RT2870FW:=RT2870_Firmware_V8.zip
114
115 define Download/rt61
116   FILE:=$(RT61FW)
117   URL:=http://www.ralinktech.com.tw/data/
118   MD5SUM:=d4c690c93b470bc9a681297c2adc6281
119 endef
120 $(eval $(call Download,rt61))
121
122 define Download/rt71w
123   FILE:=$(RT71FW)
124   URL:=http://www.ralinktech.com.tw/data/
125   MD5SUM:=1e7a5dc574e0268574fcda3fd5cf52f7
126 endef
127 $(eval $(call Download,rt71w))
128
129 define Download/rt2860
130   FILE:=$(RT2860FW)
131   URL:=http://www.ralinktech.com.tw/data/drivers
132   MD5SUM:=440a81756a52c53528f16faa41c40124
133 endef
134 $(eval $(call Download,rt2860))
135
136 define Download/rt2870
137   FILE:=$(RT2870FW)
138   URL:=http://www.ralinktech.com.tw/data/drivers
139   MD5SUM:=a7aae1d8cfd68e4d86a73000df0b6584
140 endef
141 $(eval $(call Download,rt2870))
142
143 AR9170FW:=ar9170.fw
144
145 define Download/ar9170
146   FILE:=$(AR9170FW)
147   URL:=http://www.kernel.org/pub/linux/kernel/people/mcgrof/firmware/ar9170
148   MD5SUM:=34feec4ec0eae3bb92c7c1ea2dfb4530
149 endef
150 $(eval $(call Download,ar9170))
151
152 define KernelPackage/rt2x00/Default
153   $(call KernelPackage/mac80211/Default)
154   TITLE:=Ralink Drivers for RT2x00 cards
155 endef
156
157 define KernelPackage/rt2x00-lib
158 $(call KernelPackage/rt2x00/Default)
159   DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT) +kmod-mac80211 +kmod-crc-itu-t
160   TITLE+= (LIB)
161   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00lib.$(LINUX_KMOD_SUFFIX)
162   AUTOLOAD:=$(call AutoLoad,25,blkcipher ecb arc4 rt2x00lib)
163 endef
164
165 define KernelPackage/rt2x00-pci
166 $(call KernelPackage/rt2x00/Default)
167   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-lib +kmod-eeprom-93cx6
168   TITLE+= (PCI)
169   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00pci.$(LINUX_KMOD_SUFFIX)
170   AUTOLOAD:=$(call AutoLoad,26,rt2x00pci)
171 endef
172
173 define KernelPackage/rt2x00-usb
174 $(call KernelPackage/rt2x00/Default)
175   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-lib +kmod-usb-core
176   TITLE+= (USB)
177   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00usb.$(LINUX_KMOD_SUFFIX)
178   AUTOLOAD:=$(call AutoLoad,26,rt2x00usb)
179 endef
180
181 define KernelPackage/rt2400-pci
182 $(call KernelPackage/rt2x00/Default)
183   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
184   TITLE+= (RT2400 PCI)
185   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2400pci.$(LINUX_KMOD_SUFFIX)
186   AUTOLOAD:=$(call AutoLoad,27,rt2400pci)
187 endef
188
189 define KernelPackage/rt2500-pci
190 $(call KernelPackage/rt2x00/Default)
191   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
192   TITLE+= (RT2500 PCI)
193   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500pci.$(LINUX_KMOD_SUFFIX)
194   AUTOLOAD:=$(call AutoLoad,27,rt2500pci)
195 endef
196
197 define KernelPackage/rt2500-usb
198 $(call KernelPackage/rt2x00/Default)
199   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb
200   TITLE+= (RT2500 USB)
201   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500usb.$(LINUX_KMOD_SUFFIX)
202   AUTOLOAD:=$(call AutoLoad,27,rt2500usb)
203 endef
204
205 define KernelPackage/rt61-pci
206 $(call KernelPackage/rt2x00/Default)
207   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
208   TITLE+= (RT2x61 PCI)
209   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt61pci.$(LINUX_KMOD_SUFFIX)
210   AUTOLOAD:=$(call AutoLoad,27,rt61pci)
211 endef
212
213 define KernelPackage/rt73-usb
214   $(call KernelPackage/rt2x00/Default)
215   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb
216   TITLE+= (RT73 USB)
217   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt73usb.$(LINUX_KMOD_SUFFIX)
218   AUTOLOAD:=$(call AutoLoad,27,rt73usb)
219 endef
220
221 define KernelPackage/rt2800-pci
222 $(call KernelPackage/rt2x00/Default)
223   DEPENDS+= +kmod-rt2x00-pci +kmod-crc-ccitt
224   TITLE+= (RT2860 PCI)
225   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800pci.$(LINUX_KMOD_SUFFIX)
226   AUTOLOAD:=$(call AutoLoad,27,rt2800pci)
227 endef
228
229 define KernelPackage/rt2800-usb
230 $(call KernelPackage/rt2x00/Default)
231   DEPENDS+= +kmod-rt2x00-usb +kmod-crc-ccitt
232   TITLE+= (RT2870 USB)
233   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800usb.$(LINUX_KMOD_SUFFIX)
234   AUTOLOAD:=$(call AutoLoad,27,rt2800usb)
235 endef
236
237 define KernelPackage/rtl818x/Default
238   $(call KernelPackage/mac80211/Default)
239   TITLE:=Realtek Drivers for RTL818x devices
240   URL:=http://wireless.kernel.org/en/users/Drivers/rtl8187
241   DEPENDS+= +kmod-eeprom-93cx6 +kmod-mac80211
242 endef
243
244 define KernelPackage/rtl8180
245   $(call KernelPackage/rtl818x/Default)
246   DEPENDS+= @PCI_SUPPORT
247   TITLE+= (RTL8180 PCI)
248   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8180.$(LINUX_KMOD_SUFFIX)
249   AUTOLOAD:=$(call AutoLoad,27,rtl8180)
250 endef
251
252 define KernelPackage/rtl8187
253 $(call KernelPackage/rtl818x/Default)
254   DEPENDS+= @USB_SUPPORT
255   TITLE+= (RTL8187 USB)
256   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8187.$(LINUX_KMOD_SUFFIX)
257   AUTOLOAD:=$(call AutoLoad,27,rtl8187)
258 endef
259
260 ZD1211FW_NAME:=zd1211-firmware
261 ZD1211FW_VERSION:=1.4
262 define Download/zd1211rw
263   FILE:=$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
264   URL:=@SF/zd1211/
265   MD5SUM:=19f28781d76569af8551c9d11294c870
266 endef
267 $(eval $(call Download,zd1211rw))
268
269 define KernelPackage/zd1211rw
270   $(call KernelPackage/mac80211/Default)
271   TITLE:=Zydas ZD1211 support
272   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-mac80211
273   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/zd1211rw/zd1211rw.$(LINUX_KMOD_SUFFIX)
274   AUTOLOAD:=$(call AutoLoad,60,zd1211rw)
275 endef
276
277 define KernelPackage/ath/config
278
279 config ATH_USER_REGD
280         bool "Force Atheros drivers to respect the user's regdomain settings"
281         depends on PACKAGE_kmod-ath
282         help
283                 Atheros' idea of regulatory handling is that the EEPROM of the card defines
284                 the regulatory limits and the user is only allowed to restrict the settings
285                 even further, even if the country allows frequencies or power levels that
286                 are forbidden by the EEPROM settings.
287                 Select this option if you want the driver to respect the user's decision about
288                 regulatory settings.
289
290 config PACKAGE_ATH_DEBUG
291         bool "Atheros wireless debugging"
292         depends on PACKAGE_kmod-ath
293         help
294                 Say Y, if you want to debug atheros wireless drivers.
295                 Right now only ath9k makes use of this.
296 endef
297
298 define KernelPackage/ath
299   $(call KernelPackage/mac80211/Default)
300   TITLE:=Atheros common driver part
301   DEPENDS+= @PCI_SUPPORT +kmod-mac80211
302   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath.$(LINUX_KMOD_SUFFIX)
303   AUTOLOAD:=$(call AutoLoad,26,ath)
304 endef
305
306 define KernelPackage/ath/description
307  This module contains some common parts needed by Atheros Wireless drivers.
308 endef
309
310 define KernelPackage/ath5k
311   $(call KernelPackage/mac80211/Default)
312   TITLE:=Atheros 5xxx wireless cards support
313   URL:=http://linuxwireless.org/en/users/Drivers/ath5k
314   DEPENDS+= +kmod-ath
315   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath5k/ath5k.$(LINUX_KMOD_SUFFIX)
316   AUTOLOAD:=$(call AutoLoad,27,ath5k)
317 endef
318
319 define KernelPackage/ath5k/description
320  This module adds support for wireless adapters based on
321  Atheros 5xxx chipset.
322 endef
323
324 define KernelPackage/ath9k
325   $(call KernelPackage/mac80211/Default)
326   TITLE:=Atheros 802.11n wireless cards support
327   URL:=http://linuxwireless.org/en/users/Drivers/ath9k
328   DEPENDS+= +kmod-ath
329   FILES:= \
330         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_common.$(LINUX_KMOD_SUFFIX) \
331         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_hw.$(LINUX_KMOD_SUFFIX) \
332         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k.$(LINUX_KMOD_SUFFIX)
333   AUTOLOAD:=$(call AutoLoad,27,ath9k_hw ath9k_common ath9k)
334 endef
335
336 define KernelPackage/ath9k/description
337 This module adds support for wireless adapters based on
338 Atheros IEEE 802.11n AR5008 and AR9001 family of chipsets.
339 endef
340
341 define KernelPackage/ath9k/config
342         source "$(SOURCE)/Config.in.ath9k"
343 endef
344
345 USB8388FW_NAME:=usb8388
346 USB8388FW_VERSION:=5.110.22.p23
347
348 define Download/usb8388
349   URL:=http://dev.laptop.org/pub/firmware/libertas/
350   FILE:=$(USB8388FW_NAME)-$(USB8388FW_VERSION).bin
351   MD5SUM=5e38f55719df3d0c58dd3bd02575a09c
352 endef
353 $(eval $(call Download,usb8388))
354
355 define KernelPackage/libertas
356   $(call KernelPackage/mac80211/Default)
357   DEPENDS+= @USB_SUPPORT +kmod-mac80211 +kmod-usb-core +kmod-lib80211
358   TITLE:=Marvell 88W8015 Wireless Driver
359   FILES:= \
360         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.$(LINUX_KMOD_SUFFIX) \
361         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/usb8xxx.$(LINUX_KMOD_SUFFIX)
362   AUTOLOAD:=$(call AutoLoad,27,libertas usb8xxx)
363 endef
364
365
366 define KernelPackage/ar9170
367   $(call KernelPackage/mac80211/Default)
368   TITLE:=Atheros AR9170 802.11n USB support
369   URL:=http://wireless.kernel.org/en/users/Drivers/ar9170
370   DEPENDS+= @USB_SUPPORT @!LINUX_2_6_25 +kmod-ath +kmod-usb-core
371   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ar9170/ar9170usb.$(LINUX_KMOD_SUFFIX)
372   AUTOLOAD:=$(call AutoLoad,27,ar9170usb)
373 endef
374
375 define KernelPackage/ar9170/description
376  This is a driver for the Atheros "otus" 802.11n USB devices.
377 endef
378
379 define KernelPackage/mac80211-hwsim
380   $(call KernelPackage/mac80211/Default)
381   TITLE:=mac80211 HW simulation device
382   DEPENDS+= +kmod-mac80211
383   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.$(LINUX_KMOD_SUFFIX)
384   AUTOLOAD:=$(call AutoLoad,60,mac80211_hwsim)
385 endef
386
387 #Broadcom firmware
388 ifneq ($(CONFIG_B43_EXPERIMENTAL),)
389   PKG_B43_FWV4_NAME:=broadcom-wl
390   PKG_B43_FWV4_VERSION:=4.178.10.4
391   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/linux/wl.o
392   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
393   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
394   PKG_B43_FWV4_MD5SUM:=14477e8cbbb91b11896affac9b219fdb
395 else
396   PKG_B43_FWV4_NAME:=broadcom-wl
397   PKG_B43_FWV4_VERSION:=4.150.10.5
398   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/driver/wl_apsta_mimo.o
399   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
400   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
401   PKG_B43_FWV4_MD5SUM:=0c6ba9687114c6b598e8019e262d9a60
402 endif
403 ifneq ($(CONFIG_B43_OPENFIRMWARE),)
404   PKG_B43_FWV4_NAME:=broadcom-wl
405   PKG_B43_FWV4_VERSION:=5.2
406   PKG_B43_FWV4_OBJECT:=openfwwf-$(PKG_B43_FWV4_VERSION)
407   PKG_B43_FWV4_SOURCE:=openfwwf-$(PKG_B43_FWV4_VERSION).tar.gz
408   PKG_B43_FWV4_SOURCE_URL:=http://www.ing.unibs.it/openfwwf/firmware/
409   PKG_B43_FWV4_MD5SUM:=e045a135453274e439ae183f8498b0fa
410 endif
411
412
413 PKG_B43_FWV3_NAME:=wl_apsta
414 PKG_B43_FWV3_VERSION:=3.130.20.0
415 PKG_B43_FWV3_SOURCE:=$(PKG_B43_FWV3_NAME)-$(PKG_B43_FWV3_VERSION).o
416 PKG_B43_FWV3_SOURCE_URL:=http://downloads.openwrt.org/sources/
417 PKG_B43_FWV3_MD5SUM:=e08665c5c5b66beb9c3b2dd54aa80cb3
418
419 ifneq ($(CONFIG_B43_OPENFIRMWARE),)
420   PKG_B43_FWCUTTER_NAME:=b43-fwcutter
421   PKG_B43_FWCUTTER_VERSION:=3e69531aa65b8f664a0ab00dfc3e2eefeb0cb417
422   PKG_B43_FWCUTTER_SOURCE:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION).tar.bz2
423   PKG_B43_FWCUTTER_PROTO:=git
424   PKG_B43_FWCUTTER_SOURCE_URL:=http://git.bu3sch.de/git/b43-tools.git
425   PKG_B43_FWCUTTER_SUBDIR:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)
426   PKG_B43_FWCUTTER_OBJECT:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)/fwcutter/
427 else
428   PKG_B43_FWCUTTER_NAME:=b43-fwcutter
429   PKG_B43_FWCUTTER_VERSION:=012
430   PKG_B43_FWCUTTER_SOURCE:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION).tar.bz2
431   PKG_B43_FWCUTTER_PROTO:=default
432   PKG_B43_FWCUTTER_SOURCE_URL:=http://bu3sch.de/b43/fwcutter/
433   PKG_B43_FWCUTTER_MD5SUM:=69eadf67b459f313a8d6b37aaabef96c
434   PKG_B43_FWCUTTER_SUBDIR:=b43-fwcutter-$(PKG_B43_FWCUTTER_VERSION)
435   PKG_B43_FWCUTTER_OBJECT:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)/
436 endif
437
438 define Download/b43-common
439   FILE:=$(PKG_B43_FWCUTTER_SOURCE)
440   URL:=$(PKG_B43_FWCUTTER_SOURCE_URL)
441   MD5SUM:=$(PKG_B43_FWCUTTER_MD5SUM)
442   PROTO:=$(PKG_B43_FWCUTTER_PROTO)
443   VERSION:=$(PKG_B43_FWCUTTER_VERSION)
444   SUBDIR:=$(PKG_B43_FWCUTTER_SUBDIR)
445 endef
446 $(eval $(call Download,b43-common))
447
448 define Download/b43
449   FILE:=$(PKG_B43_FWV4_SOURCE)
450   URL:=$(PKG_B43_FWV4_SOURCE_URL)
451   MD5SUM:=$(PKG_B43_FWV4_MD5SUM)
452 endef
453 $(eval $(call Download,b43))
454
455 define Download/b43legacy
456   FILE:=$(PKG_B43_FWV3_SOURCE)
457   URL:=$(PKG_B43_FWV3_SOURCE_URL)
458   MD5SUM:=$(PKG_B43_FWV3_MD5SUM)
459 endef
460 $(eval $(call Download,b43legacy))
461
462 define KernelPackage/b43-common
463   $(call KernelPackage/mac80211/Default)
464   TITLE:=Generic stuff for Broadcom wireless devices
465   URL:=http://linuxwireless.org/en/users/Drivers/b43
466   KCONFIG:= \
467         CONFIG_HW_RANDOM=y
468   DEPENDS+= +kmod-mac80211 +!(TARGET_brcm47xx||TARGET_brcm63xx):kmod-ssb
469 endef
470
471 define KernelPackage/b43
472 $(call KernelPackage/b43-common)
473   TITLE:=Broadcom 43xx wireless support
474   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43/b43.$(LINUX_KMOD_SUFFIX)
475   AUTOLOAD:=$(call AutoLoad,30,b43)
476 endef
477
478 define KernelPackage/b43/config
479         source "$(SOURCE)/Config.in.b43"
480 endef
481
482 define KernelPackage/b43/description
483 Kernel module for Broadcom 43xx wireless support (mac80211 stack) new
484 endef
485
486 define KernelPackage/b43legacy
487 $(call KernelPackage/b43-common)
488   TITLE:=Broadcom 43xx-legacy wireless support
489   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43legacy/b43legacy.$(LINUX_KMOD_SUFFIX)
490   AUTOLOAD:=$(call AutoLoad,30,b43legacy)
491 endef
492
493 define KernelPackage/b43legacy/config
494         source "$(SOURCE)/Config.in.b43legacy"
495 endef
496
497 define KernelPackage/b43legacy/description
498 Kernel module for Broadcom 43xx-legacy wireless support (mac80211 stack) new
499 endef
500
501 BUILDFLAGS:= \
502         -I$(PKG_BUILD_DIR)/include \
503         $(foreach opt,$(CONFOPTS),-DCONFIG_$(opt)) \
504         $(if $(CONFIG_PCI),-DCONFIG_B43_PCI_AUTOSELECT -DCONFIG_B43_PCICORE_AUTOSELECT -DCONFIG_SSB_DRIVER_PCICORE_POSSIBLE -DCONFIG_SSB_DRIVER_PCICORE) \
505         $(if $(CONFIG_PCI),-DCONFIG_SSB_PCIHOST_POSSIBLE -DCONFIG_SSB_PCIHOST) \
506         $(if $(CONFIG_PCI),-DCONFIG_SSB_SPROM) \
507         $(if $(CONFIG_LEDS_TRIGGERS), -DCONFIG_MAC80211_LEDS -DCONFIG_LEDS_TRIGGERS -DCONFIG_B43_LEDS -DCONFIG_B43LEGACY_LEDS -DCONFIG_AR9170_LEDS) \
508         -DCONFIG_B43_HWRNG -DCONFIG_B43LEGACY_HWRNG \
509         $(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),-DCONFIG_MAC80211_DEBUGFS -DCONFIG_ATH9K_DEBUGFS) \
510         $(if $(CONFIG_PACKAGE_ATH_DEBUG),-DCONFIG_ATH_DEBUG) \
511         -D__CONFIG_MAC80211_RC_DEFAULT=minstrel \
512         $(if $(CONFIG_ATH_USER_REGD),-DATH_USER_REGD=1)
513
514 MAKE_OPTS:= \
515         CROSS_COMPILE="$(KERNEL_CROSS)" \
516         ARCH="$(LINUX_KARCH)" \
517         EXTRA_CFLAGS="$(BUILDFLAGS)" \
518         $(foreach opt,$(CONFOPTS),CONFIG_$(opt)=m) \
519         CONFIG_MAC80211_RC_PID=y \
520         CONFIG_MAC80211_RC_MINSTREL=y \
521         CONFIG_MAC80211_LEDS=$(CONFIG_LEDS_TRIGGERS) \
522         CONFIG_MAC80211_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
523         CONFIG_B43_PCMCIA=n CONFIG_B43_PIO=n \
524         CONFIG_B43_PCI_AUTOSELECT=$(if $(CONFIG_PCI),y) \
525         CONFIG_B43_PCICORE_AUTOSELECT=$(if $(CONFIG_PCI),y) \
526         CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=$(if $(CONFIG_PCI),y) \
527         CONFIG_SSB_DRIVER_PCICORE=$(if $(CONFIG_PCI),y) \
528         CONFIG_SSB_PCIHOST_POSSIBLE=$(if $(CONFIG_PCI),y) \
529         CONFIG_SSB_PCIHOST=$(if $(CONFIG_PCI),y) \
530         CONFIG_B43LEGACY_LEDS=$(CONFIG_LEDS_TRIGGERS) \
531         CONFIG_B43_LEDS=$(CONFIG_LEDS_TRIGGERS) \
532         CONFIG_B43_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \
533         CONFIG_B43LEGACY_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \
534         CONFIG_B43=$(if $(CONFIG_PACKAGE_kmod-b43),m) \
535         CONFIG_B43LEGACY=$(if $(CONFIG_PACKAGE_kmod-b43legacy),m) \
536         CONFIG_ATH_COMMON=$(if $(CONFIG_PACKAGE_kmod-ath),m) \
537         CONFIG_ATH_DEBUG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \
538         CONFIG_ATH5K=$(if $(CONFIG_PACKAGE_kmod-ath5k),m) \
539         CONFIG_ATH9K=$(if $(CONFIG_PACKAGE_kmod-ath9k),m) \
540         CONFIG_ATH9K_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
541         CONFIG_ZD1211RW=$(if $(CONFIG_PACKAGE_kmod-zd1211rw),m) \
542         CONFIG_P54_COMMON=$(if $(CONFIG_PACKAGE_kmod-p54-common),m) \
543         CONFIG_P54_PCI=$(if $(CONFIG_PACKAGE_kmod-p54-pci),m) \
544         CONFIG_P54_USB=$(if $(CONFIG_PACKAGE_kmod-p54-usb),m) \
545         CONFIG_P54_SPI= \
546         CONFIG_RT2X00=$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),m) \
547         CONFIG_RT2X00_LIB_PCI=$(if $(CONFIG_PACKAGE_kmod-rt2x00-pci),m) \
548         CONFIG_RT2X00_LIB_USB=$(if $(CONFIG_PACKAGE_kmod-rt2x00-usb),m) \
549         CONFIG_RT2400PCI=$(if $(CONFIG_PACKAGE_kmod-rt2400-pci),m) \
550         CONFIG_RT2500PCI=$(if $(CONFIG_PACKAGE_kmod-rt2500-pci),m) \
551         CONFIG_RT2500USB=$(if $(CONFIG_PACKAGE_kmod-rt2500-usb),m) \
552         CONFIG_RT61PCI=$(if $(CONFIG_PACKAGE_kmod-rt61-pci),m) \
553         CONFIG_RT73USB=$(if $(CONFIG_PACKAGE_kmod-rt73-usb),m) \
554         CONFIG_RT2800PCI=$(if $(CONFIG_PACKAGE_kmod-rt2800-pci),m) \
555         CONFIG_RT2800USB=$(if $(CONFIG_PACKAGE_kmod-rt2800-usb),m) \
556         CONFIG_RTL8180=$(if $(CONFIG_PACKAGE_kmod-rtl8180),m) \
557         CONFIG_RTL8187=$(if $(CONFIG_PACKAGE_kmod-rtl8187),m) \
558         CONFIG_MAC80211_HWSIM=$(if $(CONFIG_PACKAGE_kmod-mac80211-hwsim),m) \
559         CONFIG_PCMCIA= \
560         CONFIG_LIBIPW= \
561         CONFIG_LIBERTAS=$(if $(CONFIG_PACKAGE_kmod-libertas),m) \
562         CONFIG_LIBERTAS_CS= \
563         CONFIG_LIBERTAS_SDIO= \
564         CONFIG_LIBERTAS_THINFIRM= \
565         CONFIG_LIBERTAS_USB=$(if $(CONFIG_PACKAGE_kmod-libertas),m) \
566         CONFIG_IPW2100= \
567         CONFIG_IPW2200= \
568         CONFIG_NL80211=y \
569         CONFIG_LIB80211= \
570         CONFIG_LIB80211_CRYPT_WEP= \
571         CONFIG_LIB80211_CRYPT_CCMP= \
572         CONFIG_LIB80211_CRYPT_TKIP= \
573         CONFIG_IWLWIFI= \
574         CONFIG_IWLAGN= \
575         CONFIG_MWL8K= \
576         CONFIG_ATMEL= \
577         CONFIG_PCMCIA_ATMEL= \
578         CONFIG_ADM8211= \
579         CONFIG_USB_NET_RNDIS_HOST= \
580         CONFIG_USB_NET_RNDIS_WLAN= \
581         CONFIG_USB_NET_CDCETHER= \
582         CONFIG_USB_USBNET= \
583         CONFIG_AT76C50X_USB= \
584         CONFIG_WL12XX= \
585         CONFIG_EEPROM_93CX6= \
586         CONFIG_AR9170_USB=$(if $(CONFIG_PACKAGE_kmod-ar9170),m) \
587         CONFIG_AR9170_LEDS=$(CONFIG_LEDS_TRIGGERS) \
588         CONFIG_IWM= \
589         MADWIFI= \
590         OLD_IWL= \
591         KLIB_BUILD="$(LINUX_DIR)" \
592         MODPROBE=: \
593         KLIB=$(TARGET_MODULES_DIR) \
594         KERNEL_SUBLEVEL=$(lastword $(subst ., ,$(KERNEL_PATCHVER)))
595
596 define Build/Prepare
597         rm -rf $(PKG_BUILD_DIR)
598         mkdir -p $(PKG_BUILD_DIR)
599         $(PKG_UNPACK)
600         $(Build/Patch)
601         unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT61FW)
602         unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT71FW)
603         -unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT2860FW)
604         -unzip -jod $(PKG_BUILD_DIR) $(DL_DIR)/$(RT2870FW)
605         $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
606         rm -rf $(PKG_BUILD_DIR)/include/linux/ssb
607         rm -f $(PKG_BUILD_DIR)/include/net/ieee80211.h
608         rm $(PKG_BUILD_DIR)/include/linux/eeprom_93cx6.h
609 endef
610
611 ifneq ($(CONFIG_PACKAGE_kmod-mac80211),)
612  define Build/Compile/kmod
613         rm -rf $(PKG_BUILD_DIR)/modules
614         $(MAKE) -C "$(PKG_BUILD_DIR)" $(MAKE_OPTS) all
615  endef
616 endif
617
618 define Build/Compile
619         $(call Build/Compile/kmod)
620 endef
621
622 define Build/InstallDev
623         mkdir -p \
624                 $(1)/usr/include/mac80211 \
625                 $(1)/usr/include/mac80211/ath \
626                 $(1)/usr/include/net/mac80211
627         $(CP) $(PKG_BUILD_DIR)/net/mac80211/*.h $(PKG_BUILD_DIR)/include/* $(1)/usr/include/mac80211/
628         $(CP) $(PKG_BUILD_DIR)/net/mac80211/rate.h $(1)/usr/include/net/mac80211/
629         $(CP) $(PKG_BUILD_DIR)/drivers/net/wireless/ath/*.h $(1)/usr/include/mac80211/ath/
630 endef
631
632 define KernelPackage/libertas/install
633         $(INSTALL_DIR) $(1)/lib/firmware
634         $(INSTALL_DATA) $(DL_DIR)/$(USB8388FW_NAME)-$(USB8388FW_VERSION).bin $(1)/lib/firmware/$(USB8388FW_NAME).bin
635 endef
636
637 define KernelPackage/mac80211/install
638         $(INSTALL_DIR) $(1)/lib/wifi
639         $(INSTALL_DATA) ./files/lib/wifi/mac80211.sh $(1)/lib/wifi
640 endef
641
642 define KernelPackage/p54-pci/install
643         $(INSTALL_DIR) $(1)/lib/firmware
644         $(INSTALL_DATA) $(DL_DIR)/$(P54PCIFW) $(1)/lib/firmware/isl3886pci
645 endef
646
647 define KernelPackage/p54-usb/install
648         $(INSTALL_DIR) $(1)/lib/firmware
649         $(INSTALL_DATA) $(DL_DIR)/$(P54USBFW) $(1)/lib/firmware/isl3887usb
650 endef
651
652 define KernelPackage/rt61-pci/install
653         $(INSTALL_DIR) $(1)/lib/firmware
654         $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt2?61*.bin $(1)/lib/firmware/
655 endef
656
657 define KernelPackage/rt73-usb/install
658         $(INSTALL_DIR) $(1)/lib/firmware
659         $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt73.bin $(1)/lib/firmware/
660 endef
661
662 define KernelPackage/rt2800-pci/install
663         $(INSTALL_DIR) $(1)/lib/firmware
664         $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt2860.bin $(1)/lib/firmware/
665 endef
666
667 define KernelPackage/rt2800-usb/install
668         $(INSTALL_DIR) $(1)/lib/firmware
669         $(INSTALL_DATA) $(PKG_BUILD_DIR)/rt2870.bin $(1)/lib/firmware/
670 endef
671
672 define KernelPackage/zd1211rw/install
673         $(INSTALL_DIR) $(1)/lib/firmware/zd1211
674         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(ZD1211FW_NAME)/zd1211* $(1)/lib/firmware/zd1211
675 endef
676
677 define KernelPackage/ar9170/install
678         $(INSTALL_DIR) $(1)/lib/firmware
679         $(INSTALL_DATA) $(DL_DIR)/$(AR9170FW) $(1)/lib/firmware/
680 endef
681
682 define Build/b43-common
683         tar xjf "$(DL_DIR)/$(PKG_B43_FWCUTTER_SOURCE)" -C "$(PKG_BUILD_DIR)"
684         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)" \
685                 CFLAGS="-I$(STAGING_DIR_HOST)/include -include endian.h"
686         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)/b43-fwcutter $(STAGING_DIR_HOST)/bin/
687 ifneq ($(CONFIG_B43_OPENFIRMWARE),)
688         $(INSTALL_DIR) $(STAGING_DIR_HOST)/bin/
689         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/"
690         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/b43-asm $(STAGING_DIR_HOST)/bin/
691         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/b43-asm.bin $(STAGING_DIR_HOST)/bin/
692 endif
693         $(INSTALL_BIN) ./files/host_bin/b43-fwsquash.py $(STAGING_DIR_HOST)/bin/
694 endef
695
696 define KernelPackage/b43/install
697         rm -rf $(1)/lib/firmware/
698         $(call Build/b43-common)
699 ifneq ($(CONFIG_B43_OPENFIRMWARE),)
700         tar xzf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
701 else
702         tar xjf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
703 endif
704         $(INSTALL_DIR) $(1)/lib/firmware/
705 ifneq ($(CONFIG_B43_OPENFIRMWARE),)
706         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/"
707         $(INSTALL_DIR) $(1)/lib/firmware/b43-open/
708         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/ucode5.fw $(1)/lib/firmware/b43-open/ucode5.fw
709         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0bsinitvals5.fw $(1)/lib/firmware/b43-open/b0g0bsinitvals5.fw
710         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0initvals5.fw $(1)/lib/firmware/b43-open/b0g0initvals5.fw
711 else
712         b43-fwcutter --unsupported -w $(1)/lib/firmware/ $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)
713 endif
714 ifneq ($(CONFIG_B43_FW_SQUASH),)
715         b43-fwsquash.py "$(CONFIG_B43_FW_SQUASH_PHYTYPES)" "$(CONFIG_B43_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43"
716 endif
717 endef
718
719 define KernelPackage/b43legacy/install
720         $(call Build/b43-common)
721         $(INSTALL_DIR) $(1)/lib/firmware/
722
723         b43-fwcutter --unsupported -w $(1)/lib/firmware/ $(DL_DIR)/$(PKG_B43_FWV3_SOURCE)
724 ifneq ($(CONFIG_B43LEGACY_FW_SQUASH),)
725         b43-fwsquash.py "G" "$(CONFIG_B43LEGACY_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43legacy"
726 endif
727 endef
728
729 $(eval $(call KernelPackage,ath5k))
730 $(eval $(call KernelPackage,libertas))
731 $(eval $(call KernelPackage,mac80211))
732 $(eval $(call KernelPackage,p54-common))
733 $(eval $(call KernelPackage,p54-pci))
734 $(eval $(call KernelPackage,p54-usb))
735 $(eval $(call KernelPackage,rt2x00-lib))
736 $(eval $(call KernelPackage,rt2x00-pci))
737 $(eval $(call KernelPackage,rt2x00-usb))
738 $(eval $(call KernelPackage,rt2400-pci))
739 $(eval $(call KernelPackage,rt2500-pci))
740 $(eval $(call KernelPackage,rt2500-usb))
741 $(eval $(call KernelPackage,rt61-pci))
742 $(eval $(call KernelPackage,rt73-usb))
743 $(eval $(call KernelPackage,rt2800-pci))
744 $(eval $(call KernelPackage,rt2800-usb))
745 $(eval $(call KernelPackage,rtl8180))
746 $(eval $(call KernelPackage,rtl8187))
747 $(eval $(call KernelPackage,zd1211rw))
748 $(eval $(call KernelPackage,mac80211-hwsim))
749 $(eval $(call KernelPackage,ath9k))
750 $(eval $(call KernelPackage,ath))
751 $(eval $(call KernelPackage,ar9170))
752 $(eval $(call KernelPackage,b43))
753 $(eval $(call KernelPackage,b43legacy))