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