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