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