73a267fa394afc157f8a1540576723e09b1c385c
[openwrt-10.03/.git] / package / mac80211 / Makefile
1 #
2 # Copyright (C) 2007-2011 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:=2011-09-14
14 PKG_RELEASE:=1
15 PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
16 PKG_MD5SUM:=a5627e6079e8d0f0baf7045141503a3d
17
18 PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2
19 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/compat-wireless-$(PKG_VERSION)
20 PKG_BUILD_PARALLEL:=1
21
22 PKG_DRIVERS = \
23         ath5k libertas-usb libertas-sd p54-common p54-pci p54-usb p54-spi \
24         rt2x00-lib rt2x00-pci rt2x00-usb rt2x00-soc rt2800-lib rt2400-pci \
25         rt2500-pci rt2500-usb rt61-pci rt73-usb rt2800-pci rt2800-usb \
26         rtl8180 rtl8187 zd1211rw mac80211-hwsim carl9170 b43 b43legacy \
27         ath9k-common ath9k ath9k-htc ath net-libipw net-ipw2100 net-ipw2200 \
28         mwl8k net-hermes net-hermes-pci net-hermes-plx net-hermes-pcmcia \
29         iwl-legacy iwl3945 iwl4965 iwlagn lib80211
30
31 PKG_CONFIG_DEPENDS:= \
32         CONFIG_PACKAGE_kmod-mac80211 \
33         $(patsubst %,CONFIG_PACKAGE_kmod-%,$(PKG_DRIVERS)) \
34         CONFIG_PACKAGE_MAC80211_DEBUGFS \
35         CONFIG_PACKAGE_ATH_DEBUG \
36         CONFIG_PACKAGE_B43_DEBUG \
37         CONFIG_PACKAGE_B43_PIO \
38         CONFIG_PACKAGE_B43_N_PHY \
39         CONFIG_ATH_USER_REGD \
40
41 CARL9170_FW_VERSION:=1.9.4
42
43 include $(INCLUDE_DIR)/package.mk
44
45 WMENU:=Wireless Drivers
46
47 define KernelPackage/mac80211/Default
48   SUBMENU:=$(WMENU)
49   URL:=http://linuxwireless.org/
50   MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
51   DEPENDS:=@(!(TARGET_avr32||TARGET_ep93xx||TARGET_ps3||TARGET_pxcab)||BROKEN) @!LINUX_2_4
52 endef
53
54 define KernelPackage/cfg80211
55   $(call KernelPackage/mac80211/Default)
56   TITLE:=cfg80211 - wireless configuration API
57   DEPENDS+= +wireless-tools +iw +crda
58   FILES:= \
59         $(PKG_BUILD_DIR)/compat/compat.ko \
60         $(PKG_BUILD_DIR)/net/wireless/cfg80211.ko
61   AUTOLOAD:=$(call AutoLoad,20,compat cfg80211)
62 endef
63
64 define KernelPackage/cfg80211/description
65 cfg80211 is the Linux wireless LAN (802.11) configuration API.
66 endef
67
68 define KernelPackage/mac80211
69   $(call KernelPackage/mac80211/Default)
70   TITLE:=Linux 802.11 Wireless Networking Stack
71   DEPENDS+= +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-aes +kmod-cfg80211
72   KCONFIG:=\
73         CONFIG_AVERAGE=y
74   FILES:= $(PKG_BUILD_DIR)/net/mac80211/mac80211.ko
75   AUTOLOAD:=$(call AutoLoad,21,mac80211)
76   MENU:=1
77 endef
78
79 define KernelPackage/mac80211/config
80         menu "Configuration"
81                 depends on PACKAGE_kmod-mac80211
82
83         config PACKAGE_MAC80211_DEBUGFS
84                 bool "Export mac80211 internals in DebugFS"
85                 default y
86                 help
87                   Select this to see extensive information about
88                   the internal state of mac80211 in debugfs.
89
90                   Say N unless you know you need this.
91
92         endmenu
93 endef
94
95 define KernelPackage/mac80211/description
96 Generic IEEE 802.11 Networking Stack (mac80211)
97 endef
98
99 PKG_LINUX_FIRMWARE_NAME:=linux-firmware
100 PKG_LINUX_FIRMWARE_VERSION:=d543c1d98fc240267ee59fff93f7a0f36d9e2fc3
101 PKG_LINUX_FIRMWARE_SOURCE:=$(PKG_LINUX_FIRMWARE_NAME)-$(PKG_LINUX_FIRMWARE_VERSION).tar.bz2
102 PKG_LINUX_FIRMWARE_PROTO:=git
103 # PKG_LINUX_FIRMWARE_SOURCE_URL:=git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git
104 PKG_LINUX_FIRMWARE_SOURCE_URL:=git://git.infradead.org/users/dwmw2/linux-firmware.git
105 PKG_LINUX_FIRMWARE_SUBDIR:=$(PKG_LINUX_FIRMWARE_NAME)-$(PKG_LINUX_FIRMWARE_VERSION)
106
107 define Download/linux-firmware
108   FILE:=$(PKG_LINUX_FIRMWARE_SOURCE)
109   URL:=$(PKG_LINUX_FIRMWARE_SOURCE_URL)
110   MD5SUM:=$(PKG_LINUX_FIRMWARE_MD5SUM)
111   PROTO:=$(PKG_LINUX_FIRMWARE_PROTO)
112   VERSION:=$(PKG_LINUX_FIRMWARE_VERSION)
113   SUBDIR:=$(PKG_LINUX_FIRMWARE_SUBDIR)
114 endef
115 $(eval $(call Download,linux-firmware))
116
117 # Prism54 drivers
118 P54PCIFW:=2.13.12.0.arm
119 P54USBFW:=2.13.24.0.lm87.arm
120 P54SPIFW:=2.13.0.0.a.13.14.arm
121 CARL9170_FW:=carl9170-1.fw
122
123 define Download/p54usb
124   FILE:=$(P54USBFW)
125   URL:=http://daemonizer.de/prism54/prism54-fw/fw-usb
126   MD5SUM:=8e8ab005a4f8f0123bcdc51bc25b47f6
127 endef
128 $(eval $(call Download,p54usb))
129
130 define Download/p54pci
131   FILE:=$(P54PCIFW)
132   URL:=http://daemonizer.de/prism54/prism54-fw/fw-softmac
133   MD5SUM:=ff7536af2092b1c4b21315bd103ef4c4
134 endef
135 $(eval $(call Download,p54pci))
136
137 define Download/p54spi
138   FILE:=$(P54SPIFW)
139   URL:=http://daemonizer.de/prism54/prism54-fw/stlc4560
140   MD5SUM:=42661f8ecbadd88012807493f596081d
141 endef
142 $(eval $(call Download,p54spi))
143
144 define Download/carl9170
145   FILE:=$(CARL9170_FW)-$(CARL9170_FW_VERSION)
146   URL:=http://downloads.openwrt.org/sources/
147   MD5SUM:=30e2ae80c33b3008d271556d1a14e3ea
148 endef
149 $(eval $(call Download,carl9170))
150
151 define KernelPackage/p54/Default
152   $(call KernelPackage/mac80211/Default)
153   TITLE:=Prism54 Drivers
154 endef
155
156 define KernelPackage/p54/description
157   Kernel module for Prism54 chipsets (mac80211)
158 endef
159
160 define KernelPackage/p54-common
161   $(call KernelPackage/p54/Default)
162   DEPENDS+= @PCI_SUPPORT||@USB_SUPPORT||@TARGET_omap24xx +kmod-mac80211 +kmod-crc-ccitt
163   TITLE+= (COMMON)
164   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54common.ko
165   AUTOLOAD:=$(call AutoLoad,30,p54common)
166 endef
167
168 define KernelPackage/p54-pci
169   $(call KernelPackage/p54/Default)
170   TITLE+= (PCI)
171   DEPENDS+= @PCI_SUPPORT +kmod-p54-common
172   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54pci.ko
173   AUTOLOAD:=$(call AutoLoad,31,p54pci)
174 endef
175
176 define KernelPackage/p54-usb
177   $(call KernelPackage/p54/Default)
178   TITLE+= (USB)
179   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-p54-common
180   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54usb.ko
181   AUTOLOAD:=$(call AutoLoad,31,p54usb)
182 endef
183
184 define KernelPackage/p54-spi
185   $(call KernelPackage/p54/Default)
186   TITLE+= (SPI)
187   DEPENDS+= @TARGET_omap24xx +kmod-p54-common
188   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/p54/p54spi.ko
189   AUTOLOAD:=$(call AutoLoad,31,p54spi)
190 endef
191
192 NEED_RT2X00_LIB_CRYPTO:=y
193 NEED_RT2X00_LIB_FIRMWARE:=y
194 NEED_RT2X00_LIB_EEPROM:=y
195 NEED_RT2X00_LIB_HT:=y
196 NEED_RT2X00_LIB_LEDS:=y
197
198 define KernelPackage/rt2x00/Default
199   $(call KernelPackage/mac80211/Default)
200   TITLE:=Ralink Drivers for RT2x00 cards
201 endef
202
203 define KernelPackage/rt2x00-lib
204 $(call KernelPackage/rt2x00/Default)
205   DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-mac80211 +kmod-crc-itu-t
206   TITLE+= (LIB)
207   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00lib.ko
208   AUTOLOAD:=$(call AutoLoad,25,rt2x00lib)
209   MENU:=1
210 endef
211
212 define KernelPackage/rt2x00-lib/config
213         menu "Configuration"
214                 depends PACKAGE_kmod-rt2x00-lib
215
216         config PACKAGE_RT2X00_LIB_DEBUGFS
217                 bool "Enable rt2x00 debugfs support"
218                 depends PACKAGE_MAC80211_DEBUGFS
219                 help
220                   Enable creation of debugfs files for the rt2x00 drivers.
221                   These debugfs files support both reading and writing of the
222                   most important register types of the rt2x00 hardware.
223
224         config PACKAGE_RT2X00_DEBUG
225                 bool "Enable rt2x00 debug output"
226                 help
227                   Enable debugging output for all rt2x00 modules
228
229         endmenu
230 endef
231
232 define KernelPackage/rt2x00-pci
233 $(call KernelPackage/rt2x00/Default)
234   DEPENDS+= @(PCI_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +kmod-eeprom-93cx6
235   TITLE+= (PCI)
236   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00pci.ko
237   AUTOLOAD:=$(call AutoLoad,26,rt2x00pci)
238 endef
239
240 define KernelPackage/rt2x00-usb
241 $(call KernelPackage/rt2x00/Default)
242   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-lib +kmod-usb-core
243   TITLE+= (USB)
244   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00usb.ko
245   AUTOLOAD:=$(call AutoLoad,26,rt2x00usb)
246 endef
247
248 define KernelPackage/rt2x00-soc
249 $(call KernelPackage/rt2x00/Default)
250   DEPENDS+= @TARGET_ramips +kmod-rt2x00-lib
251   TITLE+= (SoC)
252   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2x00soc.ko
253   AUTOLOAD:=$(call AutoLoad,26,rt2x00soc)
254 endef
255
256 define KernelPackage/rt2800-lib
257 $(call KernelPackage/rt2x00/Default)
258   DEPENDS+= @(PCI_SUPPORT||USB_SUPPORT||TARGET_ramips) +kmod-rt2x00-lib +TARGET_ramips:kmod-rt2x00-soc +@DRIVER_11N_SUPPORT
259   TITLE+= (rt2800 LIB)
260   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800lib.ko
261   AUTOLOAD:=$(call AutoLoad,27,rt2800lib)
262 endef
263
264 define KernelPackage/rt2400-pci
265 $(call KernelPackage/rt2x00/Default)
266   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
267   TITLE+= (RT2400 PCI)
268   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2400pci.ko
269   AUTOLOAD:=$(call AutoLoad,27,rt2400pci)
270 endef
271
272 define KernelPackage/rt2500-pci
273 $(call KernelPackage/rt2x00/Default)
274   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
275   TITLE+= (RT2500 PCI)
276   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500pci.ko
277   AUTOLOAD:=$(call AutoLoad,27,rt2500pci)
278 endef
279
280 define KernelPackage/rt2500-usb
281 $(call KernelPackage/rt2x00/Default)
282   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb
283   TITLE+= (RT2500 USB)
284   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2500usb.ko
285   AUTOLOAD:=$(call AutoLoad,27,rt2500usb)
286 endef
287
288 define KernelPackage/rt61-pci
289 $(call KernelPackage/rt2x00/Default)
290   DEPENDS+= @PCI_SUPPORT +kmod-rt2x00-pci
291   TITLE+= (RT2x61 PCI)
292   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt61pci.ko
293   AUTOLOAD:=$(call AutoLoad,27,rt61pci)
294 endef
295
296 define KernelPackage/rt73-usb
297   $(call KernelPackage/rt2x00/Default)
298   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb
299   TITLE+= (RT73 USB)
300   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt73usb.ko
301   AUTOLOAD:=$(call AutoLoad,27,rt73usb)
302 endef
303
304 define KernelPackage/rt2800-pci
305 $(call KernelPackage/rt2x00/Default)
306   DEPENDS+= @(PCI_SUPPORT||TARGET_ramips) +kmod-rt2x00-pci +kmod-rt2800-lib +kmod-crc-ccitt +TARGET_ramips:kmod-rt2x00-soc
307   TITLE+= (RT2860 PCI)
308   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800pci.ko
309   AUTOLOAD:=$(call AutoLoad,28,rt2800pci)
310 endef
311
312 define KernelPackage/rt2800-usb
313 $(call KernelPackage/rt2x00/Default)
314   DEPENDS+= @USB_SUPPORT +kmod-rt2x00-usb +kmod-rt2800-lib +kmod-crc-ccitt
315   TITLE+= (RT2870 USB)
316   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rt2x00/rt2800usb.ko
317   AUTOLOAD:=$(call AutoLoad,28,rt2800usb)
318 endef
319
320 define KernelPackage/rtl818x/Default
321   $(call KernelPackage/mac80211/Default)
322   TITLE:=Realtek Drivers for RTL818x devices
323   URL:=http://wireless.kernel.org/en/users/Drivers/rtl8187
324   DEPENDS+= +kmod-eeprom-93cx6 +kmod-mac80211
325 endef
326
327 define KernelPackage/rtl8180
328   $(call KernelPackage/rtl818x/Default)
329   DEPENDS+= @PCI_SUPPORT
330   TITLE+= (RTL8180 PCI)
331   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8180/rtl8180.ko
332   AUTOLOAD:=$(call AutoLoad,27,rtl8180)
333 endef
334
335 define KernelPackage/rtl8187
336 $(call KernelPackage/rtl818x/Default)
337   DEPENDS+= @USB_SUPPORT +kmod-usb-core
338   TITLE+= (RTL8187 USB)
339   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rtl818x/rtl8187/rtl8187.ko
340   AUTOLOAD:=$(call AutoLoad,27,rtl8187)
341 endef
342
343 ZD1211FW_NAME:=zd1211-firmware
344 ZD1211FW_VERSION:=1.4
345 define Download/zd1211rw
346   FILE:=$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
347   URL:=@SF/zd1211/
348   MD5SUM:=19f28781d76569af8551c9d11294c870
349 endef
350 $(eval $(call Download,zd1211rw))
351
352 define KernelPackage/zd1211rw
353   $(call KernelPackage/mac80211/Default)
354   TITLE:=Zydas ZD1211 support
355   DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-mac80211
356   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/zd1211rw/zd1211rw.ko
357   AUTOLOAD:=$(call AutoLoad,60,zd1211rw)
358 endef
359
360 define KernelPackage/ath/config
361         menu "Configuration"
362                 depends on PACKAGE_kmod-ath
363
364         config ATH_USER_REGD
365                 bool "Force Atheros drivers to respect the user's regdomain settings"
366                 help
367                   Atheros' idea of regulatory handling is that the EEPROM of the card defines
368                   the regulatory limits and the user is only allowed to restrict the settings
369                   even further, even if the country allows frequencies or power levels that
370                   are forbidden by the EEPROM settings.
371
372                   Select this option if you want the driver to respect the user's decision about
373                   regulatory settings.
374
375         config PACKAGE_ATH_DEBUG
376                 bool "Atheros wireless debugging"
377                 help
378                   Say Y, if you want to debug atheros wireless drivers.
379                   Right now only ath9k makes use of this.
380
381         endmenu
382 endef
383
384 define KernelPackage/ath
385   $(call KernelPackage/mac80211/Default)
386   TITLE:=Atheros common driver part
387   DEPENDS+= @PCI_SUPPORT||USB_SUPPORT||TARGET_ar71xx +kmod-mac80211
388   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath.ko
389   AUTOLOAD:=$(call AutoLoad,26,ath)
390   MENU:=1
391 endef
392
393 define KernelPackage/ath/description
394  This module contains some common parts needed by Atheros Wireless drivers.
395 endef
396
397 define KernelPackage/ath5k
398   $(call KernelPackage/mac80211/Default)
399   TITLE:=Atheros 5xxx wireless cards support
400   URL:=http://linuxwireless.org/en/users/Drivers/ath5k
401   DEPENDS+= @PCI_SUPPORT||@TARGET_atheros +kmod-ath
402   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath5k/ath5k.ko
403   AUTOLOAD:=$(call AutoLoad,27,ath5k)
404 endef
405
406 define KernelPackage/ath5k/description
407  This module adds support for wireless adapters based on
408  Atheros 5xxx chipset.
409 endef
410
411 define KernelPackage/ath9k-common
412   $(call KernelPackage/mac80211/Default)
413   TITLE:=Atheros 802.11n wireless devices (common code for ath9k and ath9k_htc)
414   URL:=http://linuxwireless.org/en/users/Drivers/ath9k
415   DEPENDS+= @PCI_SUPPORT||TARGET_ar71xx +kmod-ath +@DRIVER_11N_SUPPORT
416   FILES:= \
417         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_common.ko \
418         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_hw.ko
419   AUTOLOAD:=$(call AutoLoad,27,ath9k_hw ath9k_common)
420 endef
421
422 define KernelPackage/ath9k
423   $(call KernelPackage/mac80211/Default)
424   TITLE:=Atheros 802.11n PCI wireless cards support
425   URL:=http://linuxwireless.org/en/users/Drivers/ath9k
426   DEPENDS+= @PCI_SUPPORT||TARGET_ar71xx +kmod-ath9k-common
427   FILES:= \
428         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k.ko
429   AUTOLOAD:=$(call AutoLoad,28,ath9k)
430 endef
431
432 define KernelPackage/ath9k/description
433 This module adds support for wireless adapters based on
434 Atheros IEEE 802.11n AR5008 and AR9001 family of chipsets.
435 endef
436
437 define KernelPackage/ath9k-htc
438   $(call KernelPackage/mac80211/Default)
439   TITLE:=Atheros 802.11n USB device support
440   URL:=http://linuxwireless.org/en/users/Drivers/ath9k
441   DEPENDS+= @USB_SUPPORT +kmod-ath9k-common +kmod-usb-core
442   FILES:= \
443         $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath9k/ath9k_htc.ko
444   AUTOLOAD:=$(call AutoLoad,55,ath9k_htc)
445 endef
446
447 define KernelPackage/ath9k-htc/description
448 This module adds support for wireless adapters based on
449 Atheros USB AR9271 and AR7010 family of chipsets.
450 endef
451
452 define KernelPackage/carl9170
453   $(call KernelPackage/mac80211/Default)
454   TITLE:=Driver for Atheros AR9170 USB sticks
455   DEPENDS:=@USB_SUPPORT +kmod-mac80211 +kmod-ath +kmod-usb-core +@DRIVER_11N_SUPPORT
456   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/carl9170/carl9170.ko
457   AUTOLOAD:=$(call AutoLoad,60,carl9170)
458 endef
459
460 define KernelPackage/carl9170/install
461         $(INSTALL_DIR) $(1)/lib/firmware
462         $(INSTALL_DATA) $(DL_DIR)/$(CARL9170_FW)-$(CARL9170_FW_VERSION) $(1)/lib/firmware/$(CARL9170_FW)
463 endef
464
465 define KernelPackage/lib80211
466   $(call KernelPackage/mac80211/Default)
467   TITLE:=802.11 Networking stack
468   FILES:= \
469         $(PKG_BUILD_DIR)/net/wireless/lib80211.ko \
470         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_wep.ko \
471         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_ccmp.ko \
472         $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_tkip.ko
473   AUTOLOAD:=$(call AutoLoad,10, \
474         lib80211 \
475         lib80211_crypt_wep \
476         lib80211_crypt_ccmp \
477         lib80211_crypt_tkip \
478   )
479 endef
480
481 define KernelPackage/lib80211/description
482  Kernel modules for 802.11 Networking stack
483  Includes:
484  - lib80211
485  - lib80211_crypt_wep
486  - lib80211_crypt_tkip
487  - lib80211_crytp_ccmp
488 endef
489
490 define KernelPackage/libertas-usb
491   $(call KernelPackage/mac80211/Default)
492   DEPENDS+= @USB_SUPPORT +kmod-mac80211 +kmod-usb-core +kmod-lib80211
493   TITLE:=Marvell 88W8015 Wireless Driver
494   FILES:= \
495         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.ko \
496         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/usb8xxx.ko
497   AUTOLOAD:=$(call AutoLoad,27,libertas usb8xxx)
498 endef
499
500 define KernelPackage/libertas-sd
501   $(call KernelPackage/mac80211/Default)
502   DEPENDS+= +kmod-mac80211 +kmod-lib80211 +@DRIVER_WEXT_SUPPORT @!LINUX_2_6_30
503   TITLE:=Marvell 88W8686 Wireless Driver
504   FILES:= \
505         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas.ko \
506         $(PKG_BUILD_DIR)/drivers/net/wireless/libertas/libertas_sdio.ko
507   AUTOLOAD:=$(call AutoLoad,91,libertas libertas_sdio)
508 endef
509
510 define KernelPackage/mac80211-hwsim
511   $(call KernelPackage/mac80211/Default)
512   TITLE:=mac80211 HW simulation device
513   DEPENDS+= +kmod-mac80211
514   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.ko
515   AUTOLOAD:=$(call AutoLoad,60,mac80211_hwsim)
516 endef
517
518 define KernelPackage/net-libipw
519   $(call KernelPackage/mac80211/Default)
520   TITLE:=libipw for ipw2100 and ipw2200
521   DEPENDS:=@PCI_SUPPORT +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-aes +kmod-crypto-michael-mic +kmod-lib80211 +kmod-cfg80211
522   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/libipw.ko
523   AUTOLOAD:=$(call AutoLoad,49,libipw)
524 endef
525
526 define KernelPackage/net-libipw/description
527  Hardware independent IEEE 802.11 networking stack for ipw2100 and ipw2200.
528 endef
529
530 IPW2100_NAME:=ipw2100-fw
531 IPW2100_VERSION:=1.3
532
533 define Download/net-ipw2100
534   URL:=http://bughost.org/firmware/
535   FILE:=$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
536   MD5SUM=46aa75bcda1a00efa841f9707bbbd113
537 endef
538 $(eval $(call Download,net-ipw2100))
539
540 define KernelPackage/net-ipw2100
541   $(call KernelPackage/mac80211/Default)
542   TITLE:=Intel IPW2100 driver
543   DEPENDS:=@PCI_SUPPORT +kmod-net-libipw
544   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/ipw2100.ko
545   AUTOLOAD:=$(call AutoLoad,50,ipw2100)
546 endef
547
548 define KernelPackage/net-ipw2100/description
549  Kernel support for Intel IPW2100
550  Includes:
551  - ipw2100
552 endef
553
554 IPW2200_NAME:=ipw2200-fw
555 IPW2200_VERSION:=3.1
556
557 define Download/net-ipw2200
558   URL:=http://bughost.org/firmware/
559   FILE:=$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
560   MD5SUM=eaba788643c7cc7483dd67ace70f6e99
561 endef
562 $(eval $(call Download,net-ipw2200))
563
564 define KernelPackage/net-ipw2200
565   $(call KernelPackage/mac80211/Default)
566   TITLE:=Intel IPW2200 driver
567   DEPENDS:=@PCI_SUPPORT +kmod-net-libipw
568   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ipw2x00/ipw2200.ko
569   AUTOLOAD:=$(call AutoLoad,50,ipw2200)
570 endef
571
572 define KernelPackage/net-ipw2200/description
573  Kernel support for Intel IPW2200
574  Includes:
575  - ipw2200
576 endef
577
578
579 define KernelPackage/net-hermes
580   $(call KernelPackage/mac80211/Default)
581   TITLE:=Hermes 802.11b chipset support
582   DEPENDS:=@PCI_SUPPORT||PCMCIA_SUPPORT +kmod-cfg80211 +@DRIVER_WEXT_SUPPORT
583   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco.ko
584   AUTOLOAD:=$(call AutoLoad,50,orinoco)
585 endef
586
587 define KernelPackage/net-hermes/description
588  Kernel support for Hermes 802.11b chipsets
589 endef
590
591 define KernelPackage/net-hermes-pci
592   $(call KernelPackage/mac80211/Default)
593   TITLE:=Intersil Prism 2.5 PCI support
594   DEPENDS:=@PCI_SUPPORT +kmod-net-hermes +kmod-cfg80211
595   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_pci.ko
596   AUTOLOAD:=$(call AutoLoad,55,orinoco_pci)
597 endef
598
599 define KernelPackage/net-hermes-pci/description
600  Kernel modules for Intersil Prism 2.5 PCI support
601 endef
602
603 define KernelPackage/net-hermes-plx
604   $(call KernelPackage/mac80211/Default)
605   TITLE:=PLX9052 based PCI adaptor
606   DEPENDS:=@PCI_SUPPORT +kmod-net-hermes +kmod-cfg80211
607   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_plx.ko
608   AUTOLOAD:=$(call AutoLoad,55,orinoco_plx)
609 endef
610
611 define KernelPackage/net-hermes-plx/description
612  Kernel modules for Hermes in PLX9052 based PCI adaptors
613 endef
614
615 define KernelPackage/net-hermes-pcmcia
616   $(call KernelPackage/mac80211/Default)
617   TITLE:=Hermes based PCMCIA adaptors
618   DEPENDS:=@PCMCIA_SUPPORT +kmod-net-hermes +kmod-cfg80211 @BROKEN
619   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/orinoco/orinoco_cs.ko
620   AUTOLOAD:=$(call AutoLoad,55,orinoco_cs)
621 endef
622
623 define KernelPackage/net-hermes-pcmcia/description
624  Kernel modules for Hermes based PCMCIA adaptors
625 endef
626
627 define KernelPackage/iwlagn
628   $(call KernelPackage/mac80211/Default)
629   DEPENDS:= +kmod-mac80211 @PCI_SUPPORT
630   TITLE:=Intel AGN Wireless support
631   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlwifi/iwlagn.$(LINUX_KMOD_SUFFIX)
632   AUTOLOAD:=$(call AutoLoad,60,iwlagn)
633   MENU:=1
634 endef
635
636 define KernelPackage/iwlagn/description
637  iwlagn kernel module for Intel 5000/5150/1000/6000/6050/6005/6030/100 support
638 endef
639
640 define KernelPackage/iwlagn/config
641         menu "Configuration"
642                 depends on PACKAGE_kmod-iwlagn
643
644         config IWL5000_FW
645                 bool "Intel 5000 Firmware"
646                 default y
647                 help
648                   Download and install firmware for:
649                     Intel 5000 wireless card into /lib/firmware.
650
651         config IWL5150_FW
652                 bool "Intel 5150 Firmware"
653                 default y
654                 help
655                   Download and install firmware for:
656                     Intel 5150 wireless card into /lib/firmware.
657
658         config IWL1000_FW
659                 bool "Intel 1000 Firmware"
660                 default y
661                 help
662                   Download and install firmware for:
663                     Intel 1000 wireless card into /lib/firmware.
664
665         config IWL6000_FW
666                 bool "Intel 6000 Firmware"
667                 default y
668                 help
669                   Download and install firmware for:
670                     Intel 6000 wireless card into /lib/firmware.
671
672         config IWL6050_FW
673                 bool "Intel 6050 Firmware"
674                 default y
675                 help
676                   Download and install firmware for:
677                     Intel 6050 wireless card into /lib/firmware.
678
679         config IWL6005_FW
680                 bool "Intel 6005 Firmware"
681                 default y
682                 help
683                   Download and install firmware for:
684                     Intel 6005 wireless card into /lib/firmware.
685
686         config IWL6030_FW
687                 bool "Intel 6030 Firmware"
688                 default y
689                 help
690                   Download and install firmware for:
691                     Intel 6030 wireless card into /lib/firmware.
692
693         config IWL100_FW
694                 bool "Intel 100 Firmware"
695                 default y
696                 help
697                   Download and install firmware for:
698                     Intel 100 wireless card into /lib/firmware.
699
700         endmenu
701 endef
702
703 define KernelPackage/iwl-legacy
704   $(call KernelPackage/mac80211/Default)
705   DEPENDS:= +kmod-mac80211 @PCI_SUPPORT
706   TITLE:=Intel legacy Wireless support
707   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlegacy/iwl-legacy.$(LINUX_KMOD_SUFFIX)
708   AUTOLOAD:=$(call AutoLoad,60,iwl-legacy)
709 endef
710
711 define KernelPackage/iwl-legacy/description
712  iwl-legacy kernel module for legacy Intel wireless support
713 endef
714
715 define KernelPackage/iwl3945
716   $(call KernelPackage/mac80211/Default)
717   DEPENDS:= +kmod-mac80211 +kmod-iwl-legacy
718   TITLE:=Intel iwl3945 Wireless support
719   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlegacy/iwl3945.$(LINUX_KMOD_SUFFIX)
720   AUTOLOAD:=$(call AutoLoad,61,iwl3945)
721 endef
722
723 define KernelPackage/iwl3945/description
724  iwl3945 kernel module for Intel 3945 support
725 endef
726
727 define KernelPackage/iwl4965
728   $(call KernelPackage/mac80211/Default)
729   DEPENDS:= +kmod-mac80211 +kmod-iwl-legacy
730   TITLE:=Intel iwl4965 Wireless support
731   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlegacy/iwl4965.$(LINUX_KMOD_SUFFIX)
732   AUTOLOAD:=$(call AutoLoad,61,iwl4965)
733 endef
734
735 define KernelPackage/iwl4965/description
736  iwl4965 kernel module for Intel 4965 support
737 endef
738
739
740 define KernelPackage/mwl8k
741   $(call KernelPackage/mac80211/Default)
742   TITLE:=Driver for Marvell TOPDOG 802.11 Wireless cards
743   URL:=http://wireless.kernel.org/en/users/Drivers/mwl8k
744   DEPENDS+= @PCI_SUPPORT +kmod-mac80211
745   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mwl8k.ko
746   AUTOLOAD:=$(call AutoLoad,27,mwl8k)
747 endef
748
749 define KernelPackage/mwl8k/description
750  Kernel modules for Marvell TOPDOG 802.11 Wireless cards
751 endef
752
753 #Broadcom firmware
754 ifneq ($(CONFIG_B43_FW_5_10),)
755   PKG_B43_FWV4_NAME:=broadcom-wl
756   PKG_B43_FWV4_VERSION:=5.10.56.27.3
757   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/driver/wl_apsta/wl_prebuilt.o
758   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)_mipsel.tar.bz2
759   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
760   PKG_B43_FWV4_MD5SUM:=3363e3a6b3d9d73c49dea870c7834eac
761 else
762 ifneq ($(CONFIG_B43_FW_4_178),)
763   PKG_B43_FWV4_NAME:=broadcom-wl
764   PKG_B43_FWV4_VERSION:=4.178.10.4
765   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/linux/wl_apsta.o
766   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
767   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
768   PKG_B43_FWV4_MD5SUM:=14477e8cbbb91b11896affac9b219fdb
769 else
770   PKG_B43_FWV4_NAME:=broadcom-wl
771   PKG_B43_FWV4_VERSION:=4.150.10.5
772   PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/driver/wl_apsta_mimo.o
773   PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
774   PKG_B43_FWV4_SOURCE_URL:=http://mirror2.openwrt.org/sources/
775   PKG_B43_FWV4_MD5SUM:=0c6ba9687114c6b598e8019e262d9a60
776 endif
777 endif
778 ifneq ($(CONFIG_B43_OPENFIRMWARE),)
779   PKG_B43_FWV4_NAME:=broadcom-wl
780   PKG_B43_FWV4_VERSION:=5.2
781   PKG_B43_FWV4_OBJECT:=openfwwf-$(PKG_B43_FWV4_VERSION)
782   PKG_B43_FWV4_SOURCE:=openfwwf-$(PKG_B43_FWV4_VERSION).tar.gz
783   PKG_B43_FWV4_SOURCE_URL:=http://www.ing.unibs.it/openfwwf/firmware/
784   PKG_B43_FWV4_MD5SUM:=e045a135453274e439ae183f8498b0fa
785 endif
786
787
788 PKG_B43_FWV3_NAME:=wl_apsta
789 PKG_B43_FWV3_VERSION:=3.130.20.0
790 PKG_B43_FWV3_SOURCE:=$(PKG_B43_FWV3_NAME)-$(PKG_B43_FWV3_VERSION).o
791 PKG_B43_FWV3_SOURCE_URL:=http://downloads.openwrt.org/sources/
792 PKG_B43_FWV3_MD5SUM:=e08665c5c5b66beb9c3b2dd54aa80cb3
793
794 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
795   PKG_B43_FWCUTTER_NAME:=b43-fwcutter
796   PKG_B43_FWCUTTER_VERSION:=3e69531aa65b8f664a0ab00dfc3e2eefeb0cb417
797   PKG_B43_FWCUTTER_SOURCE:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION).tar.bz2
798   PKG_B43_FWCUTTER_PROTO:=git
799   PKG_B43_FWCUTTER_SOURCE_URL:=http://git.bu3sch.de/git/b43-tools.git
800   PKG_B43_FWCUTTER_SUBDIR:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)
801   PKG_B43_FWCUTTER_OBJECT:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)/fwcutter/
802 else
803   PKG_B43_FWCUTTER_NAME:=b43-fwcutter
804   PKG_B43_FWCUTTER_VERSION:=014
805   PKG_B43_FWCUTTER_SOURCE:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION).tar.bz2
806   PKG_B43_FWCUTTER_PROTO:=default
807   PKG_B43_FWCUTTER_SOURCE_URL:=http://bu3sch.de/b43/fwcutter/
808   PKG_B43_FWCUTTER_MD5SUM:=dd63f9149510bd6e01b89314e955083b
809   PKG_B43_FWCUTTER_SUBDIR:=b43-fwcutter-$(PKG_B43_FWCUTTER_VERSION)
810   PKG_B43_FWCUTTER_OBJECT:=$(PKG_B43_FWCUTTER_NAME)-$(PKG_B43_FWCUTTER_VERSION)/
811 endif
812
813 define Download/b43-common
814   FILE:=$(PKG_B43_FWCUTTER_SOURCE)
815   URL:=$(PKG_B43_FWCUTTER_SOURCE_URL)
816   MD5SUM:=$(PKG_B43_FWCUTTER_MD5SUM)
817   PROTO:=$(PKG_B43_FWCUTTER_PROTO)
818   VERSION:=$(PKG_B43_FWCUTTER_VERSION)
819   SUBDIR:=$(PKG_B43_FWCUTTER_SUBDIR)
820 endef
821 $(eval $(call Download,b43-common))
822
823 define Download/b43
824   FILE:=$(PKG_B43_FWV4_SOURCE)
825   URL:=$(PKG_B43_FWV4_SOURCE_URL)
826   MD5SUM:=$(PKG_B43_FWV4_MD5SUM)
827 endef
828 $(eval $(call Download,b43))
829
830 define Download/b43legacy
831   FILE:=$(PKG_B43_FWV3_SOURCE)
832   URL:=$(PKG_B43_FWV3_SOURCE_URL)
833   MD5SUM:=$(PKG_B43_FWV3_MD5SUM)
834 endef
835 $(eval $(call Download,b43legacy))
836
837 define KernelPackage/b43-common
838   $(call KernelPackage/mac80211/Default)
839   TITLE:=Generic stuff for Broadcom wireless devices
840   URL:=http://linuxwireless.org/en/users/Drivers/b43
841   KCONFIG:= \
842         CONFIG_HW_RANDOM=y
843   DEPENDS+= +kmod-mac80211 +!(TARGET_brcm47xx||TARGET_brcm63xx):kmod-ssb
844 endef
845
846 define KernelPackage/b43
847 $(call KernelPackage/b43-common)
848   TITLE:=Broadcom 43xx wireless support
849   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43/b43.ko
850   AUTOLOAD:=$(call AutoLoad,30,b43)
851   MENU:=1
852 endef
853
854 define KernelPackage/b43/config
855         menu "Configuration"
856                 depends on PACKAGE_kmod-b43
857
858         choice
859                 prompt "b43 firmware version"
860                 default B43_FW_5_10
861                 help
862                   This option allows you to select the version of the b43 firmware.
863
864         config B43_FW_4_150
865                 bool "Firmware 410.2160 from driver 4.150.10.5 (stable)"
866                 help
867                   Stable firmware for BCM43xx devices.
868
869                   If unsure, select this.
870
871         config B43_FW_4_178
872                 bool "Firmware 478.104 from driver 4.178.10.4"
873                 help
874                   Experimental firmware for BCM43xx devices.
875
876                   This firmware is not tested as much as the "stable" firmware.
877
878                   If unsure, select the "stable" firmware.
879
880         config B43_FW_5_10
881                 bool "Firmware 508.1084 from driver 5.10.56.27"
882                 help
883                   Newer experimental firmware for BCM43xx devices.
884
885                   This firmware is mostly untested. It is needed for some N-PHY devices.
886
887                   If unsure, select the "stable" firmware.
888
889         config B43_OPENFIRMWARE
890                 bool "Open FirmWare for WiFi networks"
891                 help
892                   Opensource firmware for BCM43xx devices.
893
894                   Do _not_ select this, unless you know what you are doing.
895                   The Opensource firmware is not suitable for embedded devices, yet.
896                   It does not support QoS, which is bad for AccessPoints.
897                   It does not support hardware crypto acceleration, which is a showstopper
898                   for embedded devices with low CPU resources.
899
900                   If unsure, select the "stable" firmware.
901
902         endchoice
903
904         config B43_FW_SQUASH
905                 bool "Remove unnecessary firmware files"
906                 depends on !B43_OPENFIRMWARE
907                 default y
908                 help
909                   This options allows you to remove unnecessary b43 firmware files
910                   from the final rootfs image. This can reduce the rootfs size by
911                   up to 200k.
912
913                   If unsure, say Y.
914
915         config B43_FW_SQUASH_COREREVS
916                 string "Core revisions to include"
917                 depends on B43_FW_SQUASH
918                 default "5,6,7,8,9,10,13,14,15"
919                 help
920                   This is a comma seperated list of core revision numbers.
921
922                   Example (keep files for rev5 only):
923                     5
924
925                   Example (keep files for rev5 and rev11):
926                     5,11
927
928         config B43_FW_SQUASH_PHYTYPES
929                 string "PHY types to include"
930                 depends on B43_FW_SQUASH
931                 default "G,LP"
932                 help
933                   This is a comma seperated list of PHY types:
934                     A  => A-PHY
935                     AG => Dual A-PHY G-PHY
936                     G  => G-PHY
937                     LP => LP-PHY
938                     N  => N-PHY
939
940                   Example (keep files for G-PHY only):
941                     G
942
943                   Example (keep files for G-PHY and N-PHY):
944                     G,N
945
946         config PACKAGE_B43_DEBUG
947                 bool "Enable debug output and debugfs for b43"
948                 default n
949                 help
950                   Enable additional debug output and runtime sanity checks for b43
951                   and enables the debugfs interface.
952
953                   If unsure, say N.
954
955         config PACKAGE_B43_PIO
956                 bool "Enable support for PIO transfer mode"
957                 depends BROKEN
958                 default n
959                 help
960                   Enable support for using PIO instead of DMA. Unless you have DMA
961                   transfer problems you don't need this.
962
963                   If unsure, say N.
964
965         config PACKAGE_B43_PHY_N
966                 bool "Enable support for N-PHYs"
967                 select B43_FW_5_10
968                 depends BROKEN
969                 default n
970                 help
971                   Enable support for BCM4321 and BCM4322.
972
973                   Currently only 11g speed is available.
974
975                   If unsure, say N.
976
977         endmenu
978 endef
979
980 define KernelPackage/b43/description
981 Kernel module for Broadcom 43xx wireless support (mac80211 stack) new
982 endef
983
984 define KernelPackage/b43legacy
985 $(call KernelPackage/b43-common)
986   TITLE:=Broadcom 43xx-legacy wireless support
987   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/b43legacy/b43legacy.ko
988   AUTOLOAD:=$(call AutoLoad,30,b43legacy)
989   MENU:=1
990 endef
991
992 define KernelPackage/b43legacy/config
993         menu "Configuration"
994                 depends on PACKAGE_kmod-b43legacy
995
996         config B43LEGACY_FW_SQUASH
997                 bool "Remove unnecessary firmware files"
998                 default y
999                 help
1000                   This options allows you to remove unnecessary b43legacy firmware files
1001                   from the final rootfs image. This can reduce the rootfs size by
1002                   up to 50k.
1003
1004                   If unsure, say Y.
1005
1006         config B43LEGACY_FW_SQUASH_COREREVS
1007                 string "Core revisions to include"
1008                 depends on B43LEGACY_FW_SQUASH
1009                 default "1,2,3,4"
1010                 help
1011                   This is a comma seperated list of core revision numbers.
1012
1013                   Example (keep files for rev4 only):
1014                     4
1015
1016                   Example (keep files for rev2 and rev4):
1017                     2,4
1018
1019         endmenu
1020 endef
1021
1022 define KernelPackage/b43legacy/description
1023 Kernel module for Broadcom 43xx-legacy wireless support (mac80211 stack) new
1024 endef
1025
1026 BUILDFLAGS:= \
1027         -I$(PKG_BUILD_DIR)/include \
1028         $(foreach opt,$(CONFOPTS),-DCONFIG_$(opt)) \
1029         $(if $(CONFIG_PCI),-DCONFIG_B43_PCI_AUTOSELECT -DCONFIG_B43_PCICORE_AUTOSELECT) \
1030         $(if $(CONFIG_LEDS_TRIGGERS), -DCONFIG_MAC80211_LEDS -DCONFIG_LEDS_TRIGGERS -DCONFIG_B43_LEDS -DCONFIG_B43LEGACY_LEDS) \
1031         -DCONFIG_B43_HWRNG -DCONFIG_B43LEGACY_HWRNG \
1032         $(if $(CONFIG_PCI),-DCONFIG_ATH9K_PCI) \
1033         $(if $(CONFIG_TARGET_ar71xx),-DCONFIG_ATH9K_AHB) \
1034         $(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS), -DCONFIG_CFG80211_DEBUGFS -DCONFIG_MAC80211_DEBUGFS -DCONFIG_ATH9K_DEBUGFS -DCONFIG_CARL9170_DEBUGFS -DCONFIG_ATH9K_HTC_DEBUGFS -DCONFIG_ATH5K_DEBUG) \
1035         $(if $(CONFIG_PACKAGE_ATH_DEBUG),-DCONFIG_ATH_DEBUG -DCONFIG_ATH9K_PKTLOG) \
1036         -D__CONFIG_MAC80211_RC_DEFAULT=minstrel \
1037         -DCONFIG_MAC80211_RC_MINSTREL_HT \
1038         $(if $(CONFIG_ATH_USER_REGD),-DATH_USER_REGD=1) \
1039         $(if $(CONFIG_PACKAGE_B43_DEBUG),-DCONFIG_B43_DEBUG) \
1040         $(if $(CONFIG_PACKAGE_B43_PIO),-DCONFIG_B43_PIO) \
1041         $(if $(CONFIG_PACKAGE_B43_PHY_N),-DCONFIG_B43_PHY_N) \
1042         -DCONFIG_B43_SSB \
1043         $(if $(CONFIG_PACKAGE_RT2X00_LIB_DEBUGFS),-DCONFIG_RT2X00_LIB_DEBUGFS) \
1044         $(if $(CONFIG_PACKAGE_RT2X00_DEBUG),-DCONFIG_RT2X00_DEBUG) \
1045         $(if $(NEED_RT2X00_LIB_HT),-DCONFIG_RT2X00_LIB_HT) \
1046         $(if $(NEED_RT2X00_LIB_CRYPTO),-DCONFIG_RT2X00_LIB_CRYPTO) \
1047         $(if $(NEED_RT2X00_LIB_FIRMWARE),-DCONFIG_RT2X00_LIB_FIRMWARE) \
1048         $(if $(NEED_RT2X00_LIB_EEPROM),-DCONFIG_RT2X00_LIB_EEPROM) \
1049         $(if $(NEED_RT2X00_LIB_LEDS),-DCONFIG_RT2X00_LIB_LEDS) \
1050         $(if $(CONFIG_PACKAGE_kmod-rt2x00-pci),-DCONFIG_RT2X00_LIB_PCI) \
1051         $(if $(CONFIG_PACKAGE_kmod-rt2x00-usb),-DCONFIG_RT2X00_LIB_USB) \
1052         $(if $(CONFIG_PACKAGE_kmod-rt2x00-soc),-DCONFIG_RT2X00_LIB_SOC) \
1053         $(if $(CONFIG_TARGET_atheros),-DCONFIG_ATH5K_AHB,-DCONFIG_ATH5K_PCI) \
1054         $(if $(CONFIG_PACKAGE_kmod-iwl3945),-DCONFIG_IWL3945) \
1055         $(if $(CONFIG_PACKAGE_kmod-iwl4965),-DCONFIG_COMPAT_IWL4965)
1056
1057 MAKE_OPTS:= \
1058         CROSS_COMPILE="$(KERNEL_CROSS)" \
1059         ARCH="$(LINUX_KARCH)" \
1060         EXTRA_CFLAGS="$(BUILDFLAGS)" \
1061         $(foreach opt,$(CONFOPTS),CONFIG_$(opt)=m) \
1062         CONFIG_MAC80211=$(if $(CONFIG_PACKAGE_kmod-mac80211),m) \
1063         CONFIG_MAC80211_RC_MINSTREL=y \
1064         CONFIG_MAC80211_LEDS=$(CONFIG_LEDS_TRIGGERS) \
1065         CONFIG_CFG80211_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1066         CONFIG_MAC80211_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1067         CONFIG_B43_PCMCIA=n CONFIG_B43_PIO=n \
1068         CONFIG_B43_PCI_AUTOSELECT=$(if $(CONFIG_PCI),y) \
1069         CONFIG_B43_PCICORE_AUTOSELECT=$(if $(CONFIG_PCI),y) \
1070         CONFIG_B43LEGACY_LEDS=$(CONFIG_LEDS_TRIGGERS) \
1071         CONFIG_B43_LEDS=$(CONFIG_LEDS_TRIGGERS) \
1072         CONFIG_B43_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \
1073         CONFIG_B43LEGACY_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \
1074         CONFIG_B43=$(if $(CONFIG_PACKAGE_kmod-b43),m) \
1075         CONFIG_B43LEGACY=$(if $(CONFIG_PACKAGE_kmod-b43legacy),m) \
1076         CONFIG_B43_DEBUG=$(if $(CONFIG_PACKAGE_B43_DEBUG),y) \
1077         CONFIG_B43_PIO=$(if $(CONFIG_PACKAGE_B43_PIO),y) \
1078         CONFIG_B43_PHY_N=$(if $(CONFIG_PACKAGE_B43_PHY_N),y) \
1079         CONFIG_B43_SSB=y \
1080         CONFIG_ATH_COMMON=$(if $(CONFIG_PACKAGE_kmod-ath),m) \
1081         CONFIG_ATH_DEBUG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \
1082         CONFIG_ATH9K_PKTLOG=$(if $(CONFIG_PACKAGE_ATH_DEBUG),y) \
1083         CONFIG_ATH5K=$(if $(CONFIG_PACKAGE_kmod-ath5k),m) \
1084         CONFIG_ATH5K_PCI=$(if $(CONFIG_TARGET_atheros),,y) \
1085         CONFIG_ATH5K_AHB=$(if $(CONFIG_TARGET_atheros),y) \
1086         CONFIG_ATH5K_DEBUG=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1087         CONFIG_ATH9K=$(if $(CONFIG_PACKAGE_kmod-ath9k),m) \
1088         CONFIG_ATH9K_PCI=$(CONFIG_PCI) \
1089         CONFIG_ATH9K_AHB=$(if $(CONFIG_TARGET_ar71xx),y) \
1090         CONFIG_ATH9K_HTC=$(if $(CONFIG_PACKAGE_kmod-ath9k-htc),m) \
1091         CONFIG_ATH9K_HTC_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1092         CONFIG_ATH9K_HW=$(if $(CONFIG_PACKAGE_kmod-ath9k-common),m) \
1093         CONFIG_ATH9K_COMMON=$(if $(CONFIG_PACKAGE_kmod-ath9k-common),m) \
1094         CONFIG_ATH9K_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1095         CONFIG_CARL9170=$(if $(CONFIG_PACKAGE_kmod-carl9170),m) \
1096         CONFIG_CARL9170_DEBUGFS=$(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS),y) \
1097         CONFIG_COMPAT_ZD1211RW=$(if $(CONFIG_PACKAGE_kmod-zd1211rw),m) \
1098         CONFIG_P54_COMMON=$(if $(CONFIG_PACKAGE_kmod-p54-common),m) \
1099         CONFIG_P54_PCI=$(if $(CONFIG_PACKAGE_kmod-p54-pci),m) \
1100         CONFIG_P54_USB=$(if $(CONFIG_PACKAGE_kmod-p54-usb),m) \
1101         CONFIG_P54_SPI=$(if $(CONFIG_PACKAGE_kmod-p54-spi),m) \
1102         CONFIG_P54_SPI_DEFAULT_EEPROM=n \
1103         CONFIG_RT2X00=$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),m) \
1104         CONFIG_RT2X00_LIB=$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),m) \
1105         CONFIG_RT2X00_LIB_PCI=$(if $(CONFIG_PACKAGE_kmod-rt2x00-pci),m) \
1106         CONFIG_RT2X00_LIB_USB=$(if $(CONFIG_PACKAGE_kmod-rt2x00-usb),m) \
1107         CONFIG_RT2X00_LIB_SOC=$(if $(CONFIG_PACKAGE_kmod-rt2x00-soc),m) \
1108         CONFIG_RT2X00_LIB_DEBUGFS=$(CONFIG_PACKAGE_RT2X00_LIB_DEBUGFS) \
1109         CONFIG_RT2X00_LIB_CRYPTO=$(NEED_RT2X00_LIB_CRYPTO) \
1110         CONFIG_RT2X00_LIB_FIRMWARE=$(NEED_RT2X00_LIB_FIRMWARE) \
1111         CONFIG_RT2X00_LIB_EEPROM=$(NEED_RT2X00_LIB_EEPROM) \
1112         CONFIG_RT2X00_LIB_HT=$(NEED_RT2X00_LIB_HT) \
1113         CONFIG_RT2X00_LIB_LEDS=$(NEED_RT2X00_LIB_LEDS) \
1114         CONFIG_RT2400PCI=$(if $(CONFIG_PACKAGE_kmod-rt2400-pci),m) \
1115         CONFIG_RT2500PCI=$(if $(CONFIG_PACKAGE_kmod-rt2500-pci),m) \
1116         CONFIG_RT2500USB=$(if $(CONFIG_PACKAGE_kmod-rt2500-usb),m) \
1117         CONFIG_RT61PCI=$(if $(CONFIG_PACKAGE_kmod-rt61-pci),m) \
1118         CONFIG_RT73USB=$(if $(CONFIG_PACKAGE_kmod-rt73-usb),m) \
1119         CONFIG_RT2800_LIB=$(if $(CONFIG_PACKAGE_kmod-rt2800-lib),m) \
1120         CONFIG_RT2800PCI=$(if $(CONFIG_PACKAGE_kmod-rt2800-pci),m) \
1121         CONFIG_RT2800USB=$(if $(CONFIG_PACKAGE_kmod-rt2800-usb),m) \
1122         CONFIG_RTL8180=$(if $(CONFIG_PACKAGE_kmod-rtl8180),m) \
1123         CONFIG_RTL8187=$(if $(CONFIG_PACKAGE_kmod-rtl8187),m) \
1124         CONFIG_RTL8192CE= \
1125         CONFIG_RTLWIFI= \
1126         CONFIG_MAC80211_HWSIM=$(if $(CONFIG_PACKAGE_kmod-mac80211-hwsim),m) \
1127         CONFIG_PCMCIA= \
1128         CONFIG_LIBIPW=$(if $(CONFIG_PACKAGE_kmod-net-libipw),m) \
1129         CONFIG_LIBERTAS=$(if $(CONFIG_PACKAGE_kmod-libertas-sd)$(CONFIG_PACKAGE_kmod-libertas-usb),m) \
1130         CONFIG_LIBERTAS_CS= \
1131         CONFIG_LIBERTAS_SPI= \
1132         CONFIG_COMPAT_LIBERTAS_SDIO=$(if $(CONFIG_PACKAGE_kmod-libertas-sd),m) \
1133         CONFIG_LIBERTAS_THINFIRM= \
1134         CONFIG_LIBERTAS_USB=$(if $(CONFIG_PACKAGE_kmod-libertas-usb),m) \
1135         CONFIG_IPW2100=$(if $(CONFIG_PACKAGE_kmod-net-ipw2100),m) \
1136         CONFIG_IPW2200=$(if $(CONFIG_PACKAGE_kmod-net-ipw2200),m) \
1137         CONFIG_NL80211=y \
1138         CONFIG_LIB80211=$(if $(CONFIG_PACKAGE_kmod-lib80211),m) \
1139         CONFIG_LIB80211_CRYPT_WEP=$(if $(CONFIG_PACKAGE_kmod-lib80211),m) \
1140         CONFIG_LIB80211_CRYPT_CCMP=$(if $(CONFIG_PACKAGE_kmod-lib80211),m) \
1141         CONFIG_LIB80211_CRYPT_TKIP=$(if $(CONFIG_PACKAGE_kmod-lib80211),m) \
1142         CONFIG_IWLAGN=$(if $(CONFIG_PACKAGE_kmod-iwlagn),m) \
1143         CONFIG_IWLWIFI_LEGACY=$(if $(CONFIG_PACKAGE_kmod-iwl-legacy),m) \
1144         CONFIG_COMPAT_IWL4965=$(if $(CONFIG_PACKAGE_kmod-iwl4965),m) \
1145         CONFIG_IWL3945=$(if $(CONFIG_PACKAGE_kmod-iwl3945),m) \
1146         CONFIG_MWL8K=$(if $(CONFIG_PACKAGE_kmod-mwl8k),m) \
1147         CONFIG_ATMEL= \
1148         CONFIG_PCMCIA_ATMEL= \
1149         CONFIG_ADM8211= \
1150         CONFIG_USB_NET_RNDIS_HOST= \
1151         CONFIG_USB_NET_RNDIS_WLAN= \
1152         CONFIG_USB_NET_CDCETHER= \
1153         CONFIG_USB_USBNET= \
1154         CONFIG_AT76C50X_USB= \
1155         CONFIG_WL12XX= \
1156         CONFIG_EEPROM_93CX6= \
1157         CONFIG_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes),m) \
1158         CONFIG_HERMES_CACHE_FW_ON_INIT= \
1159         CONFIG_PCI_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes-pci),m) \
1160         CONFIG_PLX_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes-plx),m) \
1161         CONFIG_PCMCIA_HERMES=$(if $(CONFIG_PACKAGE_kmod-net-hermes-pcmcia),m) \
1162         CONFIG_HERMES_PRISM= \
1163         CONFIG_APPLE_AIRPORT= \
1164         CONFIG_TMD_HERMES= \
1165         CONFIG_NORTEL_HERMES= \
1166         CONFIG_PCMCIA_SPECTRUM= \
1167         CONFIG_ORINOCO_USB= \
1168         CONFIG_IWM= \
1169         CONFIG_MWIFIEX= \
1170         CONFIG_MAC80211_RC_MINSTREL_HT=y \
1171         MADWIFI= \
1172         CONFIG_B44= \
1173         CONFIG_ATL1= \
1174         CONFIG_ATL2= \
1175         CONFIG_ATL1E= \
1176         CONFIG_ATL1C= \
1177         KLIB_BUILD="$(LINUX_DIR)" \
1178         MODPROBE=: \
1179         KLIB=$(TARGET_MODULES_DIR) \
1180         KERNEL_SUBLEVEL=$(lastword $(subst ., ,$(KERNEL_PATCHVER))) \
1181         KBUILD_LDFLAGS_MODULE_PREREQ=
1182
1183 ifeq ($(CONFIG_PACKAGE_kmod-libertas-sd)$(CONFIG_PACKAGE_kmod-libertas-usb)$(CONFIG_PACKAGE_kmod-rt2x00-lib),)
1184   MAKE_OPTS += CONFIG_COMPAT_KFIFO=
1185 endif
1186
1187 define Build/Prepare
1188         rm -rf $(PKG_BUILD_DIR)
1189         mkdir -p $(PKG_BUILD_DIR)
1190         $(PKG_UNPACK)
1191         $(Build/Patch)
1192         $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
1193         $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
1194         $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
1195         $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(PKG_LINUX_FIRMWARE_SOURCE)
1196         rm -rf $(PKG_BUILD_DIR)/include/linux/ssb
1197         rm -f $(PKG_BUILD_DIR)/include/net/ieee80211.h
1198 endef
1199
1200 ifneq ($(CONFIG_PACKAGE_kmod-cfg80211),)
1201  define Build/Compile/kmod
1202         rm -rf $(PKG_BUILD_DIR)/modules
1203         $(MAKE) $(PKG_JOBS) -C "$(PKG_BUILD_DIR)" $(MAKE_OPTS) all
1204  endef
1205 endif
1206
1207 define Build/Compile
1208         $(call Build/Compile/kmod)
1209 endef
1210
1211 define Build/InstallDev
1212         mkdir -p \
1213                 $(1)/usr/include/mac80211 \
1214                 $(1)/usr/include/mac80211/ath \
1215                 $(1)/usr/include/net/mac80211
1216         $(CP) $(PKG_BUILD_DIR)/net/mac80211/*.h $(PKG_BUILD_DIR)/include/* $(1)/usr/include/mac80211/
1217         $(CP) $(PKG_BUILD_DIR)/net/mac80211/rate.h $(1)/usr/include/net/mac80211/
1218         $(CP) $(PKG_BUILD_DIR)/drivers/net/wireless/ath/*.h $(1)/usr/include/mac80211/ath/
1219 endef
1220
1221 define KernelPackage/libertas-usb/install
1222         $(INSTALL_DIR) $(1)/lib/firmware
1223         $(INSTALL_DATA) \
1224                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/usb8388_v9.bin \
1225                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/usb8388_v5.bin \
1226                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/usb8682.bin \
1227                 $(1)/lib/firmware/
1228 endef
1229
1230 define KernelPackage/libertas-sd/install
1231         $(INSTALL_DIR) $(1)/lib/firmware/libertas
1232         $(INSTALL_DATA) \
1233                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8385_helper.bin \
1234                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8385.bin \
1235                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8686_v9_helper.bin \
1236                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8686_v9.bin \
1237                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8686_v8_helper.bin \
1238                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8686_v8.bin \
1239                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8688_helper.bin \
1240                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/libertas/sd8688.bin \
1241                 $(1)/lib/firmware/libertas
1242 endef
1243
1244 define KernelPackage/cfg80211/install
1245         $(INSTALL_DIR) $(1)/lib/wifi
1246         $(INSTALL_DATA) ./files/lib/wifi/mac80211.sh $(1)/lib/wifi
1247 endef
1248
1249 define KernelPackage/p54-pci/install
1250         $(INSTALL_DIR) $(1)/lib/firmware
1251         $(INSTALL_DATA) $(DL_DIR)/$(P54PCIFW) $(1)/lib/firmware/isl3886pci
1252 endef
1253
1254 define KernelPackage/p54-usb/install
1255         $(INSTALL_DIR) $(1)/lib/firmware
1256         $(INSTALL_DATA) $(DL_DIR)/$(P54USBFW) $(1)/lib/firmware/isl3887usb
1257 endef
1258
1259 define KernelPackage/p54-spi/install
1260         $(INSTALL_DIR) $(1)/lib/firmware
1261         $(INSTALL_DATA) $(DL_DIR)/$(P54SPIFW) $(1)/lib/firmware/3826.arm
1262 endef
1263
1264 define KernelPackage/rt61-pci/install
1265         $(INSTALL_DIR) $(1)/lib/firmware
1266         $(INSTALL_DATA) \
1267                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2561.bin \
1268                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2561s.bin \
1269                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2661.bin \
1270                 $(1)/lib/firmware/
1271 endef
1272
1273 define KernelPackage/rt73-usb/install
1274         $(INSTALL_DIR) $(1)/lib/firmware
1275         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt73.bin $(1)/lib/firmware/
1276 endef
1277
1278 define KernelPackage/rt2800-pci/install
1279         $(INSTALL_DIR) $(1)/lib/firmware
1280         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2860.bin $(1)/lib/firmware/
1281 endef
1282
1283 define KernelPackage/rt2800-usb/install
1284         $(INSTALL_DIR) $(1)/lib/firmware
1285         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/rt2870.bin $(1)/lib/firmware/
1286 endef
1287
1288 define KernelPackage/zd1211rw/install
1289         $(INSTALL_DIR) $(1)/lib/firmware/zd1211
1290         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(ZD1211FW_NAME)/zd1211* $(1)/lib/firmware/zd1211
1291 endef
1292
1293 define KernelPackage/ath9k-htc/install
1294         $(INSTALL_DIR) $(1)/lib/firmware
1295         $(INSTALL_DATA) \
1296                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/htc_9271.fw \
1297                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/htc_7010.fw \
1298                 $(1)/lib/firmware/
1299 endef
1300
1301 define KernelPackage/mwl8k/install
1302         $(INSTALL_DIR) $(1)/lib/firmware
1303         $(INSTALL_DATA) \
1304                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/fmimage_8366_ap-2.fw \
1305                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/fmimage_8366.fw \
1306                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/helper_8366.fw \
1307                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/fmimage_8687.fw \
1308                 $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/mwl8k/helper_8687.fw \
1309                 $(1)/lib/firmware/
1310 endef
1311
1312 define KernelPackage/net-ipw2100/install
1313         $(INSTALL_DIR) $(1)/lib/firmware
1314         $(INSTALL_DATA) $(PKG_BUILD_DIR)/ipw2100-$(IPW2100_VERSION)*.fw $(1)/lib/firmware
1315 endef
1316
1317 define KernelPackage/net-ipw2200/install
1318         $(INSTALL_DIR) $(1)/lib/firmware
1319         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION)/ipw2200*.fw $(1)/lib/firmware
1320 endef
1321
1322 define KernelPackage/iwlagn/install
1323         $(INSTALL_DIR) $(1)/lib/firmware
1324 ifneq ($(CONFIG_IWL5000_FW),)
1325         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-5000-5.ucode $(1)/lib/firmware
1326 endif
1327 ifneq ($(CONFIG_IWL5150_FW),)
1328         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-5150-2.ucode $(1)/lib/firmware
1329 endif
1330 ifneq ($(CONFIG_IWL1000_FW),)
1331         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-1000-5.ucode $(1)/lib/firmware
1332 endif
1333 ifneq ($(CONFIG_IWL6000_FW),)
1334         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6000-4.ucode $(1)/lib/firmware
1335 endif
1336 ifneq ($(CONFIG_IWL6050_FW),)
1337         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6050-5.ucode $(1)/lib/firmware
1338 endif
1339 ifneq ($(CONFIG_IWL6005_FW),)
1340         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6000g2a-5.ucode $(1)/lib/firmware
1341 endif
1342 ifneq ($(CONFIG_IWL6030_FW),)
1343         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-6000g2b-5.ucode $(1)/lib/firmware
1344 endif
1345 ifneq ($(CONFIG_IWL100_FW),)
1346         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-100-5.ucode $(1)/lib/firmware
1347 endif
1348 endef
1349
1350 define KernelPackage/iwl3945/install
1351         $(INSTALL_DIR) $(1)/lib/firmware
1352         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-3945-2.ucode $(1)/lib/firmware
1353 endef
1354
1355 define KernelPackage/iwl4965/install
1356         $(INSTALL_DIR) $(1)/lib/firmware
1357         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/iwlwifi-4965-2.ucode $(1)/lib/firmware
1358 endef
1359
1360 define Build/b43-common
1361         tar xjf "$(DL_DIR)/$(PKG_B43_FWCUTTER_SOURCE)" -C "$(PKG_BUILD_DIR)"
1362         patch -p1 -d  "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)" < ./files/b43-fwcutter-fw-dirname.patch
1363         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)" \
1364                 CFLAGS="-I$(STAGING_DIR_HOST)/include -include endian.h" \
1365                 QUIET_SPARSE=:
1366         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_OBJECT)/b43-fwcutter $(STAGING_DIR_HOST)/bin/
1367 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1368         $(INSTALL_DIR) $(STAGING_DIR_HOST)/bin/
1369         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/"
1370         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/b43-asm $(STAGING_DIR_HOST)/bin/
1371         $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_B43_FWCUTTER_SUBDIR)/assembler/b43-asm.bin $(STAGING_DIR_HOST)/bin/
1372 endif
1373         $(INSTALL_BIN) ./files/host_bin/b43-fwsquash.py $(STAGING_DIR_HOST)/bin/
1374 endef
1375
1376 define KernelPackage/b43/install
1377         rm -rf $(1)/lib/firmware/
1378         $(call Build/b43-common)
1379 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1380         tar xzf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
1381 else
1382         tar xjf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
1383 endif
1384         $(INSTALL_DIR) $(1)/lib/firmware/
1385 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
1386         $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/"
1387         $(INSTALL_DIR) $(1)/lib/firmware/b43-open/
1388         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/ucode5.fw $(1)/lib/firmware/b43-open/ucode5.fw
1389         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0bsinitvals5.fw $(1)/lib/firmware/b43-open/b0g0bsinitvals5.fw
1390         $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0initvals5.fw $(1)/lib/firmware/b43-open/b0g0initvals5.fw
1391 else
1392         b43-fwcutter -w $(1)/lib/firmware/ $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)
1393 endif
1394 ifneq ($(CONFIG_B43_FW_SQUASH),)
1395         b43-fwsquash.py "$(CONFIG_B43_FW_SQUASH_PHYTYPES)" "$(CONFIG_B43_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43"
1396 endif
1397 endef
1398
1399 define KernelPackage/b43legacy/install
1400         $(call Build/b43-common)
1401         $(INSTALL_DIR) $(1)/lib/firmware/
1402
1403         b43-fwcutter --unsupported -w $(1)/lib/firmware/ $(DL_DIR)/$(PKG_B43_FWV3_SOURCE)
1404 ifneq ($(CONFIG_B43LEGACY_FW_SQUASH),)
1405         b43-fwsquash.py "G" "$(CONFIG_B43LEGACY_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43legacy"
1406 endif
1407 endef
1408
1409 $(eval $(call KernelPackage,ath5k))
1410 $(eval $(call KernelPackage,lib80211))
1411 $(eval $(call KernelPackage,libertas-usb))
1412 $(eval $(call KernelPackage,libertas-sd))
1413 $(eval $(call KernelPackage,cfg80211))
1414 $(eval $(call KernelPackage,mac80211))
1415 $(eval $(call KernelPackage,p54-common))
1416 $(eval $(call KernelPackage,p54-pci))
1417 $(eval $(call KernelPackage,p54-usb))
1418 $(eval $(call KernelPackage,p54-spi))
1419 $(eval $(call KernelPackage,rt2x00-lib))
1420 $(eval $(call KernelPackage,rt2x00-pci))
1421 $(eval $(call KernelPackage,rt2x00-usb))
1422 $(eval $(call KernelPackage,rt2x00-soc))
1423 $(eval $(call KernelPackage,rt2800-lib))
1424 $(eval $(call KernelPackage,rt2400-pci))
1425 $(eval $(call KernelPackage,rt2500-pci))
1426 $(eval $(call KernelPackage,rt2500-usb))
1427 $(eval $(call KernelPackage,rt61-pci))
1428 $(eval $(call KernelPackage,rt73-usb))
1429 $(eval $(call KernelPackage,rt2800-pci))
1430 $(eval $(call KernelPackage,rt2800-usb))
1431 $(eval $(call KernelPackage,rtl8180))
1432 $(eval $(call KernelPackage,rtl8187))
1433 $(eval $(call KernelPackage,zd1211rw))
1434 $(eval $(call KernelPackage,mac80211-hwsim))
1435 $(eval $(call KernelPackage,ath9k-common))
1436 $(eval $(call KernelPackage,ath9k))
1437 $(eval $(call KernelPackage,ath9k-htc))
1438 $(eval $(call KernelPackage,ath))
1439 $(eval $(call KernelPackage,carl9170))
1440 $(eval $(call KernelPackage,b43))
1441 $(eval $(call KernelPackage,b43legacy))
1442 $(eval $(call KernelPackage,net-libipw))
1443 $(eval $(call KernelPackage,net-ipw2100))
1444 $(eval $(call KernelPackage,net-ipw2200))
1445 $(eval $(call KernelPackage,iwlagn))
1446 $(eval $(call KernelPackage,iwl-legacy))
1447 $(eval $(call KernelPackage,iwl4965))
1448 $(eval $(call KernelPackage,iwl3945))
1449 $(eval $(call KernelPackage,mwl8k))
1450 $(eval $(call KernelPackage,net-hermes))
1451 $(eval $(call KernelPackage,net-hermes-pci))
1452 $(eval $(call KernelPackage,net-hermes-plx))
1453 $(eval $(call KernelPackage,net-hermes-pcmcia))