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