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