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