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