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