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