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