6daa63f67d576cacae4a6489fab247d18dcfd7f2
[openwrt/openwrt.git] / package / kernel / mac80211 / Makefile
1 #
2 # Copyright (C) 2007-2015 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:=4.19-rc5-1
14 PKG_RELEASE:=1
15 PKG_SOURCE_URL:=https://mirrors.edge.kernel.org/pub/linux/kernel/projects/backports/stable/v4.19-rc5/
16 PKG_HASH:=5b61e64ea79d22bbac9e8612d5d5485974f223de00d4ec250b0faf4b7baf9957
17
18 PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
19 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION)
20 PKG_BUILD_PARALLEL:=1
21
22 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
23
24 PKG_DRIVERS = \
25 adm8211 \
26 airo \
27 hermes hermes-pci hermes-pcmcia hermes-plx\
28 lib80211 \
29 libertas-sdio libertas-usb libertas-spi \
30 mac80211-hwsim \
31 mt7601u \
32 mwl8k mwifiex-pcie mwifiex-sdio \
33 p54-common p54-pci p54-spi p54-usb \
34 rsi91x rsi91x-usb rsi91x-sdio\
35 wlcore wl12xx wl18xx \
36 zd1211rw
37
38 PKG_CONFIG_DEPENDS:= \
39 CONFIG_PACKAGE_kmod-mac80211 \
40 CONFIG_PACKAGE_MAC80211_DEBUGFS \
41 CONFIG_PACKAGE_MAC80211_MESH \
42 CONFIG_PACKAGE_MAC80211_TRACING \
43 CONFIG_PACKAGE_IWLWIFI_DEBUG \
44 CONFIG_PACKAGE_IWLWIFI_DEBUGFS \
45 CONFIG_PACKAGE_RTLWIFI_DEBUG \
46
47 include $(INCLUDE_DIR)/package.mk
48
49 WMENU:=Wireless Drivers
50
51 define KernelPackage/mac80211/Default
52 SUBMENU:=$(WMENU)
53 URL:=https://wireless.wiki.kernel.org/
54 MAINTAINER:=Felix Fietkau <nbd@nbd.name>
55 endef
56
57 config_package=$(if $(CONFIG_PACKAGE_kmod-$(1)),m)
58
59 config-y:= \
60 WLAN \
61 NL80211_TESTMODE \
62 CFG80211_WEXT \
63 CFG80211_CERTIFICATION_ONUS \
64 MAC80211_RC_MINSTREL \
65 MAC80211_RC_MINSTREL_HT \
66 MAC80211_RC_MINSTREL_VHT \
67 MAC80211_RC_DEFAULT_MINSTREL \
68 WLAN_VENDOR_ADMTEK \
69 WLAN_VENDOR_ATH \
70 WLAN_VENDOR_ATMEL \
71 WLAN_VENDOR_BROADCOM \
72 WLAN_VENDOR_CISCO \
73 WLAN_VENDOR_INTEL \
74 WLAN_VENDOR_INTERSIL \
75 WLAN_VENDOR_MARVELL \
76 WLAN_VENDOR_MEDIATEK \
77 WLAN_VENDOR_RALINK \
78 WLAN_VENDOR_REALTEK \
79 WLAN_VENDOR_RSI \
80 WLAN_VENDOR_ST \
81 WLAN_VENDOR_TI \
82 WLAN_VENDOR_ZYDAS \
83
84 config-$(call config_package,cfg80211) += CFG80211
85
86 config-$(call config_package,mac80211) += MAC80211
87 config-$(CONFIG_PACKAGE_MAC80211_MESH) += MAC80211_MESH
88
89 include ath.mk
90 include broadcom.mk
91 include intel.mk
92 include ralink.mk
93 include realtek.mk
94
95 PKG_CONFIG_DEPENDS += \
96 $(patsubst %,CONFIG_PACKAGE_kmod-%,$(PKG_DRIVERS))
97
98 define KernelPackage/cfg80211
99 $(call KernelPackage/mac80211/Default)
100 TITLE:=cfg80211 - wireless configuration API
101 DEPENDS+= +iw +wireless-regdb
102 FILES:= \
103 $(PKG_BUILD_DIR)/compat/compat.ko \
104 $(PKG_BUILD_DIR)/net/wireless/cfg80211.ko
105 endef
106
107 define KernelPackage/cfg80211/description
108 cfg80211 is the Linux wireless LAN (802.11) configuration API.
109 endef
110
111 define KernelPackage/mac80211
112 $(call KernelPackage/mac80211/Default)
113 TITLE:=Linux 802.11 Wireless Networking Stack
114 # +kmod-crypto-cmac is a runtime only dependency of net/mac80211/aes_cmac.c
115 DEPENDS+= +kmod-cfg80211 +hostapd-common
116 KCONFIG:=\
117 CONFIG_AVERAGE=y
118 FILES:= $(PKG_BUILD_DIR)/net/mac80211/mac80211.ko
119 MENU:=1
120 endef
121
122 define KernelPackage/mac80211/config
123 if PACKAGE_kmod-mac80211
124
125 config PACKAGE_MAC80211_DEBUGFS
126 bool "Export mac80211 internals in DebugFS"
127 select KERNEL_DEBUG_FS
128 default y
129 help
130 Select this to see extensive information about
131 the internal state of mac80211 in debugfs.
132
133 config PACKAGE_MAC80211_TRACING
134 bool "Enable tracing (mac80211 and supported drivers)"
135 select KERNEL_FTRACE
136 select KERNEL_ENABLE_DEFAULT_TRACERS
137 default n
138 help
139 Select this to enable tracing of mac80211 and
140 related wifi drivers (using trace-cmd).
141
142 config PACKAGE_MAC80211_MESH
143 bool "Enable 802.11s mesh support"
144 default y
145
146 endif
147 endef
148
149 define KernelPackage/mac80211/description
150 Generic IEEE 802.11 Networking Stack (mac80211)
151 endef
152
153 define KernelPackage/adm8211
154 $(call KernelPackage/mac80211/Default)
155 TITLE:=ADMTek 8211 support
156 DEPENDS+=@PCI_SUPPORT +kmod-mac80211 +kmod-eeprom-93cx6
157 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/admtek/adm8211.ko
158 AUTOLOAD:=$(call AutoProbe,adm8211)
159 endef
160
161 define KernelPackage/airo
162 $(call KernelPackage/mac80211/Default)
163 TITLE:=Cisco Aironet driver
164 DEPENDS+=@PCI_SUPPORT +@DRIVER_WEXT_SUPPORT +kmod-cfg80211 @TARGET_x86
165 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/cisco/airo.ko
166 AUTOLOAD:=$(call AutoProbe,airo)
167 endef
168
169 define KernelPackage/airo/description
170 Kernel support for Cisco Aironet cards
171 endef
172
173 define KernelPackage/hermes
174 $(call KernelPackage/mac80211/Default)
175 TITLE:=Hermes 802.11b chipset support
176 DEPENDS:=@PCI_SUPPORT||PCMCIA_SUPPORT +kmod-cfg80211 +@DRIVER_WEXT_SUPPORT +kmod-crypto-michael-mic
177 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/orinoco/orinoco.ko
178 AUTOLOAD:=$(call AutoProbe,orinoco)
179 endef
180
181 define KernelPackage/hermes/description
182 Kernel support for Hermes 802.11b chipsets
183 endef
184
185 define KernelPackage/hermes-pci
186 $(call KernelPackage/mac80211/Default)
187 TITLE:=Intersil Prism 2.5 PCI support
188 DEPENDS:=@PCI_SUPPORT +kmod-hermes
189 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/orinoco/orinoco_pci.ko
190 AUTOLOAD:=$(call AutoProbe,orinoco_pci)
191 endef
192
193 define KernelPackage/hermes-pci/description
194 Kernel modules for Intersil Prism 2.5 PCI support
195 endef
196
197 define KernelPackage/hermes-plx
198 $(call KernelPackage/mac80211/Default)
199 TITLE:=PLX9052 based PCI adaptor
200 DEPENDS:=@PCI_SUPPORT +kmod-hermes
201 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/orinoco/orinoco_plx.ko
202 AUTOLOAD:=$(call AutoProbe,orinoco_plx)
203 endef
204
205 define KernelPackage/hermes-plx/description
206 Kernel modules for Hermes in PLX9052 based PCI adaptors
207 endef
208
209 define KernelPackage/hermes-pcmcia
210 $(call KernelPackage/mac80211/Default)
211 TITLE:=Hermes based PCMCIA adaptors
212 DEPENDS:=@PCMCIA_SUPPORT +kmod-hermes
213 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/orinoco/orinoco_cs.ko
214 AUTOLOAD:=$(call AutoProbe,orinoco_cs)
215 endef
216
217 define KernelPackage/hermes-pcmcia/description
218 Kernel modules for Hermes based PCMCIA adaptors
219 endef
220
221
222 define KernelPackage/lib80211
223 $(call KernelPackage/mac80211/Default)
224 TITLE:=802.11 Networking stack
225 DEPENDS:=+kmod-cfg80211 +kmod-crypto-hash
226 FILES:= \
227 $(PKG_BUILD_DIR)/net/wireless/lib80211.ko \
228 $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_wep.ko \
229 $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_ccmp.ko \
230 $(PKG_BUILD_DIR)/net/wireless/lib80211_crypt_tkip.ko
231 AUTOLOAD:=$(call AutoProbe, \
232 lib80211 \
233 lib80211_crypt_wep \
234 lib80211_crypt_ccmp \
235 lib80211_crypt_tkip \
236 )
237 endef
238
239 define KernelPackage/lib80211/description
240 Kernel modules for 802.11 Networking stack
241 Includes:
242 - lib80211
243 - lib80211_crypt_wep
244 - lib80211_crypt_tkip
245 - lib80211_crytp_ccmp
246 endef
247
248
249 define KernelPackage/libertas-usb
250 $(call KernelPackage/mac80211/Default)
251 DEPENDS+= @USB_SUPPORT +kmod-cfg80211 +kmod-usb-core +kmod-lib80211 +@DRIVER_WEXT_SUPPORT +libertas-usb-firmware @!LINUX_3_18
252 TITLE:=Marvell 88W8015 Wireless Driver
253 FILES:= \
254 $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/libertas.ko \
255 $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/usb8xxx.ko
256 AUTOLOAD:=$(call AutoProbe,libertas usb8xxx)
257 endef
258
259 define KernelPackage/libertas-sdio
260 $(call KernelPackage/mac80211/Default)
261 DEPENDS+= +kmod-cfg80211 +kmod-lib80211 +kmod-mmc +@DRIVER_WEXT_SUPPORT @!TARGET_uml +libertas-sdio-firmware @!LINUX_3_18
262 TITLE:=Marvell 88W8686 Wireless Driver
263 FILES:= \
264 $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/libertas.ko \
265 $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/libertas_sdio.ko
266 AUTOLOAD:=$(call AutoProbe,libertas libertas_sdio)
267 endef
268
269 define KernelPackage/libertas-spi
270 $(call KernelPackage/mac80211/Default)
271 SUBMENU:=Wireless Drivers
272 DEPENDS+= +kmod-cfg80211 +kmod-lib80211 +@DRIVER_WEXT_SUPPORT @!TARGET_uml +libertas-spi-firmware @!LINUX_3_18
273 KCONFIG := \
274 CONFIG_SPI=y \
275 CONFIG_SPI_MASTER=y
276 TITLE:=Marvell 88W8686 SPI Wireless Driver
277 FILES:= \
278 $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/libertas.ko \
279 $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/libertas_spi.ko
280 AUTOLOAD:=$(call AutoProbe,libertas libertas_spi)
281 endef
282
283 define KernelPackage/mac80211-hwsim
284 $(call KernelPackage/mac80211/Default)
285 TITLE:=mac80211 HW simulation device
286 DEPENDS+= +kmod-mac80211 +@DRIVER_11AC_SUPPORT +@DRIVER_11N_SUPPORT +@DRIVER_11W_SUPPORT
287 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.ko
288 AUTOLOAD:=$(call AutoProbe,mac80211_hwsim)
289 endef
290
291
292 define KernelPackage/mt7601u
293 $(call KernelPackage/mac80211/Default)
294 TITLE:=MT7601U-based USB dongles Wireless Driver
295 DEPENDS+= +kmod-mac80211 +@DRIVER_11N_SUPPORT @USB_SUPPORT +kmod-usb-core +mt7601u-firmware
296 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mediatek/mt7601u/mt7601u.ko
297 AUTOLOAD:=$(call AutoProbe,mt7601u)
298 endef
299
300
301 define KernelPackage/mwl8k
302 $(call KernelPackage/mac80211/Default)
303 TITLE:=Driver for Marvell TOPDOG 802.11 Wireless cards
304 URL:=https://wireless.wiki.kernel.org/en/users/drivers/mwl8k
305 DEPENDS+= @PCI_SUPPORT +kmod-mac80211 +@DRIVER_11N_SUPPORT +mwl8k-firmware
306 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/marvell/mwl8k.ko
307 AUTOLOAD:=$(call AutoProbe,mwl8k)
308 endef
309
310 define KernelPackage/mwl8k/description
311 Kernel modules for Marvell TOPDOG 802.11 Wireless cards
312 endef
313
314
315 define KernelPackage/mwifiex-pcie
316 $(call KernelPackage/mac80211/Default)
317 TITLE:=Driver for Marvell 802.11n/802.11ac PCIe Wireless cards
318 URL:=https://wireless.wiki.kernel.org/en/users/drivers/mwifiex
319 DEPENDS+= @PCI_SUPPORT +kmod-mac80211 +@DRIVER_11N_SUPPORT +@DRIVER_11AC_SUPPORT +mwifiex-pcie-firmware
320 FILES:= \
321 $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/mwifiex/mwifiex.ko \
322 $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/mwifiex/mwifiex_pcie.ko
323 AUTOLOAD:=$(call AutoProbe,mwifiex_pcie)
324 endef
325
326 define KernelPackage/mwifiex-pcie/description
327 Kernel modules for Marvell 802.11n/802.11ac PCIe Wireless cards
328 endef
329
330 define KernelPackage/mwifiex-sdio
331 $(call KernelPackage/mac80211/Default)
332 TITLE:=Driver for Marvell 802.11n/802.11ac SDIO Wireless cards
333 URL:=https://wireless.wiki.kernel.org/en/users/drivers/mwifiex
334 DEPENDS+= +kmod-mmc +kmod-mac80211 +@DRIVER_11N_SUPPORT +@DRIVER_11AC_SUPPORT +mwifiex-sdio-firmware
335 FILES:= \
336 $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/mwifiex/mwifiex.ko \
337 $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/mwifiex/mwifiex_sdio.ko
338 AUTOLOAD:=$(call AutoProbe,mwifiex_sdio)
339 endef
340
341 define KernelPackage/mwifiex-sdio/description
342 Kernel modules for Marvell 802.11n/802.11ac SDIO Wireless cards
343 endef
344
345 define KernelPackage/p54/Default
346 $(call KernelPackage/mac80211/Default)
347 TITLE:=Prism54 Drivers
348 endef
349
350 define KernelPackage/p54/description
351 Kernel module for Prism54 chipsets (mac80211)
352 endef
353
354 define KernelPackage/p54-common
355 $(call KernelPackage/p54/Default)
356 DEPENDS+= @PCI_SUPPORT||@USB_SUPPORT||@TARGET_omap24xx +kmod-mac80211 +kmod-lib-crc-ccitt
357 TITLE+= (COMMON)
358 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/p54/p54common.ko
359 endef
360
361 define KernelPackage/p54-pci
362 $(call KernelPackage/p54/Default)
363 TITLE+= (PCI)
364 DEPENDS+= @PCI_SUPPORT +kmod-p54-common +p54-pci-firmware
365 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/p54/p54pci.ko
366 AUTOLOAD:=$(call AutoProbe,p54pci)
367 endef
368
369 define KernelPackage/p54-usb
370 $(call KernelPackage/p54/Default)
371 TITLE+= (USB)
372 DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-p54-common +p54-usb-firmware
373 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/p54/p54usb.ko
374 AUTOLOAD:=$(call AutoProbe,p54usb)
375 endef
376
377 define KernelPackage/p54-spi
378 $(call KernelPackage/p54/Default)
379 TITLE+= (SPI)
380 DEPENDS+= @TARGET_omap24xx +kmod-p54-common +p54-spi-firmware
381 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/p54/p54spi.ko
382 AUTOLOAD:=$(call AutoProbe,p54spi)
383 endef
384
385 define KernelPackage/rsi91x
386 $(call KernelPackage/mac80211/Default)
387 TITLE:=Redpine Signals Inc 91x WLAN driver support
388 DEPENDS+= +kmod-mac80211 +rs9113-firmware
389 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rsi/rsi_91x.ko
390 endef
391
392 define KernelPackage/rsi91x-usb
393 $(call KernelPackage/mac80211/Default)
394 TITLE:=Redpine Signals USB bus support
395 DEPENDS+= +kmod-mac80211 +kmod-usb2 +kmod-rsi91x +rs9113-firmware
396 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rsi/rsi_usb.ko
397 AUTOLOAD:=$(call AutoProbe,rsi_usb)
398 endef
399
400 define KernelPackage/rsi91x-sdio
401 $(call KernelPackage/mac80211/Default)
402 TITLE:=Redpine Signals SDIO bus support
403 DEPENDS+= +kmod-mac80211 +kmod-mmc +kmod-rsi91x +rs9113-firmware
404 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rsi/rsi_sdio.ko
405 AUTOLOAD:=$(call AutoProbe,rsi_sdio)
406 endef
407
408
409 define KernelPackage/wlcore
410 $(call KernelPackage/mac80211/Default)
411 TITLE:=TI common driver part
412 DEPENDS+= +kmod-mmc +kmod-mac80211 +@DRIVER_11N_SUPPORT
413 FILES:= \
414 $(PKG_BUILD_DIR)/drivers/net/wireless/ti/wlcore/wlcore.ko \
415 $(PKG_BUILD_DIR)/drivers/net/wireless/ti/wlcore/wlcore_sdio.ko
416 AUTOLOAD:=$(call AutoProbe,wlcore wlcore_sdio)
417 endef
418
419 define KernelPackage/wlcore/description
420 This module contains some common parts needed by TI Wireless drivers.
421 endef
422
423 define KernelPackage/wl12xx
424 $(call KernelPackage/mac80211/Default)
425 TITLE:=Driver for TI WL12xx
426 URL:=https://wireless.wiki.kernel.org/en/users/drivers/wl12xx
427 DEPENDS+= +kmod-wlcore +wl12xx-firmware
428 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ti/wl12xx/wl12xx.ko
429 AUTOLOAD:=$(call AutoProbe,wl12xx)
430 endef
431
432 define KernelPackage/wl12xx/description
433 Kernel modules for TI WL12xx
434 endef
435
436 define KernelPackage/wl18xx
437 $(call KernelPackage/mac80211/Default)
438 TITLE:=Driver for TI WL18xx
439 URL:=https://wireless.wiki.kernel.org/en/users/drivers/wl18xx
440 DEPENDS+= +kmod-wlcore +wl18xx-firmware
441 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ti/wl18xx/wl18xx.ko
442 AUTOLOAD:=$(call AutoProbe,wl18xx)
443 endef
444
445 define KernelPackage/wl18xx/description
446 Kernel modules for TI WL18xx
447 endef
448
449
450 ZD1211FW_NAME:=zd1211-firmware
451 ZD1211FW_VERSION:=1.4
452 define Download/zd1211rw
453 FILE:=$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
454 URL:=@SF/zd1211/
455 HASH:=866308f6f59f7075f075d4959dff2ede47735c751251fecd1496df1ba4d338e1
456 endef
457 $(eval $(call Download,zd1211rw))
458
459 define KernelPackage/zd1211rw
460 $(call KernelPackage/mac80211/Default)
461 TITLE:=Zydas ZD1211 support
462 DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-mac80211
463 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/zydas/zd1211rw/zd1211rw.ko
464 AUTOLOAD:=$(call AutoProbe,zd1211rw)
465 endef
466
467 ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
468 config-y += \
469 CFG80211_DEBUGFS \
470 MAC80211_DEBUGFS
471 endif
472
473 ifdef CONFIG_PACKAGE_MAC80211_TRACING
474 config-y += \
475 IWLWIFI_DEVICE_TRACING
476 endif
477
478 config-$(call config_package,lib80211) += LIB80211 LIB80211_CRYPT_WEP LIB80211_CRYPT_CCMP LIB80211_CRYPT_TKIP
479
480 config-$(call config_package,airo) += AIRO
481
482 config-$(call config_package,mac80211-hwsim) += MAC80211_HWSIM
483 config-$(call config_package,mt7601u) += MT7601U
484 config-y += WL_MEDIATEK
485
486 config-$(call config_package,p54-common) += P54_COMMON
487 config-$(call config_package,p54-pci) += P54_PCI
488 config-$(call config_package,p54-usb) += P54_USB
489 config-$(call config_package,p54-spi) += P54_SPI
490
491 config-$(call config_package,hermes) += HERMES
492 config-$(call config_package,hermes-pci) += PCI_HERMES
493 config-$(call config_package,hermes-plx) += PLX_HERMES
494 config-$(call config_package,hermes-pcmcia) += PCMCIA_HERMES
495 config-y += HERMES_PRISM
496
497 config-$(call config_package,adm8211) += ADM8211
498 config-$(call config_package,libertas-sdio) += LIBERTAS LIBERTAS_SDIO
499 config-$(call config_package,libertas-usb) += LIBERTAS LIBERTAS_USB
500 config-$(call config_package,libertas-spi) += LIBERTAS LIBERTAS_SPI
501 config-$(call config_package,mwl8k) += MWL8K
502 config-$(call config_package,mwifiex-pcie) += MWIFIEX MWIFIEX_PCIE
503 config-$(call config_package,mwifiex-sdio) += MWIFIEX MWIFIEX_SDIO
504 config-$(call config_package,wlcore) += WLCORE WLCORE_SDIO
505 config-$(call config_package,wl12xx) += WL12XX
506 config-$(call config_package,wl18xx) += WL18XX
507 config-y += WL_TI WILINK_PLATFORM_DATA
508 config-$(call config_package,zd1211rw) += ZD1211RW
509 config-$(call config_package,rsi91x) += RSI_91X
510 config-$(call config_package,rsi91x-usb) += RSI_USB
511 config-$(call config_package,rsi91x-sdio) += RSI_SDIO
512
513 config-$(CONFIG_LEDS_TRIGGERS) += MAC80211_LEDS
514
515 MAKE_OPTS:= -C "$(PKG_BUILD_DIR)" \
516 $(KERNEL_MAKE_FLAGS) \
517 EXTRA_CFLAGS="-I$(PKG_BUILD_DIR)/include $(IREMAP_CFLAGS)" \
518 KLIB_BUILD="$(LINUX_DIR)" \
519 MODPROBE=true \
520 KLIB=$(TARGET_MODULES_DIR) \
521 KERNEL_SUBLEVEL=$(lastword $(subst ., ,$(KERNEL_PATCHVER))) \
522 KBUILD_LDFLAGS_MODULE_PREREQ=
523
524 define ConfigVars
525 $(subst $(space),,$(foreach opt,$(config-$(1)),CPTCFG_$(opt)=$(1)
526 ))
527 endef
528
529 define mac80211_config
530 $(call ConfigVars,m)$(call ConfigVars,y)
531 endef
532 $(eval $(call shexport,mac80211_config))
533
534 define Build/Prepare
535 rm -rf $(PKG_BUILD_DIR)
536 mkdir -p $(PKG_BUILD_DIR)
537 $(PKG_UNPACK)
538 $(Build/Patch)
539 $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
540 $(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
541 $(TAR) -C $(PKG_BUILD_DIR) -xjf $(DL_DIR)/$(ZD1211FW_NAME)-$(ZD1211FW_VERSION).tar.bz2
542 rm -rf \
543 $(PKG_BUILD_DIR)/include/linux/ssb \
544 $(PKG_BUILD_DIR)/include/linux/bcma \
545 $(PKG_BUILD_DIR)/include/net/bluetooth
546
547 rm -f \
548 $(PKG_BUILD_DIR)/include/linux/cordic.h \
549 $(PKG_BUILD_DIR)/include/linux/crc8.h \
550 $(PKG_BUILD_DIR)/include/linux/eeprom_93cx6.h \
551 $(PKG_BUILD_DIR)/include/linux/wl12xx.h \
552 $(PKG_BUILD_DIR)/include/linux/spi/libertas_spi.h \
553 $(PKG_BUILD_DIR)/include/net/ieee80211.h \
554 $(PKG_BUILD_DIR)/backport-include/linux/bcm47xx_nvram.h
555
556 echo 'compat-wireless-$(PKG_VERSION)-$(PKG_RELEASE)-$(REVISION)' > $(PKG_BUILD_DIR)/compat_version
557 endef
558
559 ifneq ($(CONFIG_PACKAGE_kmod-cfg80211)$(CONFIG_PACKAGE_kmod-lib80211),)
560 define Build/Compile/kmod
561 rm -rf $(PKG_BUILD_DIR)/modules
562 +$(MAKE) $(PKG_JOBS) $(MAKE_OPTS) modules
563 endef
564 endif
565
566 #do not Build/Configure for EXTERNAL KERNEL
567 ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"")
568 ifeq ($(strip $(CONFIG_KERNEL_GIT_CLONE_URI)),"")
569 define Build/Configure
570 cmp $(PKG_BUILD_DIR)/include/linux/ath9k_platform.h $(LINUX_DIR)/include/linux/ath9k_platform.h
571 cmp $(PKG_BUILD_DIR)/include/linux/ath5k_platform.h $(LINUX_DIR)/include/linux/ath5k_platform.h
572 cmp $(PKG_BUILD_DIR)/include/linux/rt2x00_platform.h $(LINUX_DIR)/include/linux/rt2x00_platform.h
573 endef
574 endif
575 endif
576
577 define Build/Patch
578 $(if $(QUILT),rm -rf $(PKG_BUILD_DIR)/patches; mkdir -p $(PKG_BUILD_DIR)/patches)
579 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/build,build/)
580 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/subsys,subsys/)
581 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath,ath/)
582 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
583 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
584 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
585 $(if $(QUILT),touch $(PKG_BUILD_DIR)/.quilt_used)
586 endef
587
588 define Quilt/Refresh/Package
589 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/build,build/)
590 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/subsys,subsys/)
591 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath,ath/)
592 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
593 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
594 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
595 endef
596
597 define Build/Compile
598 $(SH_FUNC) var2file "$(call shvar,mac80211_config)" $(PKG_BUILD_DIR)/.config
599 $(MAKE) $(MAKE_OPTS) allnoconfig
600 $(call Build/Compile/kmod)
601 endef
602
603 define Build/InstallDev
604 mkdir -p \
605 $(1)/usr/include/mac80211 \
606 $(1)/usr/include/mac80211-backport \
607 $(1)/usr/include/mac80211/ath \
608 $(1)/usr/include/net/mac80211
609 $(CP) $(PKG_BUILD_DIR)/net/mac80211/*.h $(PKG_BUILD_DIR)/include/* $(1)/usr/include/mac80211/
610 $(CP) $(PKG_BUILD_DIR)/backport-include/* $(1)/usr/include/mac80211-backport/
611 $(CP) $(PKG_BUILD_DIR)/net/mac80211/rate.h $(1)/usr/include/net/mac80211/
612 $(CP) $(PKG_BUILD_DIR)/drivers/net/wireless/ath/*.h $(1)/usr/include/mac80211/ath/
613 rm -f $(1)/usr/include/mac80211-backport/linux/module.h
614 endef
615
616
617 define KernelPackage/b43/install
618 rm -rf $(1)/lib/firmware/
619 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
620 tar xzf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
621 else
622 tar xjf "$(DL_DIR)/$(PKG_B43_FWV4_SOURCE)" -C "$(PKG_BUILD_DIR)"
623 endif
624 $(INSTALL_DIR) $(1)/lib/firmware/
625 ifeq ($(CONFIG_B43_OPENFIRMWARE),y)
626 $(MAKE) -C "$(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/"
627 $(INSTALL_DIR) $(1)/lib/firmware/b43-open/
628 $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/ucode5.fw $(1)/lib/firmware/b43-open/ucode5.fw
629 $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0bsinitvals5.fw $(1)/lib/firmware/b43-open/b0g0bsinitvals5.fw
630 $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)/b0g0initvals5.fw $(1)/lib/firmware/b43-open/b0g0initvals5.fw
631 else
632 b43-fwcutter -w $(1)/lib/firmware/ $(PKG_BUILD_DIR)/$(PKG_B43_FWV4_OBJECT)
633 endif
634 ifneq ($(CONFIG_B43_FW_SQUASH),)
635 b43-fwsquash.py "$(CONFIG_B43_FW_SQUASH_PHYTYPES)" "$(CONFIG_B43_FW_SQUASH_COREREVS)" "$(1)/lib/firmware/b43"
636 endif
637 endef
638
639 define KernelPackage/cfg80211/install
640 $(INSTALL_DIR) $(1)/lib/wifi $(1)/lib/netifd/wireless
641 $(INSTALL_DATA) ./files/lib/wifi/mac80211.sh $(1)/lib/wifi
642 $(INSTALL_BIN) ./files/lib/netifd/wireless/mac80211.sh $(1)/lib/netifd/wireless
643 $(INSTALL_DIR) $(1)/etc/hotplug.d/ieee80211
644 $(INSTALL_DATA) ./files/mac80211.hotplug $(1)/etc/hotplug.d/ieee80211/10-wifi-detect
645 endef
646
647 define KernelPackage/zd1211rw/install
648 $(INSTALL_DIR) $(1)/lib/firmware/zd1211
649 $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(ZD1211FW_NAME)/zd1211* $(1)/lib/firmware/zd1211
650 endef
651
652 $(eval $(foreach drv,$(PKG_DRIVERS),$(call KernelPackage,$(drv))))
653 $(eval $(call KernelPackage,cfg80211))
654 $(eval $(call KernelPackage,mac80211))