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